Vector3

Struct Vector3 

Source
pub struct Vector3 { /* private fields */ }
Expand description

A vector in 3D space with dx, dy, dz components

Implementations§

Source§

impl Vector3

Source

pub fn new(dx: f32, dy: f32, dz: f32) -> Self

Creates a new Vector3 with the given dx, dy, dz components

Source

pub fn zero() -> Self

Returns a zero vector (dx=0, dy=0, dz=0)

Source

pub fn x() -> Self

Returns a unit vector along the x-axis (dx=1, dy=0, dz=0)

Source

pub fn y() -> Self

Returns a unit vector along the y-axis (dx=0, dy=1, dz=0)

Source

pub fn z() -> Self

Returns a unit vector along the z-axis (dx=0, dy=0, dz=1)

Source

pub fn dx(&self) -> f32

Returns the dx component

Source

pub fn dy(&self) -> f32

Returns the dy component

Source

pub fn dz(&self) -> f32

Returns the dz component

Source

pub fn normalize(&self) -> Self

Returns a new normalized vector (unit vector with the same direction) If the vector has zero length, returns a zero vector

Source

pub fn dot(&self, other: &Vector3) -> f32

Computes the dot product of two vectors

Source

pub fn cross(&self, other: &Vector3) -> Self

Computes the cross product of two vectors

Trait Implementations§

Source§

impl Add<&Vector3> for &Point3

Source§

type Output = Point3

The resulting type after applying the + operator.
Source§

fn add(self, vector: &Vector3) -> Point3

Performs the + operation. Read more
Source§

impl Add for &Vector3

Source§

type Output = Vector3

The resulting type after applying the + operator.
Source§

fn add(self, other: Self) -> Vector3

Performs the + operation. Read more
Source§

impl Clone for Vector3

Source§

fn clone(&self) -> Vector3

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Vector3

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Mul<&Vector3> for f32

Source§

type Output = Vector3

The resulting type after applying the * operator.
Source§

fn mul(self, vector: &Vector3) -> Vector3

Performs the * operation. Read more
Source§

impl Mul<f32> for &Vector3

Source§

type Output = Vector3

The resulting type after applying the * operator.
Source§

fn mul(self, scalar: f32) -> Vector3

Performs the * operation. Read more
Source§

impl PartialEq for Vector3

Source§

fn eq(&self, other: &Vector3) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Vector3

Source§

impl StructuralPartialEq for Vector3

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.