solidcore

Units / geom

geom.extent1d green

Layer
2
Upstream lines
974
Functions
56
Rust module
geom::extent1d

Source: crates/solidcore/src/geom/extent1d.rs

Upstream: source/SMLib/inc/SmExtent1d.h, source/SMLib/inc/SmExtentNd.h, source/SMLib/src/SmExtent1d.cpp, source/SMLib/src/SmExtentNd.cpp

Notes

GREEN: difftest 3091 cases (91 fixture from my_test_extent1d/header examples/edge cases + 3000 generated), all bit-identical, 0 deferred, max_rel_err 0; --perturb SENSITIVE. Wired back-edges: SmExtent3d::Get{U,V,W}Interval/Set{U,V}Interval (geom.extent3d intervals cases no longer deferred), SmTol::MapTo1d(SmTol3d&,SmVector3d&,const SmExtent1d&) and SmTol::GetScaledZero(const SmExtent1d&) (geom.tol, +5 fixtures and a map_to_1d op). Unowned dead fns (OnlySnapValue, Maximum/MinimumDistance, AreOverlapping, ContainsValueRelative, AnyBounds, AssertValid, Dump) not ported. 56 fns; largest: SmExtent1d::IntersectPeriodic, SmExtent1d::ContainsPeriodicValue, SmExtentNd::ClampVector, SmExtent1d::ApproximateUnbounded; unit-SCC #22 (220 units); 317 upstream test entry points reach this unit

Difftest

Cases
3,091
Passed
3,091
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: none

Soft dependencies: geom.tol green

Dependents: blend.fillet_corner_p1 todo blend.fillet_corner_p2 todo blend.fillet_corner_p3 todo blend.fillet_custom_solver partial blend.fillet_executive_p1 todo blend.fillet_executive_p2 todo blend.fillet_geom_p1 claimed blend.fillet_geom_p2 todo blend.fillet_geom_p3 todo blend.fillet_geom_p4 todo blend.fillet_geom_p5 todo blend.fillet_geom_p6 todo blend.fillet_intersector claimed blend.fillet_solver_p1 claimed blend.fillet_solver_p2 todo blend.fillet_solver_p3 todo blend.fillet_solver_p4 claimed blend.fillet_standard_solver_p1 claimed blend.fillet_standard_solver_p2 todo blend.hcr claimed boolean.topology_intersector_p1 partial boolean.topology_intersector_p2 claimed curve.composite_curve_p1 green curve.composite_curve_p2 green curve.conic green curve.crv_in_volume partial curve.crv_on_surf partial curve.curve_cache green curve.curve_p1 partial curve.curve_p2 green curve.curve_p3 green curve.curve_p4 partial curve.curve_p5 partial curve.curve_p6 green curve.curve_p7 green curve.curve_p8 green curve.curve_p9 green curve.ellipse_p1 green curve.ellipse_p2 green curve.hermite_curve green curve.hyperbola green curve.iso_curve green curve.line green curve.offset_curve green curve.parabola green curve.tangent_field green geom.extent2d green geom.geom_utility_p1 green geom.global_solver partial geom.local_solve1d green geom.pseudo_box green geom.tools partial heal.gap partial heal.heal_data_p2 partial heal.stitch_p1 claimed heal.stitch_p2 claimed intersect.curve_class_p1 partial intersect.curve_class_p2 claimed intersect.curve_class_p3 partial intersect.curve_class_p4 claimed intersect.curve_class_p5 partial intersect.curve_class_p6 partial intersect.curve_class_p7 partial intersect.curve_class_p9 partial intersect.ray_tracer partial intersect.surface_drop_curve partial intersect.surface_drop_lib_p1 partial intersect.surface_drop_lib_p2 green intersect.surface_drop_lib_p3 claimed intersect.surface_intersector_p1 partial intersect.surface_intersector_p2 partial intersect.surface_intersector_p3 partial intersect.surface_tracer partial intersect.topology_solver_p2 partial nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p1 green nurbs.b_spline_curve_p2 green nurbs.b_spline_curve_p3 partial nurbs.b_spline_surface_n_lib_p1 green nurbs.b_spline_surface_n_lib_p2 partial nurbs.b_spline_surface_p2 partial offset.offset_executive_p1 claimed offset.offset_geometry_creation claimed primitive.primitive_creation_p1 claimed primitive.primitive_creation_p2 todo primitive.primitive_creation_p3 todo query.api_queries partial query.edge partial query.face_p3 claimed query.loop green surface.cone_p1 green surface.cone_p2 claimed surface.cone_p3 partial surface.offset_surface green surface.plane_p1 partial surface.plane_p2 partial surface.sphere green surface.surf_of_extrusion_p1 green surface.surf_of_extrusion_p2 partial surface.surf_of_revolution_p1 green surface.surf_of_revolution_p2 partial surface.surf_of_revolution_p3 partial surface.surface_cache_p3 partial surface.surface_p1 partial surface.surface_p10 partial surface.surface_p11 partial surface.surface_p2 partial surface.surface_p3 green surface.surface_p4 green surface.surface_p5 green surface.surface_p6 green surface.surface_p7 partial surface.surface_p8 partial surface.surface_p9 partial surface.surface_point_solve_p1 green surface.surface_point_solve_p2 green surface.surface_point_solve_p3 green surface.torus green surface.trim_srf_cache partial surface.unbend_volume green surface.volume_p2 partial sweep.rotational_sweep_geometry partial sweep.topology_sweep claimed topology.brep_p1 claimed topology.brep_p10 claimed topology.brep_p2 claimed topology.brep_p3 claimed topology.brep_p5 claimed topology.brep_p7 claimed topology.brep_p8 claimed topology.brep_p9 claimed topology.edge partial topology.edgeuse_p1 partial topology.edgeuse_p2 partial topology.edgeuse_p3 claimed topology.face_p1 partial topology.face_p2 partial topology.face_p4 claimed topology.loopuse partial topology.proto_topology_p1 partial topology.proto_topology_p2 partial topology.proto_topology_p3 partial topology.trimming_tools partial topology.vertexuse partial

