solidcore

Units / surface

surface.surface_p10 partial

Layer
30
Upstream lines
2,172
Functions
2
Rust module
surface::surface::p10

Source: crates/solidcore/src/surface/surface/p10.rs

Upstream: source/SMLib/src/SmSurface.cpp

Notes

PARTIAL (PR #93): difftest 867 cases (67 fixture + 800 generated), 531 pass bit-identical, 0 failed, 336 deferred after merging surface_p4/surface_p5 (blocked by intersect.surface_drop_lib_p1 137, surface.surface_p6 139, surface.surface_point_solve_p3 60; formerly surface.surface_p5 118: SmSurface::DropPoint in the combination's range gap test; surface.surface_p6 115: SmSurface::LocalCurveIntersect in every leaf solve that reaches its guesses, SmSurface::ClassifyIntersectingRangeSolution; surface.surface_p4 72: sm_ClassifyCurveSurfaceXSectPoint for a leading point or two distant points; intersect.surface_drop_lib_p1 47: SmSurface::DropAndTrimCurve for a long range); --perturb 531/531 detected; max_rel_err=0; no absolute floors. The leaf solve compares its early exits (node outside face, disjoint/sliver domains, box and pseudo box misses, rays behind, intervals outside); the combination compares range merging (touching, overlapping, seam, closed curve ends), point merging, point/range culling with null, valid and invalid nodes, small ranges to points. Shim: library SmLSIGlobalSolver on hand-built surface cache trees; verbatim copy of the static combination with a recording stand-in for the static sm_ClassifyCurveSurfaceXSectPoint (cases reaching it are deferred in Rust). Wired UNPORTED(surface.surface_p10) in surface.surface_p2 (LsiGlobalSolver::local_solve); LsiGlobalSolver gained borrowed surface_cache/kernel fields (as CsiGlobalSolver, surface.surface_p9); surface_p9's implicit_iso is pub(super). Original: 2 fns; largest: sm_GlobalCurveIntersectCombineSolutions, SmLSIGlobalSolver::LocalSolve; cycle back-edges (call into later units; stub or co-port): intersect.surface_drop_lib_p1(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit Re-run after wiring its surface.surface_p6 stubs (LocalCurveIntersect, ClassifyIntersectingRangeSolution; PR #118): 867 cases, 579 pass, 288 deferred (intersect.surface_drop_curve 137, surface.surface_point_solve_p3 151), 0 failed. Re-run (PR #118 review, after main's surface_drop_curve): 867 cases, 677 pass, 190 deferred (intersect.surface_drop_curve 190), 0 failed. Re-run (PR #118, round 3: implicit_iso over a plane evaluates through the plane): 867 cases, 677 pass, 190 deferred (intersect.surface_drop_curve 190), 0 failed; --perturb SENSITIVE 677/677.

Difftest

Cases
867
Passed
677
Deferred
190
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
intersect.surface_drop_curve partial190

Report JSON (per-case results)

Dependencies

Depends on: curve.curve_p2 green geom.extent1d green geom.extent2d green geom.extent3d green geom.global_solver partial geom.pseudo_box green geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green surface.surface_cache_p1 green surface.surface_p1 partial surface.surface_p2 partial surface.surface_p5 green

Soft dependencies: curve.curve_p3 green curve.curve_p4 partial curve.curve_p6 green curve.iso_curve green curve.line green geom.object partial geom.polar_box green geom.tree partial surface.surface_p4 green surface.surface_p6 green surface.surface_p7 partial

Dependents: none

Soft dependents: surface.surface_p8 partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
sm_GlobalCurveIntersectCombineSolutionsSmSurface.cpp:155231423[global_curve_intersect_combine_solutions], [CombineContext]
SmLSIGlobalSolver::LocalSolveSmSurface.cpp:18075749[LsiGlobalSolver::local_solve_branch]
Module file-header table (2 rows)
RustUpstream
[LsiGlobalSolver::local_solve_branch]SmLSIGlobalSolver::LocalSolve
[global_curve_intersect_combine_solutions], [CombineContext]sm_GlobalCurveIntersectCombineSolutions (static)

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