Units / geom
geom.vector2d green
- Layer
- 0
- Upstream lines
- 339
- Functions
- 35
- Rust module
geom::vector2d
Source: crates/solidcore/src/geom/vector2d.rs
Upstream: source/SMLib/inc/SmVector2d.h, source/SMLib/src/SmVector2d.cpp
Notes
35 fns; largest: SmVector2d::AngleBetween, SmVector2d::CCWAngleBetween, SmVector2d::Unitize, SmVector2d::CloserThan; cycle back-edges (call into later units; stub or co-port): geom.vector3d(5), geom.tol(2); unit-SCC #22 (220 units); 318 upstream test entry points reach this unit; GREEN: difftest 4060 cases (60 fixture + 4000 generated), 0 deferred, max_rel_err 0 (bit-identical); 200k-seed run clean; back-edges sm_sqrt/sm_acos/sm_asin (geom.vector3d) and SM_IS_ZERO_SQUARED (geom.tol) co-ported as private helpers
Difftest
- Cases
- 4,060
- Passed
- 4,060
- Deferred
- 0
- Failed
- 0
- Both errored
- 31
- 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.fillet_corner_p1 todo blend.fillet_corner_p2 todo blend.fillet_custom_solver partial blend.fillet_geom_p1 claimed blend.fillet_geom_p2 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_p3 todo blend.fillet_solver_p4 claimed blend.fillet_standard_solver_p1 claimed blend.fillet_standard_solver_p2 todo boolean.topology_intersector_p1 partial curve.composite_curve_p1 green curve.conic green curve.crv_on_surf partial curve.curve_p2 green curve.curve_p6 green geom.extent2d green geom.geom_utility_p1 green geom.polar_box green geom.tol green heal.gap partial intersect.adv_surface_intersector partial intersect.curve_class_p1 partial intersect.curve_class_p2 claimed intersect.curve_class_p4 claimed intersect.curve_class_p5 partial intersect.curve_class_p8 partial intersect.point_class partial intersect.ray_tracer partial intersect.surface_drop_curve partial intersect.surface_drop_lib_p1 partial intersect.surface_drop_lib_p2 green 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_curve_n_lib green nurbs.b_spline_surface_n_lib_p2 partial offset.offset_executive_p1 claimed query.api_queries partial query.face_p3 claimed query.poly partial query.tess partial surface.cone_p1 green 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_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 topology.brep_p1 claimed topology.brep_p4 claimed topology.brep_p8 claimed 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_executive_p2 todo blend.fillet_geom_p3 todo blend.fillet_solver_p2 todo curve.crv_in_volume partial curve.curve_p5 partial curve.iso_curve green curve.tangent_field green geom.assert_array green geom.geom_utility_p2 green geom.global_solver partial geom.solution_array partial intersect.curve_class_p7 partial intersect.curve_class_p9 partial intersect.surface_drop_lib_p3 claimed intersect.topology_solver_p1 partial intersect.topology_solver_p2 partial nurbs.b_spline_curve_p3 partial nurbs.b_spline_surface_n_lib_p1 green nurbs.b_spline_surface_p2 partial offset.offset_geometry_creation claimed primitive.primitive_creation_p1 claimed query.face_p1 claimed query.face_p2 partial surface.cone_p2 claimed surface.cone_p3 partial surface.srf_in_volume partial surface.surface_cache_p2 partial surface.surface_cache_p3 partial surface.unbend_volume green sweep.trans_sweep_geometry partial topology.brep_data partial topology.brep_p2 claimed topology.brep_p3 claimed topology.brep_p9 claimed topology.edge partial topology.edgeuse_p1 partial topology.loopuse partial topology.proto_topology_p2 partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmVector2d::SmVector2d | SmVector2d.h:58 | 1 | [Vec2] |
SmVector2d::SmVector2d | SmVector2d.h:60 | 5 | [Vec2] |
SmVector2d::SmVector2d | SmVector2d.h:73 | 5 | [Vec2] |
SmVector2d::operator= | SmVector2d.h:84 | 6 | Copy / assignment |
SmVector2d::Copy | SmVector2d.h:92 | 6 | Copy / assignment |
SmVector2d::SetUninitialized | SmVector2d.h:99 | 1 | [Vec2::UNDEF], [Vec2::set_uninitialized] |
SmVector2d::IsZero | SmVector2d.h:101 | 1 | [Vec2::is_zero] |
SmVector2d::IsInitialized | SmVector2d.h:105 | 1 | [Vec2::is_initialized] |
SmVector2d::LengthSquared | SmVector2d.h:116 | 5 | [Vec2::length_squared] |
SmVector2d::Length | SmVector2d.h:122 | 5 | [Vec2::length] |
SmVector2d::Dot | SmVector2d.h:136 | 5 | [Vec2::dot] |
operator- | SmVector2d.h:192 | 7 | Neg, Add, Sub |
operator+ | SmVector2d.h:205 | 9 | Neg, Add, Sub |
operator- | SmVector2d.h:220 | 9 | Neg, Add, Sub |
operator* | SmVector2d.h:235 | 7 | Mul<f64>, f64 * Vec2 |
operator* | SmVector2d.h:248 | 7 | Mul<f64>, f64 * Vec2 |
operator/ | SmVector2d.h:261 | 13 | Div<f64> |
SmVector2d::Unitize | SmVector2d.h:283 | 21 | [Vec2::unitize] |
SmVector2d::DistanceBetween | SmVector2d.h:311 | 9 | [Vec2::distance] |
SmVector2d::DistanceBetweenSquared | SmVector2d.h:326 | 9 | [Vec2::distance_squared] |
SmVector2d::CloserThan | SmVector2d.h:342 | 15 | [Vec2::closer_than] |
SmVector2d::GetMaxDimension | SmVector2d.h:392 | 8 | [Vec2::max_dimension] |
SmVector2d::Set | SmVector2d.h:420 | 6 | [Vec2::new] |
SmVector2d::SwapXY | SmVector2d.h:432 | 6 | [Vec2::swap_xy] |
SmVector2d::Rotate | SmVector2d.h:459 | 9 | [Vec2::rotate] |
operator== | SmVector2d.h:474 | 13 | [Vec2::approx_eq] |
operator!= | SmVector2d.h:493 | 13 | [Vec2::approx_ne] |
SmVector2d::operator[] | SmVector2d.h:519 | 10 | [Vec2::component] |
SmVector2d::operator[] | SmVector2d.h:541 | 8 | [Vec2::component] |
SmVector2d::operator+= | SmVector2d.h:555 | 10 | AddAssign, SubAssign, MulAssign |
SmVector2d::operator-= | SmVector2d.h:571 | 6 | AddAssign, SubAssign, MulAssign |
SmVector2d::operator*= | SmVector2d.h:583 | 8 | AddAssign, SubAssign, MulAssign |
SmVector2d::operator= | SmVector2d.cpp:43 | 7 | Copy / assignment |
SmVector2d::AngleBetween | SmVector2d.cpp:56 | 49 | [Vec2::angle_between] |
SmVector2d::CCWAngleBetween | SmVector2d.cpp:116 | 39 | [Vec2::ccw_angle_between] |
Module file-header table (29 rows)
| Rust | Upstream |
|---|---|
[Vec2] | SmVector2d |
[Point2] | SmPoint2d (same class upstream) |
[Vec2::new] | SmVector2d(double, double), Set |
[Vec2::from_array], From<[f64; 2]> | SmVector2d(double *) |
Copy / assignment | copy constructor, operator=(const SmVector2d&), Copy |
[Vec2::from_xy] | operator=(const SmVector3d&) |
[Vec2::UNDEF], [Vec2::set_uninitialized] | SmVector2d() (default ctor), SetUninitialized |
[Vec2::is_initialized] | IsInitialized |
[Vec2::is_zero] | IsZero |
[Vec2::length_squared] | LengthSquared |
[Vec2::length] | Length |
[Vec2::dot] | Dot |
Neg, Add, Sub | operator-(v), operator+, operator- |
Mul<f64>, f64 * Vec2 | operator*(v, d), operator*(d, v) |
Div<f64> | operator/(v, d) |
AddAssign, SubAssign, MulAssign | operator+=, operator-=, operator*= |
[Vec2::unitize] | Unitize |
[Vec2::distance] | DistanceBetween |
[Vec2::distance_squared] | DistanceBetweenSquared |
[Vec2::closer_than] | CloserThan |
[Vec2::max_dimension] | GetMaxDimension |
[Vec2::swap_xy] | SwapXY |
[Vec2::rotate] | Rotate |
[Vec2::approx_eq] | operator== |
[Vec2::approx_ne] | operator!= |
[Vec2::component] | operator[](ULONG) const |
[Vec2::component_mut] | operator[](ULONG) |
[Vec2::angle_between] | AngleBetween |
[Vec2::ccw_angle_between] | CCWAngleBetween |
Upstream tests reaching this unit
prog_test:my_test_vector2d, 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