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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmBSplineCurve::IsIntersectorApprox | SmBSplineCurve.h:610 | 1 | [BSplineCurve::is_intersector_approx] |
SmBSplineCurve::CalculateBoundingBox | SmBSplineCurve.cpp:356 | 349 | [BSplineCurve::calculate_bounding_box], [BoundingBoxRequest], [BoundingBoxes] |
SmBSplineCurve::CreateAnalyticCurve | SmBSplineCurve.cpp:778 | 184 | [BSplineCurve::create_analytic_curve], [AnalyticCurve] |
SmBSplineCurve::CreateByJoining | SmBSplineCurve.cpp:1188 | 248 | [BSplineCurve::create_by_joining] |
SmBSplineCurve::CreatePointCurve | SmBSplineCurve.cpp:2448 | 12 | [BSplineCurve::create_point_curve] |
SmBSplineCurve::CreateSimpleOffset | SmBSplineCurve.cpp:2475 | 120 | [BSplineCurve::create_simple_offset] |
SmBSplineCurve::HasRepeatedEndControlPoints | SmBSplineCurve.cpp:3638 | 47 | [BSplineCurve::has_repeated_end_control_points] |
SmBSplineCurve::GetCanonical | SmBSplineCurve.cpp:3988 | 37 | [BSplineCurve::canonical], [CurveCanonical] |
SmBSplineCurve::IsLine | SmBSplineCurve.cpp:4629 | 150 | [BSplineCurve::is_line] |
SmBSplineCurve::IsPiecewiseC0 | SmBSplineCurve.cpp:4794 | 50 | [BSplineCurve::is_piecewise_c0] |
SmBSplineCurve::IsDegenerate | SmBSplineCurve.cpp:4850 | 33 | [BSplineCurve::is_degenerate] |
SmBSplineCurve::GetControlPointsExpert | SmBSplineCurve.cpp:5109 | 105 | [BSplineCurve::control_points_expert], [ControlPointForm] |
SmBSplineCurve::GetMaxAnalyticDomain | SmBSplineCurve.cpp:5266 | 18 | [BSplineCurve::max_analytic_domain] |
SmBSplineCurve::GetNumberOfUniqueKnots | SmBSplineCurve.cpp:5290 | 20 | [BSplineCurve::number_of_unique_knots] |
SmBSplineCurve::GetPolygon | SmBSplineCurve.cpp:5317 | 53 | [BSplineCurve::polygon] |
SmBSplineCurve::MatchWeights | SmBSplineCurve.cpp:5690 | 45 | [BSplineCurve::match_weights] |
SmBSplineCurve::DegreeElevate | SmBSplineCurve.cpp:5802 | 35 | [BSplineCurve::degree_elevate] |
SmBSplineCurve::ReverseParameterization | SmBSplineCurve.cpp:5960 | 22 | [BSplineCurve::reverse_parameterization] |
SmBSplineCurve::SetCanonical | SmBSplineCurve.cpp:6021 | 45 | [BSplineCurve::set_canonical] |
SmBSplineCurve::SetControlPoint | SmBSplineCurve.cpp:6072 | 53 | [BSplineCurve::set_control_point] |
SmBSplineCurve::AdjustSTEPInterval | SmBSplineCurve.cpp:7021 | 61 | [BSplineCurve::adjust_step_interval] |
SmBSplineCurve::ReadFromDB | SmBSplineCurve.cpp:7237 | 184 | [BSplineCurve::read_from_db] |
Module file-header table (22 rows)
| Rust | Upstream |
|---|---|
[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