solidcore

Units / geom

geom.extent3d green

Layer
0
Upstream lines
1,122
Functions
67
Rust module
geom::extent3d

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

Upstream: source/SMLib/inc/SmExtent3d.h, source/SMLib/src/SmExtent3d.cpp

Notes

GREEN: difftest 3086 cases, all bit-identical, 0 deferred (Circumscribe wired by geom.pseudo_box); geom.extent1d intervals wired; co-ports sm_sqrt/sm_asin/GetMaxDimension (geom.vector3d). 67 fns; largest: SmExtent3d::IntersectLine, SmExtent3d::Circumscribe, SmExtent3d::ApproximateUnbounded, SmExtent3d::ComputeConeBoundTo; cycle back-edges (call into later units; stub or co-port): geom.vector3d(51), geom.extent1d(9), geom.pseudo_box(4); unit-SCC #22 (220 units); 318 upstream test entry points reach this unit

Difftest

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

Dependents: blend.hcr claimed boolean.merge_p1 partial boolean.merge_p2 todo boolean.topology_intersector_p1 partial boolean.topology_intersector_p3 claimed curve.composite_curve_p1 green curve.curve_cache green curve.curve_p2 green curve.curve_p6 green curve.curve_p7 green curve.curve_p8 green curve.curve_p9 green curve.hermite_curve green curve.line green geom.global_solver partial geom.grid partial geom.hash_table green geom.object partial geom.point_set green geom.pseudo_box green geom.solution_array partial geom.tol green geom.transform green geom.tree partial heal.stitch_p1 claimed heal.stitch_p2 claimed intersect.adv_surface_intersector partial intersect.curve_class_p8 partial intersect.ray_tracer partial intersect.surface_intersector_p1 partial intersect.surface_intersector_p3 partial intersect.surface_intersector_p4 partial intersect.surface_intersector_p5 partial intersect.surface_tracer partial intersect.topology_solver_p1 partial mass.integrator partial nurbs.b_spline_curve_p2 green nurbs.b_spline_surface_n_lib_p2 partial nurbs.b_spline_surface_p1 green nurbs.nurbs_crv green nurbs.nurbs_srf green offset.offset_executive_p1 claimed primitive.primitive_creation_p1 claimed primitive.primitive_creation_p2 todo primitive.primitive_creation_p3 todo query.api_queries partial query.brep claimed query.edge partial query.face_p1 claimed query.face_p3 claimed query.poly partial surface.b_spline_volume green surface.b_spline_volume_n_lib partial surface.bend_volume green surface.cone_p3 partial surface.offset_surface green surface.plane_p2 partial surface.sphere green surface.surface_cache_p1 green surface.surface_p1 partial surface.surface_p10 partial surface.surface_p2 partial surface.surface_p3 green surface.surface_p6 green surface.surface_p7 partial surface.surface_p8 partial surface.surface_point_solve_p1 green surface.trim_srf_cache partial surface.twist_volume green surface.unbend_volume green surface.volume_p1 green surface.volume_p2 partial topology.brep_cache partial topology.brep_p10 claimed topology.brep_p2 claimed topology.brep_p3 claimed topology.brep_p5 claimed topology.brep_p9 claimed topology.edgeuse_p3 claimed topology.face_p1 partial topology.shell claimed topology.trimming_tools partial

