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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmExtent1d::SmExtent1d | SmExtent1d.h:48 | 1 | [Extent1d] |
SmExtent1d::SmExtent1d | SmExtent1d.h:50 | 1 | [Extent1d] |
SmExtent1d::operator= | SmExtent1d.h:52 | 7 | Clone/Copy |
SmExtent1d::~SmExtent1d | SmExtent1d.h:60 | 3 | |
SmExtent1d::Init | SmExtent1d.h:65 | 1 | [Extent1d::new], [Default], [Extent1d::init] |
SmExtent1d::SetUnbounded | SmExtent1d.h:70 | 1 | [Extent1d::set_unbounded] |
SmExtent1d::Negate | SmExtent1d.h:74 | 1 | [Extent1d::negate] |
SmExtent1d::Translate | SmExtent1d.h:75 | 4 | [Extent1d::translate] |
SmExtent1d::GetMin | SmExtent1d.h:90 | 1 | [Extent1d::min], [Extent1d::max], [Extent1d::mid] |
SmExtent1d::GetMax | SmExtent1d.h:91 | 1 | [Extent1d::min], [Extent1d::max], [Extent1d::mid] |
SmExtent1d::GetMid | SmExtent1d.h:92 | 1 | [Extent1d::min], [Extent1d::max], [Extent1d::mid] |
SmExtent1d::GetLength | SmExtent1d.h:93 | 1 | [Extent1d::length] |
SmExtent1d::GetMaxDimension | SmExtent1d.h:94 | 1 | [Extent1d::max_dimension] |
SmExtentNd::SmExtentNd | SmExtentNd.h:65 | 35 | [ExtentNd], [ExtentNd::new] |
SmExtentNd::~SmExtentNd | SmExtentNd.h:106 | 6 | |
SmExtentNd::operator[] | SmExtentNd.h:119 | 5 | [ExtentNd::get], [ExtentNd::get_mut] |
SmExtentNd::operator[] | SmExtentNd.h:131 | 5 | [ExtentNd::get], [ExtentNd::get_mut] |
SmExtent1d::GetTLeftEval | SmExtent1d.cpp:32 | 12 | [Extent1d::t_left_eval] |
SmExtent1d::AssertDefined | SmExtent1d.cpp:87 | 9 | [Extent1d::is_defined] |
SmExtent1d::SmExtent1d | SmExtent1d.cpp:102 | 7 | [Extent1d] |
SmExtent1d::SmExtent1d | SmExtent1d.cpp:115 | 14 | [Extent1d] |
SmExtent1d::AddValue | SmExtent1d.cpp:137 | 7 | [Extent1d::add_value] |
SmExtent1d::ClampValue | SmExtent1d.cpp:150 | 16 | [Extent1d::clamp_value] |
SmExtent1d::SnapValue | SmExtent1d.cpp:173 | 17 | [Extent1d::snap_value] |
SmExtent1d::Evaluate | SmExtent1d.cpp:220 | 12 | [Extent1d::evaluate] |
SmExtent1d::SetMinMax | SmExtent1d.cpp:239 | 17 | [Extent1d::set_min_max] |
SmExtent1d::SetMin | SmExtent1d.cpp:263 | 10 | [Extent1d::set_min], [Extent1d::set_max] |
SmExtent1d::SetMax | SmExtent1d.cpp:280 | 11 | [Extent1d::set_min], [Extent1d::set_max] |
SmExtent1d::Union | SmExtent1d.cpp:298 | 11 | [Extent1d::union] |
SmExtent1d::DistanceFrom | SmExtent1d.cpp:351 | 11 | [Extent1d::distance_from] |
SmExtent1d::Intersect | SmExtent1d.cpp:371 | 22 | [Extent1d::intersect] |
SmExtent1d::ExpandAbsolute | SmExtent1d.cpp:399 | 11 | [Extent1d::expand_absolute] |
SmExtent1d::ExpandRelative | SmExtent1d.cpp:416 | 11 | [Extent1d::expand_relative] |
SmExtent1d::Scale | SmExtent1d.cpp:434 | 13 | [Extent1d::scale] |
SmExtent1d::Inversion | SmExtent1d.cpp:461 | 33 | [Extent1d::inversion], [Inversion] |
SmExtent1d::AreDisjoint | SmExtent1d.cpp:500 | 12 | [Extent1d::are_disjoint] |
SmExtent1d::AreEqual | SmExtent1d.cpp:537 | 10 | [Extent1d::are_equal] |
SmExtent1d::AreEqual | SmExtent1d.cpp:553 | 12 | [Extent1d::are_equal] |
SmExtent1d::IsContainedBy | SmExtent1d.cpp:571 | 12 | [Extent1d::is_contained_by] |
SmExtent1d::ContainsValue | SmExtent1d.cpp:590 | 13 | [Extent1d::contains_value] |
SmExtent1d::IsValueOnBoundary | SmExtent1d.cpp:628 | 22 | [Extent1d::is_value_on_boundary] |
SmExtent1d::ClassifyPoint | SmExtent1d.cpp:657 | 16 | [Extent1d::classify_point], [ExtentPointType] |
SmExtent1d::IsDegenerate | SmExtent1d.cpp:679 | 9 | [Extent1d::is_degenerate] |
SmExtent1d::HasNegativeLength | SmExtent1d.cpp:694 | 8 | [Extent1d::has_negative_length] |
SmExtent1d::IsInit | SmExtent1d.cpp:708 | 7 | [Extent1d::is_init] |
SmExtent1d::IsBounded | SmExtent1d.cpp:722 | 22 | [Extent1d::boundary_type], [Extent1d::is_bounded] |
SmExtent1d::ApproximateUnbounded | SmExtent1d.cpp:783 | 68 | [Extent1d::approximate_unbounded], [Extent1d::approximate_unbounded_expanded] |
SmExtent1d::operator== | SmExtent1d.cpp:857 | 13 | [Extent1d::are_same] |
SmExtent1d::AreDisjointPeriodic | SmExtent1d.cpp:876 | 20 | [Extent1d::are_disjoint_periodic] |
SmExtent1d::PeriodicWrap | SmExtent1d.cpp:907 | 48 | [Extent1d::periodic_wrap] |
SmExtent1d::IntersectPeriodic | SmExtent1d.cpp:1003 | 139 | [Extent1d::intersect_periodic] |
SmExtent1d::ClampPeriodicValue | SmExtent1d.cpp:1149 | 29 | [Extent1d::clamp_periodic_value] |
SmExtent1d::ContainsPeriodicValue | SmExtent1d.cpp:1186 | 80 | [Extent1d::contains_periodic_value], [PeriodicContainment] |
SmExtent1d::IsClosed | SmExtent1d.cpp:1272 | 9 | [Extent1d::is_closed] |
SmExtent1d::IsValueOnPeriodicBoundary | SmExtent1d.cpp:1288 | 26 | [Extent1d::is_value_on_periodic_boundary] |
SmExtentNd::ClampVector | SmExtentNd.cpp:21 | 80 | [ExtentNd::clamp_vector] |
Module file-header table (51 rows)
| Rust | Upstream |
|---|---|
[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/Copy | copy 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