solidcore

Units / intersect

intersect.topology_solver_p2 partial

Layer
35
Upstream lines
1,391
Functions
15
Rust module
intersect::topology_solver::p2

Source: crates/solidcore/src/intersect/topology_solver/p2.rs

Upstream: source/SMLib/inc/SmTopologySolver.h, source/SMLib/src/SmTopologySolver.cpp

Notes

15 fns; largest: SmTLSCurveFace::SolveIt, SmTopologySolver::BrepCurveSolve, SmTLSFaceFace::SolveIt, SmTopologySolver::ShapeCurveSolve; cycle back-edges (call into later units; stub or co-port): topology.brep_cache(9), topology.edge(5), topology.face_p2(4), query.face_p2(2), topology.vertex(2); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit; PARTIAL: 2429 cases, 2384 bit-identical, 0 failed, 45 deferred (surface.surface_p11 20, surface.surface_p4 8, surface.surface_p6 8, surface.surface_p8 4, topology.brep_p1 2, topology.edge 3); max_rel_err=0; no absolute floors; all 15 owned functions have Rust bodies (shared local constructors reuse p1); 600 generated traversal cases, 2 traversal fixtures, 180 CurveVertex fixtures and 1647 static/face/operation/request/tolerance/scale/subdivision fixtures; native setup, point-node storage and invalid-cast class probes are separate tests; face bodies still reach explicit surface/query callees, nonempty Shape construction is not covered; --perturb SENSITIVE 2384/2384; full validation with current official main: 142 units, 89 green, 53 partial, 0 failed; fmt, strict plain/CPP Clippy, workspace/native tests, wasm and license/source checks pass [surface.surface_p6 wired (PR #92): 2429 cases, 2384 pass, 45 deferred (intersect.surface_silhouette 8, surface.surface_p11 20, surface.surface_p4 8, surface.surface_p8 4, topology.brep_p1 2, topology.edge 3)] surface.surface_p11 (PR #120, after merging main with surface.surface_p3): cases=2429 passed=2396 failed=0 deferred=33 (curve.iso_curve 12, intersect.surface_tracer 8 (SmSurfaceTracer::DoTrace, inherited by SmSurfaceSilhouette; the stub in Surface::create_silhouette_curves is tagged with its owner), surface.surface_p8 6, topology.brep_p1 4, topology.edge 3); the runner maps face/surface solution objects to -2 as the shim does (first reached now that face/face normalize solves run); --perturb SENSITIVE. Re-run (PR #118, after surface.surface_p8 was wired): 2429 cases, 2396 pass, 33 deferred (curve.iso_curve 12, intersect.curve_class_p4 4, intersect.surface_tracer 8, topology.brep_p1 6, topology.edge 3), 0 failed; --perturb SENSITIVE 2396/2396; the 2 surface.surface_p8 deferrals are gone.

Difftest

Cases
2,429
Passed
2,396
Deferred
33
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
curve.iso_curve green12
intersect.surface_tracer partial8
topology.brep_p1 claimed6
intersect.curve_class_p4 claimed4
topology.edge partial3

Report JSON (per-case results)

Dependencies

Depends on: curve.curve_p2 green geom.extent1d green geom.global_solver partial geom.object partial geom.solution_array partial geom.tol green geom.tree partial geom.vector3d green intersect.curve_class_p1 partial intersect.topology_solver_p1 partial

Soft dependencies: curve.curve_p6 green geom.a_object partial geom.extent3d green geom.vector2d green intersect.curve_class_p4 claimed intersect.point_class partial surface.surface_p1 partial surface.surface_p2 partial surface.surface_p4 green surface.surface_p7 partial surface.surface_p8 partial

Dependents: query.api_queries partial

Soft dependents: boolean.topology_intersector_p1 partial offset.offset_executive_p1 claimed query.brep claimed topology.brep_p10 claimed topology.brep_p2 claimed topology.brep_p3 claimed topology.shell partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmTLSVertexEdge::SmTLSVertexEdgeSmTopologySolver.h:2338[LocalSolver::new] (shared in p1)
SmTLSEdgeEdge::SmTLSEdgeEdgeSmTopologySolver.h:4788[LocalSolver::new] (shared in p1)
SmTLSVertexFace::SolveItSmTopologySolver.cpp:94425LocalSolver::solve_vertex_face
SmTLSCurveVertex::SolveItSmTopologySolver.cpp:97525LocalSolver::solve_curve_vertex
SmTLSEdgeVertex::SolveItSmTopologySolver.cpp:100753LocalSolver::solve_edge_vertex
SmTLSCurveFace::SolveItSmTopologySolver.cpp:1412384LocalSolver::solve_curve_face
SmTLSEdgeFace::SolveItSmTopologySolver.cpp:180349LocalSolver::solve_edge_face
SmTLSFaceFace::SolveItSmTopologySolver.cpp:1859147LocalSolver::solve_face_face
SmTopologySolver::BrepPointSolveSmTopologySolver.cpp:2046104[TopologySolver::brep_point_solve]
SmTopologySolver::ShapePointSolveSmTopologySolver.cpp:218190[TopologySolver::shape_point_solve]
SmTopologySolver::BrepCurveSolveSmTopologySolver.cpp:2296173[TopologySolver::brep_curve_solve]
SmTopologySolver::ShapeCurveSolveSmTopologySolver.cpp:2485117[TopologySolver::shape_curve_solve]
SmTopologySolver::LocalSolveSmTopologySolver.cpp:302473[TopologySolver::local_solve_branch]
sm_SolveTwoTreesSmTopologySolver.cpp:319765[TopologySolver::solve_two_tree_sets]
SmTopologySolver::BrepBrepSolveSmTopologySolver.cpp:327170[TopologySolver::brep_brep_solve]
Module file-header table (14 rows)
RustUpstream
[LocalSolver::new] (shared in p1)SmTLSVertexEdge / SmTLSEdgeEdge constructors
[TopologySolver::local_solve_branch]SmTopologySolver::LocalSolve
LocalSolver::solve_vertex_faceSmTLSVertexFace::SolveIt
LocalSolver::solve_curve_vertexSmTLSCurveVertex::SolveIt
LocalSolver::solve_edge_vertexSmTLSEdgeVertex::SolveIt
LocalSolver::solve_curve_faceSmTLSCurveFace::SolveIt
LocalSolver::solve_edge_faceSmTLSEdgeFace::SolveIt
LocalSolver::solve_face_faceSmTLSFaceFace::SolveIt
[TopologySolver::brep_point_solve]SmTopologySolver::BrepPointSolve
[TopologySolver::shape_point_solve]SmTopologySolver::ShapePointSolve
[TopologySolver::brep_curve_solve]SmTopologySolver::BrepCurveSolve
[TopologySolver::shape_curve_solve]SmTopologySolver::ShapeCurveSolve
[TopologySolver::solve_two_tree_sets]sm_SolveTwoTrees
[TopologySolver::brep_brep_solve]SmTopologySolver::BrepBrepSolve

Upstream tests reaching this unit

prog_test:my_test_surface_closest_point, prog_test:my_test_drop_point, prog_test:my_test_matrix, prog_test:my_test_reversed_line_join, SM_API_test:TestSmCreateRectangle, SM_API_test:TestSmCreateRegularPolygon