solidcore

Units / surface

surface.surface_point_solve_p2 green

Layer
33
Upstream lines
1,882
Functions
19
Rust module
surface::surface_point_solve::p2

Source: crates/solidcore/src/surface/surface_point_solve/p2.rs

Upstream: source/SMLib/src/SmSurfacePointSolve.cpp

Notes

19 fns; largest: SmSurfPtGlobalSolver::FindPolygonGuess, SmSurfPtGlobalSolver::Solve, SmSurfPtGlobalSolver::RefineGuess, SmSurfPtSolveStepper::Step; unit-SCC #22 (220 units); 317 upstream test entry points reach this unit; PARTIAL (PR #66): difftest 1320 cases (180 inline on upstream Surface.sms with the my_test_surface_closest_point points; 900 generated: planes, B-splines incl. closed / rational / bilinear / zigzag / huge / tiny nets, curve-bounded and STEP-wrapped surfaces, sub-domains, the 5 solver operations; 240 rev_gen cases on real SmSurfOfRevolution surfaces, some STEP-wrapped; all 15 ops: FindRoughGuess, FindPolygonGuess, RefineGuess, RefinePatchByGrid, RefineGuessByGrid, CheckSeams, Solve, AdjustStep, ErrorNorm/IsSingular, Converged, PushingBoundary/ConvergedOnBoundary, SnapToBoundaries, Step, LineSearch, LineSearchBracketted), 1230 pass bit-identical, 90 deferred (surface.surface_p4 63: SmSurface::IsOnSeam, SmSurfaceEval::Normal; surface.surface_p5 27: SmSurface::LocalPointSolve, so every Solve with a rough guess); SmSurface::InvertPointNearSingularity stubbed UNPORTED(surface.surface_p8); --perturb SENSITIVE Re-run (PR #52, after merging surface_p4/#49 and surface_p5/#50): 1320 cases, 1283 pass, 37 deferred (curve.iso_curve 24, surface.surface_point_solve_p3 13). Re-run after merging PR #106 (surface.surface_point_solve_p3 wired, 2026-10-15): 1345 cases, 1341 pass, 4 deferred (surface.surface_p8 4), 0 failed, max_rel_err 0. Re-run after wiring PR #118 (surface.surface_p8 and its back-edges, GlobalPointSolve_0 included): 1345 cases, 1345 pass, 0 deferred, 0 failed, max_rel_err 0; green.

Difftest

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

Blocked by

Nothing: no deferred cases.

Report JSON (per-case results)

Dependencies

Depends on: geom.extent1d green geom.extent2d green geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green nurbs.b_spline_surface_p1 green surface.surface_p2 partial surface.surface_point_solve_p1 green

Soft dependencies: geom.geom_utility_p1 green geom.object partial surface.surface_p1 partial surface.surface_p5 green surface.surface_p8 partial

Dependents: surface.surface_point_solve_p3 green

