libclang call graph over SMLib/SM_API with conservative (CHA) virtual resolution and dead-debug-branch pruning; closure from in-scope SM_API entry points plus the native .smb reader used by test fixtures. plan/closure.md: files, unused code, hazards, threading. plan/modules.toml + plan/order.md: units, deps, layers, critical path. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
21 KiB
Port order (parallel layers)
Generated by harness/callgraph/plan_units.py from the CHA call-graph closure. A unit in layer k
depends only on units in layers < k, so every unit within a layer can be ported in parallel once
the previous layers are green. Dependencies are static calls plus conservative virtual dispatch
(a call to a virtual method depends on every in-scope override).
Cycles. The kernel's curve/surface/topology core is mutually recursive (e.g. surface
evaluation -> offset/blend surfaces -> curve-on-surface -> surface point solve -> surface
evaluation). Unit-level strongly connected components were linearised with a weighted greedy
feedback-arc-set; the dropped back-edges are listed in each unit's notes in
plan/modules.toml. A unit with back-edges can be ported in its layer, but its difftest can only
cover paths whose callees are already ported; full side-by-side validation of such a unit is
re-run when the back-edge targets turn green (keep status = "claimed" until then or record
the partial coverage in plan/findings.md).
| layer | units | est. upstream lines | max unit |
|---|---|---|---|
| 0 | 5 | 5563 | 2971 |
| 1 | 4 | 4346 | 1259 |
| 2 | 8 | 5943 | 1145 |
| 3 | 11 | 8721 | 1617 |
| 4 | 5 | 6894 | 2178 |
| 5 | 8 | 10101 | 1775 |
| 6 | 7 | 8512 | 1879 |
| 7 | 5 | 6300 | 2200 |
| 8 | 3 | 3226 | 2031 |
| 9 | 3 | 4277 | 1894 |
| 10 | 3 | 3814 | 2560 |
| 11 | 3 | 5437 | 2794 |
| 12 | 5 | 9372 | 2233 |
| 13 | 3 | 4494 | 2302 |
| 14 | 11 | 9993 | 2228 |
| 15 | 4 | 7088 | 2014 |
| 16 | 5 | 7079 | 2377 |
| 17 | 2 | 4105 | 2072 |
| 18 | 3 | 6405 | 2376 |
| 19 | 4 | 6662 | 1930 |
| 20 | 2 | 2319 | 1670 |
| 21 | 2 | 4098 | 2398 |
| 22 | 4 | 5912 | 2299 |
| 23 | 5 | 7457 | 1934 |
| 24 | 8 | 9920 | 1865 |
| 25 | 4 | 6218 | 1703 |
| 26 | 1 | 2406 | 2406 |
| 27 | 3 | 5797 | 2270 |
| 28 | 3 | 6602 | 2861 |
| 29 | 3 | 6547 | 2458 |
| 30 | 4 | 5654 | 2172 |
| 31 | 6 | 10494 | 2374 |
| 32 | 9 | 16225 | 2746 |
| 33 | 6 | 10352 | 2062 |
| 34 | 4 | 7222 | 2022 |
| 35 | 4 | 7001 | 2213 |
| 36 | 4 | 3989 | 2017 |
| 37 | 3 | 4549 | 1900 |
| 38 | 1 | 824 | 824 |
| 39 | 1 | 892 | 892 |
| 40 | 2 | 3981 | 2213 |
| 41 | 4 | 7412 | 2878 |
| 42 | 3 | 4117 | 1812 |
| 43 | 4 | 5716 | 1890 |
| 44 | 4 | 8413 | 2503 |
| 45 | 5 | 6668 | 2454 |
| 46 | 4 | 6355 | 2443 |
| 47 | 2 | 4636 | 2443 |
| 48 | 6 | 10415 | 2503 |
| 49 | 7 | 11403 | 2322 |
| 50 | 6 | 11256 | 2491 |
| 51 | 4 | 8707 | 2652 |
| 52 | 3 | 4208 | 1849 |
| 53 | 2 | 2835 | 1842 |
| 54 | 2 | 3575 | 1967 |
| 55 | 1 | 475 | 475 |
| 56 | 1 | 2590 | 2590 |
| 57 | 1 | 1152 | 1152 |
| 58 | 3 | 4731 | 2258 |
| 59 | 7 | 8924 | 2107 |
| 60 | 5 | 8754 | 2074 |
| 61 | 2 | 2849 | 1697 |
| 62 | 1 | 2077 | 2077 |
| 63 | 1 | 1952 | 1952 |
| 64 | 1 | 1892 | 1892 |
| total | 260 | 387903 |
Critical path
Longest dependency chain weighted by est_lines (65 units, 116850 upstream lines):
nlib.math(layer 0, 2971 lines)nlib.geom(layer 1, 1244 lines)nlib.basis_basic(layer 2, 786 lines)nlib.funcs_basic(layer 3, 538 lines)nlib.crv_basic(layer 4, 1542 lines)nlib.crv_tool_p1(layer 5, 1371 lines)nlib.crv_nurb(layer 6, 1879 lines)nlib.crv_geom(layer 7, 729 lines)nlib.crv_adv_p1(layer 8, 2031 lines)nlib.crv_adv_p2(layer 9, 1722 lines)nlib.crv_approx(layer 10, 908 lines)nurbs.b_spline_curve_n_lib(layer 11, 2794 lines)nurbs.b_spline_curve_p2(layer 12, 1872 lines)curve.curve_p2(layer 13, 2302 lines)curve.line(layer 14, 1884 lines)curve.ellipse_p2(layer 15, 1916 lines)curve.curve_p4(layer 16, 2377 lines)curve.curve_p3(layer 17, 2072 lines)curve.curve_p6(layer 18, 2376 lines)curve.curve_p7(layer 19, 1666 lines)curve.curve_p8(layer 20, 1670 lines)surface.surface_p2(layer 21, 2398 lines)surface.surface_cache_p1(layer 22, 1944 lines)surface.surface_p9(layer 23, 1252 lines)surface.surface_cache_p2(layer 24, 1245 lines)surface.surface_cache_p3(layer 25, 1703 lines)surface.surface_p7(layer 26, 2406 lines)surface.plane_p2(layer 27, 1627 lines)surface.sphere(layer 28, 2861 lines)surface.surface_p1(layer 29, 2458 lines)surface.surface_p3(layer 30, 1794 lines)surface.surface_p11(layer 31, 1789 lines)intersect.surface_intersector_p1(layer 32, 1816 lines)intersect.curve_class_p2(layer 33, 1928 lines)intersect.curve_class_p4(layer 34, 2022 lines)intersect.topology_solver_p2(layer 35, 1391 lines)topology.shell(layer 36, 750 lines)topology.vertexuse(layer 37, 1429 lines)topology.vertex(layer 38, 824 lines)topology.loopuse(layer 39, 892 lines)topology.edge(layer 40, 2213 lines)topology.edgeuse_p3(layer 41, 2273 lines)topology.face_p4(layer 42, 1812 lines)topology.face_p3(layer 43, 1881 lines)topology.face_p1(layer 44, 2171 lines)topology.brep_p1(layer 45, 2454 lines)topology.brep_p4(layer 46, 2113 lines)topology.brep_p5(layer 47, 2193 lines)topology.proto_topology_p2(layer 48, 2091 lines)topology.proto_topology_p3(layer 49, 1577 lines)boolean.topology_intersector_p1(layer 50, 2491 lines)boolean.topology_intersector_p2(layer 51, 2195 lines)boolean.topology_intersector_p3(layer 52, 1849 lines)boolean.merge_p1(layer 53, 993 lines)boolean.merge_p2(layer 54, 1967 lines)boolean.merge_p5(layer 55, 475 lines)boolean.merge_p4(layer 56, 2590 lines)boolean.merge_p3(layer 57, 1152 lines)blend.fillet_executive_p1(layer 58, 2063 lines)blend.fillet_corner_p1(layer 59, 1971 lines)blend.fillet_geom_p4(layer 60, 2074 lines)blend.fillet_executive_p2(layer 61, 1152 lines)blend.fillet_geom_p2(layer 62, 2077 lines)blend.fillet_geom_p5(layer 63, 1952 lines)blend.fillet_corner_p2(layer 64, 1892 lines)
Unit-level cycles
4 strongly connected unit groups; sizes: 220, 5, 3, 2. Total back-edges dropped: 800.
-
SCC #22 (220 units, 339525 lines):
geom.extent3d,geom.vector2d,geom.attribute,geom.tol,geom.tree,geom.assert_array,geom.context,geom.extent1d,geom.matrix,geom.periodic_extent1d,geom.vector3d,geom.axis2_placement,geom.extent2d,geom.geom_utility_p2,geom.hash_table,geom.local_solve1d,geom.local_solve_nd,geom.object,geom.polynomial,geom.geom_utility_p1,geom.grid,geom.polar_box,geom.solution_array,geom.global_solver,geom.pseudo_box,geom.tools,geom.transform,curve.hermite_curve,geom.a_object,geom.point_set,nurbs.nurbs_crv,topology.topology,nurbs.b_spline_curve_p1,nlib.srf_nurb,nlib.srf_tool_p2,nurbs.b_spline_curve_n_lib,nurbs.nurbs_srf,nlib.srf_adv_p2,nlib.srf_adv_p3,nlib.srf_tool_p3,nurbs.b_spline_curve_p2,nurbs.b_spline_surface_p1,curve.curve_p2,nlib.srf_tool_p4,nurbs.b_spline_curve_p3,curve.conic,curve.crv_in_volume,curve.curve_cache,curve.hyperbola,curve.iso_curve,curve.line,curve.offset_curve,curve.parabola,curve.projected_curve,curve.tangent_field,nlib.srf_adv_p4,curve.ellipse_p2,nlib.srf_adv_p1,nlib.srf_adv_p5,surface.volume_p1,curve.curve_p4,nlib.srf_adv_p6,nlib.srf_offset,surface.b_spline_volume,surface.twist_volume,curve.curve_p3,nurbs.b_spline_surface_n_lib_p1,curve.curve_p1,curve.curve_p6,nurbs.b_spline_surface_n_lib_p2,curve.crv_on_surf,curve.curve_p7,curve.ellipse_p1,nurbs.b_spline_surface_p2,curve.curve_p8,curve.composite_curve_p1,surface.surface_p2,curve.composite_curve_p2,curve.curve_p5,surface.curve_bounded_surface,surface.surface_cache_p1,curve.curve_p9,surface.plane_p1,surface.surf_of_revolution_p1,surface.surface_p9,surface.trim_srf_cache,surface.bend_volume,surface.cone_p1,surface.surf_of_extrusion_p1,surface.surf_of_revolution_p3,surface.surface_cache_p2,surface.torus,surface.unbend_volume,surface.cone_p2,surface.surf_of_revolution_p2,surface.surface_cache_p3,surface.volume_p2,surface.surface_p7,intersect.surface_tracer,surface.plane_p2,surface.surface_p4,surface.sphere,surface.surf_of_extrusion_p2,surface.surface_p5,surface.cone_p3,surface.surface_p1,surface.surface_p6,intersect.point_class,surface.srf_in_volume,surface.surface_p10,surface.surface_p3,intersect.curve_class_p1,intersect.surface_drop_lib_p1,intersect.surface_silhouette,surface.offset_surface,surface.surface_p11,surface.surface_p8,intersect.curve_class_p7,intersect.ray_tracer,intersect.surface_drop_curve,intersect.surface_drop_lib_p2,intersect.surface_intersector_p1,intersect.topology_solver_p1,surface.surface_point_solve_p1,topology.brep_data,topology.proto_topology_p1,intersect.adv_surface_intersector,intersect.curve_class_p2,intersect.surface_drop_lib_p3,intersect.surface_intersector_p2,surface.surface_point_solve_p2,topology.edgeuse_p1,intersect.curve_class_p3,intersect.curve_class_p4,intersect.surface_intersector_p3,surface.surface_point_solve_p3,intersect.curve_class_p6,intersect.surface_intersector_p4,intersect.topology_solver_p2,topology.face_p2,intersect.curve_class_p5,intersect.surface_intersector_p5,topology.edgeuse_p2,topology.shell,intersect.curve_class_p8,intersect.curve_class_p9,topology.vertexuse,topology.vertex,topology.loopuse,topology.brep_p8,topology.edge,blend.fillet_custom_solver,query.edge,topology.edgeuse_p3,topology.trimming_tools,heal.gap,query.loop,topology.face_p4,query.face_p2,topology.brep_p10,topology.face_p3,topology.topology_traverser,query.face_p3,query.poly,topology.brep_p7,topology.face_p1,query.face_p1,query.face_p4,query.tess,topology.brep_p1,topology.brep_p6,heal.face_props,topology.brep_cache,topology.brep_p4,topology.brep_p9,topology.brep_p2,topology.brep_p5,blend.fillet_geom_p1,heal.heal_data_p2,mass.integrator,query.brep,topology.brep_p3,topology.proto_topology_p2,blend.fillet_solver_p1,blend.hcr,heal.heal_data_p1,heal.stitch_p1,primitive.primitive_creation_p1,topology.proto_topology_p3,blend.fillet_intersector,blend.fillet_solver_p5,blend.fillet_standard_solver_p1,boolean.topology_intersector_p1,heal.heal_data_p3,heal.stitch_p2,blend.fillet_solver_p4,boolean.topology_intersector_p2,sweep.topology_sweep,boolean.topology_intersector_p3,sweep.rotational_sweep_geometry,sweep.trans_sweep_geometry,boolean.merge_p1,blend.fillet_executive_p3,boolean.merge_p2,boolean.merge_p5,boolean.merge_p4,boolean.merge_p3,blend.fillet_executive_p1,blend.fillet_corner_p1,blend.fillet_solver_p2,blend.fillet_solver_p3,blend.fillet_geom_p3,blend.fillet_geom_p4,blend.fillet_geom_p6,blend.fillet_standard_solver_p2,blend.fillet_corner_p3,blend.fillet_executive_p2,blend.fillet_geom_p2,blend.fillet_geom_p5,blend.fillet_corner_p2 -
SCC #6 (5 units, 7269 lines):
nlib.crv_basic,nlib.crv_tool_p1,nlib.crv_nurb,nlib.crv_geom,nlib.crv_tool_p2 -
SCC #2 (3 units, 5303 lines):
nlib.math,nlib.geom,nlib.srf_basic -
SCC #26 (2 units, 4759 lines):
offset.offset_geometry_creation,offset.offset_executive_p1
Layers
Layer 0 (5 units, 5563 lines)
geom.extent3d (1122), geom.vector2d (339), nlib.knots (768), nlib.math (2971), topology.database_io (363)
Layer 1 (4 units, 4346 lines)
geom.attribute (920), geom.tol (923), geom.tree (1259), nlib.geom (1244)
Layer 2 (8 units, 5943 lines)
geom.assert_array (373), geom.context (355), geom.extent1d (974), geom.matrix (816), geom.periodic_extent1d (406), geom.vector3d (1145), nlib.basis_basic (786), nlib.srf_basic (1088)
Layer 3 (11 units, 8721 lines)
geom.axis2_placement (479), geom.extent2d (766), geom.geom_utility_p2 (1617), geom.hash_table (593), geom.local_solve1d (1294), geom.local_solve_nd (860), geom.object (673), geom.polynomial (386), nlib.basis_adv (361), nlib.bezier (1154), nlib.funcs_basic (538)
Layer 4 (5 units, 6894 lines)
geom.geom_utility_p1 (2178), geom.grid (876), geom.polar_box (979), geom.solution_array (1319), nlib.crv_basic (1542)
Layer 5 (8 units, 10101 lines)
geom.global_solver (1775), geom.pseudo_box (1508), geom.tools (326), geom.transform (681), nlib.crv_fit_p1 (1707), nlib.crv_tool_p1 (1371), nlib.iges (1055), nlib.srf_tool_p1 (1678)
Layer 6 (7 units, 8512 lines)
curve.hermite_curve (383), geom.a_object (935), geom.point_set (694), nlib.crv_fit_p2 (1586), nlib.crv_nurb (1879), nlib.funcs_adv (1676), nlib.srf_fit (1359)
Layer 7 (5 units, 6300 lines)
nlib.crv_fit_p3 (1234), nlib.crv_geom (729), nlib.crv_tool_p2 (1748), nurbs.nurbs_crv (2200), topology.topology (389)
Layer 8 (3 units, 3226 lines)
nlib.crv_adv_p1 (2031), nlib.crv_common (803), nlib.spiral (392)
Layer 9 (3 units, 4277 lines)
nlib.crv_adv_p2 (1722), nlib.srf_common (661), nurbs.b_spline_curve_p1 (1894)
Layer 10 (3 units, 3814 lines)
nlib.crv_approx (908), nlib.crv_offset (346), nlib.srf_nurb (2560)
Layer 11 (3 units, 5437 lines)
nlib.srf_tool_p2 (1455), nurbs.b_spline_curve_n_lib (2794), nurbs.nurbs_srf (1188)
Layer 12 (5 units, 9372 lines)
nlib.srf_adv_p2 (2097), nlib.srf_adv_p3 (2233), nlib.srf_tool_p3 (1380), nurbs.b_spline_curve_p2 (1872), nurbs.b_spline_surface_p1 (1790)
Layer 13 (3 units, 4494 lines)
curve.curve_p2 (2302), nlib.srf_tool_p4 (1005), nurbs.b_spline_curve_p3 (1187)
Layer 14 (11 units, 9993 lines)
curve.conic (859), curve.crv_in_volume (949), curve.curve_cache (1474), curve.hyperbola (468), curve.iso_curve (310), curve.line (1884), curve.offset_curve (492), curve.parabola (441), curve.projected_curve (569), curve.tangent_field (319), nlib.srf_adv_p4 (2228)
Layer 15 (4 units, 7088 lines)
curve.ellipse_p2 (1916), nlib.srf_adv_p1 (1188), nlib.srf_adv_p5 (1970), surface.volume_p1 (2014)
Layer 16 (5 units, 7079 lines)
curve.curve_p4 (2377), nlib.srf_adv_p6 (2214), nlib.srf_offset (613), surface.b_spline_volume (1226), surface.twist_volume (649)
Layer 17 (2 units, 4105 lines)
curve.curve_p3 (2072), nurbs.b_spline_surface_n_lib_p1 (2033)
Layer 18 (3 units, 6405 lines)
curve.curve_p1 (2097), curve.curve_p6 (2376), nurbs.b_spline_surface_n_lib_p2 (1932)
Layer 19 (4 units, 6662 lines)
curve.crv_on_surf (1728), curve.curve_p7 (1666), curve.ellipse_p1 (1930), nurbs.b_spline_surface_p2 (1338)
Layer 20 (2 units, 2319 lines)
curve.curve_p8 (1670), primitive.api_curves (649)
Layer 21 (2 units, 4098 lines)
curve.composite_curve_p1 (1700), surface.surface_p2 (2398)
Layer 22 (4 units, 5912 lines)
curve.composite_curve_p2 (1345), curve.curve_p5 (2299), surface.curve_bounded_surface (324), surface.surface_cache_p1 (1944)
Layer 23 (5 units, 7457 lines)
curve.curve_p9 (1783), surface.plane_p1 (1934), surface.surf_of_revolution_p1 (1522), surface.surface_p9 (1252), surface.trim_srf_cache (966)
Layer 24 (8 units, 9920 lines)
surface.b_spline_volume_n_lib (310), surface.bend_volume (945), surface.cone_p1 (1835), surface.surf_of_extrusion_p1 (1865), surface.surf_of_revolution_p3 (1620), surface.surface_cache_p2 (1245), surface.torus (1180), surface.unbend_volume (920)
Layer 25 (4 units, 6218 lines)
surface.cone_p2 (1656), surface.surf_of_revolution_p2 (1369), surface.surface_cache_p3 (1703), surface.volume_p2 (1490)
Layer 26 (1 units, 2406 lines)
surface.surface_p7 (2406)
Layer 27 (3 units, 5797 lines)
intersect.surface_tracer (1900), surface.plane_p2 (1627), surface.surface_p4 (2270)
Layer 28 (3 units, 6602 lines)
surface.sphere (2861), surface.surf_of_extrusion_p2 (1420), surface.surface_p5 (2321)
Layer 29 (3 units, 6547 lines)
surface.cone_p3 (1939), surface.surface_p1 (2458), surface.surface_p6 (2150)
Layer 30 (4 units, 5654 lines)
intersect.point_class (909), surface.srf_in_volume (779), surface.surface_p10 (2172), surface.surface_p3 (1794)
Layer 31 (6 units, 10494 lines)
intersect.curve_class_p1 (2087), intersect.surface_drop_lib_p1 (1478), intersect.surface_silhouette (979), surface.offset_surface (1787), surface.surface_p11 (1789), surface.surface_p8 (2374)
Layer 32 (9 units, 16225 lines)
intersect.curve_class_p7 (2248), intersect.ray_tracer (1246), intersect.surface_drop_curve (2014), intersect.surface_drop_lib_p2 (1080), intersect.surface_intersector_p1 (1816), intersect.topology_solver_p1 (1838), surface.surface_point_solve_p1 (1771), topology.brep_data (1466), topology.proto_topology_p1 (2746)
Layer 33 (6 units, 10352 lines)
intersect.adv_surface_intersector (1646), intersect.curve_class_p2 (1928), intersect.surface_drop_lib_p3 (2062), intersect.surface_intersector_p2 (1677), surface.surface_point_solve_p2 (1882), topology.edgeuse_p1 (1157)
Layer 34 (4 units, 7222 lines)
intersect.curve_class_p3 (1986), intersect.curve_class_p4 (2022), intersect.surface_intersector_p3 (1932), surface.surface_point_solve_p3 (1282)
Layer 35 (4 units, 7001 lines)
intersect.curve_class_p6 (2213), intersect.surface_intersector_p4 (1570), intersect.topology_solver_p2 (1391), topology.face_p2 (1827)
Layer 36 (4 units, 3989 lines)
intersect.curve_class_p5 (2017), intersect.surface_intersector_p5 (622), topology.edgeuse_p2 (600), topology.shell (750)
Layer 37 (3 units, 4549 lines)
intersect.curve_class_p8 (1900), intersect.curve_class_p9 (1220), topology.vertexuse (1429)
Layer 38 (1 units, 824 lines)
topology.vertex (824)
Layer 39 (1 units, 892 lines)
topology.loopuse (892)
Layer 40 (2 units, 3981 lines)
topology.brep_p8 (1768), topology.edge (2213)
Layer 41 (4 units, 7412 lines)
blend.fillet_custom_solver (1236), query.edge (1025), topology.edgeuse_p3 (2273), topology.trimming_tools (2878)
Layer 42 (3 units, 4117 lines)
heal.gap (1475), query.loop (830), topology.face_p4 (1812)
Layer 43 (4 units, 5716 lines)
query.face_p2 (1161), topology.brep_p10 (1890), topology.face_p3 (1881), topology.topology_traverser (784)
Layer 44 (4 units, 8413 lines)
query.face_p3 (1620), query.poly (2119), topology.brep_p7 (2503), topology.face_p1 (2171)
Layer 45 (5 units, 6668 lines)
query.face_p1 (465), query.face_p4 (1432), query.tess (838), topology.brep_p1 (2454), topology.brep_p6 (1479)
Layer 46 (4 units, 6355 lines)
heal.face_props (1410), topology.brep_cache (389), topology.brep_p4 (2113), topology.brep_p9 (2443)
Layer 47 (2 units, 4636 lines)
topology.brep_p2 (2443), topology.brep_p5 (2193)
Layer 48 (6 units, 10415 lines)
blend.fillet_geom_p1 (2113), heal.heal_data_p2 (2160), mass.integrator (1031), query.brep (517), topology.brep_p3 (2503), topology.proto_topology_p2 (2091)
Layer 49 (7 units, 11403 lines)
blend.fillet_solver_p1 (1861), blend.hcr (1875), heal.heal_data_p1 (922), heal.stitch_p1 (2037), primitive.primitive_creation_p1 (2322), query.api_queries (809), topology.proto_topology_p3 (1577)
Layer 50 (6 units, 11256 lines)
blend.fillet_intersector (1708), blend.fillet_solver_p5 (848), blend.fillet_standard_solver_p1 (2336), boolean.topology_intersector_p1 (2491), heal.heal_data_p3 (1967), heal.stitch_p2 (1906)
Layer 51 (4 units, 8707 lines)
blend.fillet_solver_p4 (1404), boolean.topology_intersector_p2 (2195), offset.offset_geometry_creation (2652), sweep.topology_sweep (2456)
Layer 52 (3 units, 4208 lines)
boolean.topology_intersector_p3 (1849), sweep.rotational_sweep_geometry (1542), sweep.trans_sweep_geometry (817)
Layer 53 (2 units, 2835 lines)
boolean.merge_p1 (993), primitive.primitive_creation_p3 (1842)
Layer 54 (2 units, 3575 lines)
blend.fillet_executive_p3 (1608), boolean.merge_p2 (1967)
Layer 55 (1 units, 475 lines)
boolean.merge_p5 (475)
Layer 56 (1 units, 2590 lines)
boolean.merge_p4 (2590)
Layer 57 (1 units, 1152 lines)
boolean.merge_p3 (1152)
Layer 58 (3 units, 4731 lines)
blend.fillet_executive_p1 (2063), boolean.api_brep (410), primitive.primitive_creation_p2 (2258)
Layer 59 (7 units, 8924 lines)
blend.fillet_corner_p1 (1971), blend.fillet_solver_p2 (1939), blend.fillet_solver_p3 (1112), offset.offset_executive_p1 (2107), primitive.api_primitives (885), sweep.api_brep (529), sweep.api_surfaces (381)
Layer 60 (5 units, 8754 lines)
blend.fillet_geom_p3 (1032), blend.fillet_geom_p4 (2074), blend.fillet_geom_p6 (1813), blend.fillet_standard_solver_p2 (1989), offset.offset_executive_p2 (1846)
Layer 61 (2 units, 2849 lines)
blend.fillet_corner_p3 (1697), blend.fillet_executive_p2 (1152)
Layer 62 (1 units, 2077 lines)
blend.fillet_geom_p2 (2077)
Layer 63 (1 units, 1952 lines)
blend.fillet_geom_p5 (1952)
Layer 64 (1 units, 1892 lines)
blend.fillet_corner_p2 (1892)