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 unit | Deferred cases |
|---|---|
topology.brep_p1 claimed | 26 |
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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
sm_RefineCCSolutions | SmCurve.cpp:96 | 111 | [refine_cc_solutions] |
sm_TestSpanAccuracy | SmCurve.cpp:235 | 116 | [test_span_accuracy], [SpanAccuracy] |
SmCurve::ApproximateCurve | SmCurve.cpp:1578 | 222 | [Curve::approximate_curve], [Curve::approximate_curve_base], [CurveApproximation], [ApproximateCurveOptions] |
SmCurve::ClassifyIntersectingRangeSolution | SmCurve.cpp:7856 | 316 | [Curve::classify_intersecting_range_solution], [TangentPoint] |
SmCPGlobalSolver::LocalSolve | SmCurve.cpp:10947 | 657 | CpGlobalSolver::local_solve_branch ([GlobalSolve::local_solve] of [CpGlobalSolver]) |
SmCurve::GlobalPointSolve | SmCurve.cpp:11635 | 269 | [Curve::global_point_solve], [GlobalPointSolveOptions] |
SmCurve::TessellateByBisection | SmCurve.cpp:21162 | 380 | [Curve::tessellate_by_bisection] |
SmCurve::Tessellate | SmCurve.cpp:21746 | 26 | [Curve::tessellate], [Curve::tessellate_base] |
Module file-header table (8 rows)
| Rust | Upstream |
|---|---|
[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