solidcore

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 functionDefined atLinesRust (from the file header)
SmBSplineCurve::GetOutOfBoundsEnabledSmBSplineCurve.h:5311[BSplineCurve::out_of_bounds_enabled_mut]
SmBSplineCurve::GetSTEPIntervalSmBSplineCurve.h:5331[BSplineCurve::step_interval]
SmBSplineCurve::GetInsideOutSmBSplineCurve.h:5441[BSplineCurve::inside_out]
SmBSplineCurve::GetGwNurbPointerSmBSplineCurve.h:5481[BSplineCurve::gw_nurb]
SmBSplineCurve::GetOrCreateGwNurbPointerSmBSplineCurve.h:5494[BSplineCurve::get_or_create_gw_nurb]
SmBSplineCurve::IsNurbBorrowedSmBSplineCurve.h:6121[BSplineCurve::is_nurb_borrowed]
SmBSplineCurve::IsOutOfBoundsEnabledSmBSplineCurve.h:6131[BSplineCurve::is_out_of_bounds_enabled]
SmBSplineCurve::SetOutOfBoundsEnabledSmBSplineCurve.h:7131[BSplineCurve::set_out_of_bounds_enabled]
SmBSplineCurve::RefreshAnalyticsSmBSplineCurve.h:7471[BSplineCurve::refresh_analytics]
SmBSplineCurve::GetClassStringSmBSplineCurve.h:9291[BSplineCurve::TYPE], [BSplineCurve::type_code], [BSplineCurve::type_string], [BSplineCurve::class_string]
SmBSplineCurve::GetClassTypeSmBSplineCurve.h:9291[BSplineCurve::TYPE], [BSplineCurve::type_code], [BSplineCurve::type_string], [BSplineCurve::class_string]
SmBSplineCurve::GetTypeSmBSplineCurve.h:9291[BSplineCurve::TYPE], [BSplineCurve::type_code], [BSplineCurve::type_string], [BSplineCurve::class_string]
SmBSplineCurve::GetTypeStringSmBSplineCurve.h:9291[BSplineCurve::TYPE], [BSplineCurve::type_code], [BSplineCurve::type_string], [BSplineCurve::class_string]
SmBSplineCurve::SmBSplineCurveSmBSplineCurve.cpp:4310[BSplineCurve]
SmBSplineCurve::SmBSplineCurveSmBSplineCurve.cpp:6132[BSplineCurve]
SmBSplineCurve::SmBSplineCurveSmBSplineCurve.cpp:10040[BSplineCurve]
SmBSplineCurve::SmBSplineCurveSmBSplineCurve.cpp:15334[BSplineCurve]
SmBSplineCurve::SmBSplineCurveSmBSplineCurve.cpp:19639[BSplineCurve]
SmBSplineCurve::~SmBSplineCurveSmBSplineCurve.cpp:2418Drop (implicit)
SmBSplineCurve::operator==SmBSplineCurve.cpp:25626[BSplineCurve::approx_eq]
sm_SplitQuadraticBezierSmBSplineCurve.cpp:30113[split_quadratic_bezier]
sm_SplitCubicBezierSmBSplineCurve.cpp:32018[split_cubic_bezier]
SmBSplineCurve::CopySmBSplineCurve.cpp:71110[BSplineCurve::copy], Clone
SmBSplineCurve::CopySmBSplineCurve.cpp:72710[BSplineCurve::copy], Clone
SmBSplineCurve::CalculateContinuitiesSmBSplineCurve.cpp:97863[BSplineCurve::calculate_continuities]
SmBSplineCurve::ConvertTo2DSmBSplineCurve.cpp:104815[BSplineCurve::convert_to_2d], [BSplineCurve::convert_to_3d]
SmBSplineCurve::ConvertTo3DSmBSplineCurve.cpp:107214[BSplineCurve::convert_to_2d], [BSplineCurve::convert_to_3d]
SmBSplineCurve::CreateArcFromPointsSmBSplineCurve.cpp:109670[BSplineCurve::create_arc_from_points]
SmBSplineCurve::CreateCanonicalSmBSplineCurve.cpp:151496[BSplineCurve::create_canonical], [CanonicalData]
SmBSplineCurve::CreateCircleSegmentSmBSplineCurve.cpp:192963[BSplineCurve::create_circle_segment]
SmBSplineCurve::CreateDegenerateCurveSmBSplineCurve.cpp:215753[BSplineCurve::create_degenerate_curve]
SmBSplineCurve::CreateLineSegmentSmBSplineCurve.cpp:228439[BSplineCurve::create_line_segment]
SmBSplineCurve::CreateMirrorCurveSmBSplineCurve.cpp:233033[BSplineCurve::create_mirror_curve]
SmBSplineCurve::CreatePlaneProjectionSmBSplineCurve.cpp:237368[BSplineCurve::create_plane_projection]
SmBSplineCurve::EditParameterizationSmBSplineCurve.cpp:269044[BSplineCurve::edit_parameterization]
SmBSplineCurve::EditEndPointSmBSplineCurve.cpp:2747223[BSplineCurve::edit_end_point]
SmBSplineCurve::EvaluateSmBSplineCurve.cpp:2997267[BSplineCurve::evaluate]
SmBSplineCurve::EvaluatePointSmBSplineCurve.cpp:327464[BSplineCurve::evaluate_point]
SmBSplineCurve::FairBlendCurveDerivativesSmBSplineCurve.cpp:3392164[BSplineCurve::fair_blend_curve_derivatives]
SmBSplineCurve::FixupKnotVectorSmBSplineCurve.cpp:356413[BSplineCurve::fixup_knot_vector]
SmBSplineCurve::GetControlPolygonSmBSplineCurve.cpp:389944[BSplineCurve::control_polygon]
SmBSplineCurve::GetControlPointsPointerSmBSplineCurve.cpp:395523[BSplineCurve::control_points]
SmBSplineCurve::GetDegreeSmBSplineCurve.cpp:40318[BSplineCurve::degree]
SmBSplineCurve::GetEndsSmBSplineCurve.cpp:404720[BSplineCurve::ends], [Ends]
SmBSplineCurve::GetKnotsSmBSplineCurve.cpp:407511[BSplineCurve::knots]
SmBSplineCurve::GetNumberNaturalKnotsSmBSplineCurve.cpp:41098[BSplineCurve::number_natural_knots]
SmBSplineCurve::GetNumberControlPointsSmBSplineCurve.cpp:41248[BSplineCurve::number_control_points]
SmBSplineCurve::GetGrevilleAbscissaSmBSplineCurve.cpp:414036[BSplineCurve::greville_abscissa]
SmBSplineCurve::IsRationalSmBSplineCurve.cpp:489011[BSplineCurve::is_rational]
SmBSplineCurve::GetNaturalIntervalSmBSplineCurve.cpp:522317[BSplineCurve::natural_interval]
SmBSplineCurve::MakeNurbSmBSplineCurve.cpp:56747[BSplineCurve::make_nurb]
SmBSplineCurve::RemoveExtraKnotsSmBSplineCurve.cpp:592229[BSplineCurve::remove_extra_knots]
SmBSplineCurve::SetFromGwNurbSmBSplineCurve.cpp:598924[BSplineCurve::set_from_gw_nurb]
SmBSplineCurve::TessellateSmBSplineCurve.cpp:649151[BSplineCurve::tessellate], [Tessellation]
SmBSplineCurve::TransformSmBSplineCurve.cpp:680648[BSplineCurve::transform]
SmBSplineCurve::IsKindOfSmBSplineCurve.cpp:74264[BSplineCurve::is_kind_of]
Module file-header table (52 rows)
RustUpstream
[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], Clonecopy 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