Units / topology
topology.vertexuse partial
- Layer
- 37
- Upstream lines
- 1,429
- Functions
- 29
- Rust module
topology::vertexuse
Source: crates/solidcore/src/topology/vertexuse.rs
Upstream: source/SMLib/inc/SmVertexuse.h, source/SMLib/src/SmVertexuse.cpp
Notes
PARTIAL: SmSurface::GetSingularities wired to surface.surface_p3 (has_singularities takes &Kernel): difftest 2686 cases, 2250 pass, 436 deferred (topology.edgeuse_p3 346, topology.face_p2 90), max_rel_err 0. History: (after heal.gap wired CalcVertexEdgeGap/CalcVertexFaceGap: 2250 pass, 436 deferred (topology.edgeuse_p3 346, surface.surface_p3 90); after topology.face_p2 wired GetUVDomain/GetTolerance: 1928 pass, 758 deferred (topology.edgeuse_p3 346, heal.gap 322, surface.surface_p3 90); originally 2670 fixture: 870 on 15 upstream .smb B-reps read by SmBrep::ReadFromFile, with and without RebuildUVTrimCurves; 972 on prog_test my_test_topology's wire network, wire edges and faces from B-spline surfaces and SmPlanes; 828 adversarial: huge/tiny planes, tiny and huge (1e5, out-of-bounds) B-spline faces, pinched (pole) surface, sub-domain and sliver faces, tiny and huge wire edges; 16 generated, 2000 more checked once), 1621 pass, 1065 deferred (topology.face_p2 536, heal.gap 403, surface.surface_p3 126), max_rel_err 0; --perturb SENSITIVE. Runner imports the shim's exported graph into topology::Brep (as topology.edgeuse_p1). ComputeUVPoint/ComputeUVSector on faces defer at SmFace::GetUVDomain; their remaining bodies are ported behind stubs (NormalizedEvaluate, Local/GlobalPointSolve, IsSingularity, IsOnSeam, SmLoopuse::GetOrientation). Co-ports: SmVertexEdgeGap record (heal.gap), SmVertex::GetVertexuses/GetVertexusesOfEdge/GetVertexusesOfFace by arena scan (topology.vertex), SmEdge::IsWire (topology.edge); Vertexuse gains vertex_edge_gap and uv_point. Back-edge stubs UNPORTED(topology.vertexuse) in surface::trim_srf_cache and intersect::point_class not wired (opaque handles without a Brep; plan/findings.md). Plan notes: 29 fns; largest: SmVertexuse::ComputeUVSector, SmVertexuse::ComputeUVPoint, SmVertexuse::CalcVertexFaceGap, SmVertexuse::Notify; cycle back-edges (call into later units; stub or co-port): heal.gap(11), topology.edge(6), topology.vertex(5), topology.loopuse(4), blend.fillet_geom_p1(1), topology.edgeuse_p3(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit; CO-PORTED in topology.edgeuse_p1 (PR #55): SmVertexuse members (owner vertex, m_tVertexuseType/m_pSorLUorEU, m_sVertexFaceGap3d) -> topology::{Vertexuse, VertexuseOwner}; SmVertexuse::GetEdgeuse -> topology::edgeuse::p1::vertexuse_edgeuse
Difftest
- Cases
- 2,686
- Passed
- 2,250
- Deferred
- 436
- Failed
- 0
- Both errored
- 343
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
topology.edgeuse_p3 claimed | 346 |
topology.face_p2 partial | 90 |
Report JSON (per-case results)
Dependencies
Depends on: geom.a_object partial geom.extent1d green geom.extent2d green geom.object partial geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green surface.surface_p7 partial topology.edgeuse_p1 partial topology.face_p2 partial topology.topology green
Soft dependencies: curve.curve_p2 green surface.surface_p1 partial surface.surface_p2 partial surface.surface_p3 green surface.surface_p4 green surface.surface_p5 green topology.shell claimed
Dependents: blend.fillet_corner_p1 todo blend.fillet_geom_p1 claimed blend.fillet_geom_p2 todo heal.gap partial topology.brep_p1 claimed topology.brep_p2 claimed topology.brep_p3 claimed topology.brep_p4 claimed topology.brep_p5 claimed topology.brep_p9 claimed topology.edge partial topology.face_p1 partial topology.face_p4 claimed topology.loopuse partial topology.topology_traverser partial topology.vertex partial
Soft dependents: blend.fillet_corner_p2 todo blend.fillet_corner_p3 todo blend.fillet_executive_p1 todo blend.fillet_geom_p3 todo blend.fillet_geom_p4 todo blend.fillet_geom_p5 todo blend.fillet_geom_p6 todo blend.fillet_solver_p1 claimed blend.fillet_solver_p2 todo blend.fillet_solver_p3 todo blend.fillet_solver_p4 claimed blend.fillet_standard_solver_p2 todo blend.hcr claimed boolean.merge_p2 todo heal.face_props partial heal.heal_data_p2 partial heal.heal_data_p3 partial offset.offset_executive_p1 claimed offset.offset_geometry_creation claimed query.face_p3 claimed sweep.topology_sweep claimed topology.brep_p10 claimed topology.brep_p6 claimed topology.brep_p7 claimed topology.face_p3 claimed topology.trimming_tools partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmVertexuse::SmVertexuse | SmVertexuse.h:140 | 7 | [crate::topology::Vertexuse] |
SmVertexuse::~SmVertexuse | SmVertexuse.h:149 | 8 | [crate::topology::Vertexuse] |
SmVertexuse::GetVertexuseType | SmVertexuse.h:204 | 1 | [vertexuse_type] |
SmVertexuse::GetVertex | SmVertexuse.h:228 | 1 | [vertex] |
SmVertexuse::InitVertexFaceGap | SmVertexuse.h:250 | 1 | [init_vertex_face_gap] |
SmVertexuse::IsLoopVertexuse | SmVertexuse.h:269 | 1 | [is_loop_vertexuse], [is_shell_vertexuse], [is_edge_vertexuse] |
SmVertexuse::IsShellVertexuse | SmVertexuse.h:270 | 1 | [is_loop_vertexuse], [is_shell_vertexuse], [is_edge_vertexuse] |
SmVertexuse::IsEdgeVertexuse | SmVertexuse.h:271 | 1 | [is_loop_vertexuse], [is_shell_vertexuse], [is_edge_vertexuse] |
SmVertexuse::GetClassString | SmVertexuse.h:305 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING], [is_kind_of] |
SmVertexuse::GetType | SmVertexuse.h:305 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING], [is_kind_of] |
SmVertexuse::GetTypeString | SmVertexuse.h:305 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING], [is_kind_of] |
SmVertexuse::ComputeUVPoint | SmVertexuse.cpp:162 | 471 | [compute_uv_point] |
SmVertexuse::ComputeUVSector | SmVertexuse.cpp:688 | 498 | [compute_uv_sector], [UvSectorIo], [UvSector] |
SmVertexuse::GetEdgeuse | SmVertexuse.cpp:1312 | 9 | [edgeuse], [faceuse], [loopuse], [shell] |
SmVertexuse::GetFaceuse | SmVertexuse.cpp:1328 | 26 | [edgeuse], [faceuse], [loopuse], [shell] |
SmVertexuse::GetShell | SmVertexuse.cpp:1360 | 31 | [edgeuse], [faceuse], [loopuse], [shell] |
SmVertexuse::HasVertexEdgeGap | SmVertexuse.cpp:1423 | 13 | [has_vertex_edge_gap], [has_vertex_face_gap] |
SmVertexuse::HasVertexFaceGap | SmVertexuse.cpp:1468 | 30 | [has_vertex_edge_gap], [has_vertex_face_gap] |
SmVertexuse::IsConnectedTo | SmVertexuse.cpp:1572 | 39 | [is_connected_to] |
SmVertexuse::GetVertexEdgeGap | SmVertexuse.cpp:1619 | 19 | [vertex_edge_gap], [vertex_face_gap] |
SmVertexuse::GetVertexFaceGap | SmVertexuse.cpp:1646 | 19 | [vertex_edge_gap], [vertex_face_gap] |
SmVertexuse::CalcVertexEdgeGap | SmVertexuse.cpp:1672 | 50 | [calc_vertex_edge_gap], [calc_vertex_face_gap] |
SmVertexuse::CalcVertexFaceGap | SmVertexuse.cpp:1784 | 55 | [calc_vertex_edge_gap], [calc_vertex_face_gap] |
SmVertexuse::IsStrutVertexuse | SmVertexuse.cpp:1882 | 15 | [is_strut_vertexuse], [is_on_pole] |
SmVertexuse::IsOnPole | SmVertexuse.cpp:1903 | 35 | [is_strut_vertexuse], [is_on_pole] |
SmVertexuse::IsSectorMissingSeam | SmVertexuse.cpp:2005 | 27 | [is_sector_missing_seam], [MissingSeam] |
SmVertexuse::GetLoopuse | SmVertexuse.cpp:2344 | 12 | [edgeuse], [faceuse], [loopuse], [shell] |
SmVertexuse::Notify | SmVertexuse.cpp:2366 | 52 | [notify] |
SmVertexuse::IsKindOf | SmVertexuse.cpp:3268 | 4 | [TYPE], [TYPE_STRING], [CLASS_STRING], [is_kind_of] |
Module file-header table (17 rows)
| Rust | Upstream |
|---|---|
[TYPE], [TYPE_STRING], [CLASS_STRING], [is_kind_of] | SmVertexuse::GetType, GetTypeString, GetClassString, IsKindOf |
[crate::topology::Vertexuse] | SmVertexuse (members; Default is SmVertexuse(), Drop ~SmVertexuse) |
[vertexuse_type] | SmVertexuse::GetVertexuseType |
[vertex] | SmVertexuse::GetVertex |
[is_loop_vertexuse], [is_shell_vertexuse], [is_edge_vertexuse] | SmVertexuse::IsLoopVertexuse, IsShellVertexuse, IsEdgeVertexuse |
[edgeuse], [faceuse], [loopuse], [shell] | SmVertexuse::GetEdgeuse, GetFaceuse, GetLoopuse, GetShell |
[has_vertex_edge_gap], [has_vertex_face_gap] | SmVertexuse::HasVertexEdgeGap, HasVertexFaceGap |
[vertex_edge_gap], [vertex_face_gap] | SmVertexuse::GetVertexEdgeGap, GetVertexFaceGap |
[calc_vertex_edge_gap], [calc_vertex_face_gap] | SmVertexuse::CalcVertexEdgeGap, CalcVertexFaceGap |
[init_vertex_face_gap] | SmVertexuse::InitVertexFaceGap |
[is_connected_to] | SmVertexuse::IsConnectedTo |
[is_strut_vertexuse], [is_on_pole] | SmVertexuse::IsStrutVertexuse, IsOnPole |
[is_sector_missing_seam], [MissingSeam] | SmVertexuse::IsSectorMissingSeam |
[compute_uv_point] | SmVertexuse::ComputeUVPoint |
[compute_uv_sector], [UvSectorIo], [UvSector] | SmVertexuse::ComputeUVSector, SmUVSectorIO |
[notify] | SmVertexuse::Notify |
[edge_is_wire] | SmEdge::IsWire (CO-PORTED, topology.edge) |
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