Units / topology
topology.topology_traverser partial
- Layer
- 43
- Upstream lines
- 784
- Functions
- 14
- Rust module
topology::topology_traverser
Source: crates/solidcore/src/topology/topology_traverser.rs
Upstream: source/SMLib/inc/SmTopologyTraverser.h, source/SMLib/src/SmTopologyTraverser.cpp
Notes
PARTIAL (PR #113): difftest 909 cases, 889 passed, 0 failed, 20 deferred: topology.face_p3(5) (were topology.face_p1 before PR #148 wired FlipFaceOrientation), topology.face_p4(15) (re-run in PR #154: the 7 topology.shell deferrals pass, RemoveShell / FaceuseShellReplacement wired to topology::shell); exact traversal order and all face/edge/vertex/faceuse/vertexuse marks compared, 0 absolute floors; wire recursion replaced by an explicit continuation stack in the same order (6000-edge regression). No existing UNPORTED(topology.topology_traverser) back-edges. 14 fns; largest: sm_ShellConnectivity, SmTopologyTraverser::IsInnerShell, sm_CollectFaces, SmTopologyTraverser::FaceuseTraversal; cycle back-edges (call into later units; stub or co-port): topology.face_p3(1); unit-SCC #22 (220 units); 200 upstream test entry points reach this unit PR #163 exposes the existing co-ported face_edges helper for merge_p1 reuse; it keeps duplicates between loops and deduplicates within each loop (regression added).
Difftest
- Cases
- 909
- Passed
- 889
- Deferred
- 20
- Failed
- 0
- Both errored
- 120
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
topology.face_p4 claimed | 15 |
topology.face_p3 claimed | 5 |
Report JSON (per-case results)
Dependencies
Depends on: geom.solution_array partial topology.edge partial topology.edgeuse_p1 partial topology.face_p2 partial topology.vertex partial topology.vertexuse partial
Soft dependencies: geom.context green geom.extent2d green geom.tol green geom.vector3d green topology.face_p4 claimed topology.loopuse partial topology.proto_topology_p1 partial topology.shell partial topology.topology green
Dependents: topology.brep_p3 claimed topology.brep_p6 claimed
Soft dependents: blend.fillet_geom_p6 todo boolean.merge_p3 todo boolean.merge_p4 todo boolean.merge_p5 partial heal.heal_data_p1 partial sweep.topology_sweep claimed topology.brep_p4 claimed
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmTopologyTraverser::SmTopologyTraverser | SmTopologyTraverser.h:35 | 1 | |
SmTopologyTraverser::~SmTopologyTraverser | SmTopologyTraverser.h:36 | 1 | |
sm_CollectFaces | SmTopologyTraverser.cpp:46 | 122 | [collect_faces] |
SmTopologyTraverser::CollectFaces | SmTopologyTraverser.cpp:178 | 29 | [collect_faces] |
sm_CollectWires | SmTopologyTraverser.cpp:220 | 73 | [collect_wire_edges] |
SmTopologyTraverser::CollectWireEdges | SmTopologyTraverser.cpp:301 | 19 | [collect_wire_edges] |
SmTopologyTraverser::ClosureTraversal | SmTopologyTraverser.cpp:563 | 30 | [closure_traversal], [faceuse_traversal] |
SmTopologyTraverser::FaceuseTraversal | SmTopologyTraverser.cpp:796 | 110 | [closure_traversal], [faceuse_traversal] |
SmTopologyTraverser::RemoveShell | SmTopologyTraverser.cpp:918 | 8 | [remove_shell], [faceuse_shell_replacement] |
SmTopologyTraverser::FaceuseShellReplacement | SmTopologyTraverser.cpp:933 | 30 | [remove_shell], [faceuse_shell_replacement] |
sm_ShellConnectivity | SmTopologyTraverser.cpp:975 | 161 | [shell_traversal], shell_connectivity (private) |
SmTopologyTraverser::ShellTraversal | SmTopologyTraverser.cpp:1150 | 57 | [shell_traversal], shell_connectivity (private) |
IsOdd | SmTopologyTraverser.cpp:1208 | 1 | [is_inner_shell] |
SmTopologyTraverser::IsInnerShell | SmTopologyTraverser.cpp:1239 | 142 | [is_inner_shell] |
Module file-header table (8 rows)
| Rust | Upstream |
|---|---|
[collect_faces] | SmTopologyTraverser::CollectFaces, sm_CollectFaces |
[collect_wire_edges] | SmTopologyTraverser::CollectWireEdges, sm_CollectWires |
[closure_traversal], [faceuse_traversal] | ClosureTraversal, FaceuseTraversal |
[remove_shell], [faceuse_shell_replacement] | RemoveShell, FaceuseShellReplacement |
[shell_traversal], shell_connectivity (private) | ShellTraversal, sm_ShellConnectivity |
[is_inner_shell] | IsInnerShell, IsOdd |
has_lamina_edge (private) | SmFace::HasLaminaEdge (CO-PORTED, topology.face_p3) |
[face_edges] | SmFace::GetEdges (CO-PORTED, topology.face_p4, default arguments) |
Upstream tests reaching this unit
prog_test:my_test_tsurf_cyl_creation_2d, prog_test:my_test_tsurf_cyl_creation_3d, prog_test:my_test_tsurf_cyl_creation_fast, prog_test:my_test_tsurf_creation, SM_API_test:TestSmCreatePlanarCircle, SM_API_test:TestIntersectionOutputStatus