Units / intersect
intersect.surface_intersector_p1 partial
- Layer
- 32
- Upstream lines
- 1,816
- Functions
- 40
- Rust module
intersect::surface_intersector::p1
Source: crates/solidcore/src/intersect/surface_intersector/p1.rs
Upstream: source/SMLib/inc/SmSurfaceIntersector.h, source/SMLib/src/SmSurfaceIntersector.cpp
Notes
PARTIAL: difftest 1510 cases (10 inline edge cases + 1500 generated programs over planes, open/rational/closed-tube B-spline surfaces, self-intersection, sub/cut/disjoint/degenerate/fillet domains, scales 1e-6..1e5), 1416 pass bit-identical (max_rel_err 0), 94 deferred (surface.surface_p3 48, surface.surface_p11 36, surface.surface_p5 6, surface.surface_p1 4) after surface.surface_p7 wired EvaluateNormal, PR #24 (before: 1406 pass, 104 deferred); --perturb SENSITIVE 1416/1416. IsClosed, EvaluateNormal and Evaluate1stDerivatives go through surface::surface::p7 (PR #24; its co-port of IsClosed was replaced). EvaluateLawPoint has no cases (needs SmFilletLaw, SmOffsetSurface). Wired SmTsectPnt into Surface::point_based_surface_intersect (surface.surface_p2). 40 fns; largest: SmSurfaceIntersector::TestSpanAccuracy, sm_IsPointOnCurve, SmSurfaceIntersector::AddStartPoint, SmSurfaceIntersector::RefinePoint; cycle back-edges (call into later units; stub or co-port): blend.fillet_executive_p1(1), blend.fillet_intersector(1), intersect.adv_surface_intersector(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit Re-run with surface.surface_p5's back-edges wired (PR #50): cases=1510 passed=1420 failed=0 deferred=90 max_rel_err=0e0 blocked_by=surface.surface_p11(36),surface.surface_p3(48),surface.surface_point_solve_p3(6). Re-run (PR #52, after merging surface_p4/#49 and surface_p5/#50): 1510 cases, 1465 pass, 45 deferred (surface.surface_p11 39, surface.surface_point_solve_p3 6). surface.surface_p11 (PR #120, after merging main with surface.surface_p3): cases=1510 passed=1495 failed=0 deferred=15 (surface.surface_p8 15); --perturb SENSITIVE.
Difftest
- Cases
- 1,510
- Passed
- 1,500
- Deferred
- 10
- 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 | 10 |
Report JSON (per-case results)
Dependencies
Depends on: curve.hermite_curve green geom.extent1d green geom.extent2d green geom.extent3d green geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green surface.surface_p2 partial
Soft dependencies: curve.curve_p2 green curve.curve_p3 green curve.curve_p4 partial curve.curve_p6 green geom.object partial nurbs.b_spline_curve_p1 green surface.offset_surface green surface.surface_p1 partial surface.surface_p11 partial surface.surface_p3 green surface.surface_p4 green surface.surface_p5 green surface.surface_p7 partial
Dependents: blend.fillet_corner_p2 todo blend.fillet_custom_solver partial blend.fillet_geom_p1 claimed blend.fillet_geom_p3 todo blend.fillet_intersector claimed blend.fillet_solver_p1 claimed blend.fillet_solver_p2 todo blend.fillet_solver_p3 todo blend.fillet_solver_p4 claimed blend.fillet_standard_solver_p2 todo intersect.adv_surface_intersector partial intersect.surface_intersector_p2 partial intersect.surface_intersector_p3 partial intersect.surface_intersector_p4 partial intersect.surface_intersector_p5 partial
Soft dependents: blend.fillet_corner_p1 todo blend.fillet_corner_p3 todo blend.fillet_geom_p2 todo blend.fillet_geom_p4 todo intersect.curve_class_p2 claimed
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmTsectPnt::~SmTsectPnt | SmSurfaceIntersector.h:186 | 10 | Drop (implicit) |
SmTsectPnt::PointType | SmSurfaceIntersector.h:213 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::UParamType | SmSurfaceIntersector.h:214 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::VParamType | SmSurfaceIntersector.h:215 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::UVPos | SmSurfaceIntersector.h:216 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::UVDeriv | SmSurfaceIntersector.h:217 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::SrfPos | SmSurfaceIntersector.h:218 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::SrfDu | SmSurfaceIntersector.h:219 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::SrfDv | SmSurfaceIntersector.h:220 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::SrfDuu | SmSurfaceIntersector.h:221 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::SrfDuv | SmSurfaceIntersector.h:222 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::SrfDvv | SmSurfaceIntersector.h:223 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::SrfNorm | SmSurfaceIntersector.h:224 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::CrvPos | SmSurfaceIntersector.h:225 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::CrvDeriv | SmSurfaceIntersector.h:226 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmTsectPnt::SrfEvalMatrix | SmSurfaceIntersector.h:227 | 1 | [TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) |
SmSurfaceIntersector::~SmSurfaceIntersector | SmSurfaceIntersector.h:299 | 1 | Drop (implicit) |
SmSurfaceIntersector::ComputePointValuesDelta | SmSurfaceIntersector.h:329 | 8 | [SurfaceIntersector::compute_point_values_delta] |
SmSurfaceIntersector::SetExtensionDistance | SmSurfaceIntersector.h:590 | 1 | [SurfaceIntersector::set_extension_distance] |
SmSurfaceIntersector::SetUseSurfaceEdges | SmSurfaceIntersector.h:654 | 2 | [SurfaceIntersector::set_use_surface_edges] |
SmTsectPnt::SmTsectPnt | SmSurfaceIntersector.cpp:44 | 35 | [TsectPnt], [TsectPnt::new], Clone |
SmTsectPnt::operator= | SmSurfaceIntersector.cpp:145 | 60 | [TsectPnt::assign] |
SmTsectPnt::IsBounded | SmSurfaceIntersector.cpp:212 | 11 | [TsectPnt::is_bounded] |
SmTsectPnt::ClassifyPointParams | SmSurfaceIntersector.cpp:234 | 93 | [TsectPnt::classify_point_params] |
SmSurfaceIntersector::SmSurfaceIntersector | SmSurfaceIntersector.cpp:543 | 124 | [SurfaceIntersector], [SurfaceIntersector::new] |
sm_ComputeCurveType | SmSurfaceIntersector.cpp:673 | 75 | [compute_curve_type] |
SmSurfaceIntersector::StepBackFromSingularity | SmSurfaceIntersector.cpp:2322 | 70 | [SurfaceIntersector::step_back_from_singularity] |
SmSurfaceIntersector::ComputeSingularityPoint | SmSurfaceIntersector.cpp:2909 | 15 | [SurfaceIntersector::compute_singularity_point] |
SmSurfaceIntersector::ComputeStepSize | SmSurfaceIntersector.cpp:2937 | 55 | [SurfaceIntersector::compute_step_size] |
SmSurfaceIntersector::RefinePoint | SmSurfaceIntersector.cpp:3260 | 133 | [SurfaceIntersector::refine_point] |
SmSurfaceIntersector::TestSpanAccuracy | SmSurfaceIntersector.cpp:3433 | 242 | [SurfaceIntersector::test_span_accuracy], [SpanAccuracy] |
SmSurfaceIntersector::AddPointToCurve | SmSurfaceIntersector.cpp:3683 | 19 | [SurfaceIntersector::add_point_to_curve] |
SmSurfaceIntersector::AddStartPoint | SmSurfaceIntersector.cpp:3763 | 197 | [SurfaceIntersector::add_start_point] |
SmSurfaceIntersector::AddThroughPoint | SmSurfaceIntersector.cpp:3968 | 40 | [SurfaceIntersector::add_through_point] |
sm_IsPointOnCurve | SmSurfaceIntersector.cpp:4016 | 239 | [is_point_on_tsect_curve] |
sm_FlushCrv | SmSurfaceIntersector.cpp:5576 | 64 | [flush_crv] |
SmSurfaceIntersector::ReverseCurveDirection | SmSurfaceIntersector.cpp:7271 | 72 | [SurfaceIntersector::reverse_curve_direction] |
SmSurfaceIntersector::IsPointOnCurve | SmSurfaceIntersector.cpp:7350 | 120 | [SurfaceIntersector::is_point_on_curve] |
SmSurfaceIntersector::IsPointOnStartPoint | SmSurfaceIntersector.cpp:7477 | 52 | [SurfaceIntersector::is_point_on_start_point] |
SmSurfaceIntersector::EvaluateLawPoint | SmSurfaceIntersector.cpp:7539 | 63 | [SurfaceIntersector::evaluate_law_point] |
Module file-header table (28 rows)
| Rust | Upstream |
|---|---|
[IntersectionPointType] | SmIntersectionPointType |
[TsectPnt], [TsectPnt::new], Clone | SmTsectPnt, its default and copy constructors |
Drop (implicit) | SmTsectPnt::~SmTsectPnt |
[TsectPnt::assign] | SmTsectPnt::operator= |
[TsectPnt::is_bounded] | SmTsectPnt::IsBounded |
[TsectPnt::classify_point_params] | SmTsectPnt::ClassifyPointParams |
[TsectPnt::point_type], [TsectPnt::u_param_type], [TsectPnt::v_param_type], [TsectPnt::uv_pos], [TsectPnt::uv_deriv], [TsectPnt::srf_pos], [TsectPnt::srf_du], [TsectPnt::srf_dv], [TsectPnt::srf_duu], [TsectPnt::srf_duv], [TsectPnt::srf_dvv], [TsectPnt::srf_norm], [TsectPnt::crv_pos], [TsectPnt::crv_deriv], [TsectPnt::srf_eval_matrix] (and _mut setters) | PointType, UParamType, VParamType, UVPos, UVDeriv, SrfPos, SrfDu, SrfDv, SrfDuu, SrfDuv, SrfDvv, SrfNorm, CrvPos, CrvDeriv, SrfEvalMatrix |
[SurfaceIntersector], [SurfaceIntersector::new] | SmSurfaceIntersector, its constructor |
Drop (implicit) | ~SmSurfaceIntersector |
[SurfaceIntersector::surface], [SurfaceIntersector::this_approx_tol_3d], [SurfaceIntersector::this_ang_tol_rad] | GetSurface, GetThisApproxTol3d, GetThisAngTolRad |
[SurfaceIntersector::set_extension_distance] | SetExtensionDistance |
[SurfaceIntersector::set_use_surface_edges] | SetUseSurfaceEdges |
[SurfaceIntersector::compute_point_values_delta] | ComputePointValuesDelta (inline SM_ERR) |
[SurfaceIntersector::step_back_from_singularity] | StepBackFromSingularity |
[SurfaceIntersector::compute_singularity_point] | ComputeSingularityPoint |
[SurfaceIntersector::compute_step_size] | ComputeStepSize |
[SurfaceIntersector::refine_point] | RefinePoint |
[SurfaceIntersector::test_span_accuracy], [SpanAccuracy] | TestSpanAccuracy |
[SurfaceIntersector::add_point_to_curve] | AddPointToCurve |
[SurfaceIntersector::add_start_point] | AddStartPoint |
[SurfaceIntersector::add_through_point] | AddThroughPoint |
[SurfaceIntersector::reverse_curve_direction] | ReverseCurveDirection |
[SurfaceIntersector::is_point_on_curve] | IsPointOnCurve |
[SurfaceIntersector::is_point_on_start_point] | IsPointOnStartPoint |
[SurfaceIntersector::evaluate_law_point] | EvaluateLawPoint |
[compute_curve_type] | sm_ComputeCurveType (static) |
[is_point_on_tsect_curve] | sm_IsPointOnCurve (static) |
[flush_crv] | sm_FlushCrv (static) |
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