solidcore

Units / intersect

intersect.curve_class_p9 partial

Layer
37
Upstream lines
1,220
Functions
2
Rust module
intersect::curve_class::p9

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

Upstream: source/SMLib/src/SmCurveClass.cpp

Notes

PARTIAL (PR #151; review rerun at numerical checkpoint df4756ac): 425 Linux differential cases (41 fixtures + 384 generated), 226 pass, 197 deferred (intersect.curve_class_p2 163, curve.crv_on_surf 24, intersect.curve_class_p4 10), 2 native setup rejections, zero failures, max_rel_err 0, no floors. FindUVNodes uses upstream FALSE pole default; collapsed/v-split caches and positive endpoint classification are covered. Required topology handles share ClassGeometry with landed part 5; both query back-edges call real p9 methods. Interior partition insertion and earlier query ReSet remain deferred; uncached edge-loop UV reaches topology.edgeuse_p3. Nonzero edge/face gap integration has a Rust threshold regression only. No open dependency PR is bundled. Final PR checks validate later ignored-UV-status and exact pole-predicate follow-ups. Op 1 state 2 (cache flagged modified) runs with the shim Brep in edit mode so the cache is used as given: with editing off SmCacheMgrTSrf rebuilds it first (cache units), which fails on a loopless face (fuzz regression). See plan/findings.md for coverage and seed handoff. 2 fns; largest: SmCurveClassification::IntersectTSBound, SmCurveClassification::IntersectEdges; cycle back-edges (call into later units; stub or co-port): topology.edge(5), topology.edgeuse_p1(4), topology.face_p2(3), topology.loopuse(2), topology.topology(2), topology.vertexuse(2), heal.gap(1), topology.edgeuse_p3(1), topology.vertex(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit

Difftest

Cases
425
Passed
226
Deferred
197
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
intersect.curve_class_p2 claimed163
curve.crv_on_surf partial24
intersect.curve_class_p4 claimed10

Report JSON (per-case results)

Dependencies

Depends on: curve.crv_on_surf partial geom.extent1d green geom.object partial geom.solution_array partial geom.tol green geom.vector3d green intersect.curve_class_p1 partial intersect.curve_class_p3 partial intersect.curve_class_p5 partial intersect.point_class partial surface.surface_p2 partial

Soft dependencies: curve.curve_cache green curve.curve_p2 green curve.curve_p6 green curve.curve_p8 green geom.a_object partial geom.context green geom.extent2d green geom.tree partial geom.vector2d green nurbs.b_spline_curve_p1 green surface.surface_cache_p1 green surface.surface_cache_p3 partial surface.surface_p5 green

Dependents: none

Soft dependents: query.face_p2 partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmCurveClassification::IntersectEdgesSmCurveClass.cpp:15270523[CurveClassification::intersect_edges]
SmCurveClassification::IntersectTSBoundSmCurveClass.cpp:15824697[CurveClassification::intersect_ts_bound]
Module file-header table (2 rows)
RustUpstream
[CurveClassification::intersect_edges]SmCurveClassification::IntersectEdges
[CurveClassification::intersect_ts_bound]SmCurveClassification::IntersectTSBound

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