solidcore

Units / curve

curve.curve_p1 partial

Layer
18
Upstream lines
2,097
Functions
8
Rust module
curve::curve::p1

Source: crates/solidcore/src/curve/curve/p1.rs

Upstream: source/SMLib/src/SmCurve.cpp

Notes

PARTIAL: difftest 3083 cases (83 fixture re-expressing the smCurveTest my_test_point_extrema / my_test_drop_point line and circle solves, the SmApiCreateRectangle / SmApiCreateRegularPolygon edges through Tessellate / TessellateByBisection / GlobalPointSolve / ApproximateCurve and edge cases + 3000 generated), 2493 pass bit-identical (max_rel_err 0), 590 deferred (curve.curve_p5 590: LocalPropertyAnalysis 310, SmFindCCNormalENFO::Evaluate 163, SmCCIntersectENFO::Evaluate 73, IsArc 44); --perturb SENSITIVE; 12,083-case run clean; co-ported SmCurve::IsLine dispatch and CacheMakeOrValidate cache build (curve.curve_p5); SolutionObject::natural_interval added for IdenticalSolutions; wired UNPORTED(curve.curve_p1) in nurbs.b_spline_curve_p1 (TessellateByBisection: unit now green), nurbs.b_spline_curve_p2 (ApproximateCurve), curve.hyperbola (GlobalPointSolveSTEP: 70 -> 0 curve_p1 deferred), curve.ellipse_p2 (line GlobalPointSolve; the ellipse one now waits on curve.ellipse_p1); curve.curve_p4 / curve.ellipse_p2 curve_p1 deferrals now pass or wait on curve.ellipse_p1 (findings.md). 8 fns; largest: SmCPGlobalSolver::LocalSolve, SmCurve::TessellateByBisection, SmCurve::ClassifyIntersectingRangeSolution, SmCurve::GlobalPointSolve; cycle back-edges (call into later units; stub or co-port): curve.curve_p5(2); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit

Difftest

Cases
3,083
Passed
3,057
Deferred
26
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
topology.brep_p1 claimed26

Report JSON (per-case results)

Dependencies

Depends on: curve.curve_cache green curve.curve_p2 green curve.curve_p3 green curve.curve_p4 partial geom.a_object partial geom.extent1d green geom.global_solver partial geom.object partial geom.solution_array partial geom.tol green geom.tree partial geom.vector3d green nurbs.b_spline_curve_p1 green

Soft dependencies: curve.hermite_curve green geom.extent3d green geom.geom_utility_p1 green geom.pseudo_box green

Dependents: curve.composite_curve_p1 green curve.composite_curve_p2 green curve.curve_p8 green curve.ellipse_p1 green

Soft dependents: blend.fillet_corner_p1 todo blend.fillet_corner_p2 todo blend.fillet_custom_solver partial blend.fillet_geom_p1 claimed blend.fillet_geom_p3 todo blend.fillet_geom_p5 todo blend.fillet_solver_p2 todo blend.fillet_solver_p3 todo blend.fillet_solver_p4 claimed blend.fillet_solver_p5 claimed blend.fillet_standard_solver_p1 claimed blend.fillet_standard_solver_p2 todo blend.hcr claimed intersect.curve_class_p5 partial intersect.surface_intersector_p3 partial intersect.topology_solver_p1 partial offset.offset_geometry_creation claimed primitive.primitive_creation_p3 todo query.api_queries partial query.edge partial surface.surf_of_extrusion_p1 green surface.surf_of_revolution_p3 partial surface.surface_p5 green surface.surface_p9 partial topology.brep_p1 claimed topology.brep_p3 claimed topology.proto_topology_p1 partial topology.proto_topology_p2 partial topology.trimming_tools partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
sm_RefineCCSolutionsSmCurve.cpp:96111[refine_cc_solutions]
sm_TestSpanAccuracySmCurve.cpp:235116[test_span_accuracy], [SpanAccuracy]
SmCurve::ApproximateCurveSmCurve.cpp:1578222[Curve::approximate_curve], [Curve::approximate_curve_base], [CurveApproximation], [ApproximateCurveOptions]
SmCurve::ClassifyIntersectingRangeSolutionSmCurve.cpp:7856316[Curve::classify_intersecting_range_solution], [TangentPoint]
SmCPGlobalSolver::LocalSolveSmCurve.cpp:10947657CpGlobalSolver::local_solve_branch ([GlobalSolve::local_solve] of [CpGlobalSolver])
SmCurve::GlobalPointSolveSmCurve.cpp:11635269[Curve::global_point_solve], [GlobalPointSolveOptions]
SmCurve::TessellateByBisectionSmCurve.cpp:21162380[Curve::tessellate_by_bisection]
SmCurve::TessellateSmCurve.cpp:2174626[Curve::tessellate], [Curve::tessellate_base]
Module file-header table (8 rows)
RustUpstream
[refine_cc_solutions]sm_RefineCCSolutions (static)
[test_span_accuracy], [SpanAccuracy]sm_TestSpanAccuracy (static)
[Curve::approximate_curve], [Curve::approximate_curve_base], [CurveApproximation], [ApproximateCurveOptions]ApproximateCurve (virtual: the SmCrvOnSurf override), SmCurve::ApproximateCurve
[Curve::classify_intersecting_range_solution], [TangentPoint]SmCurve::ClassifyIntersectingRangeSolution
CpGlobalSolver::local_solve_branch ([GlobalSolve::local_solve] of [CpGlobalSolver])SmCPGlobalSolver::LocalSolve
[Curve::global_point_solve], [GlobalPointSolveOptions]SmCurve::GlobalPointSolve
[Curve::tessellate_by_bisection]SmCurve::TessellateByBisection
[Curve::tessellate], [Curve::tessellate_base]Tessellate (virtual), SmCurve::Tessellate

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