solidcore

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 functionDefined atLinesRust (from the file header)
SmDropPt::GetNextPointSmSurfaceDropLib.cpp:1038427[DropPt::get_next_point]
SmDropPt::SetPropertiesSmSurfaceDropLib.cpp:1488446[DropPt::set_properties]
sm_FlushCrvSmSurfaceDropLib.cpp:332884[flush_curve]
sm_AddToCurveSmSurfaceDropLib.cpp:3439123[add_to_curve]
Module file-header table (6 rows)
RustUpstream
[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