solidcore

Units / geom

geom.extent2d green

Layer
3
Upstream lines
766
Functions
55
Rust module
geom::extent2d

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

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

Notes

55 fns; largest: SmExtent2d::IntersectWithInfiniteLine, SmExtent2d::ClipLine2d, SmExtent2d::Inversion, SmExtent2d::ClassifyPoint2d; unit-SCC #22 (220 units); 317 upstream test entry points reach this unit; GREEN: difftest 3069 cases (69 fixture + 3000 generated), all bit-identical, 0 deferred, max_rel_err 0; 30k-seed run clean; only the 55 owned fns ported (rest of SmExtent2d is in unused_functions.txt); wired UNPORTED(geom.extent2d) SmTol::GetScaledZero(const SmExtent2d&) in geom/tol.rs (geom.tol still green, 3440 cases)

Difftest

Cases
3,069
Passed
3,069
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: geom.extent1d green geom.vector2d green

Soft dependencies: geom.extent3d green geom.tol green geom.vector3d green

Dependents: blend.fillet_corner_p1 todo blend.fillet_custom_solver partial blend.fillet_geom_p1 claimed 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_standard_solver_p1 claimed blend.fillet_standard_solver_p2 todo boolean.topology_intersector_p1 partial curve.crv_on_surf partial curve.curve_p5 partial curve.iso_curve green curve.line green geom.polar_box green intersect.adv_surface_intersector partial intersect.curve_class_p4 claimed intersect.curve_class_p8 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_intersector_p4 partial intersect.surface_silhouette green intersect.surface_tracer partial nurbs.b_spline_surface_n_lib_p1 green nurbs.b_spline_surface_n_lib_p2 partial nurbs.b_spline_surface_p1 green nurbs.b_spline_surface_p2 partial offset.offset_executive_p1 claimed primitive.primitive_creation_p1 claimed primitive.primitive_creation_p3 todo query.face_p2 partial query.face_p3 claimed query.loop green query.tess partial 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_p1 green surface.surface_cache_p2 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 sweep.trans_sweep_geometry partial topology.brep_p1 claimed topology.brep_p2 claimed topology.brep_p4 claimed topology.brep_p8 claimed topology.brep_p9 claimed topology.edge partial topology.edgeuse_p2 partial topology.edgeuse_p3 claimed topology.face_p1 partial topology.face_p2 partial topology.face_p3 claimed topology.face_p4 claimed topology.trimming_tools partial topology.vertexuse partial

