solidcore

Units / nurbs

nurbs.b_spline_curve_n_lib green

Layer
11
Upstream lines
2,794
Functions
25
Rust module
nurbs::b_spline_curve_n_lib

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

Upstream: source/SMLib/src/SmBSplineCurveNLib.cpp

Notes

25 fns; largest: SmBSplineCurve::SetIntersectionCurveThroughPoint, SmBSplineCurve::DeformToEndPointTargets, SmBSplineCurve::Trim, SmBSplineCurve::InterpolatePoints; cycle back-edges (call into later units; stub or co-port): curve.curve_p2(19), surface.surface_p2(3), nurbs.b_spline_curve_p2(2), curve.curve_p6(1), surface.surface_p5(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit; GREEN: difftest 2282 cases, 0 deferred after curve.curve_p2 wired SmCurve::ApproximateLength (was PARTIAL: (282 fixture from the six pt_TestFiles .smc curves, FitCrvPoints.pts / Points.pts, my_test_curve_interface, smSurfaceTest.cpp:1975 helix, TestSmMakeCurvesCompatible, TestSmCreateRectangle / TestSmCreateRegularPolygon edges and edge cases + 2000 generated), 2225 pass bit-identical (max_rel_err 0), 57 deferred on curve.curve_p2 (SmCurve::ApproximateLength in SetIntersectionCurveThroughPoint; was 150 on nurbs.b_spline_curve_p2 before its IsIntersectorApprox / DegreeElevate stubs were wired); 100,282-case run clean; --perturb SENSITIVE; no UNPORTED(nurbs.b_spline_curve_n_lib) stubs existed to wire) Review PR #106 recertification: 2282 cases, 2282 pass, 0 deferred, 0 failed, max_rel_err=0.0; deferred: none.

Difftest

Cases
2,282
Passed
2,282
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.axis2_placement green geom.extent1d green geom.object partial geom.tol green geom.vector2d green geom.vector3d green nlib.crv_adv_p2 green nlib.crv_approx green nlib.crv_basic green nlib.crv_fit_p3 green nlib.crv_tool_p2 green nlib.math green nurbs.b_spline_curve_p1 green nurbs.nurbs_crv green

Soft dependencies: geom.solution_array partial nlib.crv_adv_p1 green nlib.crv_fit_p2 green nlib.crv_nurb green nlib.crv_tool_p1 green nlib.funcs_basic green nlib.geom green nlib.knots green nlib.spiral green

Dependents: blend.fillet_standard_solver_p1 claimed curve.ellipse_p1 green curve.line green nurbs.b_spline_curve_p2 green nurbs.b_spline_curve_p3 partial nurbs.b_spline_surface_n_lib_p1 green nurbs.b_spline_surface_n_lib_p2 partial offset.offset_geometry_creation claimed primitive.primitive_creation_p3 todo

Soft dependents: blend.fillet_custom_solver partial blend.fillet_executive_p1 todo blend.fillet_executive_p2 todo blend.fillet_geom_p1 claimed blend.fillet_geom_p2 todo blend.fillet_geom_p3 todo blend.fillet_geom_p4 todo blend.fillet_geom_p5 todo blend.fillet_geom_p6 todo blend.fillet_solver_p1 claimed blend.fillet_solver_p2 todo curve.curve_p6 green intersect.curve_class_p1 partial intersect.curve_class_p5 partial intersect.curve_class_p6 partial intersect.curve_class_p7 partial intersect.surface_intersector_p2 partial intersect.surface_intersector_p3 partial nurbs.b_spline_surface_p2 partial primitive.api_curves green primitive.primitive_creation_p1 claimed primitive.primitive_creation_p2 todo surface.plane_p1 partial surface.surf_of_extrusion_p1 green surface.surf_of_revolution_p2 partial surface.surf_of_revolution_p3 partial surface.surface_p1 partial surface.surface_p2 partial surface.surface_p8 partial surface.surface_p9 partial topology.brep_p1 claimed topology.brep_p2 claimed topology.brep_p5 claimed topology.edge partial topology.edgeuse_p3 claimed topology.face_p2 partial topology.trimming_tools partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmNLibStackHandler::SmNLibStackHandlerSmBSplineCurveNLib.cpp:413(none: Rust owns memory)
SmNLibStackHandler::~SmNLibStackHandlerSmBSplineCurveNLib.cpp:441
sm_CreateNlibCurveSmBSplineCurveNLib.cpp:5215nlib_curve (private)
sm_ApproxCircArcSmBSplineCurveNLib.cpp:13195[approx_circ_arc], [CircArcSpec]
SmBSplineCurve::ApproximateArcSmBSplineCurveNLib.cpp:23381[BSplineCurve::approximate_arc]
SmBSplineCurve::ApproximateRationalCurveSmBSplineCurveNLib.cpp:49736[BSplineCurve::approximate_rational_curve]
SmBSplineCurve::CreateHelixSegmentSmBSplineCurveNLib.cpp:53949[BSplineCurve::create_helix_segment], [HelixSpec]
SmBSplineCurve::CreateExtendedCurveSmBSplineCurveNLib.cpp:59462[BSplineCurve::create_extended_curve]
SmBSplineCurve::CreateExtendedCurveSmBSplineCurveNLib.cpp:70142[BSplineCurve::create_extended_curve]
SmBSplineCurve::CreateInterpolatingCurveSmBSplineCurveNLib.cpp:925105[BSplineCurve::create_interpolating_curve]
SmBSplineCurve::DampenKnotSpacingSmBSplineCurveNLib.cpp:108272[BSplineCurve::dampen_knot_spacing]
SmBSplineCurve::DegreeReductionSmBSplineCurveNLib.cpp:116547[BSplineCurve::degree_reduction]
SmBSplineCurve::InsertOneKnotSmBSplineCurveNLib.cpp:131738[BSplineCurve::insert_one_knot]
sm_GetControlPointSpacingSmBSplineCurveNLib.cpp:147318[control_point_spacing]
SmBSplineCurve::SetIntersectionCurveThroughPointSmBSplineCurveNLib.cpp:1554907[BSplineCurve::set_intersection_curve_through_point]
SmBSplineCurve::EquallySpacedPointsSmBSplineCurveNLib.cpp:259547[BSplineCurve::equally_spaced_points]
SmBSplineCurve::InsertKnotsSmBSplineCurveNLib.cpp:265228[BSplineCurve::insert_knots]
SmBSplineCurve::InterpolatePointsSmBSplineCurveNLib.cpp:2723139[BSplineCurve::interpolate_points]
SmBSplineCurve::MakeCurvesCompatibleSmBSplineCurveNLib.cpp:287963[BSplineCurve::make_curves_compatible]
SmBSplineCurve::DeformToEndPointTargetsSmBSplineCurveNLib.cpp:2969574[BSplineCurve::deform_to_end_point_targets], [InValueType]
SmBSplineCurve::ReparametrizeWithArcLengthSmBSplineCurveNLib.cpp:400429[BSplineCurve::reparametrize_with_arc_length]
SmBSplineCurve::ScaleSmBSplineCurveNLib.cpp:433310[BSplineCurve::scale]
SmBSplineCurve::ScaleKnotVectorSmBSplineCurveNLib.cpp:438011[BSplineCurve::scale_knot_vector]
SmBSplineCurve::SyncronizeKnotsOfCurvesSmBSplineCurveNLib.cpp:439728[BSplineCurve::synchronize_knots_of_curves]
SmBSplineCurve::TrimSmBSplineCurveNLib.cpp:4469294[BSplineCurve::trim], [TrimMode]
Module file-header table (24 rows)
RustUpstream
(none: Rust owns memory)SmNLibStackHandler (constructor, destructor)
nlib_curve (private)sm_CreateNlibCurve (static)
[approx_circ_arc], [CircArcSpec]sm_ApproxCircArc
[BSplineCurve::approximate_arc]SmBSplineCurve::ApproximateArc
[BSplineCurve::approximate_rational_curve]SmBSplineCurve::ApproximateRationalCurve
[BSplineCurve::create_helix_segment], [HelixSpec]SmBSplineCurve::CreateHelixSegment
[BSplineCurve::create_extended_curve]SmBSplineCurve::CreateExtendedCurve (parameter)
[BSplineCurve::create_extended_curve_by_distance]SmBSplineCurve::CreateExtendedCurve (distance)
[BSplineCurve::create_interpolating_curve]SmBSplineCurve::CreateInterpolatingCurve
[BSplineCurve::dampen_knot_spacing]SmBSplineCurve::DampenKnotSpacing
[BSplineCurve::degree_reduction]SmBSplineCurve::DegreeReduction
[BSplineCurve::insert_one_knot]SmBSplineCurve::InsertOneKnot
[control_point_spacing]sm_GetControlPointSpacing (static)
[BSplineCurve::set_intersection_curve_through_point]SmBSplineCurve::SetIntersectionCurveThroughPoint
[BSplineCurve::equally_spaced_points]SmBSplineCurve::EquallySpacedPoints
[BSplineCurve::insert_knots]SmBSplineCurve::InsertKnots(SmTArray<double>&)
[BSplineCurve::interpolate_points]SmBSplineCurve::InterpolatePoints
[BSplineCurve::make_curves_compatible]SmBSplineCurve::MakeCurvesCompatible
[BSplineCurve::deform_to_end_point_targets], [InValueType]SmBSplineCurve::DeformToEndPointTargets, SmInValueType
[BSplineCurve::reparametrize_with_arc_length]SmBSplineCurve::ReparametrizeWithArcLength
[BSplineCurve::scale]SmBSplineCurve::Scale(double)
[BSplineCurve::scale_knot_vector]SmBSplineCurve::ScaleKnotVector
[BSplineCurve::synchronize_knots_of_curves]SmBSplineCurve::SyncronizeKnotsOfCurves
[BSplineCurve::trim], [TrimMode]SmBSplineCurve::Trim

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