solidcore

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 unitDeferred cases
topology.edgeuse_p3 claimed346
topology.face_p2 partial90

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 functionDefined atLinesRust (from the file header)
SmVertexuse::SmVertexuseSmVertexuse.h:1407[crate::topology::Vertexuse]
SmVertexuse::~SmVertexuseSmVertexuse.h:1498[crate::topology::Vertexuse]
SmVertexuse::GetVertexuseTypeSmVertexuse.h:2041[vertexuse_type]
SmVertexuse::GetVertexSmVertexuse.h:2281[vertex]
SmVertexuse::InitVertexFaceGapSmVertexuse.h:2501[init_vertex_face_gap]
SmVertexuse::IsLoopVertexuseSmVertexuse.h:2691[is_loop_vertexuse], [is_shell_vertexuse], [is_edge_vertexuse]
SmVertexuse::IsShellVertexuseSmVertexuse.h:2701[is_loop_vertexuse], [is_shell_vertexuse], [is_edge_vertexuse]
SmVertexuse::IsEdgeVertexuseSmVertexuse.h:2711[is_loop_vertexuse], [is_shell_vertexuse], [is_edge_vertexuse]
SmVertexuse::GetClassStringSmVertexuse.h:3051[TYPE], [TYPE_STRING], [CLASS_STRING], [is_kind_of]
SmVertexuse::GetTypeSmVertexuse.h:3051[TYPE], [TYPE_STRING], [CLASS_STRING], [is_kind_of]
SmVertexuse::GetTypeStringSmVertexuse.h:3051[TYPE], [TYPE_STRING], [CLASS_STRING], [is_kind_of]
SmVertexuse::ComputeUVPointSmVertexuse.cpp:162471[compute_uv_point]
SmVertexuse::ComputeUVSectorSmVertexuse.cpp:688498[compute_uv_sector], [UvSectorIo], [UvSector]
SmVertexuse::GetEdgeuseSmVertexuse.cpp:13129[edgeuse], [faceuse], [loopuse], [shell]
SmVertexuse::GetFaceuseSmVertexuse.cpp:132826[edgeuse], [faceuse], [loopuse], [shell]
SmVertexuse::GetShellSmVertexuse.cpp:136031[edgeuse], [faceuse], [loopuse], [shell]
SmVertexuse::HasVertexEdgeGapSmVertexuse.cpp:142313[has_vertex_edge_gap], [has_vertex_face_gap]
SmVertexuse::HasVertexFaceGapSmVertexuse.cpp:146830[has_vertex_edge_gap], [has_vertex_face_gap]
SmVertexuse::IsConnectedToSmVertexuse.cpp:157239[is_connected_to]
SmVertexuse::GetVertexEdgeGapSmVertexuse.cpp:161919[vertex_edge_gap], [vertex_face_gap]
SmVertexuse::GetVertexFaceGapSmVertexuse.cpp:164619[vertex_edge_gap], [vertex_face_gap]
SmVertexuse::CalcVertexEdgeGapSmVertexuse.cpp:167250[calc_vertex_edge_gap], [calc_vertex_face_gap]
SmVertexuse::CalcVertexFaceGapSmVertexuse.cpp:178455[calc_vertex_edge_gap], [calc_vertex_face_gap]
SmVertexuse::IsStrutVertexuseSmVertexuse.cpp:188215[is_strut_vertexuse], [is_on_pole]
SmVertexuse::IsOnPoleSmVertexuse.cpp:190335[is_strut_vertexuse], [is_on_pole]
SmVertexuse::IsSectorMissingSeamSmVertexuse.cpp:200527[is_sector_missing_seam], [MissingSeam]
SmVertexuse::GetLoopuseSmVertexuse.cpp:234412[edgeuse], [faceuse], [loopuse], [shell]
SmVertexuse::NotifySmVertexuse.cpp:236652[notify]
SmVertexuse::IsKindOfSmVertexuse.cpp:32684[TYPE], [TYPE_STRING], [CLASS_STRING], [is_kind_of]
Module file-header table (17 rows)
RustUpstream
[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