Soft dependents: none

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmSurfPtGlobalSolver::FindRoughGuessSmSurfacePointSolve.cpp:637122[SurfPtGlobalSolver::find_rough_guess], [RoughGuess]
SmSurfPtGlobalSolver::FindPolygonGuessSmSurfacePointSolve.cpp:773232[SurfPtGlobalSolver::find_polygon_guess], [PolygonGuess]
SmSurfPtGlobalSolver::RefineGuessSmSurfacePointSolve.cpp:1706179[SurfPtGlobalSolver::refine_guess]
SmSurfPtGlobalSolver::RefinePatchByGridSmSurfacePointSolve.cpp:200188[SurfPtGlobalSolver::refine_patch_by_grid]
SmSurfPtGlobalSolver::RefineGuessByGridSmSurfacePointSolve.cpp:2100106[SurfPtGlobalSolver::refine_guess_by_grid]
SmSurfPtGlobalSolver::CheckSeamsSmSurfacePointSolve.cpp:2510150[SurfPtGlobalSolver::check_seams]
SmSurfPtGlobalSolver::SolveSmSurfacePointSolve.cpp:2926195[SurfPtGlobalSolver::solve]
SmSurfPtSolveStepper::SmSurfPtSolveStepperSmSurfacePointSolve.cpp:318312[SurfPtSolveStepper::copy_of] (in p1)
SmSurfPtSolveStepper::AdjustStepSmSurfacePointSolve.cpp:3299113[SurfPtSolveStepper::adjust_step]
SmSurfPtSolveStepper::ErrorNormSmSurfacePointSolve.cpp:347228[SurfPtSolveStepper::error_norm]
SmSurfPtSolveStepper::ConvergedSmSurfacePointSolve.cpp:35117[SurfPtSolveStepper::converged], [SurfPtSolveStepper::converged_with]
SmSurfPtSolveStepper::ConvergedSmSurfacePointSolve.cpp:352558[SurfPtSolveStepper::converged], [SurfPtSolveStepper::converged_with]
SmSurfPtSolveStepper::IsSingularSmSurfacePointSolve.cpp:367126[SurfPtSolveStepper::is_singular]
SmSurfPtSolveStepper::StepSmSurfacePointSolve.cpp:3713173[SurfPtSolveStepper::step]
SmSurfPtSolveStepper::LineSearchSmSurfacePointSolve.cpp:3993139[SurfPtSolveStepper::line_search]
SmSurfPtSolveStepper::LineSearchBrackettedSmSurfacePointSolve.cpp:413886[SurfPtSolveStepper::line_search_bracketted]
SmSurfPtSolveStepper::ConvergedOnBoundarySmSurfacePointSolve.cpp:423657[SurfPtSolveStepper::converged_on_boundary]
SmSurfPtSolveStepper::PushingBoundarySmSurfacePointSolve.cpp:432562[SurfPtSolveStepper::pushing_boundary]
SmSurfPtSolveStepper::SnapToBoundariesSmSurfacePointSolve.cpp:439649[SurfPtSolveStepper::snap_to_boundaries]
Module file-header table (18 rows)
RustUpstream
[SurfPtGlobalSolver::find_rough_guess], [RoughGuess]SmSurfPtGlobalSolver::FindRoughGuess
[SurfPtGlobalSolver::find_polygon_guess], [PolygonGuess]SmSurfPtGlobalSolver::FindPolygonGuess
[SurfPtGlobalSolver::refine_guess]SmSurfPtGlobalSolver::RefineGuess
[SurfPtGlobalSolver::refine_patch_by_grid]SmSurfPtGlobalSolver::RefinePatchByGrid
[SurfPtGlobalSolver::refine_guess_by_grid]SmSurfPtGlobalSolver::RefineGuessByGrid
[SurfPtGlobalSolver::check_seams]SmSurfPtGlobalSolver::CheckSeams
[SurfPtGlobalSolver::solve]SmSurfPtGlobalSolver::Solve
[SurfPtSolveStepper::copy_of] (in p1)SmSurfPtSolveStepper copy constructor
[SurfPtSolveStepper::adjust_step]SmSurfPtSolveStepper::AdjustStep
[SurfPtSolveStepper::error_norm]SmSurfPtSolveStepper::ErrorNorm
[SurfPtSolveStepper::converged], [SurfPtSolveStepper::converged_with]Converged(double), Converged(SmBoolean)
[SurfPtSolveStepper::is_singular]SmSurfPtSolveStepper::IsSingular
[SurfPtSolveStepper::step]SmSurfPtSolveStepper::Step
[SurfPtSolveStepper::line_search]SmSurfPtSolveStepper::LineSearch
[SurfPtSolveStepper::line_search_bracketted]SmSurfPtSolveStepper::LineSearchBracketted
[SurfPtSolveStepper::converged_on_boundary]SmSurfPtSolveStepper::ConvergedOnBoundary
[SurfPtSolveStepper::pushing_boundary]SmSurfPtSolveStepper::PushingBoundary
[SurfPtSolveStepper::snap_to_boundaries]SmSurfPtSolveStepper::SnapToBoundaries

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