Units / curve
curve.ellipse_p1 green
- Layer
- 19
- Upstream lines
- 1,930
- Functions
- 39
- Rust module
curve::ellipse::p1
Source: crates/solidcore/src/curve/ellipse/p1.rs
Upstream: source/SMLib/inc/SmCircle.h, source/SMLib/src/SmCircle.cpp, source/SMLib/src/SmEllipse.cpp
Notes
GREEN (promoted by curve.curve_p5: 2028 cases, 0 deferred after its stubs were wired); PARTIAL: difftest 2028 cases (28 fixture: my_test_analytic_curves circle/ellipse (CreateCanonical, AdjustSTEPInterval, GlobalPointSolveSTEP, ReverseParameterization), smSurfaceTest cylinder circle inside-out, smTopoTest CreateCanonical + AdjustSTEPInterval / EditParameterization circles, smCurveTest circle copy constructor, edge cases: non-positive radius, collinear / 2D / closed 3-point circles, joins (overlap, flipped normal, non-ellipse), circle offsets, skewed ConvertTo2D, 2D construction, Trim modes; + 2000 generated programs over constructors, CreateCanonical and ReadFromDB records), 1896 pass bit-identical (max_rel_err 0), 132 deferred (curve.curve_p5 132: LocalPointSolve / LocalPropertyAnalysis / SmCurve::IsArc); --perturb SENSITIVE; SmEllipse and SmCircle join Curve as CurveKind::Ellipse (Curve methods whose ellipse override rebuilds the polar converter take &Kernel); wired UNPORTED(curve.ellipse_p1) in curve.curve_p2 (ReadFromDB), curve.ellipse_p2 (GlobalPointSolve, GlobalCoincidenceChecker), nurbs.b_spline_curve_p2 (CreateAnalyticCurve SmCircle), nurbs.b_spline_surface_p2 (sweep circle). 39 fns; largest: SmEllipse::MakeNurb, SmPolarConversion::ConvertToPolarParameter, SmEllipse::JoinWith, SmEllipse::Trim; cycle back-edges (call into later units; stub or co-port): surface.surf_of_extrusion_p1(1), surface.surf_of_revolution_p1(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit
Difftest
- Cases
- 2,028
- Passed
- 2,028
- 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: curve.curve_p1 partial curve.curve_p2 green curve.curve_p4 partial curve.ellipse_p2 green geom.assert_array green geom.axis2_placement green geom.extent1d green geom.object partial geom.solution_array partial geom.tol green geom.vector3d green nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p1 green nurbs.b_spline_curve_p2 green nurbs.b_spline_curve_p3 partial topology.database_io green
Soft dependencies: geom.geom_utility_p1 green geom.polynomial green nlib.crv_basic green nlib.crv_common green nurbs.b_spline_surface_p1 green nurbs.nurbs_crv green
Dependents: surface.sphere green surface.surf_of_revolution_p1 green surface.torus green
Soft dependents: 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_p2 partial surface.surf_of_revolution_p3 partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmCircle::SmCircle | SmCircle.h:100 | 1 | [Ellipse::new_circle] |
SmCircle::~SmCircle | SmCircle.h:106 | 1 | Drop (implicit) |
SmCircle::GetRadius | SmCircle.h:131 | 1 | [Ellipse::radius], [Ellipse::set_radius] |
SmCircle::SetRadius | SmCircle.h:156 | 1 | [Ellipse::radius], [Ellipse::set_radius] |
SmCircle::GetClassString | SmCircle.h:183 | 1 | [Ellipse::type_code], [Ellipse::type_string], [Ellipse::class_string] (in p2), [CIRCLE_CLASS_TYPE] |
SmCircle::GetClassType | SmCircle.h:183 | 1 | [Ellipse::type_code], [Ellipse::type_string], [Ellipse::class_string] (in p2), [CIRCLE_CLASS_TYPE] |
SmCircle::GetType | SmCircle.h:183 | 1 | [Ellipse::type_code], [Ellipse::type_string], [Ellipse::class_string] (in p2), [CIRCLE_CLASS_TYPE] |
SmCircle::GetTypeString | SmCircle.h:183 | 1 | [Ellipse::type_code], [Ellipse::type_string], [Ellipse::class_string] (in p2), [CIRCLE_CLASS_TYPE] |
SmCircle::SmCircle | SmCircle.cpp:27 | 29 | [Ellipse::new_circle] |
SmCircle::SmCircle | SmCircle.cpp:68 | 35 | [Ellipse::new_circle] |
SmCircle::SmCircle | SmCircle.cpp:109 | 17 | [Ellipse::new_circle] |
SmCircle::operator== | SmCircle.cpp:133 | 14 | [Ellipse::approx_eq] (in p2) |
SmCircle::Copy | SmCircle.cpp:153 | 11 | [Ellipse::copy] (circle) |
SmCircle::CreateCanonical | SmCircle.cpp:171 | 37 | [Ellipse::create_canonical_circle] |
SmCircle::IsArc | SmCircle.cpp:294 | 15 | [Ellipse::is_arc] |
SmCircle::CreateSimpleOffset | SmCircle.cpp:321 | 72 | [Ellipse::create_simple_offset] |
SmCircle::AssertValid | SmCircle.cpp:409 | 25 | [Ellipse::assert_valid] |
SmCircle::ReadFromDB | SmCircle.cpp:503 | 31 | [Ellipse::read_from_db] |
SmCircle::IsKindOf | SmCircle.cpp:539 | 4 | [Ellipse::is_circle_class], [Ellipse::kind_of] |
SmPolarConversion::SmPolarConversion | SmEllipse.cpp:40 | 26 | Clone of [PolarConversion] |
SmPolarConversion::ConvertToPolarParameter | SmEllipse.cpp:658 | 183 | [PolarConversion::convert_to_polar_parameter] |
SmPolarConversion::IsCurrent | SmEllipse.cpp:859 | 116 | [PolarConversion::is_current] |
SmPolarConversion::AssertValid | SmEllipse.cpp:991 | 41 | [PolarConversion::assert_valid] |
SmEllipse::SmEllipse | SmEllipse.cpp:1059 | 85 | [Ellipse::new] (in p2) |
SmEllipse::SmEllipse | SmEllipse.cpp:1150 | 14 | [Ellipse::new] (in p2) |
SmPolarConversion::ReadFromDB | SmEllipse.cpp:1488 | 116 | [PolarConversion::read_from_db], [PolarConversion::read_from_db_with_curve] |
SmEllipse::ConvertTo2D | SmEllipse.cpp:1674 | 111 | [Ellipse::convert_to_2d] |
SmEllipse::ConvertTFromNURBSToSTEP | SmEllipse.cpp:1876 | 22 | [Ellipse::convert_t_from_nurbs_to_step] |
SmEllipse::AdjustSTEPInterval | SmEllipse.cpp:1905 | 70 | [Ellipse::adjust_step_interval] |
SmEllipse::Copy | SmEllipse.cpp:2095 | 22 | [Ellipse::copy], Clone |
SmEllipse::CreateCanonical | SmEllipse.cpp:2123 | 35 | [Ellipse::create_canonical] |
SmEllipse::GlobalPointSolveSTEP | SmEllipse.cpp:2238 | 81 | [Ellipse::global_point_solve_step] |
SmEllipse::JoinWith | SmEllipse.cpp:3354 | 152 | [Ellipse::join_with] |
SmEllipse::MakeNurb | SmEllipse.cpp:3515 | 190 | [Ellipse::make_nurb], [Ellipse::make_nurb_owned] |
SmEllipse::Notify | SmEllipse.cpp:3716 | 71 | [Ellipse::notify] |
SmEllipse::ReverseParameterization | SmEllipse.cpp:3812 | 17 | [Ellipse::reverse_parameterization] |
SmEllipse::Trim | SmEllipse.cpp:3836 | 136 | [Ellipse::trim] |
SmEllipse::AssertValid | SmEllipse.cpp:4093 | 58 | [Ellipse::assert_valid] |
SmEllipse::ReadFromDB | SmEllipse.cpp:4264 | 86 | [Ellipse::read_from_db] |
Module file-header table (32 rows)
| Rust | Upstream |
|---|---|
[Ellipse::new] (in p2) | SmEllipse(Center, XAxis, YAxis, AnalDomain, ..) |
[Ellipse::copy], Clone | SmEllipse(const SmEllipse&), SmEllipse::Copy |
[Ellipse::create_canonical] | SmEllipse::CreateCanonical |
[Ellipse::new_circle] | SmCircle(Center, XAxis, YAxis, AnalDomain, dRadius, ..) |
[Ellipse::circle_from_3_points] | SmCircle(StartPoint, MidPoint, EndPoint, ..) |
[Ellipse::empty_circle] | SmCircle() |
[Ellipse::copy] (circle) | SmCircle(const SmCircle&), SmCircle::Copy |
[Ellipse::create_canonical_circle] | SmCircle::CreateCanonical |
Drop (implicit) | ~SmCircle |
[Ellipse::approx_eq] (in p2) | SmCircle::operator== |
[Ellipse::radius], [Ellipse::set_radius] | SmCircle::GetRadius, SmCircle::SetRadius |
[Ellipse::is_circle_class], [Ellipse::kind_of] | SmCircle_TYPE objects, SmCircle::IsKindOf |
[Ellipse::type_code], [Ellipse::type_string], [Ellipse::class_string] (in p2), [CIRCLE_CLASS_TYPE] | SmCircle::GetType, GetTypeString, GetClassString, GetClassType |
[Ellipse::is_arc] | SmCircle::IsArc |
[Ellipse::create_simple_offset] | SmCircle::CreateSimpleOffset |
[Ellipse::assert_valid] | SmEllipse::AssertValid, SmCircle::AssertValid |
[Ellipse::read_from_db] | SmEllipse::ReadFromDB, SmCircle::ReadFromDB |
[Ellipse::convert_to_2d] | SmEllipse::ConvertTo2D |
[Ellipse::convert_t_from_nurbs_to_step] | SmEllipse::ConvertTFromNURBSToSTEP |
[Ellipse::adjust_step_interval] | SmEllipse::AdjustSTEPInterval |
[Ellipse::global_point_solve_step] | SmEllipse::GlobalPointSolveSTEP |
[Ellipse::join_with] | SmEllipse::JoinWith |
[Ellipse::make_nurb], [Ellipse::make_nurb_owned] | SmEllipse::MakeNurb |
[Ellipse::notify] | SmEllipse::Notify |
[Ellipse::reverse_parameterization] | SmEllipse::ReverseParameterization |
[Ellipse::trim] | SmEllipse::Trim |
[Ellipse::edit_parameterization] | SmBSplineCurve::EditParameterization on an ellipse (virtual MakeNurb, Notify) |
Clone of [PolarConversion] | SmPolarConversion(crContext, crSource) |
[PolarConversion::convert_to_polar_parameter] | SmPolarConversion::ConvertToPolarParameter |
[PolarConversion::is_current] | SmPolarConversion::IsCurrent |
[PolarConversion::assert_valid] | SmPolarConversion::AssertValid |
[PolarConversion::read_from_db], [PolarConversion::read_from_db_with_curve] | SmPolarConversion::ReadFromDB (ellipse back pointer; null back pointer, from SmSurfOfRevolution::ReadFromDB) |
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