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 unit | Deferred cases |
|---|---|
surface.surface_cache_p1 green | 12 |
intersect.curve_class_p4 claimed | 5 |
intersect.surface_drop_lib_p3 claimed | 3 |
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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmSurfaceDropCurve::SetCurveIsOnSurface | SmSurfaceDropCurve.h:92 | 1 | [SurfaceDropCurve::set_curve_is_on_surface] |
SmSurfaceDropCurve::SmSurfaceDropCurve | SmSurfaceDropCurve.cpp:37 | 18 | [SurfaceDropCurve], [SurfaceDropCurve::new] |
SmSurfaceDropCurve::~SmSurfaceDropCurve | SmSurfaceDropCurve.cpp:61 | 6 | Drop (implicit) |
SmSurfaceDropCurve::ComputePointValues | SmSurfaceDropCurve.cpp:78 | 196 | [SurfaceDropCurve::compute_point_values_with_prev] ([SurfaceTrace::compute_point_values]) |
SmSurfaceDropCurve::ComputeStepSize | SmSurfaceDropCurve.cpp:291 | 77 | [SurfaceDropCurve::step_size] ([SurfaceTrace::compute_step_size]) |
SmSurfaceDropCurve::FindInteriorCurves | SmSurfaceDropCurve.cpp:379 | 41 | [SurfaceDropCurve::interior_curves] ([SurfaceTrace::find_interior_curves]) |
sm_TestPoint | SmSurfaceDropCurve.cpp:428 | 76 | [test_point], [PointTest] |
SmSurfaceDropCurve::LocalPointSolve | SmSurfaceDropCurve.cpp:511 | 113 | [SurfaceDropCurve::drop_local_point_solve] ([SurfaceTrace::local_point_solve]) |
sm_AddBreak | SmSurfaceDropCurve.cpp:631 | 29 | [add_break] |
sm_IsGrazingIntersection | SmSurfaceDropCurve.cpp:667 | 15 | [is_grazing_intersection] |
SmSurfaceDropCurve::FindBoundaryStartPoints | SmSurfaceDropCurve.cpp:716 | 877 | [SurfaceDropCurve::boundary_start_points] ([SurfaceTrace::find_boundary_start_points]) |
SmSurfaceDropCurve::DoTrace | SmSurfaceDropCurve.cpp:1604 | 142 | [SurfaceDropCurve::drop_trace] ([SurfaceTrace::do_trace]) |
SmSurfaceDropCurve::TraceCurve2 | SmSurfaceDropCurve.cpp:1759 | 110 | [SurfaceDropCurve::trace_curve_2] |
SmSurfaceDropCurve::IsPointOnCurve | SmSurfaceDropCurve.cpp:1875 | 8 | [SurfaceTrace::is_point_on_curve] for [SurfaceDropCurve] |
SmSurfaceDropCurve::ComputeNextPoint | SmSurfaceDropCurve.cpp:1893 | 224 | [SurfaceDropCurve::next_point] ([SurfaceTrace::compute_next_point]) |
SmSurfaceDropCurve::TestPoint | SmSurfaceDropCurve.cpp:2124 | 8 | [SurfaceTrace::test_point] for [SurfaceDropCurve] |
SmSurfaceDropCurve::ComputeSpanDeviation | SmSurfaceDropCurve.cpp:2140 | 73 | [SurfaceDropCurve::span_deviation] ([SurfaceTrace::compute_span_deviation]) |
Module file-header table (19 rows)
| Rust | Upstream |
|---|---|
[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