Units / surface
surface.surface_cache_p2 partial
- Layer
- 24
- Upstream lines
- 1,245
- Functions
- 7
- Rust module
surface::surface_cache::p2
Source: crates/solidcore/src/surface/surface_cache/p2.rs
Upstream: source/SMLib/src/SmSurfaceCache.cpp
Notes
Review validation: 905 cases, 808 bit-identical, 0 failed, 97 deferred (intersect.curve_class_p4 1, surface.surface_cache_p1 53, surface.surface_p5 43); --perturb detected 751/751; max_rel_err=0. surface_p9 FindTessellationSplits wired with the caller Kernel; remaining deferrals are recorded in the current report. Historical notes: PARTIAL: difftest 905 cases (105 fixture + 800 generated), 749 pass bit-identical, 156 deferred (after surface.surface_p7 wired SmSurface::EvaluateNormal, PR #24: 28 more compared; counts below are from before that: surface.plane_p1 53: SmPlane::CreateIsoParametricCurve in bounding planes and size tolerances; surface.surface_p1 47: SmSurface::GetFace in the B-spline bounding box of SM_AD_AUX_DATA nodes; surface.surface_p5 43: SmSurface::IsSingularity 35 in the Bezier approximation of B-splines, SmSurface::CreateIsoParametricCurve 8 of curve-bounded surfaces; surface.surface_p7 28: SmSurface::EvaluateNormal in bounding planes; surface.surface_p9 13: SmSurface::FindTessellationSplits in every SubdivideByBlock with a surface); --perturb SENSITIVE 721/721; wired the SmPlane override of IsSingularity into the surface cache Bezier approximation (p1 helper); no co-ports; 7 fns; largest: SmSurfaceCache::TestAgainstTolerances, SmSurfaceCache::SubdivideByBlock, sm_CreateApproximateBezierPatchBlock, sm_CreateBezierPatchBlock; cycle back-edges (call into later units; stub or co-port): surface.surface_p1(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit Re-run with surface.surface_p5's back-edges wired (PR #50): cases=905 passed=796 failed=0 deferred=109 max_rel_err=0e0 blocked_by=surface.surface_cache_p1(53),surface.surface_p3(43),surface.surface_p9(13). Re-run (PR #52, after merging surface_p4/#49 and surface_p5/#50): 905 cases, 843 pass, 62 deferred (surface.surface_cache_p1 53, curve.iso_curve 8, intersect.curve_class_p4 1). Re-run after merging PR #106 (surface.surface_point_solve_p3 wired, 2026-10-15): 905 cases, 851 pass, 54 deferred (intersect.curve_class_p4 1, surface.surface_cache_p1 53), 0 failed, max_rel_err 0.
Difftest
- Cases
- 905
- Passed
- 851
- Deferred
- 54
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
surface.surface_cache_p1 green | 53 |
intersect.curve_class_p4 claimed | 1 |
Report JSON (per-case results)
Dependencies
Depends on: geom.extent2d green geom.object partial geom.vector3d green nurbs.b_spline_surface_p1 green nurbs.nurbs_srf green surface.surface_cache_p1 green surface.surface_p2 partial
Soft dependencies: curve.curve_p5 partial curve.iso_curve green geom.extent1d green geom.extent3d green geom.pseudo_box green geom.tol green geom.tree partial geom.vector2d green nlib.knots green nlib.srf_basic green nlib.srf_nurb green nurbs.b_spline_curve_p1 green nurbs.b_spline_surface_p2 partial surface.surface_p9 partial
Dependents: query.tess partial surface.surface_cache_p3 partial
Soft dependents: intersect.surface_intersector_p2 partial intersect.topology_solver_p1 partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmPatchBoundaryBoundingPlanes::GetNthBoundingPlane | SmSurfaceCache.cpp:628 | 43 | [PatchBoundaryBoundingPlanes::nth_bounding_plane], [NthBoundingPlane], [BoundingPlane] |
SmSurfaceCache::AddCurvesToCache | SmSurfaceCache.cpp:1469 | 35 | [SurfaceCache::add_curves_to_cache] |
SmSurfaceCache::TestAgainstTolerances | SmSurfaceCache.cpp:3461 | 528 | [SurfaceCache::test_against_tolerances], [ToleranceTest] |
SmSurfaceCache::SubdivideByBlock | SmSurfaceCache.cpp:4027 | 433 | [SurfaceCache::subdivide_by_block] |
sm_CreateBezierPatchBlock | SmSurfaceCache.cpp:4785 | 69 | [create_bezier_patch_block], [BezierPatchBlock] |
sm_CreateApproximateBezierPatchBlock | SmSurfaceCache.cpp:4860 | 107 | [create_approximate_bezier_patch_block], [ApproximateBezierPatchBlock] |
SmSurfaceCache::~SmSurfaceCache | SmSurfaceCache.cpp:5898 | 30 | Drop (implicit) |
Module file-header table (7 rows)
| Rust | Upstream |
|---|---|
[PatchBoundaryBoundingPlanes::nth_bounding_plane], [NthBoundingPlane], [BoundingPlane] | SmPatchBoundaryBoundingPlanes::GetNthBoundingPlane |
[SurfaceCache::add_curves_to_cache] | SmSurfaceCache::AddCurvesToCache |
[SurfaceCache::test_against_tolerances], [ToleranceTest] | SmSurfaceCache::TestAgainstTolerances |
[SurfaceCache::subdivide_by_block] | SmSurfaceCache::SubdivideByBlock |
[create_bezier_patch_block], [BezierPatchBlock] | sm_CreateBezierPatchBlock (static) |
[create_approximate_bezier_patch_block], [ApproximateBezierPatchBlock] | sm_CreateApproximateBezierPatchBlock (static) |
Drop (implicit) | SmSurfaceCache::~SmSurfaceCache |
Upstream tests reaching this unit
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, SM_API_test:TestSmCreateRectangle, SM_API_test:TestSmCreateRegularPolygon