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 unit | Deferred cases |
|---|---|
topology.brep_p8 claimed | 60 |
topology.edgeuse_p1 partial | 7 |
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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmTrimSrfCache::GetType | SmTrimSrfCache.h:149 | 1 | [TYPE], [TYPE_STRING], [TrimSrfCache::type_code], [TrimSrfCache::type_string] |
SmTrimSrfCache::GetTypeString | SmTrimSrfCache.h:149 | 1 | [TYPE], [TYPE_STRING], [TrimSrfCache::type_code], [TrimSrfCache::type_string] |
SmTrimSrfCache::PointTest | SmTrimSrfCache.cpp:57 | 50 | [TrimSrfCache::point_test] |
SmTrimSrfCache::BuildTree | SmTrimSrfCache.cpp:132 | 289 | [TrimSrfCache::build_tree] |
SmTrimSrfCache::ImplantEdgeuse | SmTrimSrfCache.cpp:438 | 313 | [TrimSrfCache::implant_edgeuse] |
SmTrimSrfCache::ImplantPolyEdge | SmTrimSrfCache.cpp:764 | 72 | [TrimSrfCache::implant_poly_edge], [PolyEdgeInput] |
SmTrimSrfCache::ImplantVertexuse | SmTrimSrfCache.cpp:844 | 124 | [TrimSrfCache::implant_vertexuse], [VertexuseInput] |
SmTrimSrfCache::SmTrimSrfCache | SmTrimSrfCache.cpp:978 | 45 | [TrimSrfCache::new] |
SmTrimSrfCache::~SmTrimSrfCache | SmTrimSrfCache.cpp:1029 | 13 | Drop (implicit) |
SmTrimSrfCache::PointClassify | SmTrimSrfCache.cpp:1048 | 54 | [TrimSrfCache::point_classify] |
SmTrimSrfCache::IsKindOf | SmTrimSrfCache.cpp:1107 | 4 | [is_kind_of], [TrimSrfCache::is_kind_of] |
Module file-header table (11 rows)
| Rust | Upstream |
|---|---|
[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