solidcore

Units / geom

geom.object partial

Layer
3
Upstream lines
673
Functions
38
Rust module
geom::object

Source: crates/solidcore/src/geom/object.rs

Upstream: source/SMLib/inc/SmObject.h, source/SMLib/inc/SmShape.h, source/SMLib/src/SmObject.cpp, source/SMLib/src/SmShape.cpp, source/SMLib/src/SmThreadLocalStorage.cpp

Notes

difftest: 624 cases (24 fixture + 600 generated), 593 pass bit-identical, 31 deferred (query.face_p1 11, topology.brep_p1 10, topology.vertex 6, topology.edge 4: every non-empty SmShape); NotifyCallback::execute added to geom.context (stays green); UNPORTED(geom.object) note in geom.tol retagged to topology.topology (SmTol object overloads need topology/curve/surface object types). 38 fns; largest: SmShape::SmShape, SmObject::Notify, SmThreadLocalStorage::SetBeenThroughNew, SmThreadLocalStorage::GetBeenThroughNew; cycle back-edges (call into later units; stub or co-port): query.poly(24), topology.proto_topology_p1(20), blend.fillet_solver_p1(16), blend.fillet_standard_solver_p1(12), blend.fillet_geom_p1(10), query.brep(7), blend.fillet_custom_solver(6), blend.fillet_executive_p1(6), geom.a_object(6), geom.grid(6), intersect.point_class(6), intersect.ray_tracer(6), query.tess(6), topology.edge(5), topology.topology(5), curve.composite_curve_p1(4), surface.cone_p1(4), topology.brep_p1(4), topology.loopuse(4), topology.shell(4), curve.curve_p2(3), surface.surface_p1(3), surface.surface_p2(3), topology.vertex(3), blend.fillet_corner_p1(2), boolean.merge_p1(2), boolean.topology_intersector_p1(2), curve.conic(2), curve.crv_in_volume(2), curve.crv_on_surf(2), curve.curve_cache(2), curve.ellipse_p1(2), curve.ellipse_p2(2), curve.hermite_curve(2), curve.hyperbola(2), curve.iso_curve(2), curve.line(2), curve.offset_curve(2), curve.parabola(2), curve.projected_curve(2), curve.tangent_field(2), geom.solution_array(2), geom.transform(2), intersect.curve_class_p1(2), nurbs.b_spline_curve_p1(2), nurbs.b_spline_surface_p1(2), surface.b_spline_volume(2), surface.bend_volume(2), surface.curve_bounded_surface(2), surface.offset_surface(2), surface.plane_p1(2), surface.sphere(2), surface.srf_in_volume(2), surface.surf_of_extrusion_p1(2), surface.surf_of_revolution_p1(2), surface.surface_cache_p1(2), surface.surface_cache_p2(2), surface.torus(2), surface.trim_srf_cache(2), surface.twist_volume(2), surface.unbend_volume(2), surface.volume_p1(2), sweep.topology_sweep(2), topology.brep_cache(2), topology.brep_data(2), topology.brep_p4(2), topology.edgeuse_p1(2), topology.edgeuse_p2(2), topology.face_p1(2), topology.face_p4(2), topology.vertexuse(2), curve.curve_p6(1), query.edge(1), query.face_p1(1), topology.face_p2(1); unit-SCC #22 (220 units); hazards: thread_local; 321 upstream test entry points reach this unit PR #125: non-empty face Shape construction now names the actual first missing query, SmFace::CalculateBoundingBox (query.face_p1); 624 cases, 593 compared bit-identical, 31 deferred, perturb 593/593.

Difftest

Cases
624
Passed
593
Deferred
31
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
query.face_p1 claimed11
topology.brep_p1 claimed10
topology.vertex partial6
topology.edge partial4

Report JSON (per-case results)

Dependencies

Depends on: geom.context green geom.extent3d green geom.tree partial

Soft dependencies: geom.attribute green

