Units / intersect
intersect.surface_tracer partial
- Layer
- 27
- Upstream lines
- 1,900
- Functions
- 23
- Rust module
intersect::surface_tracer
Source: crates/solidcore/src/intersect/surface_tracer.rs
Upstream: source/SMLib/inc/SmSurfaceTracer.h, source/SMLib/src/SmSurfaceTracer.cpp
Notes
PARTIAL: difftest 427 cases (27 fixture: closed loops, open arcs, sub-domain, tangent plane, boundary iso solution, saddle singularity, tiny/huge scales, every FlushCurve branch, start point dedup and TestPoint removal + 400 generated over B-spline (incl. rational) and SmPlane surfaces), 398 pass bit-identical (max_rel_err 0), 29 deferred (surface.surface_p1 29: smsurf_GetSurfaceCache before DoTrace; the 23 surface.surface_p7 cases, SmSurface::EvaluateNormal in FlushCurve with a followed curve on B-spline surfaces, compare since PR #24 wired it, 22 pass and 1 moved to the cache); 5000-seed run clean, --perturb SENSITIVE; the shim's SectionTracer subclass (plane-section hooks, mirrored in the runner) drives the base class; DoTrace/FindBoundaryStartPoints/FindInteriorCurves take the surface cache as an argument until smsurf_GetSurfaceCache can hand one out; no UNPORTED(intersect.surface_tracer) stubs existed; 23 fns; largest: SmSurfaceTracer::TraceCurve, SmSurfaceTracer::FlushCurve, SmSurfaceTracer::FindInteriorCurves, SmSurfaceTracer::FindBoundaryStartPoints; cycle back-edges (call into later units; stub or co-port): intersect.surface_drop_curve(1), intersect.surface_drop_lib_p3(1), intersect.surface_silhouette(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit [surface.surface_p6 wired (PR #92): 427 cases, 416 pass, 11 deferred (intersect.surface_drop_lib_p3 6, surface.surface_cache_p1 5)]
Difftest
- Cases
- 427
- Passed
- 416
- Deferred
- 11
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
intersect.surface_drop_lib_p3 claimed | 6 |
surface.surface_cache_p1 green | 5 |
Report JSON (per-case results)
Dependencies
Depends on: curve.hermite_curve green geom.extent1d green geom.extent2d green geom.extent3d green geom.global_solver partial geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green nurbs.b_spline_curve_p1 green surface.surface_cache_p1 green
Soft dependencies: curve.curve_cache green curve.curve_p2 green curve.curve_p3 green curve.curve_p4 partial curve.curve_p6 green geom.a_object partial geom.geom_utility_p1 green geom.object partial geom.tree partial nurbs.b_spline_curve_p2 green surface.surface_cache_p3 partial surface.surface_p2 partial surface.surface_p7 partial
Dependents: intersect.surface_drop_curve partial intersect.surface_silhouette green
Soft dependents: none
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmTracePnt::SmTracePnt | SmSurfaceTracer.h:73 | 8 | [TracePoint], [TracePoint::new], [TracePoint::reset] |
SmTracePnt::~SmTracePnt | SmSurfaceTracer.h:82 | 11 | [TracePoint], [TracePoint::new], [TracePoint::reset] |
SmSurfaceTracer::~SmSurfaceTracer | SmSurfaceTracer.h:130 | 1 | Drop (implicit) |
SmSurfaceTracer::SmSurfaceTracer | SmSurfaceTracer.cpp:114 | 38 | [SurfaceTracer], [SurfaceTracer::new] |
SmSurfaceTracer::ComputeStepSize | SmSurfaceTracer.cpp:166 | 18 | [SurfaceTrace::compute_step_size], [SurfaceTracer::compute_step_size] |
SmSurfaceTracer::IsPointOnCurve | SmSurfaceTracer.cpp:192 | 66 | [SurfaceTrace::is_point_on_curve], [is_point_on_curve_base] |
SmSurfaceTracer::ComputeNextPoint | SmSurfaceTracer.cpp:267 | 132 | [SurfaceTrace::compute_next_point], [compute_next_point_base], [NextPoint] |
SmSurfaceTracer::AddPointToCurve | SmSurfaceTracer.cpp:405 | 7 | [SurfaceTracer::add_point_to_curve] |
SmSurfaceTracer::AddStartPoint | SmSurfaceTracer.cpp:422 | 55 | [SurfaceTracer::add_start_point] |
SmSurfaceTracer::TestPoint | SmSurfaceTracer.cpp:488 | 157 | [SurfaceTrace::test_point], [test_point_base] |
SmSurfaceTracer::TraceCurve | SmSurfaceTracer.cpp:652 | 370 | [SurfaceTrace::trace_curve], [trace_curve_base] |
sm_FlushCrv | SmSurfaceTracer.cpp:1032 | 52 | flush_crv (private) |
SmSurfaceTracer::FlushCurve | SmSurfaceTracer.cpp:1094 | 299 | [flush_curve] |
SmSurfaceTracer::DoTrace | SmSurfaceTracer.cpp:1403 | 121 | [SurfaceTrace::do_trace], [do_trace_base], [TraceOutput] |
SmSurfaceTracer::ReverseCurveDirection | SmSurfaceTracer.cpp:1533 | 33 | [SurfaceTrace::reverse_curve_direction], [SurfaceTracer::reverse_curve_direction] |
SmSurfaceTracer::ComputeSpanDeviation | SmSurfaceTracer.cpp:1574 | 82 | [SurfaceTrace::compute_span_deviation], [compute_span_deviation_base] |
SmSurfaceTracer::FindBoundaryStartPoints | SmSurfaceTracer.cpp:1665 | 180 | [SurfaceTrace::find_boundary_start_points], [find_boundary_start_points_base] |
SmSurfaceTracer::TestIsoCurve | SmSurfaceTracer.cpp:1855 | 44 | [SurfaceTrace::test_iso_curve], [test_iso_curve_base] |
SmSurfaceTracer::FindInteriorCurves | SmSurfaceTracer.cpp:1906 | 181 | [SurfaceTrace::find_interior_curves], [find_interior_curves_base] |
SmSurfaceTracer::ComputePointValues | SmSurfaceTracer.cpp:2099 | 14 | [SurfaceTrace::compute_point_values] |
SmSurfaceTracer::LocalPointSolve | SmSurfaceTracer.cpp:2121 | 11 | [SurfaceTrace::local_point_solve] |
SmSurfaceTracer::FindSolutionsOnBoundaryCurve | SmSurfaceTracer.cpp:2144 | 12 | [SurfaceTrace::find_solutions_on_boundary_curve] |
SmSurfaceTracer::DoesPointLieOnCurve | SmSurfaceTracer.cpp:2165 | 8 | [SurfaceTrace::does_point_lie_on_curve] |
Module file-header table (28 rows)
| Rust | Upstream |
|---|---|
[TracePointType] | SmTracePointType |
[TracePoint], [TracePoint::new], [TracePoint::reset] | SmTracePnt, SmTracePnt(), ~SmTracePnt |
[TracePointId] | SmTracePnt* (a block of m_vTrcPntMgr) |
[SurfaceTracer], [SurfaceTracer::new] | SmSurfaceTracer, SmSurfaceTracer(cpSurface, crUVDomain) |
Drop (implicit) | ~SmSurfaceTracer |
[SurfaceTracer::approx_tol_3d], [SurfaceTracer::ang_tol_rad] | GetThisApproxTol3d, GetThisAngTolRad |
[SurfaceTrace] | the virtual interface of SmSurfaceTracer |
[SurfaceTrace::do_trace], [do_trace_base], [TraceOutput] | SmSurfaceTracer::DoTrace |
[SurfaceTrace::is_point_on_curve], [is_point_on_curve_base] | SmSurfaceTracer::IsPointOnCurve |
[SurfaceTrace::find_boundary_start_points], [find_boundary_start_points_base] | SmSurfaceTracer::FindBoundaryStartPoints |
[SurfaceTrace::compute_span_deviation], [compute_span_deviation_base] | SmSurfaceTracer::ComputeSpanDeviation |
[SurfaceTrace::local_point_solve] | SmSurfaceTracer::LocalPointSolve |
[SurfaceTrace::trace_curve], [trace_curve_base] | SmSurfaceTracer::TraceCurve |
[flush_curve] | SmSurfaceTracer::FlushCurve |
flush_crv (private) | sm_FlushCrv (static) |
[SurfaceTrace::find_interior_curves], [find_interior_curves_base] | SmSurfaceTracer::FindInteriorCurves |
[SurfaceTrace::compute_step_size], [SurfaceTracer::compute_step_size] | SmSurfaceTracer::ComputeStepSize |
[SurfaceTrace::compute_point_values] | SmSurfaceTracer::ComputePointValues |
[SurfaceTrace::compute_next_point], [compute_next_point_base], [NextPoint] | SmSurfaceTracer::ComputeNextPoint |
[SurfaceTrace::test_iso_curve], [test_iso_curve_base] | SmSurfaceTracer::TestIsoCurve |
[SurfaceTrace::reverse_curve_direction], [SurfaceTracer::reverse_curve_direction] | SmSurfaceTracer::ReverseCurveDirection |
[SurfaceTrace::find_solutions_on_boundary_curve] | SmSurfaceTracer::FindSolutionsOnBoundaryCurve |
[SurfaceTrace::does_point_lie_on_curve] | SmSurfaceTracer::DoesPointLieOnCurve |
[SurfaceTracer::add_point_to_curve] | SmSurfaceTracer::AddPointToCurve |
[SurfaceTracer::add_start_point] | SmSurfaceTracer::AddStartPoint |
[SurfaceTrace::test_point], [test_point_base] | SmSurfaceTracer::TestPoint |
[SurfaceTrace::branch_may_contain_answers], [SurfaceTrace::local_solve] | the SmGlobalSolver hooks a tracer overrides |
[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