Units / geom
geom.vector3d green
- Layer
- 2
- Upstream lines
- 1,145
- Functions
- 65
- Rust module
geom::vector3d
Source: crates/solidcore/src/geom/vector3d.rs
Upstream: source/SMLib/inc/SmVector3d.h, source/SMLib/src/SmMath.cpp, source/SMLib/src/SmVector3d.cpp
Notes
65 fns; largest: SmVector3d::CCWAngleBetween, SmVector3d::AngleBetween, SmVector3d::MakeUnitOrthoVectors, SmVector3d::UnitizedDerivative3; unit-SCC #22 (220 units); 321 upstream test entry points reach this unit; GREEN: difftest 6114 cases (114 fixture from my_test_vector3d + edge cases, 6000 generated), all bit-identical, 0 deferred, perturb SENSITIVE; Vec3 moved from math.rs to geom::vector3d (re-exported); wired UNPORTED(geom.vector3d) in geom.tol (AreParallel/ArePerpendicular) and replaced CO-PORTs in tol/vector2d/extent3d
Difftest
- Cases
- 6,114
- Passed
- 6,114
- Deferred
- 0
- Failed
- 0
- Both errored
- 43
- 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: geom.tol green
Dependents: blend.fillet_corner_p1 todo blend.fillet_corner_p2 todo blend.fillet_corner_p3 todo blend.fillet_custom_solver partial blend.fillet_executive_p1 todo blend.fillet_executive_p2 todo blend.fillet_executive_p3 todo blend.fillet_geom_p1 claimed blend.fillet_geom_p2 todo blend.fillet_geom_p3 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_p2 todo blend.fillet_solver_p3 todo blend.fillet_solver_p4 claimed blend.fillet_standard_solver_p1 claimed blend.fillet_standard_solver_p2 todo blend.hcr claimed boolean.merge_p1 partial boolean.merge_p2 todo boolean.topology_intersector_p1 partial curve.composite_curve_p1 green curve.composite_curve_p2 green curve.conic green curve.crv_in_volume partial curve.crv_on_surf partial curve.curve_cache green curve.curve_p1 partial curve.curve_p2 green curve.curve_p3 green curve.curve_p4 partial curve.curve_p5 partial curve.curve_p6 green curve.curve_p7 green curve.curve_p8 green curve.curve_p9 green curve.ellipse_p1 green curve.ellipse_p2 green curve.hermite_curve green curve.hyperbola green curve.iso_curve green curve.line green curve.offset_curve green curve.parabola green curve.projected_curve green curve.tangent_field green geom.axis2_placement green geom.geom_utility_p1 green geom.geom_utility_p2 green geom.global_solver partial geom.grid partial geom.hash_table green geom.point_set green geom.polar_box green geom.polynomial green geom.pseudo_box green geom.tools partial heal.face_props partial heal.gap partial heal.stitch_p1 claimed heal.stitch_p2 claimed intersect.adv_surface_intersector partial intersect.curve_class_p1 partial intersect.curve_class_p2 claimed intersect.curve_class_p3 partial intersect.curve_class_p4 claimed intersect.curve_class_p5 partial intersect.curve_class_p6 partial intersect.curve_class_p7 partial intersect.curve_class_p8 partial intersect.curve_class_p9 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_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 intersect.topology_solver_p1 partial intersect.topology_solver_p2 partial mass.integrator partial nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p1 green nurbs.b_spline_curve_p2 green nurbs.b_spline_curve_p3 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 nurbs.nurbs_srf green offset.offset_executive_p1 claimed offset.offset_geometry_creation claimed primitive.api_curves green primitive.api_primitives 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_p2 partial query.face_p3 claimed query.loop green query.poly partial query.tess partial surface.b_spline_volume green surface.bend_volume green 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.srf_in_volume partial 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_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 surface.twist_volume green surface.unbend_volume green surface.volume_p1 green surface.volume_p2 partial sweep.rotational_sweep_geometry partial sweep.topology_sweep claimed sweep.trans_sweep_geometry partial topology.brep_cache partial topology.brep_p1 claimed topology.brep_p10 claimed topology.brep_p2 claimed topology.brep_p3 claimed topology.brep_p5 claimed topology.brep_p6 claimed topology.brep_p7 claimed topology.brep_p8 claimed topology.brep_p9 claimed topology.edge partial topology.edgeuse_p1 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.loopuse partial topology.proto_topology_p1 partial topology.proto_topology_p2 partial topology.proto_topology_p3 partial topology.shell partial topology.trimming_tools partial topology.vertex partial topology.vertexuse partial
Soft dependents: blend.fillet_solver_p5 claimed boolean.merge_p4 todo boolean.merge_p5 partial boolean.topology_intersector_p2 claimed boolean.topology_intersector_p3 claimed geom.extent2d green heal.heal_data_p2 partial heal.heal_data_p3 partial intersect.surface_intersector_p5 partial query.face_p4 claimed surface.b_spline_volume_n_lib partial sweep.api_brep partial topology.brep_data partial topology.brep_p4 claimed topology.topology_traverser partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmVector3d::SmVector3d | SmVector3d.h:59 | 1 | [Vec3] |
SmVector3d::SmVector3d | SmVector3d.h:62 | 5 | [Vec3] |
SmVector3d::SmVector3d | SmVector3d.h:68 | 6 | [Vec3] |
SmVector3d::SmVector3d | SmVector3d.h:75 | 13 | [Vec3] |
SmVector3d::SmVector3d | SmVector3d.h:88 | 6 | [Vec3] |
SmVector3d::SmVector3d | SmVector3d.h:95 | 5 | [Vec3] |
SmVector3d::SmVector3d | SmVector3d.h:101 | 10 | [Vec3] |
SmVector3d::operator= | SmVector3d.h:113 | 9 | Copy / assignment, core::mem::swap |
SmVector3d::Copy | SmVector3d.h:124 | 8 | Copy / assignment, core::mem::swap |
SmVector3d::SetUninitialized | SmVector3d.h:133 | 1 | [Vec3::UNDEF], [Vec3::set_uninitialized] |
SmVector3d::IsInitialized | SmVector3d.h:134 | 3 | [Vec3::is_initialized] |
SmVector3d::IsUndef | SmVector3d.h:137 | 3 | [Vec3::is_undef] |
SmVector3d::IsZero | SmVector3d.h:145 | 1 | [Vec3::is_zero] |
SmVector3d::Is2d | SmVector3d.h:146 | 1 | [Vec3::is_2d] |
SmVector3d::LengthSquared | SmVector3d.h:163 | 5 | [Vec3::length_squared], [Vec3::length] |
SmVector3d::Length | SmVector3d.h:169 | 5 | [Vec3::length_squared], [Vec3::length] |
SmVector3d::Dot | SmVector3d.h:179 | 8 | [Vec3::dot] |
operator- | SmVector3d.h:389 | 10 | Neg, Add, Sub |
operator+ | SmVector3d.h:405 | 11 | Neg, Add, Sub |
operator- | SmVector3d.h:422 | 11 | Neg, Add, Sub |
operator* | SmVector3d.h:439 | 19 | [Vec3::cross] |
operator* | SmVector3d.h:464 | 19 | [Vec3::cross] |
operator* | SmVector3d.h:489 | 13 | [Vec3::cross] |
operator/ | SmVector3d.h:508 | 20 | Mul<f64>, f64 * Vec3, Div<f64> |
SmVector3d::Unitize | SmVector3d.h:537 | 32 | [Vec3::unitize], [Vec3::unitize_or_z] |
SmVector3d::TripleProduct | SmVector3d.h:575 | 16 | [Vec3::triple_product] |
SmVector3d::NormalInPlane | SmVector3d.h:599 | 12 | [Vec3::normal_in_plane] |
SmVector3d::GetMaxDimension | SmVector3d.h:677 | 14 | [Vec3::max_dimension], [Vec3::min_dimension] |
SmVector3d::GetMinDimension | SmVector3d.h:697 | 14 | [Vec3::max_dimension], [Vec3::min_dimension] |
SmVector3d::IsParallelTo | SmVector3d.h:718 | 30 | [Vec3::is_parallel_to], [Vec3::parallel_sense] |
SmVector3d::IsPerpendicularTo | SmVector3d.h:755 | 25 | [Vec3::is_perpendicular_to] |
SmVector3d::ProjectToPlane | SmVector3d.h:787 | 12 | [Vec3::project_to_plane] |
SmVector3d::ProjectPointToPlane | SmVector3d.h:806 | 17 | [Vec3::project_point_to_plane] |
SmVector3d::RotateProjectToPlane | SmVector3d.h:831 | 21 | [Vec3::rotate_project_to_plane] |
SmVector3d::RotateProjectPointToPlane | SmVector3d.h:860 | 25 | [Vec3::rotate_project_point_to_plane] |
SmVector3d::PerspectiveProjectToPlane | SmVector3d.h:892 | 30 | [Vec3::perspective_project_to_plane] |
SmVector3d::PerspectiveProjectPointToPlane | SmVector3d.h:929 | 23 | [Vec3::perspective_project_point_to_plane] |
SmVector3d::DistanceBetween | SmVector3d.h:958 | 14 | [Vec3::distance], [Vec3::distance_squared] |
SmVector3d::DistanceBetweenSquared | SmVector3d.h:978 | 14 | [Vec3::distance], [Vec3::distance_squared] |
SmVector3d::CloserThan | SmVector3d.h:999 | 20 | [Vec3::closer_than] |
SmVector3d::Multiply | SmVector3d.h:1065 | 11 | [Vec3::multiply] |
SmVector3d::DerivativeOfCrossProduct | SmVector3d.h:1083 | 30 | [Vec3::derivative_of_cross_product] |
SmVector3d::Set | SmVector3d.h:1119 | 11 | [Vec3::new] |
SmVector3d::SolveTwoLinearEquations | SmVector3d.h:1141 | 30 | [Vec3::solve_two_linear_equations] |
SmVector3d::Swap | SmVector3d.h:1177 | 13 | Copy / assignment, core::mem::swap |
SmVector3d::operator[] | SmVector3d.h:1201 | 13 | [Vec3::component], [Vec3::component_mut] |
SmVector3d::operator[] | SmVector3d.h:1225 | 9 | [Vec3::component], [Vec3::component_mut] |
operator== | SmVector3d.h:1240 | 25 | [Vec3::approx_eq] |
SmVector3d::operator+= | SmVector3d.h:1271 | 13 | AddAssign, SubAssign, MulAssign, DivAssign |
SmVector3d::operator-= | SmVector3d.h:1290 | 13 | AddAssign, SubAssign, MulAssign, DivAssign |
SmVector3d::operator*= | SmVector3d.h:1309 | 12 | AddAssign, SubAssign, MulAssign, DivAssign |
SmVector3d::operator/= | SmVector3d.h:1327 | 20 | AddAssign, SubAssign, MulAssign, DivAssign |
sm_sqrt | SmMath.cpp:18 | 7 | [sqrt], [cbrt], [acos], [asin] |
sm_cbrt | SmMath.cpp:30 | 4 | [sqrt], [cbrt], [acos], [asin] |
sm_acos | SmMath.cpp:40 | 9 | [sqrt], [cbrt], [acos], [asin] |
sm_asin | SmMath.cpp:55 | 8 | [sqrt], [cbrt], [acos], [asin] |
SmVector3d::IsInsideSector | SmVector3d.cpp:38 | 49 | [Vec3::is_inside_sector] |
SmVector3d::MakeUnitOrthoVectors | SmVector3d.cpp:162 | 52 | [Vec3::make_unit_ortho_vectors] |
SmVector3d::RotateVecAboutAxis | SmVector3d.cpp:220 | 31 | [Vec3::rotate_vec_about_axis] |
SmVector3d::UnitizedDerivative | SmVector3d.cpp:303 | 30 | [Vec3::unitized_derivative] |
SmVector3d::UnitizedDerivative2 | SmVector3d.cpp:339 | 39 | [Vec3::unitized_derivative2] |
SmVector3d::UnitizedDerivative3 | SmVector3d.cpp:384 | 50 | [Vec3::unitized_derivative3] |
SmVector3d::AngleBetween | SmVector3d.cpp:442 | 56 | [Vec3::angle_between] |
SmVector3d::CCWAngleBetween | SmVector3d.cpp:509 | 58 | [Vec3::ccw_angle_between] |
SmVector3d::IsColinearWith | SmVector3d.cpp:574 | 40 | [Vec3::is_colinear_with] |
Module file-header table (48 rows)
| Rust | Upstream |
|---|---|
[Vec3] | SmVector3d |
[Point3] | SmPoint3d (same class upstream) |
[Vec3::new] | SmVector3d(double, double, double), Set |
[Vec3::from_array], From<[f64; 3]> | SmVector3d(double *) |
[Vec3::from_nl] | SmVector3d(double *, bool fromNL) |
[Vec3::between] | SmVector3d(const SmPoint3d&, const SmPoint3d&) |
From<Vec2> | SmVector3d(const SmVector2d&) |
Copy / assignment, core::mem::swap | copy constructor, operator=, Copy, Swap |
[Vec3::UNDEF], [Vec3::set_uninitialized] | SmVector3d() (default ctor), SetUninitialized |
[Vec3::is_initialized] | IsInitialized |
[Vec3::is_undef] | IsUndef |
[Vec3::is_zero] | IsZero |
[Vec3::is_2d] | Is2d |
[Vec3::length_squared], [Vec3::length] | LengthSquared, Length |
[Vec3::dot] | Dot |
[Vec3::cross] | operator*(const SmVector3d&, const SmVector3d&) |
Neg, Add, Sub | operator-(v), operator+, operator- |
Mul<f64>, f64 * Vec3, Div<f64> | operator*(v, d), operator*(d, v), operator/ |
AddAssign, SubAssign, MulAssign, DivAssign | operator+=, operator-=, operator*=, operator/= |
[Vec3::unitize], [Vec3::unitize_or_z] | Unitize |
[Vec3::triple_product] | TripleProduct |
[Vec3::normal_in_plane] | NormalInPlane |
[Vec3::max_dimension], [Vec3::min_dimension] | GetMaxDimension, GetMinDimension |
[Vec3::is_parallel_to], [Vec3::parallel_sense] | IsParallelTo |
[Vec3::is_perpendicular_to] | IsPerpendicularTo |
[Vec3::project_to_plane] | ProjectToPlane |
[Vec3::project_point_to_plane] | ProjectPointToPlane |
[Vec3::rotate_project_to_plane] | RotateProjectToPlane |
[Vec3::rotate_project_point_to_plane] | RotateProjectPointToPlane |
[Vec3::perspective_project_to_plane] | PerspectiveProjectToPlane |
[Vec3::perspective_project_point_to_plane] | PerspectiveProjectPointToPlane |
[Vec3::distance], [Vec3::distance_squared] | DistanceBetween, DistanceBetweenSquared |
[Vec3::closer_than] | CloserThan |
[Vec3::multiply] | Multiply |
[Vec3::derivative_of_cross_product] | DerivativeOfCrossProduct |
[Vec3::solve_two_linear_equations] | SolveTwoLinearEquations |
[Vec3::component], [Vec3::component_mut] | operator[] const, operator[] |
[Vec3::approx_eq] | operator== |
[Vec3::is_inside_sector] | IsInsideSector |
[Vec3::make_unit_ortho_vectors] | MakeUnitOrthoVectors |
[Vec3::rotate_vec_about_axis] | RotateVecAboutAxis |
[Vec3::unitized_derivative] | UnitizedDerivative |
[Vec3::unitized_derivative2] | UnitizedDerivative2 |
[Vec3::unitized_derivative3] | UnitizedDerivative3 |
[Vec3::angle_between] | AngleBetween |
[Vec3::ccw_angle_between] | CCWAngleBetween |
[Vec3::is_colinear_with] | IsColinearWith |
[sqrt], [cbrt], [acos], [asin] | sm_sqrt, sm_cbrt, sm_acos, sm_asin (smos_Sqrt, smos_CubeRoot, smos_ArcCosine, smos_ArcSine) |
Upstream tests reaching this unit
prog_test:my_test_polynomial, SM_API_test:TestSmPrincipalDirectionPairing, prog_test:my_test_extent3d, prog_test:my_test_vector2d, prog_test:my_test_surface_closest_point, prog_test:my_test_drop_point