Soft dependents: blend.fillet_solver_p5 claimed boolean.merge_p1 partial boolean.merge_p4 todo boolean.merge_p5 partial boolean.topology_intersector_p3 claimed intersect.curve_class_p8 partial intersect.point_class partial intersect.surface_intersector_p4 partial intersect.topology_solver_p1 partial mass.integrator partial nurbs.b_spline_surface_p1 green nurbs.nurbs_crv green nurbs.nurbs_srf green primitive.api_curves green query.face_p1 claimed query.tess partial surface.bend_volume green surface.surface_cache_p1 green surface.surface_cache_p2 partial surface.twist_volume green topology.brep_data partial topology.brep_p6 claimed topology.vertex partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmExtent1d::SmExtent1dSmExtent1d.h:481[Extent1d]
SmExtent1d::SmExtent1dSmExtent1d.h:501[Extent1d]
SmExtent1d::operator=SmExtent1d.h:527Clone/Copy
SmExtent1d::~SmExtent1dSmExtent1d.h:603
SmExtent1d::InitSmExtent1d.h:651[Extent1d::new], [Default], [Extent1d::init]
SmExtent1d::SetUnboundedSmExtent1d.h:701[Extent1d::set_unbounded]
SmExtent1d::NegateSmExtent1d.h:741[Extent1d::negate]
SmExtent1d::TranslateSmExtent1d.h:754[Extent1d::translate]
SmExtent1d::GetMinSmExtent1d.h:901[Extent1d::min], [Extent1d::max], [Extent1d::mid]
SmExtent1d::GetMaxSmExtent1d.h:911[Extent1d::min], [Extent1d::max], [Extent1d::mid]
SmExtent1d::GetMidSmExtent1d.h:921[Extent1d::min], [Extent1d::max], [Extent1d::mid]
SmExtent1d::GetLengthSmExtent1d.h:931[Extent1d::length]
SmExtent1d::GetMaxDimensionSmExtent1d.h:941[Extent1d::max_dimension]
SmExtentNd::SmExtentNdSmExtentNd.h:6535[ExtentNd], [ExtentNd::new]
SmExtentNd::~SmExtentNdSmExtentNd.h:1066
SmExtentNd::operator[]SmExtentNd.h:1195[ExtentNd::get], [ExtentNd::get_mut]
SmExtentNd::operator[]SmExtentNd.h:1315[ExtentNd::get], [ExtentNd::get_mut]
SmExtent1d::GetTLeftEvalSmExtent1d.cpp:3212[Extent1d::t_left_eval]
SmExtent1d::AssertDefinedSmExtent1d.cpp:879[Extent1d::is_defined]
SmExtent1d::SmExtent1dSmExtent1d.cpp:1027[Extent1d]
SmExtent1d::SmExtent1dSmExtent1d.cpp:11514[Extent1d]
SmExtent1d::AddValueSmExtent1d.cpp:1377[Extent1d::add_value]
SmExtent1d::ClampValueSmExtent1d.cpp:15016[Extent1d::clamp_value]
SmExtent1d::SnapValueSmExtent1d.cpp:17317[Extent1d::snap_value]
SmExtent1d::EvaluateSmExtent1d.cpp:22012[Extent1d::evaluate]
SmExtent1d::SetMinMaxSmExtent1d.cpp:23917[Extent1d::set_min_max]
SmExtent1d::SetMinSmExtent1d.cpp:26310[Extent1d::set_min], [Extent1d::set_max]
SmExtent1d::SetMaxSmExtent1d.cpp:28011[Extent1d::set_min], [Extent1d::set_max]
SmExtent1d::UnionSmExtent1d.cpp:29811[Extent1d::union]
SmExtent1d::DistanceFromSmExtent1d.cpp:35111[Extent1d::distance_from]
SmExtent1d::IntersectSmExtent1d.cpp:37122[Extent1d::intersect]
SmExtent1d::ExpandAbsoluteSmExtent1d.cpp:39911[Extent1d::expand_absolute]
SmExtent1d::ExpandRelativeSmExtent1d.cpp:41611[Extent1d::expand_relative]
SmExtent1d::ScaleSmExtent1d.cpp:43413[Extent1d::scale]
SmExtent1d::InversionSmExtent1d.cpp:46133[Extent1d::inversion], [Inversion]
SmExtent1d::AreDisjointSmExtent1d.cpp:50012[Extent1d::are_disjoint]
SmExtent1d::AreEqualSmExtent1d.cpp:53710[Extent1d::are_equal]
SmExtent1d::AreEqualSmExtent1d.cpp:55312[Extent1d::are_equal]
SmExtent1d::IsContainedBySmExtent1d.cpp:57112[Extent1d::is_contained_by]
SmExtent1d::ContainsValueSmExtent1d.cpp:59013[Extent1d::contains_value]
SmExtent1d::IsValueOnBoundarySmExtent1d.cpp:62822[Extent1d::is_value_on_boundary]
SmExtent1d::ClassifyPointSmExtent1d.cpp:65716[Extent1d::classify_point], [ExtentPointType]
SmExtent1d::IsDegenerateSmExtent1d.cpp:6799[Extent1d::is_degenerate]
SmExtent1d::HasNegativeLengthSmExtent1d.cpp:6948[Extent1d::has_negative_length]
SmExtent1d::IsInitSmExtent1d.cpp:7087[Extent1d::is_init]
SmExtent1d::IsBoundedSmExtent1d.cpp:72222[Extent1d::boundary_type], [Extent1d::is_bounded]
SmExtent1d::ApproximateUnboundedSmExtent1d.cpp:78368[Extent1d::approximate_unbounded], [Extent1d::approximate_unbounded_expanded]
SmExtent1d::operator==SmExtent1d.cpp:85713[Extent1d::are_same]
SmExtent1d::AreDisjointPeriodicSmExtent1d.cpp:87620[Extent1d::are_disjoint_periodic]
SmExtent1d::PeriodicWrapSmExtent1d.cpp:90748[Extent1d::periodic_wrap]
SmExtent1d::IntersectPeriodicSmExtent1d.cpp:1003139[Extent1d::intersect_periodic]
SmExtent1d::ClampPeriodicValueSmExtent1d.cpp:114929[Extent1d::clamp_periodic_value]
SmExtent1d::ContainsPeriodicValueSmExtent1d.cpp:118680[Extent1d::contains_periodic_value], [PeriodicContainment]
SmExtent1d::IsClosedSmExtent1d.cpp:12729[Extent1d::is_closed]
SmExtent1d::IsValueOnPeriodicBoundarySmExtent1d.cpp:128826[Extent1d::is_value_on_periodic_boundary]
SmExtentNd::ClampVectorSmExtentNd.cpp:2180[ExtentNd::clamp_vector]
Module file-header table (51 rows)
RustUpstream
[Extent1d]SmExtent1d
[Extent1d::new], [Default], [Extent1d::init]SmExtent1d(), Init
[Extent1d::from_value]SmExtent1d(double)
[Extent1d::from_min_max]SmExtent1d(double, double)
[Extent1d::from_raw](direct member assignment)
Clone/Copycopy constructor, operator=, destructor
[Extent1d::is_defined]AssertDefined
[Extent1d::set_unbounded]SetUnbounded
[Extent1d::negate]Negate
[Extent1d::translate]Translate
[Extent1d::min], [Extent1d::max], [Extent1d::mid]GetMin, GetMax, GetMid
[Extent1d::length]GetLength
[Extent1d::max_dimension]GetMaxDimension
[Extent1d::t_left_eval]GetTLeftEval
[Extent1d::add_value]AddValue
[Extent1d::clamp_value]ClampValue
[Extent1d::snap_value]SnapValue
[Extent1d::evaluate]Evaluate
[Extent1d::set_min_max]SetMinMax
[Extent1d::set_min], [Extent1d::set_max]SetMin, SetMax
[Extent1d::union]Union
[Extent1d::distance_from]DistanceFrom
[Extent1d::intersect]Intersect
[Extent1d::expand_absolute]ExpandAbsolute
[Extent1d::expand_relative]ExpandRelative
[Extent1d::scale]Scale
[Extent1d::inversion], [Inversion]Inversion
[Extent1d::are_disjoint]AreDisjoint
[Extent1d::are_equal]AreEqual(const SmExtent1d&, double)
[Extent1d::are_equal_bounds]AreEqual(double, double, double)
[Extent1d::is_contained_by]IsContainedBy
[Extent1d::contains_value]ContainsValue
[Extent1d::is_value_on_boundary]IsValueOnBoundary
[Extent1d::classify_point], [ExtentPointType]ClassifyPoint, SmExtentPointType
[Extent1d::is_degenerate]IsDegenerate
[Extent1d::has_negative_length]HasNegativeLength
[Extent1d::is_init]IsInit
[Extent1d::boundary_type], [Extent1d::is_bounded]IsBounded
[Extent1d::approximate_unbounded], [Extent1d::approximate_unbounded_expanded]ApproximateUnbounded
[Extent1d::are_same]operator==
[Extent1d::are_disjoint_periodic]AreDisjointPeriodic
[Extent1d::periodic_wrap]PeriodicWrap
[Extent1d::intersect_periodic]IntersectPeriodic
[Extent1d::clamp_periodic_value]ClampPeriodicValue
[Extent1d::contains_periodic_value], [PeriodicContainment]ContainsPeriodicValue
[Extent1d::is_closed]IsClosed
[Extent1d::is_value_on_periodic_boundary]IsValueOnPeriodicBoundary
[ExtentNd], [ExtentNd::new]SmExtentNd, SmExtentNd(ULONG), destructor
[ExtentNd::get], [ExtentNd::get_mut]operator[] const, operator[]
[ExtentNd::clamp_vector]ClampVector
are_same, are_same_to_tol (private)SM_ARE_SAME, SM_ARE_SAME_TO_TOL

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