Units / curve
curve.composite_curve_p1 green
- Layer
- 21
- Upstream lines
- 1,700
- Functions
- 46
- Rust module
curve::composite_curve::p1
Source: crates/solidcore/src/curve/composite_curve/p1.rs
Upstream: source/SMLib/inc/SmCompositeCurve.h, source/SMLib/src/SmCompositeCurve.cpp
Notes
GREEN (promoted by curve.curve_p5: 3093 cases, 0 deferred after its stubs were wired); PARTIAL: difftest 3093 cases (93 fixture: my_test_cci_self composites/offset rebuild, the disabled BuildCompositesFromCurves square, edge cases + 3000 generated), 2781 pass bit-identical (max_rel_err 0), 312 deferred (curve.curve_p5 312: AssertValid of the joined ApproximateCurve result reaches LocalPropertyAnalysis; corner chamfer / classify solves); 30k-seed run clean; --perturb SENSITIVE; SmCompositeCurve joins Curve as CurveKind::Composite; sm_FlushCrv co-ported (call graph lists it unused); no UNPORTED(curve.composite_curve_p1) stubs to wire; upstream OOB reads (GetKnots, ApproximateCurve NULL join, chamfer sSolutions[0]) in findings.md. 46 fns; largest: SmCompositeCurve::ComputeProjectedLoopOrientation, sm_CreateCorner, SmCompositeCurve::BuildCompositesFromCurves, sm_CurveClassify; cycle back-edges (call into later units; stub or co-port): curve.curve_p5(4); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit
Difftest
- Cases
- 3,093
- Passed
- 3,093
- 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_p3 green curve.curve_p6 green curve.curve_p8 green geom.a_object partial geom.attribute green geom.axis2_placement green geom.extent1d green geom.extent3d green geom.geom_utility_p1 green geom.object partial geom.polar_box green geom.pseudo_box green geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green nurbs.b_spline_curve_p1 green
Soft dependencies: geom.extent2d green nurbs.b_spline_curve_p2 green nurbs.b_spline_curve_p3 partial
Dependents: curve.composite_curve_p2 green primitive.primitive_creation_p2 todo primitive.primitive_creation_p3 todo
Soft dependents: curve.curve_p5 partial surface.curve_bounded_surface green surface.surf_of_revolution_p2 partial surface.surface_p11 partial topology.brep_data partial topology.face_p3 claimed
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmOffsetMapAttribute::SmOffsetMapAttribute | SmCompositeCurve.h:88 | 17 | [OffsetMapAttribute], [OffsetMapAttribute::new], Clone |
SmOffsetMapAttribute::SmOffsetMapAttribute | SmCompositeCurve.h:106 | 10 | [OffsetMapAttribute], [OffsetMapAttribute::new], Clone |
SmOffsetMapAttribute::~SmOffsetMapAttribute | SmCompositeCurve.h:117 | 1 | |
SmOffsetMapAttribute::GetCornerOffset | SmCompositeCurve.h:121 | 1 | [OffsetMapAttribute::corner_offset], [OffsetMapAttribute::curve], [OffsetMapAttribute::other_curve], [OffsetMapAttribute::orig_curve] |
SmOffsetMapAttribute::GetCurve | SmCompositeCurve.h:127 | 1 | [OffsetMapAttribute::corner_offset], [OffsetMapAttribute::curve], [OffsetMapAttribute::other_curve], [OffsetMapAttribute::orig_curve] |
SmOffsetMapAttribute::GetOtherCurve | SmCompositeCurve.h:129 | 1 | [OffsetMapAttribute::corner_offset], [OffsetMapAttribute::curve], [OffsetMapAttribute::other_curve], [OffsetMapAttribute::orig_curve] |
SmOffsetMapAttribute::GetOrigCurve | SmCompositeCurve.h:133 | 1 | [OffsetMapAttribute::corner_offset], [OffsetMapAttribute::curve], [OffsetMapAttribute::other_curve], [OffsetMapAttribute::orig_curve] |
SmOffsetMapAttribute::GetType | SmCompositeCurve.h:144 | 1 | [OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of] |
SmOffsetMapAttribute::GetTypeString | SmCompositeCurve.h:144 | 1 | [OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of] |
SmCompositeCurveSegment::~SmCompositeCurveSegment | SmCompositeCurve.h:190 | 1 | |
SmCompositeCurveSegment::GetCurve | SmCompositeCurve.h:196 | 1 | [CompositeCurveSegment::curve] |
SmCompositeCurveSegment::IsKindOf | SmCompositeCurve.h:218 | 1 | [CompositeCurveSegment::is_kind_of] |
SmCompositeCurveRegion::GetClassString | SmCompositeCurve.h:290 | 1 | [REGION_TYPE], [REGION_TYPE_STRING], [REGION_CLASS_STRING], [region_is_kind_of] |
SmCompositeCurveRegion::GetType | SmCompositeCurve.h:290 | 1 | [REGION_TYPE], [REGION_TYPE_STRING], [REGION_CLASS_STRING], [region_is_kind_of] |
SmCompositeCurveRegion::GetTypeString | SmCompositeCurve.h:290 | 1 | [OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of] |
SmCompositeCurve::SmCompositeCurve | SmCompositeCurve.h:335 | 1 | [CompositeCurve], [CompositeCurve::new] |
SmCompositeCurve::Copy | SmCompositeCurve.h:364 | 8 | [CompositeCurve::copy] |
SmCompositeCurve::SetContext | SmCompositeCurve.h:410 | 8 | |
SmCompositeCurve::IsClosed | SmCompositeCurve.h:419 | 1 | [CompositeCurve::is_closed] |
SmCompositeCurve::GetClassString | SmCompositeCurve.h:544 | 1 | [REGION_TYPE], [REGION_TYPE_STRING], [REGION_CLASS_STRING], [region_is_kind_of] |
SmCompositeCurve::GetType | SmCompositeCurve.h:544 | 1 | [OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of] |
SmCompositeCurve::GetTypeString | SmCompositeCurve.h:544 | 1 | [OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of] |
SmCompositeCurveSegment::operator== | SmCompositeCurve.cpp:22 | 26 | [CompositeCurveSegment::approx_eq] |
SmOffsetMapAttribute::IsKindOf | SmCompositeCurve.cpp:260 | 4 | [OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of] |
SmCompositeCurve::GetCurveSegment | SmCompositeCurve.cpp:284 | 11 | [CompositeCurve::segment], [CompositeCurve::num_segments] |
sm_convert_to_BSplineCurves | SmCompositeCurve.cpp:303 | 82 | [convert_to_bspline_curves] |
SmCompositeCurve::CalculateBoundingBox | SmCompositeCurve.cpp:392 | 67 | [CompositeCurve::calculate_bounding_box] |
SmCompositeCurve::GetNaturalInterval | SmCompositeCurve.cpp:467 | 29 | [CompositeCurve::natural_interval] |
SmCompositeCurve::GetKnots | SmCompositeCurve.cpp:505 | 82 | [CompositeCurve::knots] |
SmCompositeCurve::ApproximateCurve | SmCompositeCurve.cpp:595 | 91 | [CompositeCurve::approximate_curve], [CompositeApproximation] |
SmCompositeCurve::ComputeProjectedLoopOrientation | SmCompositeCurve.cpp:707 | 337 | [CompositeCurve::compute_projected_loop_orientation] |
SmCompositeCurve::SmCompositeCurve | SmCompositeCurve.cpp:1050 | 52 | [CompositeCurve], [CompositeCurve::new] |
SmCompositeCurve::SmCompositeCurve | SmCompositeCurve.cpp:1111 | 30 | [CompositeCurve], [CompositeCurve::new] |
SmCompositeCurve::operator== | SmCompositeCurve.cpp:1148 | 34 | [CompositeCurveSegment::approx_eq] |
SmCurveItem::SmCurveItem | SmCompositeCurve.cpp:1200 | 6 | CurveItem (private) |
SmCompositeCurve::BuildCompositesFromCurves | SmCompositeCurve.cpp:1445 | 223 | [CompositeCurve::build_composites_from_curves], [BuiltComposites] |
SmCompositeCurve::~SmCompositeCurve | SmCompositeCurve.cpp:1674 | 11 | Drop (implicit) |
SmCompositeCurve::GetCanonical | SmCompositeCurve.cpp:1691 | 27 | [CompositeCurve::canonical], [CompositeCanonical] |
sm_CreateCorner | SmCompositeCurve.cpp:1785 | 259 | [create_corner], [CornerCurves], [OffsetCornerType] |
sm_CurveClassify | SmCompositeCurve.cpp:2051 | 142 | [curve_classify] |
sm_TrimFirstBreak | SmCompositeCurve.cpp:2200 | 35 | [trim_first_break], [trim_last_break], [insert_sorted_breaks] |
sm_TrimLastBreak | SmCompositeCurve.cpp:2242 | 34 | [trim_first_break], [trim_last_break], [insert_sorted_breaks] |
sm_InsertSortedBreaks | SmCompositeCurve.cpp:2282 | 28 | [trim_first_break], [trim_last_break], [insert_sorted_breaks] |
SmCompositeCurve::Transform | SmCompositeCurve.cpp:3638 | 21 | [CompositeCurve::transform] |
SmCompositeCurve::IsKindOf | SmCompositeCurve.cpp:4230 | 4 | [OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of] |
SmCompositeCurveRegion::IsKindOf | SmCompositeCurve.cpp:4334 | 4 | [OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of] |
Module file-header table (30 rows)
| Rust | Upstream |
|---|---|
[OffsetMapAttribute], [OffsetMapAttribute::new], Clone | SmOffsetMapAttribute (constructor, copy constructor, ~) |
[OffsetMapAttribute::corner_offset], [OffsetMapAttribute::curve], [OffsetMapAttribute::other_curve], [OffsetMapAttribute::orig_curve] | GetCornerOffset, GetCurve, GetOtherCurve, GetOrigCurve |
[OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of] | GetType, GetTypeString, IsKindOf (SM_COMMON) |
[CompositeCurveSegment], Drop (implicit) | SmCompositeCurveSegment (data, ~) |
[CompositeCurveSegment::approx_eq] | SmCompositeCurveSegment::operator== |
[CompositeCurveSegment::curve] | SmCompositeCurveSegment::GetCurve |
[CompositeCurveSegment::is_kind_of] | SmCompositeCurveSegment::IsKindOf (SM_COMMON_ONLY_BASE) |
[REGION_TYPE], [REGION_TYPE_STRING], [REGION_CLASS_STRING], [region_is_kind_of] | SmCompositeCurveRegion::GetType, GetTypeString, GetClassString, IsKindOf |
[CompositeCurve], [CompositeCurve::new] | SmCompositeCurve, SmCompositeCurve(ULONG) |
[CompositeCurve::with_curves] | SmCompositeCurve(lDim, crCurves, bIsClosed, cpSenses, cpGaps) |
[CompositeCurve::copy] | copy constructor, Copy |
Drop (implicit) | ~SmCompositeCurve |
[TYPE], [TYPE_STRING], [CLASS_STRING], [is_kind_of] | GetType, GetTypeString, GetClassString, IsKindOf |
[CompositeCurve::approx_eq] | operator== |
[CompositeCurve::segment], [CompositeCurve::num_segments] | GetCurveSegment, GetNumSegments |
[CompositeCurve::is_closed] | IsClosed |
[CompositeCurve::canonical], [CompositeCanonical] | GetCanonical |
[CompositeCurve::natural_interval] | GetNaturalInterval |
[CompositeCurve::knots] | GetKnots |
[CompositeCurve::calculate_bounding_box] | CalculateBoundingBox |
[CompositeCurve::approximate_curve], [CompositeApproximation] | ApproximateCurve |
[CompositeCurve::transform] | Transform |
[CompositeCurve::compute_projected_loop_orientation] | ComputeProjectedLoopOrientation (static) |
[CompositeCurve::build_composites_from_curves], [BuiltComposites] | BuildCompositesFromCurves (static) |
CurveItem (private) | SmCurveItem (constructor) |
flush_crv (private) | sm_FlushCrv (static) |
[convert_to_bspline_curves] | sm_convert_to_BSplineCurves (static) |
[create_corner], [CornerCurves], [OffsetCornerType] | sm_CreateCorner (static), SmOffsetCornerType |
[curve_classify] | sm_CurveClassify (static) |
[trim_first_break], [trim_last_break], [insert_sorted_breaks] | sm_TrimFirstBreak, sm_TrimLastBreak, sm_InsertSortedBreaks (static) |
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