solidcore

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 unitDeferred cases
query.brep claimed131

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 functionDefined atLinesRust (from the file header)
NI_CPtToPtEuclid_specializedNLI_Math.h:2428[cpt_to_pt_euclid_specialized]
NI_VectorBlendCPt_specializedNLI_Math.h:5920[vector_blend_cpt_specialized]
SmAObject::~SmAObjectSmAObject.h:495[AObject::destroy]
SmAObject::GetCacheObjSmAObject.h:1171[AObject::cache_obj], [AObject::set_cache_obj]
SmAObject::SetCacheObjSmAObject.h:1181[AObject::cache_obj], [AObject::set_cache_obj]
SmAObject::GetClassStringSmAObject.h:1471[TYPE], [TYPE_STRING], [CLASS_STRING]
SmAObject::GetClassTypeSmAObject.h:1471[TYPE], [TYPE_STRING], [CLASS_STRING]
SmAObject::GetTypeSmAObject.h:1471[TYPE], [TYPE_STRING], [CLASS_STRING]
SmAObject::GetTypeStringSmAObject.h:1471[TYPE], [TYPE_STRING], [CLASS_STRING]
SmCacheMgr::~SmCacheMgrSmCacheMgr.h:4411Drop (implicit)
SmCacheCheckOutIn::SmCacheCheckOutInSmCacheMgr.h:4993[CacheCheckOutIn]
SmCacheCheckOutIn::~SmCacheCheckOutInSmCacheMgr.h:5033
SmSAGObject::GetClassStringSmSAGObject.h:1111[TYPE], [TYPE_STRING], [CLASS_STRING]
SmSAGObject::GetTypeSmSAGObject.h:1111[SAG_TYPE], [SAG_TYPE_STRING], [SAG_CLASS_STRING]
SmSAGObject::GetTypeStringSmSAGObject.h:1111[TYPE], [TYPE_STRING], [CLASS_STRING]
SmAObject::ClearAttributesSmAObject.cpp:2234
SmAObject::SmAObjectSmAObject.cpp:6218[copy_construct]
SmAObject::NotifySmAObject.cpp:88361[notify]
SmAObject::AddAttributeSmAObject.cpp:54041
SmAObject::RemoveAttributeSmAObject.cpp:63050
SmAObject::GetAttributesSmAObject.cpp:68624
SmAObject::FindAttributeSmAObject.cpp:71830
SmAObject::CacheMakeOrValidateSmAObject.cpp:90914[cache_make_or_validate]
SmAObject::AssertValidSmAObject.cpp:94059[assert_valid]
SmAObject::IsKindOfSmAObject.cpp:10474[is_kind_of]
SmCacheMgr::CheckOutCacheSmCacheMgr.cpp:11819[CacheStore::check_out_cache]
SmCacheMgr::CheckInCacheSmCacheMgr.cpp:119910[CacheStore::check_in_cache]
SmCacheMgr::SoftDeleteSmCacheMgr.cpp:121612[CacheStore::soft_delete]
SmCacheMgr::GetOrCreateObjectCacheSmCacheMgr.cpp:125636[get_or_create_object_cache]
SmCacheMgr::GetObjectCacheSmCacheMgr.cpp:130020[get_object_cache]
SmCacheMgr::DeleteObjectsCacheSmCacheMgr.cpp:132711[delete_objects_cache]
SmCacheMgr::DeleteObjectsCacheSmCacheMgr.cpp:134516[delete_objects_cache]
SmSAGObject::~SmSAGObjectSmSAGObject.cpp:218Drop (implicit)
SmSAGObject::NotifySmSAGObject.cpp:3551[sag_notify]
SmSAGObject::CacheMakeOrValidateSmSAGObject.cpp:17854[sag_cache_make_or_validate]
SmSAGObject::IsKindOfSmSAGObject.cpp:3204[sag_is_kind_of]
Module file-header table (27 rows)
RustUpstream
[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