Units / intersect
intersect.surface_drop_lib_p2 green
- Layer
- 32
- Upstream lines
- 1,080
- Functions
- 4
- Rust module
intersect::surface_drop_lib::p2
Source: crates/solidcore/src/intersect/surface_drop_lib/p2.rs
Upstream: source/SMLib/src/SmSurfaceDropLib.cpp
Notes
4 fns; largest: SmDropPt::SetProperties, SmDropPt::GetNextPoint, sm_AddToCurve, sm_FlushCrv; unit-SCC #22 (220 units); 317 upstream test entry points reach this unit; PARTIAL (PR #112): difftest 1531 cases (31 fixture cases on the shapes of TestSmCreateRectangle, my_test_reversed_line_join, my_test_drop_point and the smTopoTest cylinder, 1500 generated: SetProperties, GetNextPoint, sm_AddToCurve runs incl. 10000-point chains, sm_FlushCrv on planes, B-splines and surfaces of revolution), 1103 passed, 428 deferred: surface.surface_p5(260: SmSurface::LocalPointSolve, IsSingularity), surface.offset_surface(120: SmOffsetSurface::Evaluate via DropVectors/EvaluateDirectionalDerivs), surface.surface_p3(48: SmSurface::EvaluateGeometric); max_rel_err 0; DropCurve's SmOffsetSurface is intersect::surface_drop_lib::p2::DropOffset (offset distance + singularities over the drop surface) Re-run after merging PR #106 (surface.surface_point_solve_p3 wired, 2026-10-15): 1531 cases, 1304 pass, 227 deferred (surface.offset_surface 227), 0 failed, max_rel_err 0. Wired in the PR #106 merge: UNPORTED(surface.surface_p5) IsSingularity (both overloads) and LocalPointSolve (SER, caller kernel; sm_AddToCurve takes the kernel in place of crContext), UNPORTED(surface.surface_p3) EvaluateGeometric (status ignored, curvatures 0.0 on failure); the difftest builds planes with their NURB made on both sides (plan/findings.md). GREEN after PR #62 (surface.offset_surface, 2026-10-16): 1531 cases, 1531 pass, 0 failed, 0 deferred, max_rel_err 0; DropOffset builds the ported SmOffsetSurface over the drop surface, whose copy keeps that surface's owner as upstream's shared base does.
Difftest
- Cases
- 1,531
- Passed
- 1,531
- 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.geom_utility_p1 green geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green intersect.surface_drop_lib_p1 partial surface.surface_p1 partial surface.surface_p5 green surface.surface_p7 partial
Soft dependencies: curve.curve_p2 green geom.object partial nurbs.b_spline_curve_p1 green surface.offset_surface green surface.surface_p3 green surface.surface_p4 green
Dependents: intersect.surface_drop_lib_p3 claimed
Soft dependents: none
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmDropPt::GetNextPoint | SmSurfaceDropLib.cpp:1038 | 427 | [DropPt::get_next_point] |
SmDropPt::SetProperties | SmSurfaceDropLib.cpp:1488 | 446 | [DropPt::set_properties] |
sm_FlushCrv | SmSurfaceDropLib.cpp:3328 | 84 | [flush_curve] |
sm_AddToCurve | SmSurfaceDropLib.cpp:3439 | 123 | [add_to_curve] |
Module file-header table (6 rows)
| Rust | Upstream |
|---|---|
[DropPt::set_properties] | SmDropPt::SetProperties |
[DropPt::get_next_point] | SmDropPt::GetNextPoint |
[flush_curve] | sm_FlushCrv (static) |
[add_to_curve] | sm_AddToCurve (static) |
[DropOffset] | the SmOffsetSurface of DropCurve (SmOffsetSurface(1.0, *this, FALSE, lSingularities)) these steps take |
[SS_NONE] .. [SS_UNKNOWN] | SM_SS_NONE .. SM_SS_UNKNOWN (SmTypes.h) |
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