solidcore

Units / intersect

intersect.surface_drop_lib_p1 partial

Layer
31
Upstream lines
1,478
Functions
15
Rust module
intersect::surface_drop_lib::p1

Source: crates/solidcore/src/intersect/surface_drop_lib/p1.rs

Upstream: source/SMLib/src/SmSurfaceDropLib.cpp

Notes

15 fns; largest: SmSurface::DropIsoCurve, SmDropPt::TestSpanAccuracy, SmDropPt::CheckSeamJump, SmDropPt::IsMovingAlongBoundary; unit-SCC #22 (220 units); 317 upstream test entry points reach this unit; PARTIAL: smsurf_IsPointOnNormal wired to surface.surface_p3 (PR #52): 1862 cases, 1847 pass bit-identical, 0 failed, 15 deferred (intersect.surface_drop_curve 15), perturb 1847/1847 detected; earlier PARTIAL (PR #98): difftest 1862 cases (34 fixture cases on the shapes of TestSmCreateRectangle, my_test_coaxial_merge_orientation and my_test_reversed_line_join, 328 review fixtures on poles (cone apex, spheres r=1 and r=1e3, both swaps) and a B-spline with a collapsed u=0 edge: moving, span, seam, iso, fix_curves, dups, 1500 generated: SmDropPt ctor/operator=/SetUninitialized/IsGoodTangentDrop, IsMovingAlongBoundary on planes, B-spline (height field, bilinear, closed rational cylinder) and SmSurfOfRevolution boundaries and seams, TestSpanAccuracy, CheckSeamJump snaps and SM_ERR_OUTSIDE_OF_DOMAIN, FixBoundaryTangents, the span stack, sm_FixBoundaryCurves, sm_RemoveDuplicateDropPointSolutions, DropIsoCurve on SmLine/SmCircle/SmBSplineCurve, DropAndTrimCurve; scales 1e-3..1e3), 1683 pass bit-identical (max_rel_err 0), 179 deferred (surface.surface_p3 164: smsurf_IsPointOnNormal in TestSpanAccuracy, co-ported in open PR #49/#52; intersect.surface_drop_curve 15: SmSurfaceDropCurve::DoTrace in DropAndTrimCurve); --perturb SENSITIVE 1683/1683. UNPORTED stubs: smsurf_IsPointOnNormal (surface.surface_p3), SmSurfaceDropCurve::SetCurveIsOnSurface/DoTrace (intersect.surface_drop_curve). Wired: SmSurface::DropAndTrimCurve in intersect.surface_intersector_p3. Rejected by the shim and errors in Rust: a failed evaluation whose status IsMovingAlongBoundary / the TestSpanAccuracy domain clamp ignore (upstream goes on with SM_UNDEF_DOUBLE defaults or partial writes; that path is not ported, and no generated or review case reaches it) and sm_FixBoundaryCurves on 3k points (reads past the array, undefined). DropIsoCurve with more than 100 knots (dKnots[100] growth) is not difftested: the FFI caps ncp at 64.

Difftest

Cases
1,862
Passed
1,847
Deferred
15
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
intersect.surface_drop_curve partial15

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 nurbs.b_spline_curve_p1 green surface.surface_p1 partial surface.surface_p2 partial surface.surface_p3 green surface.surface_p7 partial

Soft dependencies: curve.hermite_curve green geom.geom_utility_p1 green

Dependents: intersect.surface_drop_lib_p2 green intersect.surface_drop_lib_p3 claimed

Soft dependents: boolean.topology_intersector_p3 claimed intersect.surface_drop_curve partial intersect.surface_intersector_p3 partial offset.offset_geometry_creation claimed topology.brep_p9 claimed topology.edgeuse_p3 claimed

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmDropPt::SmDropPtSmSurfaceDropLib.cpp:1135[DropPt::new]
SmDropPt::operator=SmSurfaceDropLib.cpp:13428Clone / [DropPt::assign]
SmDropPt::SetUninitializedSmSurfaceDropLib.cpp:16325[DropPt::set_uninitialized]
SmDropPt::IsGoodTangentDropSmSurfaceDropLib.cpp:19210[DropPt::is_good_tangent_drop]
SmDropPt::IsMovingAlongBoundarySmSurfaceDropLib.cpp:551192[DropPt::is_moving_along_boundary]
SmDropPt::TestSpanAccuracySmSurfaceDropLib.cpp:758232[DropPt::test_span_accuracy], [SpanAccuracy]
SmDropPt::CheckSeamJumpSmSurfaceDropLib.cpp:1953197[DropPt::check_seam_jump]
SmDropPt::FixBoundaryTangentsSmSurfaceDropLib.cpp:217186[DropPt::fix_boundary_tangents]
sm_PushPointSmSurfaceDropLib.cpp:296116[push_point]
sm_PopStackSmSurfaceDropLib.cpp:299024[pop_stack]
sm_StackLookSmSurfaceDropLib.cpp:302621[stack_look]
sm_FixBoundaryCurvesSmSurfaceDropLib.cpp:3079182[fix_boundary_curves]
sm_RemoveDuplicateDropPointSolutionsSmSurfaceDropLib.cpp:326940[remove_duplicate_drop_point_solutions]
SmSurface::DropAndTrimCurveSmSurfaceDropLib.cpp:6284133[Surface::drop_and_trim_curve], [DropAndTrim], [DropFailRecord]
SmSurface::DropIsoCurveSmSurfaceDropLib.cpp:6435287[Surface::drop_iso_curve], [IsoDrop]
Module file-header table (16 rows)
RustUpstream
[DropPt]SmDropPt (file-local class)
[DropPt::new]SmDropPt::SmDropPt(dT, bDegenCurve)
Clone / [DropPt::assign]SmDropPt::operator=
[DropPt::set_uninitialized]SmDropPt::SetUninitialized
[DropPt::is_good_tangent_drop]SmDropPt::IsGoodTangentDrop
[DropPt::is_moving_along_boundary]SmDropPt::IsMovingAlongBoundary
[DropPt::test_span_accuracy], [SpanAccuracy]SmDropPt::TestSpanAccuracy
[DropPt::check_seam_jump]SmDropPt::CheckSeamJump
[DropPt::fix_boundary_tangents]SmDropPt::FixBoundaryTangents
[push_point]sm_PushPoint (static)
[pop_stack]sm_PopStack (static)
[stack_look]sm_StackLook (static)
[fix_boundary_curves]sm_FixBoundaryCurves (static)
[remove_duplicate_drop_point_solutions]sm_RemoveDuplicateDropPointSolutions (static)
[Surface::drop_and_trim_curve], [DropAndTrim], [DropFailRecord]SmSurface::DropAndTrimCurve
[Surface::drop_iso_curve], [IsoDrop]SmSurface::DropIsoCurve

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