Soft dependents: blend.fillet_geom_p4 todo boolean.topology_intersector_p2 claimed curve.crv_in_volume partial curve.curve_p1 partial geom.extent2d green heal.heal_data_p2 partial intersect.surface_intersector_p2 partial intersect.topology_solver_p2 partial nurbs.b_spline_curve_p3 partial nurbs.b_spline_surface_p2 partial offset.offset_geometry_creation claimed surface.surf_of_revolution_p2 partial surface.surf_of_revolution_p3 partial surface.surface_cache_p2 partial surface.surface_cache_p3 partial surface.surface_p11 partial surface.surface_p9 partial sweep.topology_sweep claimed topology.brep_p1 claimed topology.brep_p6 claimed

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmExtent3d::SmExtent3dSmExtent3d.h:401[Extent3d]
SmExtent3d::SmExtent3dSmExtent3d.h:433[Extent3d]
SmExtent3d::SmExtent3dSmExtent3d.h:468[Extent3d]
SmExtent3d::SmExtent3dSmExtent3d.h:551[Extent3d]
SmExtent3d::operator=SmExtent3d.h:565Clone/Copy
SmExtent3d::~SmExtent3dSmExtent3d.h:632
SmExtent3d::SetUnboundedSmExtent3d.h:821[Extent3d::set_unbounded]
SmExtent3d::GetMinSmExtent3d.h:891[Extent3d::min], [Extent3d::max], [Extent3d::mid]
SmExtent3d::GetMaxSmExtent3d.h:901[Extent3d::min], [Extent3d::max], [Extent3d::mid]
SmExtent3d::GetMidSmExtent3d.h:911[Extent3d::min], [Extent3d::max], [Extent3d::mid]
SmExtent3d::GetUMinSmExtent3d.h:921[Extent3d::u_min] .. [Extent3d::w_max]
SmExtent3d::GetUMaxSmExtent3d.h:941
SmExtent3d::GetVMinSmExtent3d.h:951
SmExtent3d::GetVMaxSmExtent3d.h:971
SmExtent3d::GetWMinSmExtent3d.h:981
SmExtent3d::GetWMaxSmExtent3d.h:1001[Extent3d::u_min] .. [Extent3d::w_max]
SmExtent3d::GetMinSmExtent3d.h:1011[Extent3d::min], [Extent3d::max], [Extent3d::mid]
SmExtent3d::GetMaxSmExtent3d.h:1031[Extent3d::min], [Extent3d::max], [Extent3d::mid]
SmExtent3d::GetUIntervalSmExtent3d.h:1061[Extent3d::u_interval], [Extent3d::v_interval], [Extent3d::w_interval]
SmExtent3d::GetVIntervalSmExtent3d.h:1071[Extent3d::u_interval], [Extent3d::v_interval], [Extent3d::w_interval]
SmExtent3d::GetWIntervalSmExtent3d.h:1081[Extent3d::u_interval], [Extent3d::v_interval], [Extent3d::w_interval]
SmExtent3d::GetMaxLengthSmExtent3d.h:1191[Extent3d::max_length]
SmExtent3d::GetMaxDimensionSmExtent3d.h:1204[Extent3d::max_dimension]
SmExtent3d::InitSmExtent3d.cpp:246[Extent3d::new], [Default]
SmExtent3d::AssertDefinedSmExtent3d.cpp:8012[Extent3d::is_defined]
SmExtent3d::SmExtent3dSmExtent3d.cpp:9810[Extent3d]
SmExtent3d::SmExtent3dSmExtent3d.cpp:1147[Extent3d]
SmExtent3d::CircumscribeSmExtent3d.cpp:129135[Extent3d::circumscribe]
SmExtent3d::AddPoint3dSmExtent3d.cpp:27011[Extent3d::add_point]
SmExtent3d::SetMinMaxSmExtent3d.cpp:28717[Extent3d::set_min_max]
SmExtent3d::SetMinMaxSmExtent3d.cpp:31025[Extent3d::set_min_max]
SmExtent3d::SetUIntervalSmExtent3d.cpp:34121[Extent3d::set_u_interval], [Extent3d::set_v_interval]
SmExtent3d::SetVIntervalSmExtent3d.cpp:36821[Extent3d::set_u_interval], [Extent3d::set_v_interval]
SmExtent3d::SetUMinSmExtent3d.cpp:4216[Extent3d::set_u_min] .. [Extent3d::set_v_max]
SmExtent3d::SetUMaxSmExtent3d.cpp:4326[Extent3d::set_u_min] .. [Extent3d::set_v_max]
SmExtent3d::SetVMinSmExtent3d.cpp:4436[Extent3d::set_u_min] .. [Extent3d::set_v_max]
SmExtent3d::SetVMaxSmExtent3d.cpp:4546[Extent3d::set_u_min] .. [Extent3d::set_v_max]
SmExtent3d::EvaluateSmExtent3d.cpp:49130[Extent3d::evaluate]
SmExtent3d::UnionSmExtent3d.cpp:59517[Extent3d::union]
SmExtent3d::MaximumDistanceSquaredSmExtent3d.cpp:62010[Extent3d::max_distance_squared]
SmExtent3d::MinimumDistanceSquaredSmExtent3d.cpp:64021[Extent3d::min_distance_squared]
SmExtent3d::MaximumDistanceSmExtent3d.cpp:6689[Extent3d::max_distance]
SmExtent3d::MinimumDistanceSmExtent3d.cpp:6859[Extent3d::min_distance]
SmExtent3d::IntersectSmExtent3d.cpp:75126[Extent3d::intersect]
SmExtent3d::ExpandRelativeSmExtent3d.cpp:78416[Extent3d::expand_relative]
SmExtent3d::ExpandAbsoluteSmExtent3d.cpp:83316[Extent3d::expand_absolute]
SmExtent3d::GetSizeSmExtent3d.cpp:8568[Extent3d::size]
SmExtent3d::GetCornersSmExtent3d.cpp:87219[Extent3d::corners]
SmExtent3d::GetEdgesSmExtent3d.cpp:89738[Extent3d::edges]
SmExtent3d::XLengthSmExtent3d.cpp:9415[Extent3d::x_length] .. [Extent3d::z_length]
SmExtent3d::YLengthSmExtent3d.cpp:9525[Extent3d::x_length] .. [Extent3d::z_length]
SmExtent3d::ZLengthSmExtent3d.cpp:9635[Extent3d::x_length] .. [Extent3d::z_length]
SmExtent3d::ComputeSphereBoundSmExtent3d.cpp:97521[Extent3d::sphere_bound]
SmExtent3d::ComputeConeBoundToSmExtent3d.cpp:100558[Extent3d::cone_bound_to]
SmExtent3d::AreDisjointSmExtent3d.cpp:110618[Extent3d::are_disjoint]
SmExtent3d::IsContainedBySmExtent3d.cpp:113118[Extent3d::is_contained_by]
SmExtent3d::GetPlanesSmExtent3d.cpp:115519[Extent3d::planes]
SmExtent3d::IsPointSizedSmExtent3d.cpp:118015[Extent3d::is_point_sized]
SmExtent3d::ContainsPoint3dSmExtent3d.cpp:120316[Extent3d::contains_point]
SmExtent3d::ContainsLineSeg3dSmExtent3d.cpp:122714[Extent3d::contains_line_seg]
SmExtent3d::IsPoint3dOnBoundarySmExtent3d.cpp:143121[Extent3d::is_point_on_boundary]
SmExtent3d::IntersectLineSmExtent3d.cpp:1458158[Extent3d::intersect_line], [LineHit]
SmExtent3d::HasNegativeVolumeSmExtent3d.cpp:16229[Extent3d::has_negative_volume]
SmExtent3d::IsInitSmExtent3d.cpp:163712[Extent3d::is_init]
SmExtent3d::IsBoundedSmExtent3d.cpp:168537[Extent3d::boundary_types], [Extent3d::is_bounded]
SmExtent3d::AnyBoundsSmExtent3d.cpp:172915[Extent3d::any_bounds]
SmExtent3d::ApproximateUnboundedSmExtent3d.cpp:1760128[Extent3d::approximate_unbounded], [Extent3d::approximate_unbounded_expanded]
Module file-header table (51 rows)
RustUpstream
[Extent3d]SmExtent3d
[Extent3d::new], [Default]SmExtent3d(), Init
[Extent3d::init]Init
[Extent3d::from_points]SmExtent3d(const SmPoint3d&, const SmPoint3d&)
[Extent3d::from_point]SmExtent3d(const SmPoint3d&)
[Extent3d::from_bounds]SmExtent3d(double x6)
Clone/Copycopy constructor, operator=, destructor
[Extent3d::is_defined]AssertDefined
[Extent3d::set_unbounded]SetUnbounded
[Extent3d::min], [Extent3d::max], [Extent3d::mid]GetMin(), GetMax(), GetMid()
[Extent3d::u_min] .. [Extent3d::w_max]GetUMin .. GetWMax
[Extent3d::min_at], [Extent3d::max_at]GetMin(ULONG), GetMax(ULONG)
[Extent3d::max_length]GetMaxLength
[Extent3d::max_dimension]GetMaxDimension
[Extent3d::add_point]AddPoint3d
[Extent3d::set_min_max]SetMinMax(const SmPoint3d&, const SmPoint3d&)
[Extent3d::set_min_max_coords]SetMinMax(double x6)
[Extent3d::set_u_min] .. [Extent3d::set_v_max]SetUMin, SetUMax, SetVMin, SetVMax
[Extent3d::evaluate]Evaluate
[Extent3d::union]Union
[Extent3d::intersect]Intersect
[Extent3d::max_distance_squared]MaximumDistanceSquared
[Extent3d::min_distance_squared]MinimumDistanceSquared
[Extent3d::max_distance]MaximumDistance
[Extent3d::min_distance]MinimumDistance
[Extent3d::expand_relative]ExpandRelative
[Extent3d::expand_absolute]ExpandAbsolute
[Extent3d::size]GetSize
[Extent3d::corners]GetCorners
[Extent3d::edges]GetEdges
[Extent3d::planes]GetPlanes
[Extent3d::x_length] .. [Extent3d::z_length]XLength, YLength, ZLength
[Extent3d::sphere_bound]ComputeSphereBound
[Extent3d::cone_bound_to]ComputeConeBoundTo
[Extent3d::are_disjoint]AreDisjoint
[Extent3d::is_contained_by]IsContainedBy
[Extent3d::is_point_sized]IsPointSized
[Extent3d::contains_point]ContainsPoint3d
[Extent3d::contains_line_seg]ContainsLineSeg3d
[Extent3d::is_point_on_boundary]IsPoint3dOnBoundary
[Extent3d::intersect_line], [LineHit]IntersectLine
[Extent3d::has_negative_volume]HasNegativeVolume
[Extent3d::is_init]IsInit
[Extent3d::boundary_types], [Extent3d::is_bounded]IsBounded
[Extent3d::any_bounds]AnyBounds
[Extent3d::u_interval], [Extent3d::v_interval], [Extent3d::w_interval]GetUInterval, GetVInterval, GetWInterval
[Extent3d::set_u_interval], [Extent3d::set_v_interval]SetUInterval, SetVInterval
[Extent3d::approximate_unbounded], [Extent3d::approximate_unbounded_expanded]ApproximateUnbounded
[Extent3d::from_pseudo_box]SmExtent3d(const SmPseudoBox&)
[Extent3d::circumscribe]Circumscribe
[BoundaryType]SmBoundaryType (SmTypes.h)

Upstream tests reaching this unit

prog_test:my_test_extent3d, 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