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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmTopology::GetOwner | SmTopology.h:128 | 1 | [Topology::owner] |
SmTopology::IsConnectedTo | SmTopology.h:130 | 1 | [Topology::is_connected_to] |
SmTopology::GetNext | SmTopology.h:138 | 1 | [Topology::next], [Topology::last] |
SmTopology::GetLast | SmTopology.h:139 | 1 | [Topology::next], [Topology::last] |
SmTopology::GetAllFlags | SmTopology.h:143 | 1 | [Topology::all_flags], [Topology::set_all_flags] |
SmTopology::SetAllFlags | SmTopology.h:144 | 1 | [Topology::all_flags], [Topology::set_all_flags] |
SmTopology::SetUserIndex1 | SmTopology.h:154 | 1 | [Topology::set_user_index1], [Topology::set_user_index2], [Topology::set_user_ptr1] |
SmTopology::SetUserIndex2 | SmTopology.h:155 | 1 | [Topology::set_user_index1], [Topology::set_user_index2], [Topology::set_user_ptr1] |
SmTopology::SetUserPtr1 | SmTopology.h:156 | 1 | [Topology::set_user_index1], [Topology::set_user_index2], [Topology::set_user_ptr1] |
SmTopology::GetTolerance | SmTopology.h:220 | 1 | [Topology::tolerance] |
SmTopology::GetClassString | SmTopology.h:253 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING] |
SmTopology::GetType | SmTopology.h:253 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING] |
SmTopology::GetTypeString | SmTopology.h:253 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING] |
SmTopologyChangeCallback::SmTopologyChangeCallback | SmTrackTopologyChanges.h:104 | 19 | [TopologyChangeLists] |
SmTopologyChangeCallback::~SmTopologyChangeCallback | SmTrackTopologyChanges.h:149 | 11 | [TopologyChangeLists::reset_arrays] |
SmTopologyChangeCallback::ReSetArrays | SmTrackTopologyChanges.h:193 | 12 | [TopologyChangeLists::reset_arrays] |
SmTrackTopologyChanges::~SmTrackTopologyChanges | SmTrackTopologyChanges.h:382 | 1 | [TrackTopologyChanges::finish] |
SmTrackTopologyChanges::GetRmList | SmTrackTopologyChanges.h:390 | 1 | [TrackTopologyChanges::rm_list], [TrackTopologyChanges::add_list] |
SmTrackTopologyChanges::GetAddList | SmTrackTopologyChanges.h:391 | 1 | [TrackTopologyChanges::rm_list], [TrackTopologyChanges::add_list] |
SmTrackTopologyChanges::ReSetArrays | SmTrackTopologyChanges.h:406 | 1 | [TrackTopologyChanges::reset_arrays] |
SmTopology::Mark | SmTopology.cpp:61 | 24 | [Topology::mark] |
SmTopology::GetMark | SmTopology.cpp:115 | 13 | [Topology::get_mark] |
SmTopology::IsMarked | SmTopology.cpp:134 | 5 | [Topology::is_marked] |
SmTopology::Notify | SmTopology.cpp:187 | 131 | [notify] |
SmTopology::~SmTopology | SmTopology.cpp:325 | 7 | [destroy_topology](crate::topology::proto_topology::p1::destroy_topology) |
SmTopology::IsKindOf | SmTopology.cpp:586 | 4 | [is_kind_of] |
SmTrackTopologyChanges::SmTrackTopologyChanges | SmTrackTopologyChanges.cpp:402 | 25 | [TrackTopologyChanges::new] |
SmTrackTopologyChanges::StartTracking | SmTrackTopologyChanges.cpp:434 | 57 | [TrackTopologyChanges::start_tracking] |
SmTrackTopologyChanges::IsTracking | SmTrackTopologyChanges.cpp:497 | 9 | [TrackTopologyChanges::is_tracking] |
SmTrackTopologyChanges::StopTracking | SmTrackTopologyChanges.cpp:512 | 55 | [TrackTopologyChanges::stop_tracking] |
Module file-header table (29 rows)
| Rust | Upstream |
|---|---|
[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