Dependents: blend.fillet_corner_p1 todo blend.fillet_corner_p2 todo blend.fillet_corner_p3 todo blend.fillet_custom_solver partial blend.fillet_executive_p1 todo blend.fillet_executive_p2 todo blend.fillet_executive_p3 todo blend.fillet_geom_p1 claimed blend.fillet_geom_p2 todo blend.fillet_geom_p3 todo blend.fillet_geom_p4 todo blend.fillet_geom_p5 todo blend.fillet_geom_p6 todo blend.fillet_solver_p1 claimed blend.fillet_solver_p2 todo blend.fillet_solver_p3 todo blend.fillet_solver_p5 claimed blend.fillet_standard_solver_p1 claimed blend.fillet_standard_solver_p2 todo boolean.merge_p1 partial boolean.merge_p2 todo boolean.merge_p3 todo boolean.merge_p4 todo boolean.merge_p5 partial boolean.topology_intersector_p1 partial curve.composite_curve_p1 green curve.composite_curve_p2 green curve.crv_in_volume partial curve.crv_on_surf partial curve.curve_cache green curve.curve_p1 partial curve.curve_p2 green curve.curve_p3 green curve.curve_p4 partial curve.curve_p5 partial curve.curve_p6 green curve.curve_p7 green curve.curve_p8 green curve.curve_p9 green curve.ellipse_p1 green curve.ellipse_p2 green curve.hyperbola green curve.iso_curve green curve.line green curve.offset_curve green curve.parabola green curve.projected_curve green geom.a_object partial geom.grid partial geom.solution_array partial geom.transform green heal.stitch_p1 claimed heal.stitch_p2 claimed intersect.curve_class_p1 partial intersect.curve_class_p2 claimed 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.point_class partial intersect.ray_tracer partial intersect.surface_drop_lib_p3 claimed intersect.topology_solver_p1 partial intersect.topology_solver_p2 partial mass.integrator partial nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p1 green nurbs.b_spline_curve_p2 green nurbs.b_spline_curve_p3 partial nurbs.b_spline_surface_n_lib_p1 green nurbs.b_spline_surface_n_lib_p2 partial nurbs.b_spline_surface_p2 partial offset.offset_executive_p1 claimed offset.offset_executive_p2 claimed offset.offset_geometry_creation claimed primitive.primitive_creation_p1 claimed primitive.primitive_creation_p3 todo query.api_queries partial query.brep claimed query.face_p1 claimed query.face_p2 partial query.face_p3 claimed query.face_p4 claimed query.poly partial query.tess partial surface.b_spline_volume_n_lib partial surface.bend_volume green surface.cone_p1 green surface.cone_p2 claimed surface.curve_bounded_surface green surface.offset_surface green surface.plane_p1 partial surface.plane_p2 partial surface.sphere green surface.srf_in_volume partial surface.surf_of_extrusion_p1 green surface.surf_of_extrusion_p2 partial surface.surf_of_revolution_p1 green surface.surf_of_revolution_p2 partial surface.surf_of_revolution_p3 partial surface.surface_cache_p1 green surface.surface_cache_p2 partial surface.surface_cache_p3 partial surface.surface_p1 partial surface.surface_p11 partial surface.surface_p2 partial surface.surface_p3 green surface.surface_p4 green surface.surface_p5 green surface.surface_p6 green surface.surface_p7 partial surface.surface_p8 partial surface.surface_p9 partial surface.surface_point_solve_p3 green surface.torus green surface.trim_srf_cache partial surface.twist_volume green surface.unbend_volume green surface.volume_p1 green sweep.rotational_sweep_geometry partial sweep.topology_sweep claimed topology.brep_cache partial topology.brep_data partial topology.brep_p1 claimed topology.brep_p10 claimed topology.brep_p2 claimed topology.brep_p3 claimed topology.brep_p4 claimed topology.brep_p5 claimed topology.brep_p6 claimed topology.brep_p7 claimed topology.brep_p8 claimed topology.brep_p9 claimed topology.edge partial topology.edgeuse_p1 partial topology.edgeuse_p2 partial topology.edgeuse_p3 claimed topology.face_p1 partial topology.face_p2 partial topology.face_p3 claimed topology.face_p4 claimed topology.loopuse partial topology.proto_topology_p1 partial topology.proto_topology_p2 partial topology.proto_topology_p3 partial topology.shell partial topology.topology green topology.trimming_tools partial topology.vertex partial topology.vertexuse partial

