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 unit | Deferred cases |
|---|---|
intersect.curve_class_p2 claimed | 1022 |
topology.face_p2 partial | 41 |
topology.vertex partial | 41 |
topology.edge partial | 32 |
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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
sm_ChangeEdgePointClassToNearVertex | SmCurveClass.cpp:3299 | 244 | [change_edge_point_class_to_near_vertex] |
sm_FixProblemsBySqueezing | SmCurveClass.cpp:3569 | 140 | [fix_problems_by_squeezing] |
SmCurveClassification::FindInterval | SmCurveClass.cpp:5800 | 292 | [CurveClassification::find_interval], [FoundInterval] |
SmCurveClassification::FindPointClass | SmCurveClass.cpp:6106 | 37 | [CurveClassification::find_point_class] |
SmCurveClassification::IsCoincident | SmCurveClass.cpp:6981 | 53 | [CurveClassification::is_coincident] |
SmCurveClassification::InsertPointClass | SmCurveClass.cpp:7259 | 747 | [CurveClassification::insert_point_class] |
SmCurveClassification::RemovePointClass | SmCurveClass.cpp:8015 | 97 | [CurveClassification::remove_point_class] |
SmCurveClassification::CleanupAndValidate | SmCurveClass.cpp:13946 | 128 | [CurveClassification::cleanup_and_validate] |
SmCurveClassification::MergePointClass | SmCurveClass.cpp:18309 | 248 | [CurveClassification::merge_point_class] |
Module file-header table (9 rows)
| Rust | Upstream |
|---|---|
[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