solidcore

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 functionDefined atLinesRust (from the file header)
SmOffsetMapAttribute::SmOffsetMapAttributeSmCompositeCurve.h:8817[OffsetMapAttribute], [OffsetMapAttribute::new], Clone
SmOffsetMapAttribute::SmOffsetMapAttributeSmCompositeCurve.h:10610[OffsetMapAttribute], [OffsetMapAttribute::new], Clone
SmOffsetMapAttribute::~SmOffsetMapAttributeSmCompositeCurve.h:1171
SmOffsetMapAttribute::GetCornerOffsetSmCompositeCurve.h:1211[OffsetMapAttribute::corner_offset], [OffsetMapAttribute::curve], [OffsetMapAttribute::other_curve], [OffsetMapAttribute::orig_curve]
SmOffsetMapAttribute::GetCurveSmCompositeCurve.h:1271[OffsetMapAttribute::corner_offset], [OffsetMapAttribute::curve], [OffsetMapAttribute::other_curve], [OffsetMapAttribute::orig_curve]
SmOffsetMapAttribute::GetOtherCurveSmCompositeCurve.h:1291[OffsetMapAttribute::corner_offset], [OffsetMapAttribute::curve], [OffsetMapAttribute::other_curve], [OffsetMapAttribute::orig_curve]
SmOffsetMapAttribute::GetOrigCurveSmCompositeCurve.h:1331[OffsetMapAttribute::corner_offset], [OffsetMapAttribute::curve], [OffsetMapAttribute::other_curve], [OffsetMapAttribute::orig_curve]
SmOffsetMapAttribute::GetTypeSmCompositeCurve.h:1441[OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of]
SmOffsetMapAttribute::GetTypeStringSmCompositeCurve.h:1441[OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of]
SmCompositeCurveSegment::~SmCompositeCurveSegmentSmCompositeCurve.h:1901
SmCompositeCurveSegment::GetCurveSmCompositeCurve.h:1961[CompositeCurveSegment::curve]
SmCompositeCurveSegment::IsKindOfSmCompositeCurve.h:2181[CompositeCurveSegment::is_kind_of]
SmCompositeCurveRegion::GetClassStringSmCompositeCurve.h:2901[REGION_TYPE], [REGION_TYPE_STRING], [REGION_CLASS_STRING], [region_is_kind_of]
SmCompositeCurveRegion::GetTypeSmCompositeCurve.h:2901[REGION_TYPE], [REGION_TYPE_STRING], [REGION_CLASS_STRING], [region_is_kind_of]
SmCompositeCurveRegion::GetTypeStringSmCompositeCurve.h:2901[OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of]
SmCompositeCurve::SmCompositeCurveSmCompositeCurve.h:3351[CompositeCurve], [CompositeCurve::new]
SmCompositeCurve::CopySmCompositeCurve.h:3648[CompositeCurve::copy]
SmCompositeCurve::SetContextSmCompositeCurve.h:4108
SmCompositeCurve::IsClosedSmCompositeCurve.h:4191[CompositeCurve::is_closed]
SmCompositeCurve::GetClassStringSmCompositeCurve.h:5441[REGION_TYPE], [REGION_TYPE_STRING], [REGION_CLASS_STRING], [region_is_kind_of]
SmCompositeCurve::GetTypeSmCompositeCurve.h:5441[OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of]
SmCompositeCurve::GetTypeStringSmCompositeCurve.h:5441[OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of]
SmCompositeCurveSegment::operator==SmCompositeCurve.cpp:2226[CompositeCurveSegment::approx_eq]
SmOffsetMapAttribute::IsKindOfSmCompositeCurve.cpp:2604[OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of]
SmCompositeCurve::GetCurveSegmentSmCompositeCurve.cpp:28411[CompositeCurve::segment], [CompositeCurve::num_segments]
sm_convert_to_BSplineCurvesSmCompositeCurve.cpp:30382[convert_to_bspline_curves]
SmCompositeCurve::CalculateBoundingBoxSmCompositeCurve.cpp:39267[CompositeCurve::calculate_bounding_box]
SmCompositeCurve::GetNaturalIntervalSmCompositeCurve.cpp:46729[CompositeCurve::natural_interval]
SmCompositeCurve::GetKnotsSmCompositeCurve.cpp:50582[CompositeCurve::knots]
SmCompositeCurve::ApproximateCurveSmCompositeCurve.cpp:59591[CompositeCurve::approximate_curve], [CompositeApproximation]
SmCompositeCurve::ComputeProjectedLoopOrientationSmCompositeCurve.cpp:707337[CompositeCurve::compute_projected_loop_orientation]
SmCompositeCurve::SmCompositeCurveSmCompositeCurve.cpp:105052[CompositeCurve], [CompositeCurve::new]
SmCompositeCurve::SmCompositeCurveSmCompositeCurve.cpp:111130[CompositeCurve], [CompositeCurve::new]
SmCompositeCurve::operator==SmCompositeCurve.cpp:114834[CompositeCurveSegment::approx_eq]
SmCurveItem::SmCurveItemSmCompositeCurve.cpp:12006CurveItem (private)
SmCompositeCurve::BuildCompositesFromCurvesSmCompositeCurve.cpp:1445223[CompositeCurve::build_composites_from_curves], [BuiltComposites]
SmCompositeCurve::~SmCompositeCurveSmCompositeCurve.cpp:167411Drop (implicit)
SmCompositeCurve::GetCanonicalSmCompositeCurve.cpp:169127[CompositeCurve::canonical], [CompositeCanonical]
sm_CreateCornerSmCompositeCurve.cpp:1785259[create_corner], [CornerCurves], [OffsetCornerType]
sm_CurveClassifySmCompositeCurve.cpp:2051142[curve_classify]
sm_TrimFirstBreakSmCompositeCurve.cpp:220035[trim_first_break], [trim_last_break], [insert_sorted_breaks]
sm_TrimLastBreakSmCompositeCurve.cpp:224234[trim_first_break], [trim_last_break], [insert_sorted_breaks]
sm_InsertSortedBreaksSmCompositeCurve.cpp:228228[trim_first_break], [trim_last_break], [insert_sorted_breaks]
SmCompositeCurve::TransformSmCompositeCurve.cpp:363821[CompositeCurve::transform]
SmCompositeCurve::IsKindOfSmCompositeCurve.cpp:42304[OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of]
SmCompositeCurveRegion::IsKindOfSmCompositeCurve.cpp:43344[OFFSET_MAP_ATTRIBUTE_TYPE], [OffsetMapAttribute::type_string], [OffsetMapAttribute::is_kind_of]
Module file-header table (30 rows)
RustUpstream
[OffsetMapAttribute], [OffsetMapAttribute::new], CloneSmOffsetMapAttribute (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