solidcore

Units / intersect

intersect.surface_drop_curve partial

Layer
32
Upstream lines
2,014
Functions
17
Rust module
intersect::surface_drop_curve

Source: crates/solidcore/src/intersect/surface_drop_curve.rs

Upstream: source/SMLib/inc/SmSurfaceDropCurve.h, source/SMLib/src/SmSurfaceDropCurve.cpp

Notes

17 fns; largest: SmSurfaceDropCurve::FindBoundaryStartPoints, SmSurfaceDropCurve::ComputeNextPoint, SmSurfaceDropCurve::ComputePointValues, SmSurfaceDropCurve::DoTrace; cycle back-edges (call into later units; stub or co-port): intersect.surface_drop_lib_p3(2); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit; PORTED (PR #107): partial, difftest 547 cases, 473 passed, 0 failed, 74 deferred (surface.surface_point_solve_p3 56: LocalPointSolve_1/GlobalPointSolve_1; surface.surface_cache_p1 11; intersect.curve_class_p4 5; intersect.surface_drop_lib_p3 2); merge wired IsSingularity/LocalPointSolve/CreateIsoParametricCurve (surface.surface_p5), GlobalPointSolve/IsOnSeam (surface.surface_p4), DropIsoCurve (intersect.surface_drop_lib_p1); still stubbed: non-plane DropCurve (intersect.surface_drop_lib_p3) Re-run after merging PR #106 (surface.surface_point_solve_p3 wired, 2026-10-15): 547 cases, 527 pass, 20 deferred (intersect.curve_class_p4 5, intersect.surface_drop_lib_p3 3, surface.surface_cache_p1 12), 0 failed, max_rel_err 0. The difftest builds planes with their NURB made on both sides (plan/findings.md, merging PR #106).

Difftest

Cases
547
Passed
527
Deferred
20
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
surface.surface_cache_p1 green12
intersect.curve_class_p4 claimed5
intersect.surface_drop_lib_p3 claimed3

Report JSON (per-case results)

Dependencies

Depends on: curve.curve_p2 green geom.extent1d green geom.extent2d green geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green intersect.surface_tracer partial nurbs.b_spline_curve_p1 green surface.surface_cache_p1 green surface.surface_p1 partial surface.surface_p2 partial surface.surface_p5 green

Soft dependencies: curve.crv_on_surf partial curve.curve_cache green curve.curve_p4 partial curve.curve_p6 green curve.curve_p8 green curve.curve_p9 green curve.hermite_curve green curve.line green geom.a_object partial geom.geom_utility_p1 green geom.object partial intersect.surface_drop_lib_p1 partial nurbs.b_spline_curve_p2 green surface.surface_p4 green surface.surface_p7 partial

Dependents: audit.recursion todo

Soft dependents: none

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmSurfaceDropCurve::SetCurveIsOnSurfaceSmSurfaceDropCurve.h:921[SurfaceDropCurve::set_curve_is_on_surface]
SmSurfaceDropCurve::SmSurfaceDropCurveSmSurfaceDropCurve.cpp:3718[SurfaceDropCurve], [SurfaceDropCurve::new]
SmSurfaceDropCurve::~SmSurfaceDropCurveSmSurfaceDropCurve.cpp:616Drop (implicit)
SmSurfaceDropCurve::ComputePointValuesSmSurfaceDropCurve.cpp:78196[SurfaceDropCurve::compute_point_values_with_prev] ([SurfaceTrace::compute_point_values])
SmSurfaceDropCurve::ComputeStepSizeSmSurfaceDropCurve.cpp:29177[SurfaceDropCurve::step_size] ([SurfaceTrace::compute_step_size])
SmSurfaceDropCurve::FindInteriorCurvesSmSurfaceDropCurve.cpp:37941[SurfaceDropCurve::interior_curves] ([SurfaceTrace::find_interior_curves])
sm_TestPointSmSurfaceDropCurve.cpp:42876[test_point], [PointTest]
SmSurfaceDropCurve::LocalPointSolveSmSurfaceDropCurve.cpp:511113[SurfaceDropCurve::drop_local_point_solve] ([SurfaceTrace::local_point_solve])
sm_AddBreakSmSurfaceDropCurve.cpp:63129[add_break]
sm_IsGrazingIntersectionSmSurfaceDropCurve.cpp:66715[is_grazing_intersection]
SmSurfaceDropCurve::FindBoundaryStartPointsSmSurfaceDropCurve.cpp:716877[SurfaceDropCurve::boundary_start_points] ([SurfaceTrace::find_boundary_start_points])
SmSurfaceDropCurve::DoTraceSmSurfaceDropCurve.cpp:1604142[SurfaceDropCurve::drop_trace] ([SurfaceTrace::do_trace])
SmSurfaceDropCurve::TraceCurve2SmSurfaceDropCurve.cpp:1759110[SurfaceDropCurve::trace_curve_2]
SmSurfaceDropCurve::IsPointOnCurveSmSurfaceDropCurve.cpp:18758[SurfaceTrace::is_point_on_curve] for [SurfaceDropCurve]
SmSurfaceDropCurve::ComputeNextPointSmSurfaceDropCurve.cpp:1893224[SurfaceDropCurve::next_point] ([SurfaceTrace::compute_next_point])
SmSurfaceDropCurve::TestPointSmSurfaceDropCurve.cpp:21248[SurfaceTrace::test_point] for [SurfaceDropCurve]
SmSurfaceDropCurve::ComputeSpanDeviationSmSurfaceDropCurve.cpp:214073[SurfaceDropCurve::span_deviation] ([SurfaceTrace::compute_span_deviation])
Module file-header table (19 rows)
RustUpstream
[SurfaceDropCurve], [SurfaceDropCurve::new]SmSurfaceDropCurve, SmSurfaceDropCurve(cpSurface, crUVDomain, crCurveToDrop, crInterval)
Drop (implicit)~SmSurfaceDropCurve
[SurfaceDropCurve::curve], [SurfaceDropCurve::interval], [SurfaceDropCurve::max_dist_to_surface], [SurfaceDropCurve::curve_is_on_surface]GetCurve, GetInterval, GetMaxDistToSurface, GetCurveIsOnSurface
[SurfaceDropCurve::set_curve_is_on_surface]SetCurveIsOnSurface
[SurfaceDropCurve::compute_point_values_with_prev] ([SurfaceTrace::compute_point_values])SmSurfaceDropCurve::ComputePointValues
[SurfaceDropCurve::step_size] ([SurfaceTrace::compute_step_size])SmSurfaceDropCurve::ComputeStepSize
[SurfaceDropCurve::interior_curves] ([SurfaceTrace::find_interior_curves])SmSurfaceDropCurve::FindInteriorCurves
[test_point], [PointTest]sm_TestPoint (static)
[SurfaceDropCurve::drop_local_point_solve] ([SurfaceTrace::local_point_solve])SmSurfaceDropCurve::LocalPointSolve
[add_break]sm_AddBreak
[is_grazing_intersection]sm_IsGrazingIntersection (static)
[SurfaceDropCurve::boundary_start_points] ([SurfaceTrace::find_boundary_start_points])SmSurfaceDropCurve::FindBoundaryStartPoints
[SurfaceDropCurve::drop_trace] ([SurfaceTrace::do_trace])SmSurfaceDropCurve::DoTrace
[SurfaceDropCurve::trace_curve_2]SmSurfaceDropCurve::TraceCurve2
[SurfaceTrace::is_point_on_curve] for [SurfaceDropCurve]SmSurfaceDropCurve::IsPointOnCurve
[SurfaceDropCurve::next_point] ([SurfaceTrace::compute_next_point])SmSurfaceDropCurve::ComputeNextPoint
[SurfaceTrace::test_point] for [SurfaceDropCurve]SmSurfaceDropCurve::TestPoint
[SurfaceDropCurve::span_deviation] ([SurfaceTrace::compute_span_deviation])SmSurfaceDropCurve::ComputeSpanDeviation
[TYPE], [TYPE_STRING], [is_kind_of]GetType, GetTypeString, IsKindOf (SM_COMMON)

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