solidcore

Units / intersect

intersect.curve_class_p7 partial

Layer
32
Upstream lines
2,248
Functions
14
Rust module
intersect::curve_class::p7

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

Upstream: source/SMLib/src/SmCurveClass.cpp

Notes

PR #65: partial, difftest 1516 cases (1077 passed, 0 failed, 439 deferred: topology.edge 226, topology.vertex 160, topology.face_p2 53), --perturb SENSITIVE 1077/1077; topology members (SmEdge/SmVertex) and SmFace queries (topology.face_p4, query.face_p1, query.face_p2) stay UNPORTED stubs because the opaque handle O cannot reach a Brep; SmCrvOnSurf over a non-B-spline surface is UNPORTED(curve.crv_on_surf); wired back-edges: intersect.curve_class_p3 (GetPointClassByIndex, GetPointClassMateByIndex, AreCoincidentMaybe; its private IsDegenerate co-port is reused here) and query.face_p2 (ClassifyFaceInterval, CurveOnClassify now takes ClassGeometry); 14 fns; largest: SmCurveClassification::TestForPartialCoincidentEdges, SmCurveClassification::ClassifyFaceInterval, sm_SetDoFilletingGeometry, SmCurveClassification::AreCoincidentMaybe; cycle back-edges (call into later units; stub or co-port): topology.edge(9), topology.vertex(3), query.face_p1(2), query.face_p2(1), topology.face_p4(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit

Difftest

Cases
1,516
Passed
1,077
Deferred
439
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
topology.edge partial226
topology.vertex partial160
topology.face_p2 partial53

Report JSON (per-case results)

Dependencies

Depends on: curve.curve_p2 green geom.extent1d green geom.object partial geom.solution_array partial geom.tol green geom.vector3d green intersect.curve_class_p1 partial intersect.point_class partial

Soft dependencies: curve.crv_on_surf partial curve.curve_p4 partial curve.curve_p6 green geom.vector2d green nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p1 green

Dependents: intersect.curve_class_p2 claimed intersect.curve_class_p3 partial intersect.curve_class_p4 claimed intersect.curve_class_p5 partial intersect.curve_class_p6 partial topology.face_p4 claimed

Soft dependents: blend.hcr claimed boolean.topology_intersector_p3 claimed heal.heal_data_p3 partial query.face_p2 partial query.face_p3 claimed topology.brep_p2 claimed topology.face_p1 partial topology.proto_topology_p2 partial topology.proto_topology_p3 partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmCurveClassification::AreCoincidentMaybeSmCurveClass.cpp:6609362[CurveClassification::are_coincident_maybe], [CoincidentMaybe]
SmCurveClassification::GetPointClassByIndexSmCurveClass.cpp:716323[CurveClassification::point_class_by_index], [CurveClassification::point_class_by_index_mut]
SmCurveClassification::GetPointClassMateByIndexSmCurveClass.cpp:720027[CurveClassification::point_class_mate_by_index]
SmCurveClassification::CollapseIntervalSmCurveClass.cpp:834581[CurveClassification::collapse_interval]
SmCurveClassification::GetPointClassifiesConnectedToSmCurveClass.cpp:1111768[CurveClassification::point_classifies_connected_to]
SmCurveClassification::FindVertexObjectsSmCurveClass.cpp:1121640[CurveClassification::find_vertex_objects], [VertexObjects]
SmCurveClassification::FindEdgeObjectsSmCurveClass.cpp:1313956[CurveClassification::find_edge_objects]
SmCurveClassification::IsCrossedByEdgeSmCurveClass.cpp:13202111[CurveClassification::is_crossed_by_edge]
SmCurveClassification::IsCrossingFaceSmCurveClass.cpp:1332535[CurveClassification::is_crossing_face]
SmCurveClassification::HasNearMissesSmCurveClass.cpp:1337967[CurveClassification::has_near_misses]
sm_SetDoFilletingGeometrySmCurveClass.cpp:16815382[set_do_filleting_geometry]
SmCurveClassification::ClassifyFaceIntervalSmCurveClass.cpp:18748481[CurveClassification::classify_face_interval]
SmCurveClassification::TestForPartialCoincidentEdgesSmCurveClass.cpp:19263513[CurveClassification::test_for_partial_coincident_edges], [PartialCoincidence]
SmCurveInterval::GetCurveSmCurveClass.cpp:202892[CurveClassification::curve] of the owner
Module file-header table (16 rows)
RustUpstream
[CurveClassification::point_class_by_index], [CurveClassification::point_class_by_index_mut]GetPointClassByIndex
[CurveClassification::point_class_mate_by_index]GetPointClassMateByIndex
[CurveClassification::collapse_interval]CollapseInterval
[CurveClassification::point_classifies_connected_to]GetPointClassifiesConnectedTo
[CurveClassification::find_vertex_objects], [VertexObjects]FindVertexObjects
[CurveClassification::find_edge_objects]FindEdgeObjects
[CurveClassification::is_crossed_by_edge]IsCrossedByEdge
[CurveClassification::is_crossing_face]IsCrossingFace
[CurveClassification::has_near_misses]HasNearMisses
[CurveClassification::are_coincident_maybe], [CoincidentMaybe]AreCoincidentMaybe
[CurveClassification::classify_face_interval]ClassifyFaceInterval
[CurveClassification::test_for_partial_coincident_edges], [PartialCoincidence]TestForPartialCoincidentEdges
[set_do_filleting_geometry]sm_SetDoFilletingGeometry
[CurveClassification::curve] of the ownerSmCurveInterval::GetCurve
[curve_is_degenerate] (intersect.curve_class_p3)SmTol::IsDegenerate(const SmCurve*, SmExtent1d, SmXSectTol3d*) (CO-PORTED from geom.tol, with the tolerance given)
tol_is_closed_curve (private)SmTol::IsClosed(const SmObject*, SmXSectTol3d*) for a curve (CO-PORTED from geom.tol, with the tolerance given)

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