solidcore

Units / intersect

intersect.curve_class_p6 partial

Layer
35
Upstream lines
2,213
Functions
4
Rust module
intersect::curve_class::p6

Source: crates/solidcore/src/intersect/curve_class/p6.rs

Upstream: source/SMLib/src/SmCurveClass.cpp

Notes

PR #138: partial; 4438 cases, 3933 passes (3927 bit-identical kernel comparisons and 6 expected FFI rejection checks), 0 failures, 505 deferred, no absolute floors. InsertCurveInterval, Homogenize and FixEndPointClass preserve upstream control flow with p2/p4/p7 dependency calls; MergeInterval implements early exits only and defers topology mutation at p2 GetPointObjZoneTol3d. Native fixtures use real 3D lines, circles, ellipses, quadratic and constant B-splines plus box topology. Nonempty homogenization/endpoint repair and topology mutation are not certified; generic topology tolerance lookups also retain existing adapter deferrals. Native regression tests run locally: 27440 isolated operation/geometry/flag/classification probes, 96 partition/SSS/boundary probes, 660 mismatched fillet-partner probes checking Rust and raw C++ guards independently, caller-point and projection regressions; project CI unchanged. Audit reuses p1 types and p3 helpers; p2/p4/p7 remain explicit dependencies, with no duplicate co-ports. Maintainer review: require homogenized partner counts for fillet merges (UB-136); reuse p3 boundary-location helper; ignore ordinary squeeze errors while retaining the no-progress guard (HANG-14). 4 fns; largest: SmCurveClassification::MergeInterval, SmCurveClassification::InsertCurveInterval, SmCurveClassification::Homogenize, SmCurveClassification::FixEndPointClass; cycle back-edges (call into later units; stub or co-port): topology.edge(5), topology.vertex(5), topology.face_p4(2), topology.brep_p3(1), topology.brep_p5(1), topology.brep_p9(1), topology.edgeuse_p1(1), topology.face_p2(1), topology.vertexuse(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit Merge of PR #65: AreCoincidentMaybe wired to p7; difftest now 4438 cases, 4097 passed, 0 failed, 341 deferred.

Difftest

Cases
4,438
Passed
4,097
Deferred
341
Failed
0
Both errored
6
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
intersect.curve_class_p2 claimed271
topology.edge partial40
topology.face_p2 partial20
intersect.curve_class_p7 partial10

Report JSON (per-case results)

Dependencies

Depends on: curve.curve_p2 green geom.extent1d green geom.object partial geom.tol green geom.vector3d green intersect.curve_class_p1 partial intersect.curve_class_p2 claimed intersect.curve_class_p3 partial intersect.curve_class_p4 claimed intersect.curve_class_p7 partial intersect.point_class partial

Soft dependencies: curve.crv_on_surf partial curve.curve_p6 green nurbs.b_spline_curve_n_lib green

Dependents: intersect.curve_class_p5 partial

Soft dependents: boolean.topology_intersector_p1 partial boolean.topology_intersector_p3 claimed

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmCurveClassification::HomogenizeSmCurveClass.cpp:6215328[CurveClassification::homogenize]
SmCurveClassification::InsertCurveIntervalSmCurveClass.cpp:10441577[CurveClassification::insert_curve_interval]
SmCurveClassification::FixEndPointClassSmCurveClass.cpp:14218243[CurveClassification::fix_end_point_class]
SmCurveClassification::MergeIntervalSmCurveClass.cpp:172121065[CurveClassification::merge_interval]
Module file-header table (4 rows)
RustUpstream
[CurveClassification::homogenize]SmCurveClassification::Homogenize
[CurveClassification::insert_curve_interval]SmCurveClassification::InsertCurveInterval
[CurveClassification::fix_end_point_class]SmCurveClassification::FixEndPointClass
[CurveClassification::merge_interval]SmCurveClassification::MergeInterval

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