Soft dependents: blend.fillet_intersector claimed blend.hcr claimed boolean.topology_intersector_p2 claimed boolean.topology_intersector_p3 claimed geom.global_solver partial geom.tools partial heal.face_props partial heal.heal_data_p1 partial heal.heal_data_p2 partial heal.heal_data_p3 partial intersect.adv_surface_intersector partial intersect.surface_drop_curve partial intersect.surface_drop_lib_p2 green intersect.surface_intersector_p1 partial intersect.surface_intersector_p2 partial intersect.surface_intersector_p3 partial intersect.surface_intersector_p4 partial intersect.surface_intersector_p5 partial intersect.surface_tracer partial primitive.api_primitives claimed primitive.primitive_creation_p2 todo surface.surface_p10 partial surface.surface_point_solve_p1 green surface.surface_point_solve_p2 green sweep.api_brep partial sweep.api_surfaces partial sweep.trans_sweep_geometry partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmObject::GetContextSmObject.h:891
SmObject::SetContextSmObject.h:901
SmObject::GetTypeSmObject.h:1381[OBJECT_TYPE], [OBJECT_TYPE_STRING]
SmObject::GetTypeStringSmObject.h:1381[OBJECT_TYPE], [OBJECT_TYPE_STRING]
SmObject::IsKindOfSmObject.h:1381[is_kind_of]
SmObjDelete::SmObjDeleteSmObject.h:2201
SmObjDelete::SmObjDeleteSmObject.h:2211
SmObjDelete::~SmObjDeleteSmObject.h:2221
SmObjDelete::ClearSmObject.h:2251[TemporaryChangeValue::clear]
SmObjDelete::SetObjSmObject.h:2261
SmObjDelete::DeleteObjSmObject.h:2271
SmObjDelete::ReplaceObjSmObject.h:2281
SmTypedArrayDelete::SmTypedArrayDelete<TYPE>SmObject.h:2801
SmTypedArrayDelete::SmTypedArrayDelete<TYPE>SmObject.h:2811
SmTypedArrayDelete::~SmTypedArrayDelete<TYPE>SmObject.h:2821
SmTemporaryChangeValue::SmTemporaryChangeValue<TYPE>SmObject.h:3142[TemporaryChangeValue]
SmTemporaryChangeValue::SmTemporaryChangeValue<TYPE>SmObject.h:3162[TemporaryChangeValue]
SmTemporaryChangeValue::ClearSmObject.h:3181[TemporaryChangeValue::clear]
SmTemporaryChangeValue::~SmTemporaryChangeValue<TYPE>SmObject.h:3193
SmTemporaryChangeValue::SetSmObject.h:3226[TemporaryChangeValue::set]
SmShape::GetVertexTreeSmShape.h:811[Shape::vertex_tree], [Shape::curve_tree], [Shape::surface_tree]
SmShape::GetCurveTreeSmShape.h:821[Shape::vertex_tree], [Shape::curve_tree], [Shape::surface_tree]
SmShape::GetSurfaceTreeSmShape.h:831[Shape::vertex_tree], [Shape::curve_tree], [Shape::surface_tree]
SmShape::GetTypeSmShape.h:961[Shape::TYPE], [Shape::type_code], [Shape::type_string], [Shape::is_kind_of]
SmShape::GetTypeStringSmShape.h:961[OBJECT_TYPE], [OBJECT_TYPE_STRING]
SmObject::SmObjectSmObject.cpp:7913
SmObject::~SmObjectSmObject.cpp:943
SmObject::SmObjectSmObject.cpp:1028
SmObject::NotifySmObject.cpp:118155[notify]
SmObject::AssertValidSmObject.cpp:44512[assert_valid]
SmObject::DumpSmObject.cpp:98012
SmShape::SmShapeSmShape.cpp:34264[Shape], [Shape::new]
SmShape::~SmShapeSmShape.cpp:3047Drop (implicit)
SmShape::IsInShapeSmShape.cpp:32016[Shape::is_in_shape]
SmShape::IsKindOfSmShape.cpp:3414[is_kind_of]
SmThreadLocalStorage::SetBeenThroughNewSmThreadLocalStorage.cpp:20767
SmThreadLocalStorage::GetBeenThroughNewSmThreadLocalStorage.cpp:28048
SmThreadLocalStorage::GetErrCallbackFunctionSmThreadLocalStorage.cpp:59630
Module file-header table (21 rows)
RustUpstream
[OBJECT_TYPE], [OBJECT_TYPE_STRING]SmObject::GetType, SmObject::GetTypeString
[is_kind_of]SmObject::IsKindOf (SM_COMMON_BASE)
[ObjectRef]an SmObject* argument of Notify / Execute
[NotifyOperation]SmNotifyOperation
[notify]SmObject::Notify
[assert_valid]SmObject::AssertValid
[TemporaryChangeValue]SmTemporaryChangeValue<TYPE>
[TemporaryChangeValue::empty]SmTemporaryChangeValue()
[TemporaryChangeValue::new]SmTemporaryChangeValue(TYPE&, TYPE)
[TemporaryChangeValue::set]SmTemporaryChangeValue::Set
[TemporaryChangeValue::clear]SmTemporaryChangeValue::Clear
[TemporaryChangeValue::use_orig_value]SmTemporaryChangeValue::UseOrigValue
[TemporaryChangeValue::use_temp_value]SmTemporaryChangeValue::UseTempValue
[TemporaryChangeValue::set_new_value]SmTemporaryChangeValue::SetNewValue
Drop for TemporaryChangeValue~SmTemporaryChangeValue
[Shape], [Shape::new]SmShape, SmShape::SmShape
Drop (implicit)SmShape::~SmShape
[Shape::vertex_tree], [Shape::curve_tree], [Shape::surface_tree]SmShape::GetVertexTree, GetCurveTree, GetSurfaceTree
[Shape::faces], [Shape::edges], [Shape::vertices]SmShape::GetFaces, GetEdges, GetVertices
[Shape::is_in_shape]SmShape::IsInShape
[Shape::TYPE], [Shape::type_code], [Shape::type_string], [Shape::is_kind_of]SmShape::GetType, GetTypeString, IsKindOf

Upstream tests reaching this unit

prog_test:my_test_polynomial, SM_API_test:TestSmPrincipalDirectionPairing, prog_test:my_test_extent3d, prog_test:my_test_vector2d, prog_test:my_test_surface_closest_point, prog_test:my_test_drop_point