solidcore

Units / nurbs

nurbs.b_spline_curve_p2 green

Layer
12
Upstream lines
1,872
Functions
22
Rust module
nurbs::b_spline_curve::p2

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

Upstream: source/SMLib/inc/SmBSplineCurve.h, source/SMLib/src/SmBSplineCurve.cpp

Notes

GREEN (promoted by curve.curve_p5: 2328 cases, 0 deferred after its stubs were wired); difftest partial: 2328 cases, 2234 passed, 94 deferred (curve.curve_p4 79, curve.curve_p5 10, curve.line 5) after curve.curve_cache co-ported SmCurve::IsLine; 22 fns; largest: SmBSplineCurve::CalculateBoundingBox, SmBSplineCurve::CreateByJoining, SmBSplineCurve::CreateAnalyticCurve, SmBSplineCurve::ReadFromDB; cycle back-edges (call into later units; stub or co-port): curve.curve_p2(14), curve.curve_p5(3), curve.curve_p4(2), curve.offset_curve(2), curve.curve_p1(1), curve.ellipse_p1(1), curve.line(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit; PARTIAL: difftest 2328 cases (328 fixture: the six pt_TestFiles .smc curves through every op and read back with ReadFromDB, my_test_reversed_line_join line pairs, TestSmCreateRectangle / TestSmCreateRegularPolygon joins, arc/line joins, Bezier bounding-box cases, edge cases + 2000 generated), 2011 pass bit-identical (max_rel_err 0), 317 deferred (curve.curve_p2 167: SmCurve::IsKindOf in IsDegenerate/HasRepeatedEndControlPoints, EvaluateContinuity in CreateSimpleOffset; curve.curve_p4 79: IsClosed/IsDegenerate; curve.curve_p5 66: SmCurve::IsLine/IsArc; curve.line 5: SmLine in CreateAnalyticCurve); 20,328-case run clean; --perturb SENSITIVE; wired UNPORTED(nurbs.b_spline_curve_p2) in nurbs.b_spline_curve_n_lib (IsIntersectorApprox, DegreeElevate); after curve.curve_p2 wired SmCurve::IsKindOf/EvaluateContinuity: 2178 pass, 150 deferred (curve.curve_p4 79, curve.curve_p5 66, curve.line 5); after curve.line (SmLine in CreateAnalyticCurve wired): 2328 cases, 2239 pass, 89 deferred (curve.curve_p4 79, curve.curve_p5 10); after curve.curve_p4 (SmCurve::IsClosed / IsDegenerate wired): 2328 cases, 2318 pass, 10 deferred (curve.curve_p5 10)

Difftest

Cases
2,328
Passed
2,328
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.extent3d green geom.object partial geom.pseudo_box green geom.tol green geom.vector3d green nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p1 green nurbs.nurbs_crv green topology.database_io green

Soft dependencies: geom.geom_utility_p1 green geom.polar_box green nlib.crv_basic green nlib.crv_nurb green nlib.crv_tool_p1 green nlib.geom green nlib.knots green nlib.math green

Dependents: blend.fillet_standard_solver_p1 claimed curve.ellipse_p1 green curve.hyperbola green curve.line green curve.parabola green nurbs.b_spline_curve_p3 partial nurbs.b_spline_surface_p2 partial offset.offset_geometry_creation claimed primitive.primitive_creation_p3 todo surface.surf_of_extrusion_p1 green surface.surf_of_revolution_p1 green surface.surf_of_revolution_p2 partial surface.surface_p8 partial topology.edgeuse_p3 claimed topology.trimming_tools partial

Soft dependents: blend.fillet_corner_p1 todo blend.fillet_corner_p2 todo blend.fillet_corner_p3 todo blend.fillet_custom_solver partial blend.fillet_executive_p1 todo blend.fillet_geom_p4 todo blend.fillet_geom_p5 todo blend.fillet_geom_p6 todo blend.fillet_solver_p1 claimed blend.fillet_solver_p4 claimed curve.composite_curve_p1 green curve.composite_curve_p2 green curve.crv_on_surf partial curve.curve_cache green curve.curve_p2 green curve.curve_p3 green intersect.surface_drop_curve partial intersect.surface_intersector_p3 partial intersect.surface_tracer partial nurbs.b_spline_surface_n_lib_p2 partial offset.offset_executive_p1 claimed primitive.primitive_creation_p1 claimed primitive.primitive_creation_p2 todo surface.cone_p1 green surface.cone_p2 claimed surface.cone_p3 partial surface.plane_p1 partial surface.sphere green surface.surf_of_extrusion_p2 partial surface.surf_of_revolution_p3 partial surface.surface_cache_p1 green surface.surface_p5 green surface.surface_p6 green surface.surface_p7 partial surface.surface_p9 partial surface.torus green surface.trim_srf_cache partial topology.brep_data partial topology.brep_p1 claimed topology.brep_p2 claimed topology.brep_p5 claimed topology.brep_p6 claimed topology.brep_p9 claimed topology.face_p1 partial topology.face_p2 partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmBSplineCurve::IsIntersectorApproxSmBSplineCurve.h:6101[BSplineCurve::is_intersector_approx]
SmBSplineCurve::CalculateBoundingBoxSmBSplineCurve.cpp:356349[BSplineCurve::calculate_bounding_box], [BoundingBoxRequest], [BoundingBoxes]
SmBSplineCurve::CreateAnalyticCurveSmBSplineCurve.cpp:778184[BSplineCurve::create_analytic_curve], [AnalyticCurve]
SmBSplineCurve::CreateByJoiningSmBSplineCurve.cpp:1188248[BSplineCurve::create_by_joining]
SmBSplineCurve::CreatePointCurveSmBSplineCurve.cpp:244812[BSplineCurve::create_point_curve]
SmBSplineCurve::CreateSimpleOffsetSmBSplineCurve.cpp:2475120[BSplineCurve::create_simple_offset]
SmBSplineCurve::HasRepeatedEndControlPointsSmBSplineCurve.cpp:363847[BSplineCurve::has_repeated_end_control_points]
SmBSplineCurve::GetCanonicalSmBSplineCurve.cpp:398837[BSplineCurve::canonical], [CurveCanonical]
SmBSplineCurve::IsLineSmBSplineCurve.cpp:4629150[BSplineCurve::is_line]
SmBSplineCurve::IsPiecewiseC0SmBSplineCurve.cpp:479450[BSplineCurve::is_piecewise_c0]
SmBSplineCurve::IsDegenerateSmBSplineCurve.cpp:485033[BSplineCurve::is_degenerate]
SmBSplineCurve::GetControlPointsExpertSmBSplineCurve.cpp:5109105[BSplineCurve::control_points_expert], [ControlPointForm]
SmBSplineCurve::GetMaxAnalyticDomainSmBSplineCurve.cpp:526618[BSplineCurve::max_analytic_domain]
SmBSplineCurve::GetNumberOfUniqueKnotsSmBSplineCurve.cpp:529020[BSplineCurve::number_of_unique_knots]
SmBSplineCurve::GetPolygonSmBSplineCurve.cpp:531753[BSplineCurve::polygon]
SmBSplineCurve::MatchWeightsSmBSplineCurve.cpp:569045[BSplineCurve::match_weights]
SmBSplineCurve::DegreeElevateSmBSplineCurve.cpp:580235[BSplineCurve::degree_elevate]
SmBSplineCurve::ReverseParameterizationSmBSplineCurve.cpp:596022[BSplineCurve::reverse_parameterization]
SmBSplineCurve::SetCanonicalSmBSplineCurve.cpp:602145[BSplineCurve::set_canonical]
SmBSplineCurve::SetControlPointSmBSplineCurve.cpp:607253[BSplineCurve::set_control_point]
SmBSplineCurve::AdjustSTEPIntervalSmBSplineCurve.cpp:702161[BSplineCurve::adjust_step_interval]
SmBSplineCurve::ReadFromDBSmBSplineCurve.cpp:7237184[BSplineCurve::read_from_db]
Module file-header table (22 rows)
RustUpstream
[BSplineCurve::is_intersector_approx]IsIntersectorApprox
[BSplineCurve::calculate_bounding_box], [BoundingBoxRequest], [BoundingBoxes]CalculateBoundingBox
[BSplineCurve::create_analytic_curve], [AnalyticCurve]CreateAnalyticCurve
[BSplineCurve::create_by_joining]CreateByJoining
[BSplineCurve::create_point_curve]CreatePointCurve
[BSplineCurve::create_simple_offset]CreateSimpleOffset
[BSplineCurve::has_repeated_end_control_points]HasRepeatedEndControlPoints
[BSplineCurve::canonical], [CurveCanonical]GetCanonical
[BSplineCurve::is_line]IsLine
[BSplineCurve::is_piecewise_c0]IsPiecewiseC0
[BSplineCurve::is_degenerate]IsDegenerate
[BSplineCurve::control_points_expert], [ControlPointForm]GetControlPointsExpert, SmControlPointFormType
[BSplineCurve::max_analytic_domain]GetMaxAnalyticDomain
[BSplineCurve::number_of_unique_knots]GetNumberOfUniqueKnots
[BSplineCurve::polygon]GetPolygon
[BSplineCurve::match_weights]MatchWeights
[BSplineCurve::degree_elevate]DegreeElevate
[BSplineCurve::reverse_parameterization]ReverseParameterization
[BSplineCurve::set_canonical]SetCanonical
[BSplineCurve::set_control_point]SetControlPoint
[BSplineCurve::adjust_step_interval]AdjustSTEPInterval
[BSplineCurve::read_from_db]ReadFromDB

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