Soft dependents: blend.fillet_corner_p2 todo blend.fillet_executive_p1 todo blend.fillet_geom_p2 todo blend.hcr claimed boolean.merge_p1 partial curve.composite_curve_p1 green curve.curve_p2 green curve.curve_p6 green heal.face_props partial heal.gap partial intersect.curve_class_p2 claimed intersect.curve_class_p9 partial intersect.point_class partial mass.integrator partial nurbs.nurbs_srf green offset.offset_executive_p2 claimed offset.offset_geometry_creation claimed primitive.api_primitives claimed primitive.primitive_creation_p2 todo query.brep claimed query.face_p1 claimed query.poly partial surface.srf_in_volume partial surface.unbend_volume green sweep.rotational_sweep_geometry partial topology.brep_data partial topology.brep_p10 claimed topology.brep_p3 claimed topology.brep_p5 claimed topology.brep_p6 claimed topology.brep_p7 claimed topology.loopuse partial topology.proto_topology_p2 partial topology.topology_traverser partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmExtent2d::SmExtent2dSmExtent2d.h:711[Extent2d]
SmExtent2d::SmExtent2dSmExtent2d.h:723[Extent2d]
SmExtent2d::SmExtent2dSmExtent2d.h:776[Extent2d]
SmExtent2d::operator=SmExtent2d.h:915Clone/Copy
SmExtent2d::~SmExtent2dSmExtent2d.h:973
SmExtent2d::InitSmExtent2d.h:1021[Extent2d::init]
SmExtent2d::GetMinSmExtent2d.h:1221[Extent2d::min], [Extent2d::mid], [Extent2d::max]
SmExtent2d::GetMidSmExtent2d.h:1231[Extent2d::min], [Extent2d::mid], [Extent2d::max]
SmExtent2d::GetMaxSmExtent2d.h:1241[Extent2d::min], [Extent2d::mid], [Extent2d::max]
SmExtent2d::GetUMinSmExtent2d.h:1261[Extent2d::u_min] .. [Extent2d::v_max]
SmExtent2d::GetUMaxSmExtent2d.h:1281[Extent2d::u_min] .. [Extent2d::v_max]
SmExtent2d::GetVMinSmExtent2d.h:1301[Extent2d::u_min] .. [Extent2d::v_max]
SmExtent2d::GetVMaxSmExtent2d.h:1321[Extent2d::u_min] .. [Extent2d::v_max]
SmExtent2d::GetUIntervalSmExtent2d.h:1351[Extent2d::u_interval], [Extent2d::v_interval]
SmExtent2d::GetVIntervalSmExtent2d.h:1361[Extent2d::u_interval], [Extent2d::v_interval]
SmExtent2d::GetMaxDimensionSmExtent2d.h:1413[Extent2d::max_dimension]
SmExtent2d::SmExtent2dSmExtent2d.cpp:2710[Extent2d]
SmExtent2d::SmExtent2dSmExtent2d.cpp:435[Extent2d]
SmExtent2d::SmExtent2dSmExtent2d.cpp:544[Extent2d]
SmExtent2d::operator==SmExtent2d.cpp:6415[Extent2d::are_same]
SmExtent2d::AddPoint2dSmExtent2d.cpp:867[Extent2d::add_point]
SmExtent2d::SetMinMaxSmExtent2d.cpp:11615[Extent2d::set_min_max]
SmExtent2d::SetUIntervalSmExtent2d.cpp:13721[Extent2d::set_u_interval], [Extent2d::set_v_interval]
SmExtent2d::SetVIntervalSmExtent2d.cpp:16420[Extent2d::set_u_interval], [Extent2d::set_v_interval]
SmExtent2d::SetMinMaxSmExtent2d.cpp:19019[Extent2d::set_min_max]
SmExtent2d::TransposeSmExtent2d.cpp:2645[Extent2d::transpose]
SmExtent2d::ExpandAbsoluteSmExtent2d.cpp:27512[Extent2d::expand_absolute]
SmExtent2d::ExpandAbsoluteSmExtent2d.cpp:29312[Extent2d::expand_absolute]
SmExtent2d::ExpandRelativeSmExtent2d.cpp:31113[Extent2d::expand_relative]
SmExtent2d::GetSizeSmExtent2d.cpp:3535[Extent2d::size]
SmExtent2d::XLengthSmExtent2d.cpp:3645[Extent2d::x_length], [Extent2d::y_length]
SmExtent2d::YLengthSmExtent2d.cpp:3755[Extent2d::x_length], [Extent2d::y_length]
SmExtent2d::UnionSmExtent2d.cpp:38712[Extent2d::union]
SmExtent2d::IntersectSmExtent2d.cpp:40623[Extent2d::intersect]
SmExtent2d::GetMaxBoundaryDist2dSmExtent2d.cpp:47213[Extent2d::max_boundary_dist]
SmExtent2d::AreDisjointSmExtent2d.cpp:49115[Extent2d::are_disjoint]
SmExtent2d::AreEqualSmExtent2d.cpp:51315[Extent2d::are_equal]
SmExtent2d::IsDegenerateSmExtent2d.cpp:5348[Extent2d::is_degenerate]
SmExtent2d::HasNegativeAreaSmExtent2d.cpp:5817[Extent2d::has_negative_area]
SmExtent2d::IsInitSmExtent2d.cpp:59410[Extent2d::is_init]
SmExtent2d::IsBoundedSmExtent2d.cpp:61128[Extent2d::boundary_types], [Extent2d::is_bounded]
SmExtent2d::IsContainedBySmExtent2d.cpp:66715[Extent2d::is_contained_by]
SmExtent2d::ContainsPoint2dSmExtent2d.cpp:69031[Extent2d::contains_point], [Extent2d::contains_point_dist]
SmExtent2d::ClassifyPoint2dSmExtent2d.cpp:74732[Extent2d::classify_point]
SmExtent2d::IsPoint2dOnBoundarySmExtent2d.cpp:93018[Extent2d::is_point_on_boundary]
SmExtent2d::GetPoint2dBoundariesSmExtent2d.cpp:95920[Extent2d::point_boundaries]
SmExtent2d::ContainsPeriodicPoint2dSmExtent2d.cpp:103827[Extent2d::contains_periodic_point]
SmExtent2d::EvaluateSmExtent2d.cpp:116417[Extent2d::evaluate]
SmExtent2d::InversionSmExtent2d.cpp:123255[Extent2d::inversion]
SmExtent2d::ClampPoint2dSmExtent2d.cpp:129510[Extent2d::clamp_point]
SmExtent2d::ClipLine2dSmExtent2d.cpp:133379[Extent2d::clip_line]
SmExtent2d::IntersectWithInfiniteLineSmExtent2d.cpp:141980[Extent2d::intersect_with_infinite_line]
SmExtent2d::GetULeftEvalSmExtent2d.cpp:15178[Extent2d::u_left_eval], [Extent2d::v_left_eval]
SmExtent2d::GetVLeftEvalSmExtent2d.cpp:15438[Extent2d::u_left_eval], [Extent2d::v_left_eval]
SmExtent2d::Point2dMapToDomainSmExtent2d.cpp:155931[Extent2d::point_map_to_domain]
Module file-header table (46 rows)
RustUpstream
[Extent2d]SmExtent2d
[Extent2d::new], [Default]SmExtent2d()
[Extent2d::init]Init
[Extent2d::from_point]SmExtent2d(const SmPoint2d&)
[Extent2d::from_points]SmExtent2d(const SmPoint2d&, const SmPoint2d&)
[Extent2d::from_bounds]SmExtent2d(double x4)
[Extent2d::from_extent3d], From<Extent3d>SmExtent2d(const SmExtent3d&)
Clone/Copycopy constructor, operator=, destructor
[Extent2d::are_same]operator==
[Extent2d::add_point]AddPoint2d
[Extent2d::set_min_max]SetMinMax(const SmPoint2d&, const SmPoint2d&)
[Extent2d::set_min_max_coords]SetMinMax(double x4)
[Extent2d::set_u_interval], [Extent2d::set_v_interval]SetUInterval, SetVInterval
[Extent2d::transpose]Transpose
[Extent2d::expand_absolute]ExpandAbsolute(double)
[Extent2d::expand_absolute_vec]ExpandAbsolute(const SmVector2d)
[Extent2d::expand_relative]ExpandRelative
[Extent2d::min], [Extent2d::mid], [Extent2d::max]GetMin, GetMid, GetMax
[Extent2d::u_min] .. [Extent2d::v_max]GetUMin, GetUMax, GetVMin, GetVMax
[Extent2d::u_interval], [Extent2d::v_interval]GetUInterval, GetVInterval
[Extent2d::max_dimension]GetMaxDimension
[Extent2d::size]GetSize
[Extent2d::x_length], [Extent2d::y_length]XLength, YLength
[Extent2d::union]Union
[Extent2d::intersect]Intersect
[Extent2d::max_boundary_dist]GetMaxBoundaryDist2d
[Extent2d::are_disjoint]AreDisjoint
[Extent2d::are_equal]AreEqual
[Extent2d::is_degenerate]IsDegenerate
[Extent2d::has_negative_area]HasNegativeArea
[Extent2d::is_init]IsInit
[Extent2d::boundary_types], [Extent2d::is_bounded]IsBounded
[Extent2d::is_contained_by]IsContainedBy
[Extent2d::contains_point], [Extent2d::contains_point_dist]ContainsPoint2d
[Extent2d::classify_point]ClassifyPoint2d
[Extent2d::is_point_on_boundary]IsPoint2dOnBoundary
[Extent2d::point_boundaries]GetPoint2dBoundaries
[Extent2d::contains_periodic_point]ContainsPeriodicPoint2d
[Extent2d::evaluate]Evaluate
[Extent2d::inversion]Inversion
[Extent2d::clamp_point]ClampPoint2d
[Extent2d::clip_line]ClipLine2d
[Extent2d::intersect_with_infinite_line]IntersectWithInfiniteLine
[Extent2d::u_left_eval], [Extent2d::v_left_eval]GetULeftEval, GetVLeftEval
[Extent2d::point_map_to_domain]Point2dMapToDomain
[SS_NONE], [SS_UMIN], [SS_VMIN], [SS_UMAX], [SS_VMAX]SM_SS_* (SmTypes.h)

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