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 unit | Deferred cases |
|---|---|
query.face_p1 claimed | 11 |
topology.brep_p1 claimed | 10 |
topology.vertex partial | 6 |
topology.edge partial | 4 |
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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmObject::GetContext | SmObject.h:89 | 1 | |
SmObject::SetContext | SmObject.h:90 | 1 | |
SmObject::GetType | SmObject.h:138 | 1 | [OBJECT_TYPE], [OBJECT_TYPE_STRING] |
SmObject::GetTypeString | SmObject.h:138 | 1 | [OBJECT_TYPE], [OBJECT_TYPE_STRING] |
SmObject::IsKindOf | SmObject.h:138 | 1 | [is_kind_of] |
SmObjDelete::SmObjDelete | SmObject.h:220 | 1 | |
SmObjDelete::SmObjDelete | SmObject.h:221 | 1 | |
SmObjDelete::~SmObjDelete | SmObject.h:222 | 1 | |
SmObjDelete::Clear | SmObject.h:225 | 1 | [TemporaryChangeValue::clear] |
SmObjDelete::SetObj | SmObject.h:226 | 1 | |
SmObjDelete::DeleteObj | SmObject.h:227 | 1 | |
SmObjDelete::ReplaceObj | SmObject.h:228 | 1 | |
SmTypedArrayDelete::SmTypedArrayDelete<TYPE> | SmObject.h:280 | 1 | |
SmTypedArrayDelete::SmTypedArrayDelete<TYPE> | SmObject.h:281 | 1 | |
SmTypedArrayDelete::~SmTypedArrayDelete<TYPE> | SmObject.h:282 | 1 | |
SmTemporaryChangeValue::SmTemporaryChangeValue<TYPE> | SmObject.h:314 | 2 | [TemporaryChangeValue] |
SmTemporaryChangeValue::SmTemporaryChangeValue<TYPE> | SmObject.h:316 | 2 | [TemporaryChangeValue] |
SmTemporaryChangeValue::Clear | SmObject.h:318 | 1 | [TemporaryChangeValue::clear] |
SmTemporaryChangeValue::~SmTemporaryChangeValue<TYPE> | SmObject.h:319 | 3 | |
SmTemporaryChangeValue::Set | SmObject.h:322 | 6 | [TemporaryChangeValue::set] |
SmShape::GetVertexTree | SmShape.h:81 | 1 | [Shape::vertex_tree], [Shape::curve_tree], [Shape::surface_tree] |
SmShape::GetCurveTree | SmShape.h:82 | 1 | [Shape::vertex_tree], [Shape::curve_tree], [Shape::surface_tree] |
SmShape::GetSurfaceTree | SmShape.h:83 | 1 | [Shape::vertex_tree], [Shape::curve_tree], [Shape::surface_tree] |
SmShape::GetType | SmShape.h:96 | 1 | [Shape::TYPE], [Shape::type_code], [Shape::type_string], [Shape::is_kind_of] |
SmShape::GetTypeString | SmShape.h:96 | 1 | [OBJECT_TYPE], [OBJECT_TYPE_STRING] |
SmObject::SmObject | SmObject.cpp:79 | 13 | |
SmObject::~SmObject | SmObject.cpp:94 | 3 | |
SmObject::SmObject | SmObject.cpp:102 | 8 | |
SmObject::Notify | SmObject.cpp:118 | 155 | [notify] |
SmObject::AssertValid | SmObject.cpp:445 | 12 | [assert_valid] |
SmObject::Dump | SmObject.cpp:980 | 12 | |
SmShape::SmShape | SmShape.cpp:34 | 264 | [Shape], [Shape::new] |
SmShape::~SmShape | SmShape.cpp:304 | 7 | Drop (implicit) |
SmShape::IsInShape | SmShape.cpp:320 | 16 | [Shape::is_in_shape] |
SmShape::IsKindOf | SmShape.cpp:341 | 4 | [is_kind_of] |
SmThreadLocalStorage::SetBeenThroughNew | SmThreadLocalStorage.cpp:207 | 67 | |
SmThreadLocalStorage::GetBeenThroughNew | SmThreadLocalStorage.cpp:280 | 48 | |
SmThreadLocalStorage::GetErrCallbackFunction | SmThreadLocalStorage.cpp:596 | 30 |
Module file-header table (21 rows)
| Rust | Upstream |
|---|---|
[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