solidcore

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 functionDefined atLinesRust (from the file header)
SmVector2d::SmVector2dSmVector2d.h:581[Vec2]
SmVector2d::SmVector2dSmVector2d.h:605[Vec2]
SmVector2d::SmVector2dSmVector2d.h:735[Vec2]
SmVector2d::operator=SmVector2d.h:846Copy / assignment
SmVector2d::CopySmVector2d.h:926Copy / assignment
SmVector2d::SetUninitializedSmVector2d.h:991[Vec2::UNDEF], [Vec2::set_uninitialized]
SmVector2d::IsZeroSmVector2d.h:1011[Vec2::is_zero]
SmVector2d::IsInitializedSmVector2d.h:1051[Vec2::is_initialized]
SmVector2d::LengthSquaredSmVector2d.h:1165[Vec2::length_squared]
SmVector2d::LengthSmVector2d.h:1225[Vec2::length]
SmVector2d::DotSmVector2d.h:1365[Vec2::dot]
operator-SmVector2d.h:1927Neg, Add, Sub
operator+SmVector2d.h:2059Neg, Add, Sub
operator-SmVector2d.h:2209Neg, Add, Sub
operator*SmVector2d.h:2357Mul<f64>, f64 * Vec2
operator*SmVector2d.h:2487Mul<f64>, f64 * Vec2
operator/SmVector2d.h:26113Div<f64>
SmVector2d::UnitizeSmVector2d.h:28321[Vec2::unitize]
SmVector2d::DistanceBetweenSmVector2d.h:3119[Vec2::distance]
SmVector2d::DistanceBetweenSquaredSmVector2d.h:3269[Vec2::distance_squared]
SmVector2d::CloserThanSmVector2d.h:34215[Vec2::closer_than]
SmVector2d::GetMaxDimensionSmVector2d.h:3928[Vec2::max_dimension]
SmVector2d::SetSmVector2d.h:4206[Vec2::new]
SmVector2d::SwapXYSmVector2d.h:4326[Vec2::swap_xy]
SmVector2d::RotateSmVector2d.h:4599[Vec2::rotate]
operator==SmVector2d.h:47413[Vec2::approx_eq]
operator!=SmVector2d.h:49313[Vec2::approx_ne]
SmVector2d::operator[]SmVector2d.h:51910[Vec2::component]
SmVector2d::operator[]SmVector2d.h:5418[Vec2::component]
SmVector2d::operator+=SmVector2d.h:55510AddAssign, SubAssign, MulAssign
SmVector2d::operator-=SmVector2d.h:5716AddAssign, SubAssign, MulAssign
SmVector2d::operator*=SmVector2d.h:5838AddAssign, SubAssign, MulAssign
SmVector2d::operator=SmVector2d.cpp:437Copy / assignment
SmVector2d::AngleBetweenSmVector2d.cpp:5649[Vec2::angle_between]
SmVector2d::CCWAngleBetweenSmVector2d.cpp:11639[Vec2::ccw_angle_between]
Module file-header table (29 rows)
RustUpstream
[Vec2]SmVector2d
[Point2]SmPoint2d (same class upstream)
[Vec2::new]SmVector2d(double, double), Set
[Vec2::from_array], From<[f64; 2]>SmVector2d(double *)
Copy / assignmentcopy 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, Suboperator-(v), operator+, operator-
Mul<f64>, f64 * Vec2operator*(v, d), operator*(d, v)
Div<f64>operator/(v, d)
AddAssign, SubAssign, MulAssignoperator+=, 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