Units / curve
curve.curve_cache green
- Layer
- 14
- Upstream lines
- 1,474
- Functions
- 24
- Rust module
curve::curve_cache
Source: crates/solidcore/src/curve/curve_cache.rs
Upstream: source/SMLib/inc/SmCurveCache.h, source/SMLib/src/SmCurveCache.cpp
Notes
GREEN (promoted by curve.curve_p5: 638 cases, 0 deferred after its stubs were wired); PARTIAL: difftest 638 cases (38 fixture: lines, cubics, C0 quadratic, closed, degenerate, 2D, rational arc and Hermite curves through Tessellate with every option, sub/beyond/disjoint/reversed intervals, GetAnalyticCurve, type queries + 600 generated), 635 pass bit-identical (max_rel_err 0), 3 deferred (curve.curve_p5 2: SmCurve::IsArc, curve.line 1: SmLine in GetAnalyticCurve); co-ported SmFindCurveDistanceExtremaEFO::Evaluate (curve.curve_p4) and SmCurve::IsLine (curve.curve_p5, curve::curve::p5::is_line_base); wired curve_p2 span stubs, SmTree::GetOwnerObject and the IsLine stub of nurbs.b_spline_curve_p2; 24 fns; largest: SmCurveCache::Tessellate, sm_ComputeConstants, SmCurveCache::BuildTree, sm_ComputeParentData; cycle back-edges (call into later units; stub or co-port): curve.curve_p4(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit; after curve.line: 638 cases, 636 pass, 2 deferred (curve.curve_p5 2)
Difftest
- Cases
- 638
- Passed
- 638
- 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 geom.extent1d green geom.extent3d green geom.object partial geom.tol green geom.vector3d green nlib.math green nurbs.b_spline_curve_p1 green nurbs.nurbs_crv green
Soft dependencies: geom.geom_utility_p1 green geom.local_solve1d green geom.pseudo_box green geom.tree partial nlib.knots green nurbs.b_spline_curve_p2 green
Dependents: curve.curve_p1 partial curve.curve_p5 partial curve.curve_p7 green curve.curve_p9 green intersect.surface_drop_lib_p3 claimed surface.surface_p11 partial surface.trim_srf_cache partial
Soft dependents: blend.fillet_executive_p1 todo curve.curve_p3 green curve.curve_p8 green intersect.curve_class_p9 partial intersect.surface_drop_curve partial intersect.surface_intersector_p4 partial intersect.surface_tracer partial surface.surface_p2 partial surface.surface_p7 partial surface.surface_p8 partial surface.surface_p9 partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmBezierAux1d::GetInterval | SmCurveCache.h:99 | 1 | [BezierAux1d::interval] |
SmBezierSpan::GetPseudoBox | SmCurveCache.h:146 | 1 | [BezierSpan], [BezierSpan::pseudo_box] |
SmCurveCache::GetSpanCount | SmCurveCache.h:233 | 4 | [CurveCache::span_count] |
SmCurveCache::GetAt | SmCurveCache.h:238 | 5 | [CurveCache::span] |
SmCurveCache::GetParentAt | SmCurveCache.h:244 | 5 | [CurveCache::parent] |
SmCurveCache::GetTree | SmCurveCache.h:256 | 1 | [CurveCache::tree] |
SmCurveCache::GetCurve | SmCurveCache.h:261 | 1 | [CurveCache::curve] |
SmCurveCache::GetContinuitiesArray | SmCurveCache.h:266 | 1 | [CurveCache::continuities] |
SmCurveCache::GetType | SmCurveCache.h:288 | 1 | [TYPE], [TYPE_STRING], [CurveCache::type_code], [CurveCache::type_string] |
SmCurveCache::GetTypeString | SmCurveCache.h:288 | 1 | [TYPE], [TYPE_STRING], [CurveCache::type_code], [CurveCache::type_string] |
sm_GetBezierPolygon | SmCurveCache.cpp:28 | 33 | [bezier_polygon] |
sm_ComputeParentData | SmCurveCache.cpp:73 | 118 | compute_parent_data (private) |
SmCurveCache::GetAnalyticCurve | SmCurveCache.cpp:198 | 20 | [CurveCache::analytic_curve] |
SmCurveCache::BuildTree | SmCurveCache.cpp:358 | 211 | [CurveCache::build_tree] |
SmBezierAux1d::GetEnds | SmCurveCache.cpp:609 | 14 | [BezierAux1d::ends_on] |
SmCurveCache::SmCurveCache | SmCurveCache.cpp:705 | 63 | [CurveCache::new] |
SmCurveCache::~SmCurveCache | SmCurveCache.cpp:774 | 15 | Drop (implicit) |
sm_ComputeConstants | SmCurveCache.cpp:858 | 285 | [compute_constants], [SpanConstants] |
sm_BuildBezierSpans | SmCurveCache.cpp:1157 | 52 | [build_bezier_spans] |
sm_CreateBezierSegmentBlock | SmCurveCache.cpp:1224 | 80 | [create_bezier_segment_block] |
sm_SplitSegment | SmCurveCache.cpp:1310 | 103 | [split_segment] |
SmCurveCache::Tessellate | SmCurveCache.cpp:1454 | 414 | [CurveCache::tessellate] |
SmCurveCache::OutputSegment | SmCurveCache.cpp:2008 | 41 | [CurveCache::output_segment] |
SmCurveCache::IsKindOf | SmCurveCache.cpp:2054 | 4 | [is_kind_of], [CurveCache::is_kind_of] |
Module file-header table (26 rows)
| Rust | Upstream |
|---|---|
[BezierAux1d] | SmBezierAux1d |
[BezierAux1d::interval] | SmBezierAux1d::GetInterval |
[BezierAux1d::ends_on] | SmBezierAux1d::GetEnds |
[BezierSpan], [BezierSpan::pseudo_box] | SmBezierSpan, SmBezierSpan::GetPseudoBox |
[CurveCache], [CurveCacheOptions] | SmCurveCache, its constructor arguments |
[CurveCache::new] | SmCurveCache::SmCurveCache |
Drop (implicit) | SmCurveCache::~SmCurveCache |
[CurveCache::tessellate] | SmCurveCache::Tessellate |
[CurveCache::build_tree] | SmCurveCache::BuildTree |
[CurveCache::output_segment] | SmCurveCache::OutputSegment |
[CurveCache::analytic_curve] | SmCurveCache::GetAnalyticCurve |
[CurveCache::span_count] | SmCurveCache::GetSpanCount |
[CurveCache::span] | SmCurveCache::GetAt |
[CurveCache::parent] | SmCurveCache::GetParentAt |
[CurveCache::tree] | SmCurveCache::GetTree |
[CurveCache::curve] | SmCurveCache::GetCurve |
[CurveCache::continuities] | SmCurveCache::GetContinuitiesArray |
[TYPE], [TYPE_STRING], [CurveCache::type_code], [CurveCache::type_string] | GetType, GetTypeString (SM_COMMON) |
[is_kind_of], [CurveCache::is_kind_of] | SmCurveCache::IsKindOf |
[bezier_polygon] | sm_GetBezierPolygon (static) |
compute_parent_data (private) | sm_ComputeParentData |
[compute_constants], [SpanConstants] | sm_ComputeConstants (static) |
[build_bezier_spans] | sm_BuildBezierSpans (static) |
[create_bezier_segment_block] | sm_CreateBezierSegmentBlock (static) |
[split_segment] | sm_SplitSegment (static) |
impl EvalFunction for FindCurveDistanceExtrema | SmFindCurveDistanceExtremaEFO::Evaluate (co-ported from unit curve.curve_p4) |
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