solidcore

Units / nurbs

nurbs.nurbs_srf green

Layer
11
Upstream lines
1,188
Functions
9
Rust module
nurbs::nurbs_srf

Source: crates/solidcore/src/nurbs/nurbs_srf.rs

Upstream: source/SMLib/src/SmNurbsSrf.cpp

Notes

9 fns; largest: sm_ComputeNetConstants, sm_ComputeSurfConstants, sm_DecomposeSrf, sm_SplitSrf; cycle back-edges (call into later units; stub or co-port): surface.surface_p2(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit; GREEN: difftest 3092 cases (92 fixture from Surface.sms / offset_nurb.sms / DropCurveSurface.sms, SM_API_test rectangle/polygon planes and edge cases + 3000 generated), all bit-identical (max_rel_err 0), 0 deferred; 30,092-case run clean; --perturb SENSITIVE. The surface_p2 back-edge (SmSurface::EvaluatePoint) is an evaluator closure, so nothing is deferred; no UNPORTED(nurbs.nurbs_srf) stubs existed to wire

Difftest

Cases
3,092
Passed
3,092
Deferred
0
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Nothing: no deferred cases.

Report JSON (per-case results)

Dependencies

Depends on: geom.extent3d green geom.vector3d green nlib.knots green

Soft dependencies: geom.extent1d green geom.extent2d green geom.geom_utility_p1 green geom.tol green nlib.math green nlib.srf_basic green nlib.srf_nurb green nlib.srf_tool_p1 green

Dependents: surface.surface_cache_p2 partial surface.surface_cache_p3 partial

Soft dependents: nurbs.b_spline_surface_p1 green nurbs.b_spline_surface_p2 partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
sm_ComputeNetConstantsSmNurbsSrf.cpp:384425[compute_net_constants]
sm_ComputeSurfConstantsSmNurbsSrf.cpp:824259[compute_surf_constants]
sm_ComputeNurbSurfaceSizeSmNurbsSrf.cpp:113731(none: Rust owns memory)
sm_InitNurbSurfaceMemorySmNurbsSrf.cpp:118536[allocate_nurb_surface]
sm_AllocateNurbSurfaceSmNurbsSrf.cpp:127030[allocate_nurb_surface]
sm_AllocateAndCopyNurbSurfaceSmNurbsSrf.cpp:131039[copy_nurb_surface]
sm_DecomposeSrfSmNurbsSrf.cpp:1524251[decompose_srf]
sm_SplitSrfSmNurbsSrf.cpp:181794[split_srf]
sm_IsNSrfDegenerateSmNurbsSrf.cpp:191723[is_nsrf_degenerate]
Module file-header table (9 rows)
RustUpstream
[compute_net_constants]sm_ComputeNetConstants
[compute_surf_constants]sm_ComputeSurfConstants
[ConstantsRequest], [NetConstants]the optional double* outputs of both
[allocate_nurb_surface]sm_AllocateNurbSurface, sm_InitNurbSurfaceMemory
[copy_nurb_surface]sm_AllocateAndCopyNurbSurface
(none: Rust owns memory)sm_ComputeNurbSurfaceSize(n, m, r, s)
[decompose_srf]sm_DecomposeSrf
[split_srf]sm_SplitSrf
[is_nsrf_degenerate]sm_IsNSrfDegenerate

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