solidcore

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 unitDeferred cases
topology.face_p4 claimed15
topology.face_p3 claimed5

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 functionDefined atLinesRust (from the file header)
SmTopologyTraverser::SmTopologyTraverserSmTopologyTraverser.h:351
SmTopologyTraverser::~SmTopologyTraverserSmTopologyTraverser.h:361
sm_CollectFacesSmTopologyTraverser.cpp:46122[collect_faces]
SmTopologyTraverser::CollectFacesSmTopologyTraverser.cpp:17829[collect_faces]
sm_CollectWiresSmTopologyTraverser.cpp:22073[collect_wire_edges]
SmTopologyTraverser::CollectWireEdgesSmTopologyTraverser.cpp:30119[collect_wire_edges]
SmTopologyTraverser::ClosureTraversalSmTopologyTraverser.cpp:56330[closure_traversal], [faceuse_traversal]
SmTopologyTraverser::FaceuseTraversalSmTopologyTraverser.cpp:796110[closure_traversal], [faceuse_traversal]
SmTopologyTraverser::RemoveShellSmTopologyTraverser.cpp:9188[remove_shell], [faceuse_shell_replacement]
SmTopologyTraverser::FaceuseShellReplacementSmTopologyTraverser.cpp:93330[remove_shell], [faceuse_shell_replacement]
sm_ShellConnectivitySmTopologyTraverser.cpp:975161[shell_traversal], shell_connectivity (private)
SmTopologyTraverser::ShellTraversalSmTopologyTraverser.cpp:115057[shell_traversal], shell_connectivity (private)
IsOddSmTopologyTraverser.cpp:12081[is_inner_shell]
SmTopologyTraverser::IsInnerShellSmTopologyTraverser.cpp:1239142[is_inner_shell]
Module file-header table (8 rows)
RustUpstream
[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