Units / nurbs
nurbs.b_spline_curve_p1 green
- Layer
- 9
- Upstream lines
- 1,894
- Functions
- 56
- Rust module
nurbs::b_spline_curve::p1
Source: crates/solidcore/src/nurbs/b_spline_curve/p1.rs
Upstream: source/SMLib/inc/SmBSplineCurve.h, source/SMLib/src/SmBSplineCurve.cpp
Notes
GREEN: difftest 2216 cases, 2216 pass bit-identical, 0 deferred, after curve.curve_p1 wired TessellateByBisection. Earlier: PARTIAL: difftest 2216 cases, now 2212 pass / 4 deferred (curve.curve_p1: TessellateByBisection) after curve.curve_p2 wired its stubs; originally (216 fixture on the six pt_TestFiles .smc curves, smSweepTest lines/circles and edge cases + 2000 generated), 2156 pass bit-identical, 60 deferred (curve.curve_p2 59: SmCurve::EvaluateContinuity / IsKindOf / ApproximateLength; curve.curve_p1 1: TessellateByBisection); 30,216-case run clean; no UNPORTED(nurbs.b_spline_curve_p1) stubs to wire; SmBSplineCurve.h default bNonZeroTangents=FALSE binds in Evaluate recursion (findings.md). 56 fns; largest: SmBSplineCurve::Evaluate, SmBSplineCurve::EditEndPoint, SmBSplineCurve::FairBlendCurveDerivatives, SmBSplineCurve::CreateCanonical; cycle back-edges (call into later units; stub or co-port): curve.curve_p2(11), curve.curve_p5(5), curve.ellipse_p1(5), curve.ellipse_p2(5), curve.hyperbola(5), curve.line(5), curve.parabola(5), curve.curve_p1(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit
Difftest
- Cases
- 2,216
- Passed
- 2,216
- 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.vector3d green nlib.crv_basic green nlib.crv_nurb green nurbs.nurbs_crv green
Soft dependencies: geom.geom_utility_p1 green geom.polynomial green nlib.basis_basic green nlib.crv_common green nlib.iges green nlib.math green
Dependents: blend.fillet_corner_p2 todo 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_p4 todo blend.fillet_geom_p5 todo blend.fillet_geom_p6 todo blend.fillet_solver_p1 claimed blend.fillet_solver_p2 todo blend.fillet_solver_p4 claimed blend.fillet_standard_solver_p1 claimed blend.fillet_standard_solver_p2 todo curve.composite_curve_p1 green curve.crv_on_surf partial curve.curve_cache green curve.curve_p1 partial curve.curve_p2 green curve.curve_p3 green curve.curve_p5 partial curve.curve_p6 green curve.ellipse_p1 green curve.ellipse_p2 green curve.hyperbola green curve.line green curve.parabola green intersect.surface_drop_curve partial intersect.surface_drop_lib_p1 partial intersect.surface_drop_lib_p3 claimed intersect.surface_intersector_p2 partial intersect.surface_intersector_p3 partial intersect.surface_tracer partial nurbs.b_spline_curve_n_lib 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 nurbs.b_spline_surface_p2 partial offset.offset_executive_p1 claimed offset.offset_geometry_creation claimed primitive.api_curves green primitive.primitive_creation_p1 claimed primitive.primitive_creation_p2 todo primitive.primitive_creation_p3 todo surface.cone_p1 green surface.cone_p2 claimed surface.cone_p3 partial surface.plane_p1 partial surface.sphere green surface.surf_of_extrusion_p1 green surface.surf_of_extrusion_p2 partial surface.surf_of_revolution_p1 green surface.surf_of_revolution_p2 partial surface.surf_of_revolution_p3 partial surface.surface_cache_p1 green surface.surface_p1 partial surface.surface_p11 partial surface.surface_p6 green surface.surface_p8 partial surface.surface_p9 partial surface.torus green topology.brep_p1 claimed topology.brep_p2 claimed topology.brep_p3 claimed topology.brep_p5 claimed topology.brep_p7 claimed topology.edgeuse_p3 claimed topology.face_p1 partial topology.face_p2 partial topology.trimming_tools partial
Soft dependents: blend.fillet_corner_p1 todo blend.fillet_corner_p3 todo blend.fillet_geom_p3 todo blend.fillet_intersector claimed boolean.topology_intersector_p1 partial boolean.topology_intersector_p2 claimed boolean.topology_intersector_p3 claimed curve.composite_curve_p2 green curve.curve_p9 green heal.gap partial intersect.curve_class_p5 partial intersect.curve_class_p7 partial intersect.curve_class_p9 partial intersect.surface_drop_lib_p2 green intersect.surface_intersector_p1 partial intersect.surface_intersector_p4 partial mass.integrator partial nurbs.b_spline_surface_p1 green surface.plane_p2 partial surface.surface_cache_p2 partial surface.surface_p2 partial surface.surface_p5 green surface.surface_p7 partial surface.surface_point_solve_p1 green surface.trim_srf_cache partial sweep.rotational_sweep_geometry partial sweep.trans_sweep_geometry partial topology.brep_p10 claimed topology.brep_p6 claimed topology.brep_p8 claimed topology.brep_p9 claimed topology.edge partial topology.edgeuse_p1 partial topology.edgeuse_p2 partial topology.loopuse partial topology.shell partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmBSplineCurve::GetOutOfBoundsEnabled | SmBSplineCurve.h:531 | 1 | [BSplineCurve::out_of_bounds_enabled_mut] |
SmBSplineCurve::GetSTEPInterval | SmBSplineCurve.h:533 | 1 | [BSplineCurve::step_interval] |
SmBSplineCurve::GetInsideOut | SmBSplineCurve.h:544 | 1 | [BSplineCurve::inside_out] |
SmBSplineCurve::GetGwNurbPointer | SmBSplineCurve.h:548 | 1 | [BSplineCurve::gw_nurb] |
SmBSplineCurve::GetOrCreateGwNurbPointer | SmBSplineCurve.h:549 | 4 | [BSplineCurve::get_or_create_gw_nurb] |
SmBSplineCurve::IsNurbBorrowed | SmBSplineCurve.h:612 | 1 | [BSplineCurve::is_nurb_borrowed] |
SmBSplineCurve::IsOutOfBoundsEnabled | SmBSplineCurve.h:613 | 1 | [BSplineCurve::is_out_of_bounds_enabled] |
SmBSplineCurve::SetOutOfBoundsEnabled | SmBSplineCurve.h:713 | 1 | [BSplineCurve::set_out_of_bounds_enabled] |
SmBSplineCurve::RefreshAnalytics | SmBSplineCurve.h:747 | 1 | [BSplineCurve::refresh_analytics] |
SmBSplineCurve::GetClassString | SmBSplineCurve.h:929 | 1 | [BSplineCurve::TYPE], [BSplineCurve::type_code], [BSplineCurve::type_string], [BSplineCurve::class_string] |
SmBSplineCurve::GetClassType | SmBSplineCurve.h:929 | 1 | [BSplineCurve::TYPE], [BSplineCurve::type_code], [BSplineCurve::type_string], [BSplineCurve::class_string] |
SmBSplineCurve::GetType | SmBSplineCurve.h:929 | 1 | [BSplineCurve::TYPE], [BSplineCurve::type_code], [BSplineCurve::type_string], [BSplineCurve::class_string] |
SmBSplineCurve::GetTypeString | SmBSplineCurve.h:929 | 1 | [BSplineCurve::TYPE], [BSplineCurve::type_code], [BSplineCurve::type_string], [BSplineCurve::class_string] |
SmBSplineCurve::SmBSplineCurve | SmBSplineCurve.cpp:43 | 10 | [BSplineCurve] |
SmBSplineCurve::SmBSplineCurve | SmBSplineCurve.cpp:61 | 32 | [BSplineCurve] |
SmBSplineCurve::SmBSplineCurve | SmBSplineCurve.cpp:100 | 40 | [BSplineCurve] |
SmBSplineCurve::SmBSplineCurve | SmBSplineCurve.cpp:153 | 34 | [BSplineCurve] |
SmBSplineCurve::SmBSplineCurve | SmBSplineCurve.cpp:196 | 39 | [BSplineCurve] |
SmBSplineCurve::~SmBSplineCurve | SmBSplineCurve.cpp:241 | 8 | Drop (implicit) |
SmBSplineCurve::operator== | SmBSplineCurve.cpp:256 | 26 | [BSplineCurve::approx_eq] |
sm_SplitQuadraticBezier | SmBSplineCurve.cpp:301 | 13 | [split_quadratic_bezier] |
sm_SplitCubicBezier | SmBSplineCurve.cpp:320 | 18 | [split_cubic_bezier] |
SmBSplineCurve::Copy | SmBSplineCurve.cpp:711 | 10 | [BSplineCurve::copy], Clone |
SmBSplineCurve::Copy | SmBSplineCurve.cpp:727 | 10 | [BSplineCurve::copy], Clone |
SmBSplineCurve::CalculateContinuities | SmBSplineCurve.cpp:978 | 63 | [BSplineCurve::calculate_continuities] |
SmBSplineCurve::ConvertTo2D | SmBSplineCurve.cpp:1048 | 15 | [BSplineCurve::convert_to_2d], [BSplineCurve::convert_to_3d] |
SmBSplineCurve::ConvertTo3D | SmBSplineCurve.cpp:1072 | 14 | [BSplineCurve::convert_to_2d], [BSplineCurve::convert_to_3d] |
SmBSplineCurve::CreateArcFromPoints | SmBSplineCurve.cpp:1096 | 70 | [BSplineCurve::create_arc_from_points] |
SmBSplineCurve::CreateCanonical | SmBSplineCurve.cpp:1514 | 96 | [BSplineCurve::create_canonical], [CanonicalData] |
SmBSplineCurve::CreateCircleSegment | SmBSplineCurve.cpp:1929 | 63 | [BSplineCurve::create_circle_segment] |
SmBSplineCurve::CreateDegenerateCurve | SmBSplineCurve.cpp:2157 | 53 | [BSplineCurve::create_degenerate_curve] |
SmBSplineCurve::CreateLineSegment | SmBSplineCurve.cpp:2284 | 39 | [BSplineCurve::create_line_segment] |
SmBSplineCurve::CreateMirrorCurve | SmBSplineCurve.cpp:2330 | 33 | [BSplineCurve::create_mirror_curve] |
SmBSplineCurve::CreatePlaneProjection | SmBSplineCurve.cpp:2373 | 68 | [BSplineCurve::create_plane_projection] |
SmBSplineCurve::EditParameterization | SmBSplineCurve.cpp:2690 | 44 | [BSplineCurve::edit_parameterization] |
SmBSplineCurve::EditEndPoint | SmBSplineCurve.cpp:2747 | 223 | [BSplineCurve::edit_end_point] |
SmBSplineCurve::Evaluate | SmBSplineCurve.cpp:2997 | 267 | [BSplineCurve::evaluate] |
SmBSplineCurve::EvaluatePoint | SmBSplineCurve.cpp:3274 | 64 | [BSplineCurve::evaluate_point] |
SmBSplineCurve::FairBlendCurveDerivatives | SmBSplineCurve.cpp:3392 | 164 | [BSplineCurve::fair_blend_curve_derivatives] |
SmBSplineCurve::FixupKnotVector | SmBSplineCurve.cpp:3564 | 13 | [BSplineCurve::fixup_knot_vector] |
SmBSplineCurve::GetControlPolygon | SmBSplineCurve.cpp:3899 | 44 | [BSplineCurve::control_polygon] |
SmBSplineCurve::GetControlPointsPointer | SmBSplineCurve.cpp:3955 | 23 | [BSplineCurve::control_points] |
SmBSplineCurve::GetDegree | SmBSplineCurve.cpp:4031 | 8 | [BSplineCurve::degree] |
SmBSplineCurve::GetEnds | SmBSplineCurve.cpp:4047 | 20 | [BSplineCurve::ends], [Ends] |
SmBSplineCurve::GetKnots | SmBSplineCurve.cpp:4075 | 11 | [BSplineCurve::knots] |
SmBSplineCurve::GetNumberNaturalKnots | SmBSplineCurve.cpp:4109 | 8 | [BSplineCurve::number_natural_knots] |
SmBSplineCurve::GetNumberControlPoints | SmBSplineCurve.cpp:4124 | 8 | [BSplineCurve::number_control_points] |
SmBSplineCurve::GetGrevilleAbscissa | SmBSplineCurve.cpp:4140 | 36 | [BSplineCurve::greville_abscissa] |
SmBSplineCurve::IsRational | SmBSplineCurve.cpp:4890 | 11 | [BSplineCurve::is_rational] |
SmBSplineCurve::GetNaturalInterval | SmBSplineCurve.cpp:5223 | 17 | [BSplineCurve::natural_interval] |
SmBSplineCurve::MakeNurb | SmBSplineCurve.cpp:5674 | 7 | [BSplineCurve::make_nurb] |
SmBSplineCurve::RemoveExtraKnots | SmBSplineCurve.cpp:5922 | 29 | [BSplineCurve::remove_extra_knots] |
SmBSplineCurve::SetFromGwNurb | SmBSplineCurve.cpp:5989 | 24 | [BSplineCurve::set_from_gw_nurb] |
SmBSplineCurve::Tessellate | SmBSplineCurve.cpp:6491 | 51 | [BSplineCurve::tessellate], [Tessellation] |
SmBSplineCurve::Transform | SmBSplineCurve.cpp:6806 | 48 | [BSplineCurve::transform] |
SmBSplineCurve::IsKindOf | SmBSplineCurve.cpp:7426 | 4 | [BSplineCurve::is_kind_of] |
Module file-header table (52 rows)
| Rust | Upstream |
|---|---|
[BSplineCurve] | SmBSplineCurve |
[BSplineCurve::new] | SmBSplineCurve(ULONG lDim) |
[BSplineCurve::from_nurb] | SmBSplineCurve(gw_CURVE*, ULONG, SmBoolean, const SmContext*) |
[BSplineCurve::from_data] | SmBSplineCurve(ULONG, ULONG n, ULONG m, short p, gw_CPOINT*, double*, const SmContext*) |
[BSplineCurve::from_gw_nurb] | SmBSplineCurve(ULONG, const gw_CURVE*) |
[BSplineCurve::copy], Clone | copy constructor, Copy (both overloads) |
Drop (implicit) | ~SmBSplineCurve |
[BSplineCurve::approx_eq] | operator== |
[split_quadratic_bezier] | sm_SplitQuadraticBezier (static) |
[split_cubic_bezier] | sm_SplitCubicBezier (static) |
[BSplineCurve::calculate_continuities] | CalculateContinuities |
[BSplineCurve::convert_to_2d], [BSplineCurve::convert_to_3d] | ConvertTo2D, ConvertTo3D |
[BSplineCurve::create_arc_from_points] | CreateArcFromPoints |
[BSplineCurve::create_canonical], [CanonicalData] | CreateCanonical |
[BSplineCurve::create_circle_segment] | CreateCircleSegment |
[BSplineCurve::create_degenerate_curve] | CreateDegenerateCurve |
[BSplineCurve::create_line_segment] | CreateLineSegment |
[BSplineCurve::create_mirror_curve] | CreateMirrorCurve |
[BSplineCurve::create_plane_projection] | CreatePlaneProjection |
[BSplineCurve::edit_parameterization] | EditParameterization |
[BSplineCurve::edit_end_point] | EditEndPoint |
[BSplineCurve::evaluate] | Evaluate |
[BSplineCurve::evaluate_point] | EvaluatePoint |
[BSplineCurve::fair_blend_curve_derivatives] | FairBlendCurveDerivatives |
[BSplineCurve::fixup_knot_vector] | FixupKnotVector |
[BSplineCurve::control_polygon] | GetControlPolygon |
[BSplineCurve::control_points] | GetControlPointsPointer |
[BSplineCurve::degree] | GetDegree |
[BSplineCurve::ends], [Ends] | GetEnds |
[BSplineCurve::knots] | GetKnots |
[BSplineCurve::number_natural_knots] | GetNumberNaturalKnots |
[BSplineCurve::number_control_points] | GetNumberControlPoints |
[BSplineCurve::greville_abscissa] | GetGrevilleAbscissa |
[BSplineCurve::is_rational] | IsRational |
[BSplineCurve::natural_interval] | GetNaturalInterval |
[BSplineCurve::step_interval] | GetSTEPInterval |
[BSplineCurve::make_nurb] | MakeNurb |
[BSplineCurve::remove_extra_knots] | RemoveExtraKnots |
[BSplineCurve::set_from_gw_nurb] | SetFromGwNurb |
[BSplineCurve::tessellate], [Tessellation] | Tessellate |
[BSplineCurve::transform] | Transform |
[BSplineCurve::is_kind_of] | IsKindOf |
[BSplineCurve::TYPE], [BSplineCurve::type_code], [BSplineCurve::type_string], [BSplineCurve::class_string] | GetType, GetClassType, GetTypeString, GetClassString (SM_COMMON) |
[BSplineCurve::out_of_bounds_enabled_mut] | GetOutOfBoundsEnabled |
[BSplineCurve::is_out_of_bounds_enabled] | IsOutOfBoundsEnabled |
[BSplineCurve::set_out_of_bounds_enabled] | SetOutOfBoundsEnabled |
[BSplineCurve::inside_out] | GetInsideOut |
[BSplineCurve::gw_nurb] | GetGwNurbPointer |
[BSplineCurve::get_or_create_gw_nurb] | GetOrCreateGwNurbPointer |
[BSplineCurve::is_nurb_borrowed] | IsNurbBorrowed |
[BSplineCurve::refresh_analytics] | RefreshAnalytics |
[KnotType], [BSplineCurveForm], [NurbCircleParam], [ProjectionType] | SmKnotType, SmBSplineCurveForm, SmNurbCircleParam, SmProjectionType |
Upstream tests reaching this unit
prog_test:my_test_extent3d, prog_test:my_test_vector2d, 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