solidcore

Units / topology

topology.topology green

Layer
7
Upstream lines
389
Functions
30
Rust module
topology::topology

Source: crates/solidcore/src/topology/topology.rs

Upstream: source/SMLib/inc/SmTopology.h, source/SMLib/inc/SmTrackTopologyChanges.h, source/SMLib/src/SmTopology.cpp, source/SMLib/src/SmTrackTopologyChanges.cpp

Notes

GREEN: difftest 657 cases (57 upstream-derived/edge-case fixtures + 600 generated scripts: marks under SmNewMarkAndLock, flags/user values, Notify propagation for every operation incl. the callback pass-through, tolerance, IsConnectedTo, destruction, SmTrackTopologyChanges start/stop/nesting/foreign callback), 0 deferred, bit-identical; wired SmSAGObject::Notify (geom.a_object 169 -> 168 deferred) and retargeted the SmTol::GetZoneTol3d(SmObject*) markers to the derived-kind units; SmTopologyChangeCallback::Execute is unused upstream and not ported (findings.md); 30 fns; largest: SmTopology::Notify, SmTrackTopologyChanges::StartTracking, SmTrackTopologyChanges::StopTracking, SmTrackTopologyChanges::SmTrackTopologyChanges; cycle back-edges (call into later units; stub or co-port): topology.proto_topology_p1(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit

Difftest

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

Blocked by

Nothing: no deferred cases.

Report JSON (per-case results)

Dependencies

Depends on: geom.a_object partial geom.context green geom.object partial

Soft dependencies: geom.tol green

Dependents: blend.fillet_geom_p5 todo blend.fillet_geom_p6 todo heal.heal_data_p1 partial heal.heal_data_p3 partial heal.stitch_p1 claimed offset.offset_executive_p2 claimed query.face_p3 claimed query.face_p4 claimed query.poly partial sweep.topology_sweep claimed 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_p9 claimed topology.edge partial topology.edgeuse_p1 partial topology.edgeuse_p2 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 claimed topology.vertex partial topology.vertexuse partial

Soft dependents: blend.fillet_executive_p1 todo blend.fillet_executive_p2 todo blend.fillet_executive_p3 todo blend.hcr claimed boolean.merge_p1 partial boolean.merge_p4 todo boolean.merge_p5 partial heal.heal_data_p2 partial offset.offset_geometry_creation claimed primitive.primitive_creation_p1 claimed topology.topology_traverser partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmTopology::GetOwnerSmTopology.h:1281[Topology::owner]
SmTopology::IsConnectedToSmTopology.h:1301[Topology::is_connected_to]
SmTopology::GetNextSmTopology.h:1381[Topology::next], [Topology::last]
SmTopology::GetLastSmTopology.h:1391[Topology::next], [Topology::last]
SmTopology::GetAllFlagsSmTopology.h:1431[Topology::all_flags], [Topology::set_all_flags]
SmTopology::SetAllFlagsSmTopology.h:1441[Topology::all_flags], [Topology::set_all_flags]
SmTopology::SetUserIndex1SmTopology.h:1541[Topology::set_user_index1], [Topology::set_user_index2], [Topology::set_user_ptr1]
SmTopology::SetUserIndex2SmTopology.h:1551[Topology::set_user_index1], [Topology::set_user_index2], [Topology::set_user_ptr1]
SmTopology::SetUserPtr1SmTopology.h:1561[Topology::set_user_index1], [Topology::set_user_index2], [Topology::set_user_ptr1]
SmTopology::GetToleranceSmTopology.h:2201[Topology::tolerance]
SmTopology::GetClassStringSmTopology.h:2531[TYPE], [TYPE_STRING], [CLASS_STRING]
SmTopology::GetTypeSmTopology.h:2531[TYPE], [TYPE_STRING], [CLASS_STRING]
SmTopology::GetTypeStringSmTopology.h:2531[TYPE], [TYPE_STRING], [CLASS_STRING]
SmTopologyChangeCallback::SmTopologyChangeCallbackSmTrackTopologyChanges.h:10419[TopologyChangeLists]
SmTopologyChangeCallback::~SmTopologyChangeCallbackSmTrackTopologyChanges.h:14911[TopologyChangeLists::reset_arrays]
SmTopologyChangeCallback::ReSetArraysSmTrackTopologyChanges.h:19312[TopologyChangeLists::reset_arrays]
SmTrackTopologyChanges::~SmTrackTopologyChangesSmTrackTopologyChanges.h:3821[TrackTopologyChanges::finish]
SmTrackTopologyChanges::GetRmListSmTrackTopologyChanges.h:3901[TrackTopologyChanges::rm_list], [TrackTopologyChanges::add_list]
SmTrackTopologyChanges::GetAddListSmTrackTopologyChanges.h:3911[TrackTopologyChanges::rm_list], [TrackTopologyChanges::add_list]
SmTrackTopologyChanges::ReSetArraysSmTrackTopologyChanges.h:4061[TrackTopologyChanges::reset_arrays]
SmTopology::MarkSmTopology.cpp:6124[Topology::mark]
SmTopology::GetMarkSmTopology.cpp:11513[Topology::get_mark]
SmTopology::IsMarkedSmTopology.cpp:1345[Topology::is_marked]
SmTopology::NotifySmTopology.cpp:187131[notify]
SmTopology::~SmTopologySmTopology.cpp:3257[destroy_topology](crate::topology::proto_topology::p1::destroy_topology)
SmTopology::IsKindOfSmTopology.cpp:5864[is_kind_of]
SmTrackTopologyChanges::SmTrackTopologyChangesSmTrackTopologyChanges.cpp:40225[TrackTopologyChanges::new]
SmTrackTopologyChanges::StartTrackingSmTrackTopologyChanges.cpp:43457[TrackTopologyChanges::start_tracking]
SmTrackTopologyChanges::IsTrackingSmTrackTopologyChanges.cpp:4979[TrackTopologyChanges::is_tracking]
SmTrackTopologyChanges::StopTrackingSmTrackTopologyChanges.cpp:51255[TrackTopologyChanges::stop_tracking]
Module file-header table (29 rows)
RustUpstream
[TYPE], [TYPE_STRING], [CLASS_STRING]SmTopology::GetType, GetTypeString, GetClassString
[is_kind_of]SmTopology::IsKindOf
[Topology], [Topology::new]SmTopology (its data members), SmTopology()
[Topology::owner]SmTopology::GetOwner
[Topology::next], [Topology::last]SmTopology::GetNext, GetLast
[Topology::set_list_links]the friend writes of SmOwningTopology (SetListOwner, m_pNext, m_pLast)
[Topology::is_connected_to]SmTopology::IsConnectedTo(const SmTopology*)
[Topology::all_flags], [Topology::set_all_flags]SmTopology::GetAllFlags, SetAllFlags
[Topology::set_user_index1], [Topology::set_user_index2], [Topology::set_user_ptr1]SmTopology::SetUserIndex1, SetUserIndex2, SetUserPtr1
[Topology::user_index1], [Topology::user_index2], [Topology::user_ptr1]SmTopology::GetUserIndex1, GetUserIndex2, GetUserPtr1
[Topology::tolerance]SmTopology::GetTolerance (SM_USE_OLDTOL)
[Topology::mark]SmTopology::Mark
[Topology::get_mark]SmTopology::GetMark
[Topology::is_marked]SmTopology::IsMarked
[destroy_topology](crate::topology::proto_topology::p1::destroy_topology)SmTopology::~SmTopology (unit topology.proto_topology_p1)
[TopologyRecords]the SmTopology* casts of Notify's arguments
[notify]SmTopology::Notify
[NotifyEvent]SmNotifyEvent (data only)
[TopologyChangeLists]the arrays SmTopologyChangeCallback points at
[TopologyChangeLists::reset_arrays]SmTopologyChangeCallback::ReSetArrays, ~SmTopologyChangeCallback
[TopologyChangeCallback]SmTopologyChangeCallback (constructor)
[TrackTopologyChanges]SmTrackTopologyChanges
[TrackTopologyChanges::new]SmTrackTopologyChanges::SmTrackTopologyChanges
[TrackTopologyChanges::start_tracking]SmTrackTopologyChanges::StartTracking
[TrackTopologyChanges::stop_tracking]SmTrackTopologyChanges::StopTracking
[TrackTopologyChanges::is_tracking]SmTrackTopologyChanges::IsTracking
[TrackTopologyChanges::rm_list], [TrackTopologyChanges::add_list]SmTrackTopologyChanges::GetRmList, GetAddList
[TrackTopologyChanges::reset_arrays]SmTrackTopologyChanges::ReSetArrays
[TrackTopologyChanges::finish]SmTrackTopologyChanges::~SmTrackTopologyChanges

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