solidcore

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 functionDefined atLinesRust (from the file header)
SmVector3d::SmVector3dSmVector3d.h:591[Vec3]
SmVector3d::SmVector3dSmVector3d.h:625[Vec3]
SmVector3d::SmVector3dSmVector3d.h:686[Vec3]
SmVector3d::SmVector3dSmVector3d.h:7513[Vec3]
SmVector3d::SmVector3dSmVector3d.h:886[Vec3]
SmVector3d::SmVector3dSmVector3d.h:955[Vec3]
SmVector3d::SmVector3dSmVector3d.h:10110[Vec3]
SmVector3d::operator=SmVector3d.h:1139Copy / assignment, core::mem::swap
SmVector3d::CopySmVector3d.h:1248Copy / assignment, core::mem::swap
SmVector3d::SetUninitializedSmVector3d.h:1331[Vec3::UNDEF], [Vec3::set_uninitialized]
SmVector3d::IsInitializedSmVector3d.h:1343[Vec3::is_initialized]
SmVector3d::IsUndefSmVector3d.h:1373[Vec3::is_undef]
SmVector3d::IsZeroSmVector3d.h:1451[Vec3::is_zero]
SmVector3d::Is2dSmVector3d.h:1461[Vec3::is_2d]
SmVector3d::LengthSquaredSmVector3d.h:1635[Vec3::length_squared], [Vec3::length]
SmVector3d::LengthSmVector3d.h:1695[Vec3::length_squared], [Vec3::length]
SmVector3d::DotSmVector3d.h:1798[Vec3::dot]
operator-SmVector3d.h:38910Neg, Add, Sub
operator+SmVector3d.h:40511Neg, Add, Sub
operator-SmVector3d.h:42211Neg, Add, Sub
operator*SmVector3d.h:43919[Vec3::cross]
operator*SmVector3d.h:46419[Vec3::cross]
operator*SmVector3d.h:48913[Vec3::cross]
operator/SmVector3d.h:50820Mul<f64>, f64 * Vec3, Div<f64>
SmVector3d::UnitizeSmVector3d.h:53732[Vec3::unitize], [Vec3::unitize_or_z]
SmVector3d::TripleProductSmVector3d.h:57516[Vec3::triple_product]
SmVector3d::NormalInPlaneSmVector3d.h:59912[Vec3::normal_in_plane]
SmVector3d::GetMaxDimensionSmVector3d.h:67714[Vec3::max_dimension], [Vec3::min_dimension]
SmVector3d::GetMinDimensionSmVector3d.h:69714[Vec3::max_dimension], [Vec3::min_dimension]
SmVector3d::IsParallelToSmVector3d.h:71830[Vec3::is_parallel_to], [Vec3::parallel_sense]
SmVector3d::IsPerpendicularToSmVector3d.h:75525[Vec3::is_perpendicular_to]
SmVector3d::ProjectToPlaneSmVector3d.h:78712[Vec3::project_to_plane]
SmVector3d::ProjectPointToPlaneSmVector3d.h:80617[Vec3::project_point_to_plane]
SmVector3d::RotateProjectToPlaneSmVector3d.h:83121[Vec3::rotate_project_to_plane]
SmVector3d::RotateProjectPointToPlaneSmVector3d.h:86025[Vec3::rotate_project_point_to_plane]
SmVector3d::PerspectiveProjectToPlaneSmVector3d.h:89230[Vec3::perspective_project_to_plane]
SmVector3d::PerspectiveProjectPointToPlaneSmVector3d.h:92923[Vec3::perspective_project_point_to_plane]
SmVector3d::DistanceBetweenSmVector3d.h:95814[Vec3::distance], [Vec3::distance_squared]
SmVector3d::DistanceBetweenSquaredSmVector3d.h:97814[Vec3::distance], [Vec3::distance_squared]
SmVector3d::CloserThanSmVector3d.h:99920[Vec3::closer_than]
SmVector3d::MultiplySmVector3d.h:106511[Vec3::multiply]
SmVector3d::DerivativeOfCrossProductSmVector3d.h:108330[Vec3::derivative_of_cross_product]
SmVector3d::SetSmVector3d.h:111911[Vec3::new]
SmVector3d::SolveTwoLinearEquationsSmVector3d.h:114130[Vec3::solve_two_linear_equations]
SmVector3d::SwapSmVector3d.h:117713Copy / assignment, core::mem::swap
SmVector3d::operator[]SmVector3d.h:120113[Vec3::component], [Vec3::component_mut]
SmVector3d::operator[]SmVector3d.h:12259[Vec3::component], [Vec3::component_mut]
operator==SmVector3d.h:124025[Vec3::approx_eq]
SmVector3d::operator+=SmVector3d.h:127113AddAssign, SubAssign, MulAssign, DivAssign
SmVector3d::operator-=SmVector3d.h:129013AddAssign, SubAssign, MulAssign, DivAssign
SmVector3d::operator*=SmVector3d.h:130912AddAssign, SubAssign, MulAssign, DivAssign
SmVector3d::operator/=SmVector3d.h:132720AddAssign, SubAssign, MulAssign, DivAssign
sm_sqrtSmMath.cpp:187[sqrt], [cbrt], [acos], [asin]
sm_cbrtSmMath.cpp:304[sqrt], [cbrt], [acos], [asin]
sm_acosSmMath.cpp:409[sqrt], [cbrt], [acos], [asin]
sm_asinSmMath.cpp:558[sqrt], [cbrt], [acos], [asin]
SmVector3d::IsInsideSectorSmVector3d.cpp:3849[Vec3::is_inside_sector]
SmVector3d::MakeUnitOrthoVectorsSmVector3d.cpp:16252[Vec3::make_unit_ortho_vectors]
SmVector3d::RotateVecAboutAxisSmVector3d.cpp:22031[Vec3::rotate_vec_about_axis]
SmVector3d::UnitizedDerivativeSmVector3d.cpp:30330[Vec3::unitized_derivative]
SmVector3d::UnitizedDerivative2SmVector3d.cpp:33939[Vec3::unitized_derivative2]
SmVector3d::UnitizedDerivative3SmVector3d.cpp:38450[Vec3::unitized_derivative3]
SmVector3d::AngleBetweenSmVector3d.cpp:44256[Vec3::angle_between]
SmVector3d::CCWAngleBetweenSmVector3d.cpp:50958[Vec3::ccw_angle_between]
SmVector3d::IsColinearWithSmVector3d.cpp:57440[Vec3::is_colinear_with]
Module file-header table (48 rows)
RustUpstream
[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::swapcopy 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, Suboperator-(v), operator+, operator-
Mul<f64>, f64 * Vec3, Div<f64>operator*(v, d), operator*(d, v), operator/
AddAssign, SubAssign, MulAssign, DivAssignoperator+=, 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