solidcore

Units / intersect

intersect.surface_intersector_p2 partial

Layer
33
Upstream lines
1,677
Functions
6
Rust module
intersect::surface_intersector::p2

Source: crates/solidcore/src/intersect/surface_intersector/p2.rs

Upstream: source/SMLib/src/SmSurfaceIntersector.cpp

Notes

6 fns; largest: SmSurfaceIntersector::ClassifyBoundaryStartPointIntersection, SmSurfaceIntersector::ComputePointValues, SmSurfaceIntersector::DoBoundaryPlaneTest, SmSurfaceIntersector::FlushCurve; unit-SCC #22 (220 units); 150 upstream test entry points reach this unit; difftest PR #42: 1660 cases (1508 pass, 152 deferred: blend.fillet_executive_p1(11), surface.surface_p3(36), surface.surface_p5(105)); EvaluateNormal wired to surface.surface_p7; shim covers SmPlane, SmBSplineSurface, SmCurveBoundedSurface; fixtures from my_test_planar_section (shovel.srf) plus 38 + 105 review adversarial cases; FlushCurve unguarded (decreasing knots compare the CreateCanonical SM_ERR path); gap walk capped at MAX_GAP_SAMPLES (see plan/findings.md) Re-run with surface.surface_p5's back-edges wired (PR #50): cases=1660 passed=1508 failed=0 deferred=152 max_rel_err=0e0 blocked_by=blend.fillet_executive_p1(11),intersect.surface_intersector_p3(10),surface.surface_p3(131). Re-run (PR #52, after merging surface_p4/#49 and surface_p5/#50): 1660 cases, 1636 pass, 24 deferred (blend.fillet_executive_p1 12, surface.surface_point_solve_p3 12). Re-run after merging PR #106 (surface.surface_point_solve_p3 wired, 2026-10-15): 1660 cases, 1648 pass, 12 deferred (blend.fillet_executive_p1 12), 0 failed, max_rel_err 0.

Difftest

Cases
1,660
Passed
1,648
Deferred
12
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
blend.fillet_executive_p1 todo12

Report JSON (per-case results)

Dependencies

Depends on: curve.curve_p2 green geom.extent1d green geom.extent2d green geom.matrix green geom.solution_array partial geom.vector2d green geom.vector3d green intersect.surface_intersector_p1 partial nurbs.b_spline_curve_p1 green surface.surface_p2 partial

Soft dependencies: curve.curve_p8 green geom.extent3d green geom.object partial geom.tol green nurbs.b_spline_curve_n_lib green surface.surface_cache_p1 green surface.surface_cache_p2 partial surface.surface_p3 green surface.surface_p5 green surface.surface_p7 partial

Dependents: intersect.surface_intersector_p3 partial intersect.surface_intersector_p4 partial intersect.surface_intersector_p5 partial

Soft dependents: none

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmSurfaceIntersector::DoBoundaryPlaneTestSmSurfaceIntersector.cpp:763286[SurfaceIntersector::do_boundary_plane_test], [BoundaryPlaneTestResult]
SmSurfaceIntersector::ComputePointValuesSmSurfaceIntersector.cpp:2443458[SurfaceIntersector::compute_point_values]
SmSurfaceIntersector::FlushCurveSmSurfaceIntersector.cpp:5658270[SurfaceIntersector::flush_curve], [TsectCurves]
SmSurfaceIntersector::ComputeLawPointValuesSmSurfaceIntersector.cpp:7610130[SurfaceIntersector::compute_law_point_values], [LawPointOptions]
SmSurfaceIntersector::ClassifyBoundaryStartPointIntersectionSmSurfaceIntersector.cpp:8127489[SurfaceIntersector::classify_boundary_start_point_intersection]
sm_IsPointUniqueSmSurfaceIntersector.cpp:865544[is_point_unique]
Module file-header table (6 rows)
RustUpstream
[SurfaceIntersector::do_boundary_plane_test], [BoundaryPlaneTestResult]DoBoundaryPlaneTest, SmBoundaryPlaneTestResult
[SurfaceIntersector::compute_point_values]ComputePointValues
[SurfaceIntersector::flush_curve], [TsectCurves]FlushCurve and its output arrays
[SurfaceIntersector::compute_law_point_values], [LawPointOptions]ComputeLawPointValues
[SurfaceIntersector::classify_boundary_start_point_intersection]ClassifyBoundaryStartPointIntersection
[is_point_unique]sm_IsPointUnique (static)

Upstream tests reaching this unit

prog_test:my_test_parallel_projection, prog_test:my_test_tsurf_projection, prog_test:my_test_surface_interface, prog_test:my_test_ssi, prog_test:my_test_tsurf_section, prog_test:my_test_planar_section