Units / intersect
intersect.point_class partial
- Layer
- 30
- Upstream lines
- 909
- Functions
- 53
- Rust module
intersect::point_class
Source: crates/solidcore/src/intersect/point_class.rs
Upstream: source/SMLib/inc/SmPointClass.h, source/SMLib/inc/SmSpaceBend.h, source/SMLib/inc/SmSpaceUnbend.h, source/SMLib/src/SmLineSegClass.cpp, source/SMLib/src/SmPointClass.cpp, source/SMLib/src/SmSpaceBend.cpp, source/SMLib/src/SmSpaceUnbend.cpp
Notes
PARTIAL: difftest 2511 cases (511 fixture: Combine precedence matrix, LoadFromIntersection kinds/offsets up to 9/8/7, curve and real SmEllipse/SmCircle projections, every class with a NULL object, tolerance sentinels incl. -SM_USE_DEFAULT; 2000 generated scripts), 2197 pass bit-identical, 314 deferred (surface.surface_p4 216, topology.vertex 49, topology.edge 27, topology.face_p2 15, topology.face_p4 4, topology.edgeuse_p1 3); review fixes: constructor stores its SmZoneTol3d as is, MergeIntoObject calls SmVertex::SetTolerance (SM_USE_OLDTOL), base SmTopology tolerance/IsConnectedTo for kinds without overrides, curve tolerance via Curve::edge; back-edges wired: surface.volume_p2 (SmVolume::GlobalPointSolve / EvaluatePoint; volume branch not exercised by the shim), SmTol point-classification overloads (geom.tol note), surface.trim_srf_cache face_point_classify now blocked only by query.face_p2. 53 fns; largest: SmPointClassification::MergeIntoObject, SmPointClassification::ComputePointParameters, SmPointClassification::Combine, SmPointClassification::GetGap3d; cycle back-edges (call into later units; stub or co-port): topology.vertex(8), topology.edge(7), topology.edgeuse_p1(5), topology.brep_p9(3), topology.face_p2(3), topology.face_p4(3), topology.brep_p4(2), topology.loopuse(2), topology.shell(1), topology.topology(1), topology.vertexuse(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit Re-run with surface.surface_p5's back-edges wired (PR #50): cases=2511 passed=2197 failed=0 deferred=314 max_rel_err=0e0 blocked_by=surface.surface_point_solve_p3(216),topology.edge(27),topology.edgeuse_p1(3),topology.face_p2(15),topology.face_p4(4),topology.vertex(49). Re-run with surface.surface_point_solve_p3 (PR #106): cases=2511 passed=2411 failed=0 deferred=100 max_rel_err=0.0 blocked_by=topology.edge(27),topology.edgeuse_p1(3),topology.face_p2(15),topology.face_p4(5),topology.vertex(50). Re-run after merging PR #106 (surface.surface_point_solve_p3 wired, 2026-10-15): 2511 cases, 2411 pass, 100 deferred (topology.edge 27, topology.edgeuse_p1 3, topology.face_p2 15, topology.face_p4 5, topology.vertex 50), 0 failed, max_rel_err 0. CO-PORTED in intersect.curve_class_p5 (PR #150): handle adapters for SmVertex::GetPoint, SmTol::GetZoneTol3d and SmVertexuse::GetVertexFaceGap -> ClassGeometry::{classification_vertex_point, topology_zone_tol_3d, vertex_face_gap}, plus the optional topology tolerance short-circuit in object_zone_tol_3d; these resolve caller-owned data and do not duplicate topology algorithms. Defaults preserve existing opaque-handle behavior. CO-PORTED in intersect.curve_class_p8 (PR #152): ClassObject::temporary (default None), handles for the temporary boundary curves/planes whose pointers sm_InsertSolutions records.
Difftest
- Cases
- 2,511
- Passed
- 2,411
- Deferred
- 100
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
topology.vertex partial | 50 |
topology.edge partial | 27 |
topology.face_p2 partial | 15 |
topology.face_p4 claimed | 5 |
topology.edgeuse_p1 partial | 3 |
Report JSON (per-case results)
Dependencies
Depends on: curve.curve_p2 green geom.object partial geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green surface.surface_p2 partial
Soft dependencies: curve.curve_p6 green geom.extent1d green geom.extent2d green surface.surface_p1 partial surface.surface_p4 green surface.surface_p7 partial surface.volume_p1 green surface.volume_p2 partial
Dependents: blend.fillet_geom_p1 claimed blend.fillet_solver_p2 todo blend.hcr claimed boolean.merge_p1 partial boolean.merge_p4 todo boolean.merge_p5 partial boolean.topology_intersector_p1 partial boolean.topology_intersector_p2 claimed boolean.topology_intersector_p3 claimed intersect.curve_class_p1 partial 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 intersect.curve_class_p7 partial intersect.curve_class_p8 partial intersect.curve_class_p9 partial intersect.ray_tracer partial query.api_queries partial query.brep claimed query.face_p1 claimed query.face_p2 partial topology.brep_p2 claimed topology.brep_p9 claimed topology.face_p2 partial topology.face_p4 claimed topology.proto_topology_p1 partial topology.proto_topology_p2 partial
Soft dependents: blend.fillet_geom_p2 todo blend.fillet_geom_p6 todo blend.fillet_solver_p1 claimed blend.fillet_solver_p3 todo blend.fillet_solver_p5 claimed intersect.topology_solver_p1 partial intersect.topology_solver_p2 partial primitive.primitive_creation_p3 todo query.face_p3 claimed query.face_p4 claimed topology.brep_p6 claimed topology.brep_p7 claimed topology.brep_p8 claimed topology.face_p1 partial topology.face_p3 claimed topology.proto_topology_p3 partial topology.shell partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmPointClassification::SmPointClassification | SmPointClass.h:105 | 3 | [PointClassification] |
SmPointClassification::~SmPointClassification | SmPointClass.h:109 | 1 | Drop (implicit) |
SmPointClassification::CopySSSPoint | SmPointClass.h:123 | 2 | [PointClassification::copy_sss_point] |
SmPointClassification::GetFace | SmPointClass.h:129 | 1 | [PointClassification::face] |
SmPointClassification::GetVertexObject | SmPointClass.h:131 | 1 | [PointClassification::vertex_object] |
SmPointClassification::GetEdgeObject | SmPointClass.h:132 | 1 | [PointClassification::edge_object] |
SmPointClassification::GetFaceObject | SmPointClass.h:133 | 1 | [PointClassification::face_object] |
SmPointClassification::SetFace | SmPointClass.h:135 | 1 | [PointClassification::set_face] |
SmPointClassification::GetPointClass | SmPointClass.h:143 | 1 | [PointClassification::point_class] |
SmPointClassification::GetObject | SmPointClass.h:145 | 1 | [PointClassification::object] |
SmPointClassification::GetDeviation | SmPointClass.h:151 | 1 | [PointClassification::deviation] |
SmPointClassification::GetTParam | SmPointClass.h:152 | 1 | [PointClassification::t_param] |
SmPointClassification::GetUVParam | SmPointClass.h:153 | 1 | [PointClassification::uv_param] |
SmPointClassification::AreParametersSet | SmPointClass.h:155 | 1 | [PointClassification::are_parameters_set] |
SmPointClassification::GetPreSnapParam | SmPointClass.h:157 | 1 | [PointClassification::pre_snap_param] |
SmPointClassification::GetSSSPointFlag | SmPointClass.h:158 | 1 | [PointClassification::sss_point_flag] |
SmPointClassification::GetSSSPoint | SmPointClass.h:159 | 1 | [PointClassification::sss_point] |
SmPointClassification::IsConnectedTo | SmPointClass.h:162 | 9 | [PointClassification::is_connected_to] |
SmPointClassification::SetContext | SmPointClass.h:172 | 1 | |
SmPointClassification::SetGap3d | SmPointClass.h:175 | 1 | [PointClassification::set_gap_3d] |
SmPointClassification::SetDeviation | SmPointClass.h:176 | 1 | [PointClassification::set_deviation] |
SmPointClassification::SetUVWParam | SmPointClass.h:179 | 1 | [PointClassification::set_uvw_param] |
SmPointClassification::UnSetParameters | SmPointClass.h:180 | 1 | [PointClassification::unset_parameters] |
SmPointClassification::SetPreSnapParam | SmPointClass.h:182 | 1 | [PointClassification::set_pre_snap_param] |
SmPointClassification::SetSSSPoint | SmPointClass.h:184 | 2 | [PointClassification::set_sss_point] |
SmPointClassification::GetTolerance | SmPointClass.h:194 | 1 | [PointClassification::tolerance] |
SmPointClassification::GetObjZoneTol3d | SmPointClass.h:197 | 1 | [PointClassification::obj_zone_tol_3d] |
SmPointClassification::GetSrcZoneTol3d | SmPointClass.h:198 | 1 | [PointClassification::src_zone_tol_3d] |
SmPointClassification::SetSrcZoneTol3d | SmPointClass.h:200 | 1 | [PointClassification::set_src_zone_tol_3d] |
SmSpaceBend::~SmSpaceBend | SmSpaceBend.h:221 | 6 | Drop (implicit) |
SmSpaceBend::GetType | SmSpaceBend.h:396 | 1 | [SPACE_BEND_TYPE_STRING], [space_bend_is_kind_of] |
SmSpaceBend::GetTypeString | SmSpaceBend.h:396 | 1 | [SPACE_BEND_TYPE_STRING], [space_bend_is_kind_of] |
SmSpaceUnbend::~SmSpaceUnbend | SmSpaceUnbend.h:226 | 6 | Drop (implicit) |
SmSpaceUnbend::GetType | SmSpaceUnbend.h:386 | 1 | [SPACE_UNBEND_TYPE_STRING], [space_unbend_is_kind_of] |
SmSpaceUnbend::GetTypeString | SmSpaceUnbend.h:386 | 1 | [SPACE_BEND_TYPE_STRING], [space_bend_is_kind_of] |
SmLineSegClassification::~SmLineSegClassification | SmLineSegClass.cpp:301 | 5 | Drop (implicit) |
SmPointClassification::ReSet | SmPointClass.cpp:43 | 19 | [PointClassification::reset] |
SmPointClassification::operator= | SmPointClass.cpp:68 | 30 | Clone / Copy (derived) |
SmPointClassification::CopyClassificationOnly | SmPointClass.cpp:141 | 30 | [PointClassification::copy_classification_only] |
SmPointClassification::GetBrep | SmPointClass.cpp:178 | 33 | [PointClassification::brep] |
SmPointClassification::SetClassObject | SmPointClass.cpp:257 | 38 | [PointClassification::set_class_object] |
SmPointClassification::SetTParam | SmPointClass.cpp:302 | 33 | [PointClassification::set_t_param] |
SmPointClassification::SetUVParam | SmPointClass.cpp:342 | 18 | [PointClassification::set_uv_param] |
SmPointClassification::GetCurveObject | SmPointClass.cpp:367 | 9 | [PointClassification::curve_object] |
SmPointClassification::GetGap3d | SmPointClass.cpp:418 | 63 | [PointClassification::gap_3d] |
SmPointClassification::IsConnectedTo | SmPointClass.cpp:487 | 22 | [PointClassification::is_connected_to] |
SmPointClassification::Combine | SmPointClass.cpp:534 | 102 | [PointClassification::combine], [Precedence] |
SmPointClassification::ComputePointParameters | SmPointClass.cpp:651 | 146 | [PointClassification::compute_point_parameters] |
SmPointClassification::FindObjPoint3d | SmPointClass.cpp:806 | 51 | [PointClassification::find_obj_point_3d] |
SmPointClassification::MergeIntoObject | SmPointClass.cpp:895 | 192 | [PointClassification::merge_into_object] |
SmPointClassification::LoadFromIntersection | SmPointClass.cpp:1102 | 53 | [PointClassification::load_from_intersection] |
SmSpaceBend::IsKindOf | SmSpaceBend.cpp:2369 | 4 | [ClassObject], [ClassObjectKind] |
SmSpaceUnbend::IsKindOf | SmSpaceUnbend.cpp:2187 | 4 | [ClassObject], [ClassObjectKind] |
Module file-header table (55 rows)
| Rust | Upstream |
|---|---|
[PointClassification] | SmPointClassification |
[PointClassType] | SmPointClassificationType |
[ClassObject], [ClassObjectKind] | the SmObject* stored in m_pObject (GetType, IsKindOf) |
[ClassGeometry] | the casts of m_pObject to SmCurve*, SmSurface*, SmVolume*, SmPoint3d* |
[PointClassification::new] | SmPointClassification(SmZoneTol3d, const SmContext*) |
Drop (implicit) | ~SmPointClassification |
[PointClassification::reset] | ReSet |
Clone / Copy (derived) | operator= |
[PointClassification::copy_classification_only] | CopyClassificationOnly |
[PointClassification::copy_sss_point] | CopySSSPoint |
[PointClassification::brep] | GetBrep |
[PointClassification::face] | GetFace |
[PointClassification::vertex_object] | GetVertexObject |
[PointClassification::edge_object] | GetEdgeObject |
[PointClassification::face_object] | GetFaceObject |
[PointClassification::set_face] | SetFace |
[PointClassification::merge_into_object] | MergeIntoObject |
[PointClassification::point_class] | GetPointClass |
[PointClassification::object] | GetObject |
[PointClassification::curve_object] | GetCurveObject |
[PointClassification::gap_3d] | GetGap3d |
[PointClassification::deviation] | GetDeviation |
[PointClassification::t_param] | GetTParam |
[PointClassification::uv_param] | GetUVParam |
[PointClassification::uvw_param] | GetUVWParam |
[PointClassification::are_parameters_set] | AreParametersSet |
[PointClassification::pre_snap_param] | GetPreSnapParam |
[PointClassification::sss_point_flag] | GetSSSPointFlag |
[PointClassification::sss_point] | GetSSSPoint |
[PointClassification::is_connected_to] | IsConnectedTo(const SmTopology*) |
[PointClassification::is_connected_to_any] | IsConnectedTo(const SmTArray<SmTopology*>&, ULONG&) |
[PointClassification::set_class_object] | SetClassObject |
[PointClassification::set_gap_3d] | SetGap3d |
[PointClassification::set_deviation] | SetDeviation |
[PointClassification::set_t_param] | SetTParam |
[PointClassification::set_uv_param] | SetUVParam |
[PointClassification::set_uvw_param] | SetUVWParam |
[PointClassification::unset_parameters] | UnSetParameters |
[PointClassification::set_pre_snap_param] | SetPreSnapParam |
[PointClassification::set_sss_point] | SetSSSPoint |
[PointClassification::tolerance] | GetTolerance |
[PointClassification::obj_zone_tol_3d] | GetObjZoneTol3d, SmTol::GetObjZoneTol3d(const SmPointClassification*) |
[PointClassification::src_zone_tol_3d] | GetSrcZoneTol3d, SmTol::GetSrcZoneTol3d(const SmPointClassification*) |
[object_zone_tol_3d] | SmTol::GetZoneTol3d(const SmObject*) |
[PointClassification::xsect_tol_3d] | SmTol::GetXSectTol3d(const SmPointClassification*) |
[PointClassification::set_src_zone_tol_3d] | SetSrcZoneTol3d |
[PointClassification::combine], [Precedence] | Combine |
[PointClassification::compute_point_parameters] | ComputePointParameters |
[PointClassification::find_obj_point_3d] | FindObjPoint3d |
[PointClassification::load_from_intersection] | LoadFromIntersection |
[MergeOutputs] | MergeIntoObject's pOptNewEdges, pOptNewVertices |
merge_vertex_neighborhood (private) | the position/tolerance tail of MergeIntoObject |
[SPACE_BEND_TYPE_STRING], [space_bend_is_kind_of] | SmSpaceBend::GetType, GetTypeString, IsKindOf |
[SPACE_UNBEND_TYPE_STRING], [space_unbend_is_kind_of] | SmSpaceUnbend::GetType, GetTypeString, IsKindOf |
Drop (implicit) | ~SmSpaceBend, ~SmSpaceUnbend, ~SmLineSegClassification |
Upstream tests reaching this unit
prog_test:my_test_extent3d, prog_test:my_test_vector2d, 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