solidcore

Units / nurbs

nurbs.b_spline_surface_n_lib_p2 partial

Layer
18
Upstream lines
1,932
Functions
4
Rust module
nurbs::b_spline_surface_n_lib::p2

Source: crates/solidcore/src/nurbs/b_spline_surface_n_lib/p2.rs

Upstream: source/SMLib/src/SmBSplineSurfaceNLib.cpp

Notes

PARTIAL: difftest 654 cases (54 fixture + 600 generated), 632 pass bit-identical, 22 deferred (curve.crv_on_surf 17: SmCrvOnSurf::ApproximateCurve in G1 corner blends (surface.surface_p2 GetNaturalUVDomain wired); surface.surface_p3 5, moved from surface.surface_p7 with PR #24); 20k-seed run clean; GetDerivativeLimit co-ported (CO-PORT(surface.surface_p2)); no UNPORTED(nurbs.b_spline_surface_n_lib_p2) stubs existed. 4 fns; largest: SmBSplineSurface::CreateCornerBlend, SmBSplineSurface::Evaluate, SmBSplineSurface::CreateSkinnedSurface, SmBSplineSurface::TrimWithDomain; cycle back-edges (call into later units; stub or co-port): curve.curve_p2(4), surface.surface_p2(3), curve.tangent_field(2), curve.crv_on_surf(1), curve.curve_p3(1), curve.curve_p4(1), surface.surface_p1(1), surface.surface_p3(1), surface.surface_p7(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit PR #106: internal evaluate_with_partial_output retains the derivative matrix written before exhausted zero-tangent correction; SurfaceEval consumes it as upstream does. Public Evaluate still returns its error. Collapsed-surface regressions compare the retained values in surface.surface_point_solve_p2/p3.

Difftest

Cases
654
Passed
632
Deferred
22
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
curve.crv_on_surf partial22

Report JSON (per-case results)

Dependencies

Depends on: geom.extent1d green geom.extent2d green geom.extent3d green geom.object partial geom.vector2d green geom.vector3d green nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p1 green nurbs.b_spline_surface_n_lib_p1 green nurbs.b_spline_surface_p1 green

Soft dependencies: geom.tol green nlib.crv_basic green nlib.crv_tool_p1 green nlib.math green nlib.srf_adv_p1 green nlib.srf_adv_p5 green nlib.srf_basic green nlib.srf_nurb green nlib.srf_tool_p1 green nurbs.b_spline_curve_p2 green

Dependents: nurbs.b_spline_surface_p2 partial surface.cone_p1 green

Soft dependents: blend.fillet_corner_p3 todo blend.fillet_custom_solver partial blend.fillet_geom_p4 todo blend.fillet_standard_solver_p1 claimed blend.hcr claimed primitive.primitive_creation_p3 todo surface.surface_p2 partial sweep.api_surfaces partial topology.brep_p1 claimed

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmBSplineSurface::CreateCornerBlendSmBSplineSurfaceNLib.cpp:3008740[BSplineSurface::create_corner_blend], [OrientType]
SmBSplineSurface::CreateSkinnedSurfaceSmBSplineSurfaceNLib.cpp:5269457[BSplineSurface::create_skinned_surface], [SkinnedSurfaceOptions]
SmBSplineSurface::TrimWithDomainSmBSplineSurfaceNLib.cpp:7455269[BSplineSurface::trim_with_domain]
SmBSplineSurface::EvaluateSmBSplineSurfaceNLib.cpp:8130466[BSplineSurface::evaluate], [EvaluateFlags]
Module file-header table (4 rows)
RustUpstream
[BSplineSurface::create_corner_blend], [OrientType]CreateCornerBlend, SmOrientType
[BSplineSurface::create_skinned_surface], [SkinnedSurfaceOptions]CreateSkinnedSurface
[BSplineSurface::trim_with_domain]TrimWithDomain
[BSplineSurface::evaluate], [EvaluateFlags]Evaluate

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