Units / curve
curve.ellipse_p2 green
- Layer
- 15
- Upstream lines
- 1,916
- Functions
- 44
- Rust module
curve::ellipse::p2
Source: crates/solidcore/src/curve/ellipse/p2.rs
Upstream: source/SMLib/inc/SmEllipse.h, source/SMLib/src/SmEllipse.cpp
Notes
GREEN (promoted by curve.curve_p5: 2102 cases, 0 deferred after its stubs were wired); PARTIAL: difftest 2102 cases (102 fixture: my_test_analytic_curves circle/ellipse, my_test_drop_curve_near_seam circle (inside-out), smCurveTest circle/circle and line/circle intersection configurations re-expressed as SmEllipse, edge cases: inside-out, negative/near-0/180/360 domains, tiny arcs, skewed axes, pOptNurb, SetSTEPInterval+SetUp, transforms, DropPointFast seams/sub-intervals + 2000 generated op programs), 2005 pass bit-identical (max_rel_err 0), 97 deferred (curve.curve_p5 97: LocalPropertyAnalysis and the curve solvers' Newton equations; curve.ellipse_p1 wiring cleared GlobalPointSolve, ConvertTo2D and GlobalCoincidenceChecker); 30k-seed run clean; --perturb SENSITIVE; co-ported SmEllipse constructor + MakeNurb from curve.ellipse_p1 (Ellipse not yet a CurveKind variant); wired UNPORTED(curve.ellipse_p2) in curve.line (Line::intersect_with_ellipse takes &Ellipse; curve.line deferred 2 -> 1). 44 fns; largest: SmEllipse::IntersectWithEllipse, SmPolarConversion::SetUpPolarConversion, SmEllipse::IntersectWithLine, SmEllipse::DropPointFast; cycle back-edges (call into later units; stub or co-port): curve.curve_p5(3), curve.curve_p1(2), curve.curve_p3(2), curve.curve_p6(1), curve.ellipse_p1(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit
Difftest
- Cases
- 2,102
- Passed
- 2,102
- 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_p2 green curve.line green geom.axis2_placement green geom.extent1d green geom.geom_utility_p1 green geom.object partial geom.solution_array partial geom.tol green geom.vector3d green nurbs.b_spline_curve_p1 green
Soft dependencies: geom.geom_utility_p2 green
Dependents: curve.ellipse_p1 green surface.sphere green surface.surf_of_revolution_p1 green surface.torus green
Soft dependents: curve.curve_p4 partial curve.curve_p5 partial surface.cone_p1 green surface.cone_p2 claimed surface.cone_p3 partial surface.surf_of_revolution_p3 partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmPolarConversion::SmPolarConversion | SmEllipse.h:72 | 4 | [PolarConversion], [PolarConversion::new] |
SmPolarConversion::SetContext | SmEllipse.h:93 | 2 | [PolarConversion::set_context] |
SmPolarConversion::IsPolarConversionPossible | SmEllipse.h:96 | 1 | [PolarConversion::is_polar_conversion_possible], [PolarConversion::set_polar_conversion_possible] |
SmPolarConversion::SetPolarConversionPossible | SmEllipse.h:98 | 1 | [PolarConversion::is_polar_conversion_possible], [PolarConversion::set_polar_conversion_possible] |
SmPolarConversion::GetClassString | SmEllipse.h:168 | 1 | [PolarConversion::TYPE], [PolarConversion::class_string], [PolarConversion::class_type] |
SmPolarConversion::GetClassType | SmEllipse.h:169 | 1 | [PolarConversion::TYPE], [PolarConversion::class_string], [PolarConversion::class_type] |
SmEllipse::~SmEllipse | SmEllipse.h:290 | 1 | Drop (implicit) |
SmEllipse::GetSTEPInterval | SmEllipse.h:344 | 1 | [Ellipse::step_interval], [Ellipse::set_step_interval], [Ellipse::degree] |
SmEllipse::GetDegree | SmEllipse.h:346 | 1 | [Ellipse::step_interval], [Ellipse::set_step_interval], [Ellipse::degree] |
SmEllipse::GetStartAngleDeg | SmEllipse.h:347 | 1 | [Ellipse::start_angle_deg], [Ellipse::end_angle_deg], [Ellipse::position] |
SmEllipse::GetEndAngleDeg | SmEllipse.h:348 | 1 | [Ellipse::start_angle_deg], [Ellipse::end_angle_deg], [Ellipse::position] |
SmEllipse::GetPosition | SmEllipse.h:349 | 1 | [Ellipse::start_angle_deg], [Ellipse::end_angle_deg], [Ellipse::position] |
SmEllipse::GetXRadius | SmEllipse.h:350 | 1 | [Ellipse::x_radius], [Ellipse::y_radius], [Ellipse::inside_out] |
SmEllipse::GetYRadius | SmEllipse.h:351 | 1 | [Ellipse::x_radius], [Ellipse::y_radius], [Ellipse::inside_out] |
SmEllipse::GetInsideOut | SmEllipse.h:352 | 1 | [Ellipse::x_radius], [Ellipse::y_radius], [Ellipse::inside_out] |
SmEllipse::IsAnalytic | SmEllipse.h:389 | 1 | [Ellipse::is_analytic], [Ellipse::is_domain_boundary] |
SmEllipse::IsDomainBoundary | SmEllipse.h:397 | 2 | [Ellipse::is_analytic], [Ellipse::is_domain_boundary] |
SmEllipse::SetSTEPInterval | SmEllipse.h:467 | 1 | [Ellipse::step_interval], [Ellipse::set_step_interval], [Ellipse::degree] |
SmEllipse::GetClassString | SmEllipse.h:519 | 1 | [PolarConversion::TYPE], [PolarConversion::class_string], [PolarConversion::class_type] |
SmEllipse::GetClassType | SmEllipse.h:519 | 1 | [PolarConversion::TYPE], [PolarConversion::class_string], [PolarConversion::class_type] |
SmEllipse::GetType | SmEllipse.h:519 | 1 | [Ellipse::TYPE], [Ellipse::type_code], [Ellipse::class_type], [Ellipse::type_string], [Ellipse::class_string] |
SmEllipse::GetTypeString | SmEllipse.h:519 | 1 | [Ellipse::TYPE], [Ellipse::type_code], [Ellipse::class_type], [Ellipse::type_string], [Ellipse::class_string] |
SmPolarConversion::~SmPolarConversion | SmEllipse.cpp:72 | 7 | Drop (implicit) |
SmPolarConversion::operator== | SmEllipse.cpp:86 | 45 | [PolarConversion::approx_eq] |
SmPolarConversion::SetUpPolarConversion | SmEllipse.cpp:174 | 287 | [Ellipse::set_up_polar_conversion] |
SmPolarConversion::ConvertToNURBSParameter | SmEllipse.cpp:467 | 184 | [PolarConversion::convert_to_nurbs_parameter] |
SmEllipse::SmEllipse | SmEllipse.cpp:1038 | 15 | [Ellipse], [Ellipse::empty] |
SmEllipse::operator== | SmEllipse.cpp:1171 | 28 | [PolarConversion::approx_eq] |
SmPolarConversion::AngleParamToNurbParam | SmEllipse.cpp:1303 | 95 | [PolarConversion::angle_param_to_nurb_param] |
SmEllipse::ConvertTo3D | SmEllipse.cpp:1791 | 13 | [Ellipse::convert_to_3d] |
SmEllipse::ConvertTFromSTEPToNURBS | SmEllipse.cpp:1813 | 54 | [Ellipse::convert_t_from_step_to_nurbs] |
SmEllipse::STEPInversion | SmEllipse.cpp:1991 | 98 | [Ellipse::step_inversion] |
SmEllipse::GetCanonical | SmEllipse.cpp:2164 | 25 | [Ellipse::canonical], [EllipseCanonical] |
SmEllipse::GetMaxAnalyticDomain | SmEllipse.cpp:2196 | 26 | [Ellipse::max_analytic_domain] |
SmEllipse::TransformPointToStartPlane | SmEllipse.cpp:2328 | 68 | [Ellipse::transform_point_to_start_plane], [EllipseStartPlanePoint] |
SmEllipse::DropPointFast | SmEllipse.cpp:2415 | 221 | [Ellipse::drop_point_fast] |
SmEllipse::EvaluateSTEPPoint | SmEllipse.cpp:2644 | 14 | [Ellipse::evaluate_step_point], [Ellipse::evaluate_step] |
SmEllipse::EvaluateSTEP | SmEllipse.cpp:2667 | 69 | [Ellipse::evaluate_step_point], [Ellipse::evaluate_step] |
SmEllipse::IntersectWithEllipse | SmEllipse.cpp:2743 | 313 | [Ellipse::intersect_with_ellipse], [EllipseIntersection] |
SmEllipse::IntersectWithLine | SmEllipse.cpp:3065 | 232 | [Ellipse::intersect_with_line] |
SmEllipse::IsCircle | SmEllipse.cpp:3303 | 12 | [Ellipse::is_circle], [Ellipse::is_degenerate] |
SmEllipse::IsDegenerate | SmEllipse.cpp:3321 | 20 | [Ellipse::is_circle], [Ellipse::is_degenerate] |
SmEllipse::Transform | SmEllipse.cpp:3978 | 59 | [Ellipse::transform] |
SmEllipse::IsKindOf | SmEllipse.cpp:4355 | 4 | [Ellipse::is_kind_of] |
Module file-header table (31 rows)
| Rust | Upstream |
|---|---|
[PolarConversion], [PolarConversion::new] | SmPolarConversion, SmPolarConversion() |
Drop (implicit) | ~SmPolarConversion |
[PolarConversion::approx_eq] | SmPolarConversion::operator== |
[PolarConversion::set_context] | SmPolarConversion::SetContext |
[PolarConversion::is_polar_conversion_possible], [PolarConversion::set_polar_conversion_possible] | IsPolarConversionPossible, SetPolarConversionPossible |
[PolarConversion::TYPE], [PolarConversion::class_string], [PolarConversion::class_type] | SmPolarConversion_TYPE, GetClassString, GetClassType |
[Ellipse::set_up_polar_conversion] | SmPolarConversion::SetUpPolarConversion(this, TRUE, ..) |
[PolarConversion::convert_to_nurbs_parameter] | SmPolarConversion::ConvertToNURBSParameter |
[PolarConversion::angle_param_to_nurb_param] | SmPolarConversion::AngleParamToNurbParam (private) |
[Ellipse], [Ellipse::empty] | SmEllipse, SmEllipse(lDimension, cpContext) |
Drop (implicit) | ~SmEllipse |
[Ellipse::new], [EllipseOptions] | SmEllipse(Center, XAxis, YAxis, AnalDomain, ..) (co-ported from curve.ellipse_p1) |
[Ellipse::approx_eq] | operator== |
[Ellipse::convert_to_3d] | ConvertTo3D |
[Ellipse::convert_t_from_step_to_nurbs] | ConvertTFromSTEPToNURBS |
[Ellipse::step_inversion] | STEPInversion |
[Ellipse::canonical], [EllipseCanonical] | GetCanonical |
[Ellipse::max_analytic_domain] | GetMaxAnalyticDomain |
[Ellipse::transform_point_to_start_plane], [EllipseStartPlanePoint] | TransformPointToStartPlane |
[Ellipse::drop_point_fast] | DropPointFast |
[Ellipse::evaluate_step_point], [Ellipse::evaluate_step] | EvaluateSTEPPoint, EvaluateSTEP |
[Ellipse::intersect_with_ellipse], [EllipseIntersection] | IntersectWithEllipse |
[Ellipse::intersect_with_line] | IntersectWithLine |
[Ellipse::is_circle], [Ellipse::is_degenerate] | IsCircle, IsDegenerate |
[Ellipse::transform] | Transform |
[Ellipse::is_kind_of] | IsKindOf |
[Ellipse::TYPE], [Ellipse::type_code], [Ellipse::class_type], [Ellipse::type_string], [Ellipse::class_string] | GetType, GetClassType, GetTypeString, GetClassString (SM_COMMON) |
[Ellipse::step_interval], [Ellipse::set_step_interval], [Ellipse::degree] | GetSTEPInterval, SetSTEPInterval, GetDegree (inline) |
[Ellipse::start_angle_deg], [Ellipse::end_angle_deg], [Ellipse::position] | GetStartAngleDeg, GetEndAngleDeg, GetPosition (inline) |
[Ellipse::x_radius], [Ellipse::y_radius], [Ellipse::inside_out] | GetXRadius, GetYRadius, GetInsideOut (inline) |
[Ellipse::is_analytic], [Ellipse::is_domain_boundary] | IsAnalytic, IsDomainBoundary (inline) |
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