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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmNLibStackHandler::SmNLibStackHandler | SmBSplineCurveNLib.cpp:41 | 3 | (none: Rust owns memory) |
SmNLibStackHandler::~SmNLibStackHandler | SmBSplineCurveNLib.cpp:44 | 1 | |
sm_CreateNlibCurve | SmBSplineCurveNLib.cpp:52 | 15 | nlib_curve (private) |
sm_ApproxCircArc | SmBSplineCurveNLib.cpp:131 | 95 | [approx_circ_arc], [CircArcSpec] |
SmBSplineCurve::ApproximateArc | SmBSplineCurveNLib.cpp:233 | 81 | [BSplineCurve::approximate_arc] |
SmBSplineCurve::ApproximateRationalCurve | SmBSplineCurveNLib.cpp:497 | 36 | [BSplineCurve::approximate_rational_curve] |
SmBSplineCurve::CreateHelixSegment | SmBSplineCurveNLib.cpp:539 | 49 | [BSplineCurve::create_helix_segment], [HelixSpec] |
SmBSplineCurve::CreateExtendedCurve | SmBSplineCurveNLib.cpp:594 | 62 | [BSplineCurve::create_extended_curve] |
SmBSplineCurve::CreateExtendedCurve | SmBSplineCurveNLib.cpp:701 | 42 | [BSplineCurve::create_extended_curve] |
SmBSplineCurve::CreateInterpolatingCurve | SmBSplineCurveNLib.cpp:925 | 105 | [BSplineCurve::create_interpolating_curve] |
SmBSplineCurve::DampenKnotSpacing | SmBSplineCurveNLib.cpp:1082 | 72 | [BSplineCurve::dampen_knot_spacing] |
SmBSplineCurve::DegreeReduction | SmBSplineCurveNLib.cpp:1165 | 47 | [BSplineCurve::degree_reduction] |
SmBSplineCurve::InsertOneKnot | SmBSplineCurveNLib.cpp:1317 | 38 | [BSplineCurve::insert_one_knot] |
sm_GetControlPointSpacing | SmBSplineCurveNLib.cpp:1473 | 18 | [control_point_spacing] |
SmBSplineCurve::SetIntersectionCurveThroughPoint | SmBSplineCurveNLib.cpp:1554 | 907 | [BSplineCurve::set_intersection_curve_through_point] |
SmBSplineCurve::EquallySpacedPoints | SmBSplineCurveNLib.cpp:2595 | 47 | [BSplineCurve::equally_spaced_points] |
SmBSplineCurve::InsertKnots | SmBSplineCurveNLib.cpp:2652 | 28 | [BSplineCurve::insert_knots] |
SmBSplineCurve::InterpolatePoints | SmBSplineCurveNLib.cpp:2723 | 139 | [BSplineCurve::interpolate_points] |
SmBSplineCurve::MakeCurvesCompatible | SmBSplineCurveNLib.cpp:2879 | 63 | [BSplineCurve::make_curves_compatible] |
SmBSplineCurve::DeformToEndPointTargets | SmBSplineCurveNLib.cpp:2969 | 574 | [BSplineCurve::deform_to_end_point_targets], [InValueType] |
SmBSplineCurve::ReparametrizeWithArcLength | SmBSplineCurveNLib.cpp:4004 | 29 | [BSplineCurve::reparametrize_with_arc_length] |
SmBSplineCurve::Scale | SmBSplineCurveNLib.cpp:4333 | 10 | [BSplineCurve::scale] |
SmBSplineCurve::ScaleKnotVector | SmBSplineCurveNLib.cpp:4380 | 11 | [BSplineCurve::scale_knot_vector] |
SmBSplineCurve::SyncronizeKnotsOfCurves | SmBSplineCurveNLib.cpp:4397 | 28 | [BSplineCurve::synchronize_knots_of_curves] |
SmBSplineCurve::Trim | SmBSplineCurveNLib.cpp:4469 | 294 | [BSplineCurve::trim], [TrimMode] |
Module file-header table (24 rows)
| Rust | Upstream |
|---|---|
| (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