solidcore

Units / surface

surface.trim_srf_cache partial

Layer
23
Upstream lines
966
Functions
11
Rust module
surface::trim_srf_cache

Source: crates/solidcore/src/surface/trim_srf_cache.rs

Upstream: source/SMLib/inc/SmTrimSrfCache.h, source/SMLib/src/SmTrimSrfCache.cpp

Notes

query.tess wired (PR #83): 621 cases, 527 bit-identical, 0 failed, 94 deferred (surface.surface_p3 29, topology.brep_p8 60, topology.edgeuse_p1 5). PARTIAL: difftest 621 cases (21 fixture + 600 generated), 526 bit-identical, 0 failed, 95 deferred: surface.surface_p1 36, surface.surface_p3 29, surface.surface_p6 28, topology.edgeuse_p1 2 (surface.surface_cache_p3 wired; ImplantEu prints every node of the tree, including the children subdivisions make; splitting a boundary leaf moves its edge uses through TrimSrfCache::implant_edgeuse, which needs SmEdgeuse::GetUVTrimCurve). Perturbation: 526/526 detected. Generated ImplantEdgeuse cases now include negative-area face extents (FFI accepts unordered bounds). Resumed interrupted WIP 152e005; constructor, type/state, PointTest bypass and ImplantEdgeuse verified. Vertexuse/poly-edge bodies await surface.surface_p1; face construction/classification remain explicit Unported; subdivision of a node holding edge uses defers on topology.edgeuse_p1 (poly edges on query.poly). See findings.md and reports/difftest/surface.trim_srf_cache.json. 11 fns; largest: SmTrimSrfCache::ImplantEdgeuse, SmTrimSrfCache::BuildTree, SmTrimSrfCache::ImplantVertexuse, SmTrimSrfCache::ImplantPolyEdge; cycle back-edges (call into later units; stub or co-port): intersect.point_class(7), query.poly(5), surface.surface_cache_p3(5), query.face_p2(2), topology.face_p2(2), topology.face_p4(2), topology.loopuse(2), topology.vertexuse(2), query.tess(1), surface.surface_p1(1), surface.surface_p3(1), topology.edgeuse_p1(1), topology.face_p3(1), topology.vertex(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit

Difftest

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

Blocked by

Unported unitDeferred cases
topology.brep_p8 claimed60
topology.edgeuse_p1 partial7

Report JSON (per-case results)

Dependencies

Depends on: curve.curve_cache green geom.extent1d green geom.extent2d green geom.extent3d green geom.object partial geom.tol green geom.vector2d green geom.vector3d green surface.surface_cache_p1 green

Soft dependencies: geom.tree partial nurbs.b_spline_curve_p1 green nurbs.b_spline_curve_p2 green surface.surface_p2 partial

Dependents: query.tess partial

Soft dependents: surface.surface_cache_p3 partial surface.surface_p1 partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmTrimSrfCache::GetTypeSmTrimSrfCache.h:1491[TYPE], [TYPE_STRING], [TrimSrfCache::type_code], [TrimSrfCache::type_string]
SmTrimSrfCache::GetTypeStringSmTrimSrfCache.h:1491[TYPE], [TYPE_STRING], [TrimSrfCache::type_code], [TrimSrfCache::type_string]
SmTrimSrfCache::PointTestSmTrimSrfCache.cpp:5750[TrimSrfCache::point_test]
SmTrimSrfCache::BuildTreeSmTrimSrfCache.cpp:132289[TrimSrfCache::build_tree]
SmTrimSrfCache::ImplantEdgeuseSmTrimSrfCache.cpp:438313[TrimSrfCache::implant_edgeuse]
SmTrimSrfCache::ImplantPolyEdgeSmTrimSrfCache.cpp:76472[TrimSrfCache::implant_poly_edge], [PolyEdgeInput]
SmTrimSrfCache::ImplantVertexuseSmTrimSrfCache.cpp:844124[TrimSrfCache::implant_vertexuse], [VertexuseInput]
SmTrimSrfCache::SmTrimSrfCacheSmTrimSrfCache.cpp:97845[TrimSrfCache::new]
SmTrimSrfCache::~SmTrimSrfCacheSmTrimSrfCache.cpp:102913Drop (implicit)
SmTrimSrfCache::PointClassifySmTrimSrfCache.cpp:104854[TrimSrfCache::point_classify]
SmTrimSrfCache::IsKindOfSmTrimSrfCache.cpp:11074[is_kind_of], [TrimSrfCache::is_kind_of]
Module file-header table (11 rows)
RustUpstream
[TrimSrfCache]SmTrimSrfCache
[TrimSrfCache::new]SmTrimSrfCache::SmTrimSrfCache
Drop (implicit)SmTrimSrfCache::~SmTrimSrfCache
[TYPE], [TYPE_STRING], [TrimSrfCache::type_code], [TrimSrfCache::type_string]GetType, GetTypeString (SM_COMMON)
[is_kind_of], [TrimSrfCache::is_kind_of]SmTrimSrfCache::IsKindOf
[TrimSrfCache::point_test]SmTrimSrfCache::PointTest
[TrimSrfCache::point_classify]SmTrimSrfCache::PointClassify
[TrimSrfCache::build_tree]SmTrimSrfCache::BuildTree
[TrimSrfCache::implant_edgeuse]SmTrimSrfCache::ImplantEdgeuse
[TrimSrfCache::implant_poly_edge], [PolyEdgeInput]SmTrimSrfCache::ImplantPolyEdge
[TrimSrfCache::implant_vertexuse], [VertexuseInput]SmTrimSrfCache::ImplantVertexuse

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