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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmExtent2d::SmExtent2d | SmExtent2d.h:71 | 1 | [Extent2d] |
SmExtent2d::SmExtent2d | SmExtent2d.h:72 | 3 | [Extent2d] |
SmExtent2d::SmExtent2d | SmExtent2d.h:77 | 6 | [Extent2d] |
SmExtent2d::operator= | SmExtent2d.h:91 | 5 | Clone/Copy |
SmExtent2d::~SmExtent2d | SmExtent2d.h:97 | 3 | |
SmExtent2d::Init | SmExtent2d.h:102 | 1 | [Extent2d::init] |
SmExtent2d::GetMin | SmExtent2d.h:122 | 1 | [Extent2d::min], [Extent2d::mid], [Extent2d::max] |
SmExtent2d::GetMid | SmExtent2d.h:123 | 1 | [Extent2d::min], [Extent2d::mid], [Extent2d::max] |
SmExtent2d::GetMax | SmExtent2d.h:124 | 1 | [Extent2d::min], [Extent2d::mid], [Extent2d::max] |
SmExtent2d::GetUMin | SmExtent2d.h:126 | 1 | [Extent2d::u_min] .. [Extent2d::v_max] |
SmExtent2d::GetUMax | SmExtent2d.h:128 | 1 | [Extent2d::u_min] .. [Extent2d::v_max] |
SmExtent2d::GetVMin | SmExtent2d.h:130 | 1 | [Extent2d::u_min] .. [Extent2d::v_max] |
SmExtent2d::GetVMax | SmExtent2d.h:132 | 1 | [Extent2d::u_min] .. [Extent2d::v_max] |
SmExtent2d::GetUInterval | SmExtent2d.h:135 | 1 | [Extent2d::u_interval], [Extent2d::v_interval] |
SmExtent2d::GetVInterval | SmExtent2d.h:136 | 1 | [Extent2d::u_interval], [Extent2d::v_interval] |
SmExtent2d::GetMaxDimension | SmExtent2d.h:141 | 3 | [Extent2d::max_dimension] |
SmExtent2d::SmExtent2d | SmExtent2d.cpp:27 | 10 | [Extent2d] |
SmExtent2d::SmExtent2d | SmExtent2d.cpp:43 | 5 | [Extent2d] |
SmExtent2d::SmExtent2d | SmExtent2d.cpp:54 | 4 | [Extent2d] |
SmExtent2d::operator== | SmExtent2d.cpp:64 | 15 | [Extent2d::are_same] |
SmExtent2d::AddPoint2d | SmExtent2d.cpp:86 | 7 | [Extent2d::add_point] |
SmExtent2d::SetMinMax | SmExtent2d.cpp:116 | 15 | [Extent2d::set_min_max] |
SmExtent2d::SetUInterval | SmExtent2d.cpp:137 | 21 | [Extent2d::set_u_interval], [Extent2d::set_v_interval] |
SmExtent2d::SetVInterval | SmExtent2d.cpp:164 | 20 | [Extent2d::set_u_interval], [Extent2d::set_v_interval] |
SmExtent2d::SetMinMax | SmExtent2d.cpp:190 | 19 | [Extent2d::set_min_max] |
SmExtent2d::Transpose | SmExtent2d.cpp:264 | 5 | [Extent2d::transpose] |
SmExtent2d::ExpandAbsolute | SmExtent2d.cpp:275 | 12 | [Extent2d::expand_absolute] |
SmExtent2d::ExpandAbsolute | SmExtent2d.cpp:293 | 12 | [Extent2d::expand_absolute] |
SmExtent2d::ExpandRelative | SmExtent2d.cpp:311 | 13 | [Extent2d::expand_relative] |
SmExtent2d::GetSize | SmExtent2d.cpp:353 | 5 | [Extent2d::size] |
SmExtent2d::XLength | SmExtent2d.cpp:364 | 5 | [Extent2d::x_length], [Extent2d::y_length] |
SmExtent2d::YLength | SmExtent2d.cpp:375 | 5 | [Extent2d::x_length], [Extent2d::y_length] |
SmExtent2d::Union | SmExtent2d.cpp:387 | 12 | [Extent2d::union] |
SmExtent2d::Intersect | SmExtent2d.cpp:406 | 23 | [Extent2d::intersect] |
SmExtent2d::GetMaxBoundaryDist2d | SmExtent2d.cpp:472 | 13 | [Extent2d::max_boundary_dist] |
SmExtent2d::AreDisjoint | SmExtent2d.cpp:491 | 15 | [Extent2d::are_disjoint] |
SmExtent2d::AreEqual | SmExtent2d.cpp:513 | 15 | [Extent2d::are_equal] |
SmExtent2d::IsDegenerate | SmExtent2d.cpp:534 | 8 | [Extent2d::is_degenerate] |
SmExtent2d::HasNegativeArea | SmExtent2d.cpp:581 | 7 | [Extent2d::has_negative_area] |
SmExtent2d::IsInit | SmExtent2d.cpp:594 | 10 | [Extent2d::is_init] |
SmExtent2d::IsBounded | SmExtent2d.cpp:611 | 28 | [Extent2d::boundary_types], [Extent2d::is_bounded] |
SmExtent2d::IsContainedBy | SmExtent2d.cpp:667 | 15 | [Extent2d::is_contained_by] |
SmExtent2d::ContainsPoint2d | SmExtent2d.cpp:690 | 31 | [Extent2d::contains_point], [Extent2d::contains_point_dist] |
SmExtent2d::ClassifyPoint2d | SmExtent2d.cpp:747 | 32 | [Extent2d::classify_point] |
SmExtent2d::IsPoint2dOnBoundary | SmExtent2d.cpp:930 | 18 | [Extent2d::is_point_on_boundary] |
SmExtent2d::GetPoint2dBoundaries | SmExtent2d.cpp:959 | 20 | [Extent2d::point_boundaries] |
SmExtent2d::ContainsPeriodicPoint2d | SmExtent2d.cpp:1038 | 27 | [Extent2d::contains_periodic_point] |
SmExtent2d::Evaluate | SmExtent2d.cpp:1164 | 17 | [Extent2d::evaluate] |
SmExtent2d::Inversion | SmExtent2d.cpp:1232 | 55 | [Extent2d::inversion] |
SmExtent2d::ClampPoint2d | SmExtent2d.cpp:1295 | 10 | [Extent2d::clamp_point] |
SmExtent2d::ClipLine2d | SmExtent2d.cpp:1333 | 79 | [Extent2d::clip_line] |
SmExtent2d::IntersectWithInfiniteLine | SmExtent2d.cpp:1419 | 80 | [Extent2d::intersect_with_infinite_line] |
SmExtent2d::GetULeftEval | SmExtent2d.cpp:1517 | 8 | [Extent2d::u_left_eval], [Extent2d::v_left_eval] |
SmExtent2d::GetVLeftEval | SmExtent2d.cpp:1543 | 8 | [Extent2d::u_left_eval], [Extent2d::v_left_eval] |
SmExtent2d::Point2dMapToDomain | SmExtent2d.cpp:1559 | 31 | [Extent2d::point_map_to_domain] |
Module file-header table (46 rows)
| Rust | Upstream |
|---|---|
[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/Copy | copy 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