Units / intersect
intersect.surface_intersector_p4 partial
- Layer
- 35
- Upstream lines
- 1,570
- Functions
- 4
- Rust module
intersect::surface_intersector::p4
Source: crates/solidcore/src/intersect/surface_intersector/p4.rs
Upstream: source/SMLib/src/SmSurfaceIntersector.cpp
Notes
4 fns; largest: SmSurfaceIntersector::TraceCurve, SmSurfaceIntersector::DoPointIntersection, SmSurfaceIntersector::DoLawIntersection, SmSurfaceIntersector::FindInteriorCurves; unit-SCC #22 (220 units); 150 upstream test entry points reach this unit; PARTIAL (PR #70): difftest 1542 cases (22 inline edge cases, 20 fixture cases from my_test_planar_section on shovel.srf, 1500 generated programs on plane pairs crossing down to 1e-6 rad, coincident, parallel a gap apart or the same object, scales 1e-6..1e5: DoPointIntersection through 0-5 points with directions/extensions/tolerances, TraceCurve from evaluated or raw points with curve points, targets and curves to avoid, then FlushCurve, DoLawIntersection point counts, FindInteriorCurves; a few on B-spline and curve-bounded surfaces), 938 pass bit-identical (max_rel_err 0), 604 deferred (surface.surface_p11 578, surface.surface_p3 26); --perturb SENSITIVE 938/938. UNPORTED stubs: SmSurface::IsSingularity of non-planes (surface.surface_p5); the SM_SR_NODES node pairs of FindInteriorCurves' GlobalSurfaceSolve (surface.surface_p11; the pair walk is find_interior_curves_from_node_pairs). DoLawIntersection's SmOffsetSurface check sees SurfaceKind::OffsetSurface (surface.offset_surface, PR #62); past it the law points wait on SmFilletLaw::Evaluate (blend.fillet_executive_p1). Back-edges NOT wired: SmAdvSurfaceIntersector's TraceCurve (intersect/adv_surface_intersector.rs) and SmSurface::PointBasedSurfaceIntersect's DoPointIntersection (surface/surface/p2.rs) run on the advanced intersector, whose ComputeSingularityPoint override the basic part 1-4 methods cannot dispatch to yet; the stubs stay tagged UNPORTED(intersect.surface_intersector_p4) with that reason. surface.surface_p11 (PR #120, after merging main with surface.surface_p3): cases=1542 passed=1177 failed=0 deferred=365 (surface.surface_p8 365); FindInteriorCurves runs the SM_SR_NODES global surface solve; --perturb SENSITIVE.
Difftest
- Cases
- 1,542
- Passed
- 1,192
- Deferred
- 350
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
curve.iso_curve green | 350 |
Report JSON (per-case results)
Dependencies
Depends on: geom.extent2d green geom.extent3d green geom.solution_array partial geom.vector2d green geom.vector3d green intersect.surface_intersector_p1 partial intersect.surface_intersector_p2 partial intersect.surface_intersector_p3 partial
Soft dependencies: curve.curve_cache green curve.curve_p2 green curve.hermite_curve green geom.a_object partial geom.extent1d green geom.object partial geom.tol green geom.tree partial nurbs.b_spline_curve_p1 green nurbs.b_spline_curve_p3 partial surface.surface_cache_p1 green surface.surface_p11 partial surface.surface_p2 partial surface.surface_p5 green surface.surface_p7 partial
Dependents: intersect.surface_intersector_p5 partial
Soft dependents: blend.fillet_geom_p3 todo blend.fillet_solver_p4 claimed blend.fillet_standard_solver_p2 todo
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmSurfaceIntersector::TraceCurve | SmSurfaceIntersector.cpp:4920 | 649 | [SurfaceIntersector::trace_curve] |
SmSurfaceIntersector::FindInteriorCurves | SmSurfaceIntersector.cpp:5935 | 159 | [SurfaceIntersector::find_interior_curves], [SurfaceIntersector::find_interior_curves_from_node_pairs], [InteriorNodePair] |
SmSurfaceIntersector::DoPointIntersection | SmSurfaceIntersector.cpp:6763 | 492 | [SurfaceIntersector::do_point_intersection], [PointIntersectionOptions] |
SmSurfaceIntersector::DoLawIntersection | SmSurfaceIntersector.cpp:7817 | 270 | [SurfaceIntersector::do_law_intersection], [LawIntersectionOptions] |
Module file-header table (5 rows)
| Rust | Upstream |
|---|---|
[SurfaceIntersector::trace_curve] | TraceCurve |
[SurfaceIntersector::find_interior_curves], [SurfaceIntersector::find_interior_curves_from_node_pairs], [InteriorNodePair] | FindInteriorCurves |
[SurfaceIntersector::do_point_intersection], [PointIntersectionOptions] | DoPointIntersection |
[SurfaceIntersector::do_law_intersection], [LawIntersectionOptions] | DoLawIntersection |
[IntersectionCurve] | the curve, type and deviation out-params of both drivers |
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