Units / topology
topology.proto_topology_p2 partial
- Layer
- 48
- Upstream lines
- 2,091
- Functions
- 18
- Rust module
topology::proto_topology::p2
Source: crates/solidcore/src/topology/proto_topology/p2.rs
Upstream: source/SMLib/src/SmProtoTopology.cpp
Notes
PARTIAL (PR #114): difftest 1533 cases (1500 generated proto scripts with ops 91-108 of the shared topology.proto_topology_p1 engine, 30 edge cases (proto edge life cycle, resolve of same / closed / circle proto edges, edge split updates, combine every other WR-95, vertex definitions, imprint error returns, find-or-create) at unit/1e4/1e-4 scale, 3 upstream-derived fixtures (SM_API_test TestSmBoolean2DPlanarUnion boundary crossings at 1, 1e3, 1e-3)), 1228 pass bit-identical (max_rel_err 0), 305 deferred (topology.edge 123, topology.vertex 61, topology.face_p2 60, topology.face_p1 41, topology.brep_p9 20; SmProtoVertex::ContainsPoint wired by query.face_p2, surface point solves by surface.surface_point_solve_p3); --perturb SENSITIVE. 18 fns ported in topology::proto_topology::p2; B-rep members through the new ProtoBrep trait (no UNPORTED stubs into partial units); UNPORTED stubs: topology.brep_p5 (SmBrep::MakeEdgeInFace), topology.face_p1 (SmFace::CalculateUVDomainFromUVTrimCurves), query.face_p2 (sm_ClassifyParamOnFaces), surface.surface_p5 (SmSurface::DropPoint), topology.edgeuse_p3 (SmEdgeuse::EvaluateBinormal). Upstream defects UB-115..UB-118, WR-95. No UNPORTED(topology.proto_topology_p2) back-edges existed. Plan notes: 18 fns; largest: SmProtoTopologyManager::UpdateFaces, SmProtoTopologyManager::UpdateEdges, SmEdgeDefinition::Imprint, SmProtoTopologyManager::CanCombineVertexDefinitions; cycle back-edges (call into later units; stub or co-port): query.face_p2(1); unit-SCC #22 (220 units); 112 upstream test entry points reach this unit [PR #144: can_combine_vertex_definitions takes the ProtoTopology walks (are_connected of topology.proto_topology_p1 wired); re-run: cases=1533 passed=1247 failed=0 deferred=286 (topology.brep_p9 20, topology.edge 105, topology.face_p1 41, topology.face_p2 60, topology.vertex 60), --perturb SENSITIVE]
Difftest
- Cases
- 1,533
- Passed
- 1,247
- Deferred
- 286
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
topology.edge partial | 105 |
topology.face_p2 partial | 60 |
topology.vertex partial | 60 |
topology.face_p1 partial | 41 |
topology.brep_p9 claimed | 20 |
Report JSON (per-case results)
Dependencies
Depends on: curve.curve_p2 green geom.extent1d green geom.object partial geom.solution_array partial geom.tol green geom.vector3d green intersect.curve_class_p1 partial intersect.point_class partial topology.edge partial topology.face_p2 partial topology.proto_topology_p1 partial topology.topology green
Soft dependencies: curve.curve_p1 partial geom.extent2d green geom.vector2d green intersect.curve_class_p7 partial surface.surface_p2 partial surface.surface_p5 green topology.brep_p5 claimed topology.edgeuse_p3 claimed topology.face_p1 partial
Dependents: boolean.topology_intersector_p1 partial topology.proto_topology_p3 partial
Soft dependents: none
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmVertexDefinition::Imprint | SmProtoTopology.cpp:778 | 139 | [ProtoTopologyManager::imprint_vertex_definition] |
SmEdgeDefinition::Imprint | SmProtoTopology.cpp:1369 | 243 | [ProtoTopologyManager::imprint_edge_definition] |
SmProtoVertex::Resolve | SmProtoTopology.cpp:2278 | 90 | [ProtoTopologyManager::resolve_proto_vertex] |
SmProtoVertex::AddVertexDefinition | SmProtoTopology.cpp:2440 | 58 | [ProtoTopologyManager::add_vertex_definition_from_pcs] |
SmProtoEdge::FindMatchingEdgeDefinition | SmProtoTopology.cpp:3116 | 45 | [ProtoTopologyManager::find_matching_edge_definition] |
SmProtoEdge::AddEdgeDefinition | SmProtoTopology.cpp:3173 | 47 | [ProtoTopologyManager::add_edge_definition] |
SmProtoEdge::AddEdgeDefinition | SmProtoTopology.cpp:3230 | 59 | [ProtoTopologyManager::add_edge_definition] |
SmProtoEdge::CombineProtoEdge | SmProtoTopology.cpp:3296 | 44 | [ProtoTopologyManager::combine_proto_edge] |
SmProtoEdge::Resolve | SmProtoTopology.cpp:3391 | 124 | [ProtoTopologyManager::resolve_proto_edge] |
SmProtoTopologyManager::CreateVertexDefinition | SmProtoTopology.cpp:3743 | 24 | [ProtoTopologyManager::create_vertex_definition] |
SmProtoTopologyManager::CreateProtoVertex | SmProtoTopology.cpp:3943 | 41 | [ProtoTopologyManager::create_proto_vertex] |
SmProtoTopologyManager::FindOrCreateProtoVertex | SmProtoTopology.cpp:3992 | 34 | [ProtoTopologyManager::find_or_create_proto_vertex] |
SmProtoTopologyManager::FindProtoEdge | SmProtoTopology.cpp:4129 | 49 | [ProtoTopologyManager::find_proto_edge] |
SmProtoTopologyManager::CreateProtoEdge | SmProtoTopology.cpp:4186 | 66 | [ProtoTopologyManager::create_proto_edge] |
SmProtoTopologyManager::RemoveEdgeDefinition | SmProtoTopology.cpp:4317 | 22 | [ProtoTopologyManager::remove_edge_definition] |
SmProtoTopologyManager::UpdateEdges | SmProtoTopology.cpp:4975 | 306 | [ProtoTopologyManager::update_edges] |
SmProtoTopologyManager::UpdateFaces | SmProtoTopology.cpp:5287 | 560 | [ProtoTopologyManager::update_faces] |
SmProtoTopologyManager::CanCombineVertexDefinitions | SmProtoTopology.cpp:6284 | 140 | [ProtoTopologyManager::can_combine_vertex_definitions] |
Module file-header table (19 rows)
| Rust | Upstream |
|---|---|
[ProtoBrep] | the B-rep members these functions read through SmEdge* / SmFace* / SmVertex* (GetInterval, GetCurve, GetTolerance, GetUVDomain, SetUVDomain, GetSurface, GetEdgeuseOfFace, IsConnectedToFace) and SmCurve::Copy's allocation |
[ProtoTopologyManager::imprint_vertex_definition] | SmVertexDefinition::Imprint |
[ProtoTopologyManager::imprint_edge_definition] | SmEdgeDefinition::Imprint |
[ProtoTopologyManager::resolve_proto_vertex] | SmProtoVertex::Resolve |
[ProtoTopologyManager::add_vertex_definition_from_pcs] | SmProtoVertex::AddVertexDefinition(SmPointClassification&, SmPointClassification&, ..) |
[ProtoTopologyManager::find_matching_edge_definition] | SmProtoEdge::FindMatchingEdgeDefinition |
[ProtoTopologyManager::add_edge_definition] | SmProtoEdge::AddEdgeDefinition(SmEdgeDefinition*) |
[ProtoTopologyManager::add_edge_definition_from_intervals] | SmProtoEdge::AddEdgeDefinition(const SmCurveInterval&, const SmCurveInterval&) |
[ProtoTopologyManager::combine_proto_edge] | SmProtoEdge::CombineProtoEdge |
[ProtoTopologyManager::resolve_proto_edge] | SmProtoEdge::Resolve |
[ProtoTopologyManager::create_vertex_definition] | SmProtoTopologyManager::CreateVertexDefinition |
[ProtoTopologyManager::create_proto_vertex] | SmProtoTopologyManager::CreateProtoVertex |
[ProtoTopologyManager::find_or_create_proto_vertex] | SmProtoTopologyManager::FindOrCreateProtoVertex |
[ProtoTopologyManager::find_proto_edge] | SmProtoTopologyManager::FindProtoEdge |
[ProtoTopologyManager::create_proto_edge] | SmProtoTopologyManager::CreateProtoEdge |
[ProtoTopologyManager::remove_edge_definition] | SmProtoTopologyManager::RemoveEdgeDefinition |
[ProtoTopologyManager::update_edges] | SmProtoTopologyManager::UpdateEdges |
[ProtoTopologyManager::update_faces] | SmProtoTopologyManager::UpdateFaces |
[ProtoTopologyManager::can_combine_vertex_definitions] | SmProtoTopologyManager::CanCombineVertexDefinitions |
Upstream tests reaching this unit
prog_test:my_test_analytic_tsurf_creation, prog_test:my_test_get_loop_crossings, SM_API_test:TestSmBoolean2DPlanarUnion, prog_test:my_test_bbu, SM_API_test:TestSmMaterialCensus, SM_API_test:TestSmPiecewiseMerge