Struct fixed_vectors::Vector4
source · pub struct Vector4<T> {
pub x: T,
pub y: T,
pub z: T,
pub w: T,
}
Expand description
Vector for holding four-dimensional values.
Example
use fixed_vectors::Vector4;
let mut vec4 = Vector4::new(1, 2, 3, 4);
vec4 += Vector4::new(1, 2, 3, 4);
assert_eq!(vec4.x, 2);
assert_eq!(vec4.y, 4);
assert_eq!(vec4.z, 6);
assert_eq!(vec4.w, 8);
Fields§
§x: T
§y: T
§z: T
§w: T
Implementations§
source§impl<T> Vector4<T>
impl<T> Vector4<T>
sourcepub const fn new(x: T, y: T, z: T, w: T) -> Self
pub const fn new(x: T, y: T, z: T, w: T) -> Self
Constructs a new vector with the specified values for each field.
Example
use fixed_vectors::Vector2;
let vec2 = Vector2::new(0, 0);
assert_eq!(vec2.x, 0);
assert_eq!(vec2.y, 0);
source§impl<T: Copy> Vector4<T>
impl<T: Copy> Vector4<T>
sourcepub const fn from_value(value: T) -> Self
pub const fn from_value(value: T) -> Self
Constructs a vector using the given value
as the value for all of its fields.
Example
use fixed_vectors::Vector2;
let vec2 = Vector2::from_value(0);
assert_eq!(vec2, Vector2::new(0, 0));
source§impl<T: FloatCore> Vector4<T>
impl<T: FloatCore> Vector4<T>
sourcepub fn dot(&self, other: &Self) -> T
pub fn dot(&self, other: &Self) -> T
Returns the dot product of two vectors.
Example
use fixed_vectors::Vector2;
let a = Vector2::new(1.0, 2.0);
let b = Vector2::new(2.0, 4.0);
let dot = a.dot(&b);
assert_eq!(dot, 10.0);
sourcepub fn length_squared(&self) -> T
pub fn length_squared(&self) -> T
Returns the squared magnitude of vector.
Example
use fixed_vectors::Vector3;
let vec3 = Vector3::new(3.33, 2.04, 1.337);
let lsq = vec3.length_squared();
assert!(lsq >= 17.0);
source§impl Vector4<f32>
impl Vector4<f32>
sourcepub fn sqrt_short(self) -> Self
pub fn sqrt_short(self) -> Self
sourcepub fn length_short(&self) -> f32
pub fn length_short(&self) -> f32
sourcepub fn normalized_short(self) -> Self
pub fn normalized_short(self) -> Self
Trait Implementations§
source§impl<T: AddAssign> AddAssign<Vector4<T>> for Vector4<T>
impl<T: AddAssign> AddAssign<Vector4<T>> for Vector4<T>
source§fn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
Performs the
+=
operation. Read moresource§impl<T: DivAssign> DivAssign<Vector4<T>> for Vector4<T>
impl<T: DivAssign> DivAssign<Vector4<T>> for Vector4<T>
source§fn div_assign(&mut self, other: Self)
fn div_assign(&mut self, other: Self)
Performs the
/=
operation. Read moresource§impl<T: MulAssign> MulAssign<Vector4<T>> for Vector4<T>
impl<T: MulAssign> MulAssign<Vector4<T>> for Vector4<T>
source§fn mul_assign(&mut self, other: Self)
fn mul_assign(&mut self, other: Self)
Performs the
*=
operation. Read moresource§impl<T: PartialEq> PartialEq<Vector4<T>> for Vector4<T>
impl<T: PartialEq> PartialEq<Vector4<T>> for Vector4<T>
source§impl<T: RemAssign> RemAssign<Vector4<T>> for Vector4<T>
impl<T: RemAssign> RemAssign<Vector4<T>> for Vector4<T>
source§fn rem_assign(&mut self, other: Self)
fn rem_assign(&mut self, other: Self)
Performs the
%=
operation. Read moresource§impl<T: SubAssign> SubAssign<Vector4<T>> for Vector4<T>
impl<T: SubAssign> SubAssign<Vector4<T>> for Vector4<T>
source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
Performs the
-=
operation. Read moreimpl<T: Eq> Eq for Vector4<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for Vector4<T>where T: RefUnwindSafe,
impl<T> Send for Vector4<T>where T: Send,
impl<T> Sync for Vector4<T>where T: Sync,
impl<T> Unpin for Vector4<T>where T: Unpin,
impl<T> UnwindSafe for Vector4<T>where T: UnwindSafe,
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