#[repr(C)]pub struct Vec3 {
pub x: f32,
pub y: f32,
pub z: f32,
}Fields§
§x: f32§y: f32§z: f32Implementations§
Source§impl Vec3
impl Vec3
pub const ZERO: Self
pub const ONE: Self
pub const NEG_ONE: Self
pub const NAN: Self
pub const INFINITY: Self
pub const NEG_INFINITY: Self
pub const fn new(x: f32, y: f32, z: f32) -> Self
pub const fn splat(value: f32) -> Self
pub const fn from_array(values: [f32; 3]) -> Self
pub const fn to_array(self) -> [f32; 3]
pub fn from_slice(values: &[f32]) -> Self
pub fn write_to_slice(self, values: &mut [f32])
pub fn is_finite(self) -> bool
pub fn is_nan(self) -> bool
pub fn dot(self, rhs: Self) -> f32
pub fn length_squared(self) -> f32
pub fn length_recip(self) -> f32
pub fn distance(self, other: Self) -> f32
pub fn distance_squared(self, other: Self) -> f32
Sourcepub fn try_normalize(self) -> Option<Self>
pub fn try_normalize(self) -> Option<Self>
Normalizes every finite nonzero vector, including subnormal inputs.
pub fn normalize(self) -> Self
pub fn normalize_or_zero(self) -> Self
pub fn normalize_or(self, fallback: Self) -> Self
pub fn is_normalized(self) -> bool
pub fn min(self, rhs: Self) -> Self
pub fn max(self, rhs: Self) -> Self
pub fn min_element(self) -> f32
pub fn max_element(self) -> f32
pub fn element_sum(self) -> f32
pub fn element_product(self) -> f32
pub fn abs(self) -> Self
pub fn signum(self) -> Self
pub fn floor(self) -> Self
pub fn ceil(self) -> Self
pub fn round(self) -> Self
pub fn trunc(self) -> Self
pub fn fract(self) -> Self
pub fn recip(self) -> Self
pub fn sqrt(self) -> Self
pub fn powf(self, exponent: f32) -> Self
pub fn exp(self) -> Self
pub fn clamp(self, min: Self, max: Self) -> Self
pub fn clamp_length(self, min: f32, max: f32) -> Self
pub fn clamp_length_max(self, max: f32) -> Self
pub fn clamp_length_min(self, min: f32) -> Self
pub fn lerp(self, rhs: Self, t: f32) -> Self
pub fn mul_add(self, multiplier: Self, add: Self) -> Self
pub fn abs_diff_eq(self, rhs: Self, tolerance: f32) -> bool
pub fn cmpeq(self, rhs: Self) -> BVec3
pub fn cmpne(self, rhs: Self) -> BVec3
pub fn cmplt(self, rhs: Self) -> BVec3
pub fn cmple(self, rhs: Self) -> BVec3
pub fn cmpgt(self, rhs: Self) -> BVec3
pub fn cmpge(self, rhs: Self) -> BVec3
pub fn select(mask: BVec3, if_true: Self, if_false: Self) -> Self
pub fn project_onto(self, other: Self) -> Self
pub fn reject_from(self, other: Self) -> Self
pub fn project_onto_normalized(self, normal: Self) -> Self
pub fn reject_from_normalized(self, normal: Self) -> Self
Sourcepub fn reflect(self, normal: Self) -> Self
pub fn reflect(self, normal: Self) -> Self
Reflects an incident vector about a unit surface normal.
pub fn move_towards(self, rhs: Self, max_distance: f32) -> Self
Source§impl Vec3
impl Vec3
pub const X: Self
pub const Y: Self
pub const Z: Self
pub const NEG_X: Self
pub const NEG_Y: Self
pub const NEG_Z: Self
pub const AXES: [Self; 3]
pub const fn extend(self, w: f32) -> Vec4
pub const fn truncate(self) -> Vec2
pub fn cross(self, rhs: Self) -> Self
pub fn angle_between(self, rhs: Self) -> f32
pub fn any_orthogonal_vector(self) -> Self
pub fn any_orthonormal_vector(self) -> Self
pub const fn xy(self) -> Vec2
pub const fn xz(self) -> Vec2
pub const fn yz(self) -> Vec2
pub const fn yx(self) -> Vec2
pub const fn zx(self) -> Vec2
pub const fn zy(self) -> Vec2
pub const fn xyz(self) -> Self
pub const fn xzy(self) -> Self
pub const fn yxz(self) -> Self
pub const fn yzx(self) -> Self
pub const fn zxy(self) -> Self
pub const fn zyx(self) -> Self
Trait Implementations§
Source§impl AddAssign<f32> for Vec3
impl AddAssign<f32> for Vec3
Source§fn add_assign(&mut self, rhs: f32)
fn add_assign(&mut self, rhs: f32)
Performs the
+= operation. Read moreSource§impl AddAssign for Vec3
impl AddAssign for Vec3
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl DivAssign<f32> for Vec3
impl DivAssign<f32> for Vec3
Source§fn div_assign(&mut self, rhs: f32)
fn div_assign(&mut self, rhs: f32)
Performs the
/= operation. Read moreSource§impl DivAssign for Vec3
impl DivAssign for Vec3
Source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
Performs the
/= operation. Read moreSource§impl MulAssign<f32> for Vec3
impl MulAssign<f32> for Vec3
Source§fn mul_assign(&mut self, rhs: f32)
fn mul_assign(&mut self, rhs: f32)
Performs the
*= operation. Read moreSource§impl MulAssign for Vec3
impl MulAssign for Vec3
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
Performs the
*= operation. Read moreSource§impl SubAssign<f32> for Vec3
impl SubAssign<f32> for Vec3
Source§fn sub_assign(&mut self, rhs: f32)
fn sub_assign(&mut self, rhs: f32)
Performs the
-= operation. Read moreSource§impl SubAssign for Vec3
impl SubAssign for Vec3
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-= operation. Read moreimpl Copy for Vec3
impl StructuralPartialEq for Vec3
impl Vec3Swizzles for Vec3
Auto Trait Implementations§
impl Freeze for Vec3
impl RefUnwindSafe for Vec3
impl Send for Vec3
impl Sync for Vec3
impl Unpin for Vec3
impl UnwindSafe for Vec3
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more