Units / geom
geom.a_object partial
- Layer
- 6
- Upstream lines
- 935
- Functions
- 36
- Rust module
geom::a_object
Source: crates/solidcore/src/geom/a_object.rs
Upstream: source/SMLib/inc/NLI_Math.h, source/SMLib/inc/SmAObject.h, source/SMLib/inc/SmCacheMgr.h, source/SMLib/inc/SmSAGObject.h, source/SMLib/src/SmAObject.cpp, source/SMLib/src/SmCacheMgr.cpp, source/SMLib/src/SmSAGObject.cpp
Notes
PARTIAL: re-run in PR #154 (topology.shell, region lookup from PR #80): 2040 cases, 1909 pass, 0 failed, 131 deferred (query.brep 131), max_rel_err 0; the 37 SmRegion::IsVoid cases pass through notify_with_regions. Earlier: PARTIAL: difftest 2040 cases (8 upstream-derived + 32 edge-case fixtures + 2000 generated: types, NLI helpers, notify/attribute/cache scripts), 1872 pass bit-identical, 168 deferred (query.brep 131: SmBrep::CalculateBoundingBox reached through the now-ported SmBrepCache (PR #115); topology.shell 37: SmRegion::IsVoid in SM_NO_REG_PROPAGATION; SmSAGObject::Notify wired by topology.topology); 50k-seed run clean; no UNPORTED(geom.a_object) stubs to wire (attribute-list methods stay co-ported in geom.attribute); 36 fns; largest: SmAObject::Notify, SmAObject::AssertValid, SmSAGObject::CacheMakeOrValidate, SmSAGObject::Notify; cycle back-edges (call into later units; stub or co-port): query.poly(13), topology.proto_topology_p1(9), blend.fillet_geom_p1(5), topology.brep_cache(3), topology.shell(3), surface.cone_p1(2), topology.loopuse(2), topology.topology(2), curve.composite_curve_p1(1), curve.conic(1), curve.crv_in_volume(1), curve.crv_on_surf(1), curve.curve_cache(1), curve.curve_p2(1), curve.ellipse_p1(1), curve.ellipse_p2(1), curve.hermite_curve(1), curve.hyperbola(1), curve.iso_curve(1), curve.line(1), curve.offset_curve(1), curve.parabola(1), curve.projected_curve(1), curve.tangent_field(1), nurbs.b_spline_curve_p1(1), nurbs.b_spline_surface_p1(1), query.tess(1), surface.b_spline_volume(1), surface.bend_volume(1), surface.curve_bounded_surface(1), surface.offset_surface(1), surface.plane_p1(1), surface.sphere(1), surface.srf_in_volume(1), surface.surf_of_extrusion_p1(1), surface.surf_of_revolution_p1(1), surface.surface_cache_p2(1), surface.surface_p1(1), surface.surface_p2(1), surface.torus(1), surface.trim_srf_cache(1), surface.twist_volume(1), surface.unbend_volume(1), surface.volume_p1(1), topology.brep_p4(1), topology.edge(1), topology.edgeuse_p1(1), topology.edgeuse_p2(1), topology.face_p1(1), topology.vertex(1), topology.vertexuse(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit; UNCOVERED (PR #154 review): geom_a_object.cpp never calls SmRegion::SetIsVoid, so other_solid = false (a_object.rs region propagation, SmAObject.cpp:310) is compared only on the solid side
Difftest
- Cases
- 2,040
- Passed
- 1,909
- Deferred
- 131
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
query.brep claimed | 131 |
Report JSON (per-case results)
Dependencies
Depends on: geom.assert_array green geom.attribute green geom.object partial
Soft dependencies: geom.tol green geom.transform green
Dependents: blend.fillet_executive_p1 todo blend.fillet_geom_p1 claimed blend.fillet_geom_p4 todo boolean.merge_p1 partial boolean.merge_p4 todo curve.composite_curve_p1 green curve.composite_curve_p2 green curve.curve_p1 partial curve.curve_p2 green curve.curve_p4 partial curve.curve_p5 partial curve.curve_p7 green curve.curve_p8 green curve.curve_p9 green intersect.surface_drop_lib_p3 claimed mass.integrator partial primitive.primitive_creation_p3 todo query.face_p1 claimed query.face_p2 partial query.poly partial surface.plane_p1 partial surface.surface_p1 partial surface.surface_p2 partial surface.surface_p7 partial surface.surface_p8 partial surface.volume_p1 green topology.brep_p1 claimed topology.brep_p10 claimed topology.brep_p2 claimed topology.brep_p5 claimed topology.brep_p9 claimed topology.edge partial topology.edgeuse_p3 claimed topology.face_p3 claimed topology.loopuse partial topology.proto_topology_p1 partial topology.topology green topology.vertexuse partial
Soft dependents: blend.fillet_corner_p1 todo blend.fillet_executive_p2 todo blend.fillet_executive_p3 todo blend.fillet_solver_p3 todo blend.hcr claimed boolean.merge_p3 todo boolean.merge_p5 partial intersect.curve_class_p1 partial intersect.curve_class_p9 partial intersect.surface_drop_curve partial intersect.surface_intersector_p4 partial intersect.surface_intersector_p5 partial intersect.surface_tracer partial intersect.topology_solver_p2 partial nlib.srf_nurb green offset.offset_executive_p1 claimed primitive.primitive_creation_p2 todo sweep.topology_sweep claimed topology.brep_cache partial topology.brep_data partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
NI_CPtToPtEuclid_specialized | NLI_Math.h:24 | 28 | [cpt_to_pt_euclid_specialized] |
NI_VectorBlendCPt_specialized | NLI_Math.h:59 | 20 | [vector_blend_cpt_specialized] |
SmAObject::~SmAObject | SmAObject.h:49 | 5 | [AObject::destroy] |
SmAObject::GetCacheObj | SmAObject.h:117 | 1 | [AObject::cache_obj], [AObject::set_cache_obj] |
SmAObject::SetCacheObj | SmAObject.h:118 | 1 | [AObject::cache_obj], [AObject::set_cache_obj] |
SmAObject::GetClassString | SmAObject.h:147 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING] |
SmAObject::GetClassType | SmAObject.h:147 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING] |
SmAObject::GetType | SmAObject.h:147 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING] |
SmAObject::GetTypeString | SmAObject.h:147 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING] |
SmCacheMgr::~SmCacheMgr | SmCacheMgr.h:441 | 1 | Drop (implicit) |
SmCacheCheckOutIn::SmCacheCheckOutIn | SmCacheMgr.h:499 | 3 | [CacheCheckOutIn] |
SmCacheCheckOutIn::~SmCacheCheckOutIn | SmCacheMgr.h:503 | 3 | |
SmSAGObject::GetClassString | SmSAGObject.h:111 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING] |
SmSAGObject::GetType | SmSAGObject.h:111 | 1 | [SAG_TYPE], [SAG_TYPE_STRING], [SAG_CLASS_STRING] |
SmSAGObject::GetTypeString | SmSAGObject.h:111 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING] |
SmAObject::ClearAttributes | SmAObject.cpp:22 | 34 | |
SmAObject::SmAObject | SmAObject.cpp:62 | 18 | [copy_construct] |
SmAObject::Notify | SmAObject.cpp:88 | 361 | [notify] |
SmAObject::AddAttribute | SmAObject.cpp:540 | 41 | |
SmAObject::RemoveAttribute | SmAObject.cpp:630 | 50 | |
SmAObject::GetAttributes | SmAObject.cpp:686 | 24 | |
SmAObject::FindAttribute | SmAObject.cpp:718 | 30 | |
SmAObject::CacheMakeOrValidate | SmAObject.cpp:909 | 14 | [cache_make_or_validate] |
SmAObject::AssertValid | SmAObject.cpp:940 | 59 | [assert_valid] |
SmAObject::IsKindOf | SmAObject.cpp:1047 | 4 | [is_kind_of] |
SmCacheMgr::CheckOutCache | SmCacheMgr.cpp:1181 | 9 | [CacheStore::check_out_cache] |
SmCacheMgr::CheckInCache | SmCacheMgr.cpp:1199 | 10 | [CacheStore::check_in_cache] |
SmCacheMgr::SoftDelete | SmCacheMgr.cpp:1216 | 12 | [CacheStore::soft_delete] |
SmCacheMgr::GetOrCreateObjectCache | SmCacheMgr.cpp:1256 | 36 | [get_or_create_object_cache] |
SmCacheMgr::GetObjectCache | SmCacheMgr.cpp:1300 | 20 | [get_object_cache] |
SmCacheMgr::DeleteObjectsCache | SmCacheMgr.cpp:1327 | 11 | [delete_objects_cache] |
SmCacheMgr::DeleteObjectsCache | SmCacheMgr.cpp:1345 | 16 | [delete_objects_cache] |
SmSAGObject::~SmSAGObject | SmSAGObject.cpp:21 | 8 | Drop (implicit) |
SmSAGObject::Notify | SmSAGObject.cpp:35 | 51 | [sag_notify] |
SmSAGObject::CacheMakeOrValidate | SmSAGObject.cpp:178 | 54 | [sag_cache_make_or_validate] |
SmSAGObject::IsKindOf | SmSAGObject.cpp:320 | 4 | [sag_is_kind_of] |
Module file-header table (27 rows)
| Rust | Upstream |
|---|---|
[TYPE], [TYPE_STRING], [CLASS_STRING] | SmAObject::GetType / GetClassType, GetTypeString, GetClassString |
[is_kind_of] | SmAObject::IsKindOf |
[assert_valid] | SmAObject::AssertValid |
[notify] | SmAObject::Notify |
[copy_construct] | SmAObject::SmAObject(const SmAObject&) |
[AObject] | SmAObject (its m_pCacheObj slot) |
[AObject::cache_obj], [AObject::set_cache_obj] | SmAObject::GetCacheObj, SetCacheObj |
[AObject::destroy] | SmAObject::~SmAObject |
[cache_make_or_validate] | SmAObject::CacheMakeOrValidate |
[CacheObj], [CacheStore], [CacheId] | SmCacheObj and the heap holding cache objects |
[CacheStore::check_out_cache] | SmCacheMgr::CheckOutCache |
[CacheStore::check_in_cache] | SmCacheMgr::CheckInCache |
[CacheStore::soft_delete] | SmCacheMgr::SoftDelete |
[get_or_create_object_cache] | SmCacheMgr::GetOrCreateObjectCache |
[get_object_cache] | SmCacheMgr::GetObjectCache |
[delete_objects_cache] | both SmCacheMgr::DeleteObjectsCache overloads |
[CacheCheckOutIn] | SmCacheCheckOutIn (constructor, destructor) |
[ObjectCacheType] | SmObjectCacheType |
[CacheMaker] | the virtual dispatch of CacheMakeOrValidate |
[SAG_TYPE], [SAG_TYPE_STRING], [SAG_CLASS_STRING] | SmSAGObject::GetType, GetTypeString, GetClassString |
[sag_is_kind_of] | SmSAGObject::IsKindOf |
[sag_notify] | SmSAGObject::Notify |
[sag_cache_make_or_validate] | SmSAGObject::CacheMakeOrValidate |
Drop (implicit) | SmSAGObject::~SmSAGObject, SmCacheMgr::~SmCacheMgr |
[BooleanOperation] | SmBooleanOperationType |
[cpt_to_pt_euclid_specialized] | NI_CPtToPtEuclid_specialized |
[vector_blend_cpt_specialized] | NI_VectorBlendCPt_specialized |
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