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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmSurfPtGlobalSolver::FindRoughGuess | SmSurfacePointSolve.cpp:637 | 122 | [SurfPtGlobalSolver::find_rough_guess], [RoughGuess] |
SmSurfPtGlobalSolver::FindPolygonGuess | SmSurfacePointSolve.cpp:773 | 232 | [SurfPtGlobalSolver::find_polygon_guess], [PolygonGuess] |
SmSurfPtGlobalSolver::RefineGuess | SmSurfacePointSolve.cpp:1706 | 179 | [SurfPtGlobalSolver::refine_guess] |
SmSurfPtGlobalSolver::RefinePatchByGrid | SmSurfacePointSolve.cpp:2001 | 88 | [SurfPtGlobalSolver::refine_patch_by_grid] |
SmSurfPtGlobalSolver::RefineGuessByGrid | SmSurfacePointSolve.cpp:2100 | 106 | [SurfPtGlobalSolver::refine_guess_by_grid] |
SmSurfPtGlobalSolver::CheckSeams | SmSurfacePointSolve.cpp:2510 | 150 | [SurfPtGlobalSolver::check_seams] |
SmSurfPtGlobalSolver::Solve | SmSurfacePointSolve.cpp:2926 | 195 | [SurfPtGlobalSolver::solve] |
SmSurfPtSolveStepper::SmSurfPtSolveStepper | SmSurfacePointSolve.cpp:3183 | 12 | [SurfPtSolveStepper::copy_of] (in p1) |
SmSurfPtSolveStepper::AdjustStep | SmSurfacePointSolve.cpp:3299 | 113 | [SurfPtSolveStepper::adjust_step] |
SmSurfPtSolveStepper::ErrorNorm | SmSurfacePointSolve.cpp:3472 | 28 | [SurfPtSolveStepper::error_norm] |
SmSurfPtSolveStepper::Converged | SmSurfacePointSolve.cpp:3511 | 7 | [SurfPtSolveStepper::converged], [SurfPtSolveStepper::converged_with] |
SmSurfPtSolveStepper::Converged | SmSurfacePointSolve.cpp:3525 | 58 | [SurfPtSolveStepper::converged], [SurfPtSolveStepper::converged_with] |
SmSurfPtSolveStepper::IsSingular | SmSurfacePointSolve.cpp:3671 | 26 | [SurfPtSolveStepper::is_singular] |
SmSurfPtSolveStepper::Step | SmSurfacePointSolve.cpp:3713 | 173 | [SurfPtSolveStepper::step] |
SmSurfPtSolveStepper::LineSearch | SmSurfacePointSolve.cpp:3993 | 139 | [SurfPtSolveStepper::line_search] |
SmSurfPtSolveStepper::LineSearchBracketted | SmSurfacePointSolve.cpp:4138 | 86 | [SurfPtSolveStepper::line_search_bracketted] |
SmSurfPtSolveStepper::ConvergedOnBoundary | SmSurfacePointSolve.cpp:4236 | 57 | [SurfPtSolveStepper::converged_on_boundary] |
SmSurfPtSolveStepper::PushingBoundary | SmSurfacePointSolve.cpp:4325 | 62 | [SurfPtSolveStepper::pushing_boundary] |
SmSurfPtSolveStepper::SnapToBoundaries | SmSurfacePointSolve.cpp:4396 | 49 | [SurfPtSolveStepper::snap_to_boundaries] |
Module file-header table (18 rows)
| Rust | Upstream |
|---|---|
[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