solidcore

Units / intersect

intersect.curve_class_p3 partial

Layer
34
Upstream lines
1,986
Functions
9
Rust module
intersect::curve_class::p3

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

Upstream: source/SMLib/src/SmCurveClass.cpp

Notes

PARTIAL (PR #123): difftest 3292 cases (292 hand-written edge scripts over curve kinds, tolerance limits and per-op boundaries + 3000 generated scripts), 2156 pass bit-identical (max_rel_err 0), 0 failed, 1136 deferred (intersect.curve_class_p2 1022; topology.vertex 41 / topology.edge 32 / topology.face_p2 41: the zone tolerance lookups SmVertex/SmEdge/SmFace::GetTolerance of opaque handles) after intersect.curve_class_p7 (PR #65) wired GetPointClassByIndex, GetPointClassMateByIndex and AreCoincidentMaybe; --perturb SENSITIVE. Stubs: UNPORTED(intersect.curve_class_p2) (PR #85) is the maintainer's open PR, not merged here; UNPORTED(topology.edge)/UNPORTED(topology.vertex) stay because the opaque handle O cannot reach a Brep (see plan/findings.md). sm_FixProblemsBySqueezing tail recursion is a restart loop with the same visit order, bounded by interval count + 1 (header Deviations). Upstream defects UB-109, UB-110 (plan/upstream-issues.md). 9 fns; largest: SmCurveClassification::InsertPointClass, SmCurveClassification::FindInterval, SmCurveClassification::MergePointClass, sm_ChangeEdgePointClassToNearVertex; cycle back-edges (call into later units; stub or co-port): topology.edge(8), topology.vertex(2); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit

Difftest

Cases
3,292
Passed
2,156
Deferred
1,136
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 claimed1022
topology.face_p2 partial41
topology.vertex partial41
topology.edge partial32

Report JSON (per-case results)

Dependencies

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

Soft dependencies: curve.curve_p6 green geom.geom_utility_p1 green

Dependents: intersect.curve_class_p5 partial intersect.curve_class_p6 partial intersect.curve_class_p8 partial intersect.curve_class_p9 partial

Soft dependents: blend.fillet_solver_p1 claimed blend.hcr claimed boolean.topology_intersector_p3 claimed topology.face_p3 claimed

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
sm_ChangeEdgePointClassToNearVertexSmCurveClass.cpp:3299244[change_edge_point_class_to_near_vertex]
sm_FixProblemsBySqueezingSmCurveClass.cpp:3569140[fix_problems_by_squeezing]
SmCurveClassification::FindIntervalSmCurveClass.cpp:5800292[CurveClassification::find_interval], [FoundInterval]
SmCurveClassification::FindPointClassSmCurveClass.cpp:610637[CurveClassification::find_point_class]
SmCurveClassification::IsCoincidentSmCurveClass.cpp:698153[CurveClassification::is_coincident]
SmCurveClassification::InsertPointClassSmCurveClass.cpp:7259747[CurveClassification::insert_point_class]
SmCurveClassification::RemovePointClassSmCurveClass.cpp:801597[CurveClassification::remove_point_class]
SmCurveClassification::CleanupAndValidateSmCurveClass.cpp:13946128[CurveClassification::cleanup_and_validate]
SmCurveClassification::MergePointClassSmCurveClass.cpp:18309248[CurveClassification::merge_point_class]
Module file-header table (9 rows)
RustUpstream
[CurveClassification::find_interval], [FoundInterval]SmCurveClassification::FindInterval
[CurveClassification::find_point_class]SmCurveClassification::FindPointClass
[CurveClassification::is_coincident]SmCurveClassification::IsCoincident
[CurveClassification::insert_point_class]SmCurveClassification::InsertPointClass
[CurveClassification::remove_point_class]SmCurveClassification::RemovePointClass
[CurveClassification::merge_point_class]SmCurveClassification::MergePointClass
[CurveClassification::cleanup_and_validate]SmCurveClassification::CleanupAndValidate
[change_edge_point_class_to_near_vertex]sm_ChangeEdgePointClassToNearVertex (static)
[fix_problems_by_squeezing]sm_FixProblemsBySqueezing (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