#[repr(C)]pub struct Direction3<F>(/* private fields */);Expand description
Direction vector in 3-dimensions (normalized)
Implementations§
Source§impl<F: FullFloat> Direction3<F>
impl<F: FullFloat> Direction3<F>
pub fn new_isnormal(x: F, y: F, z: F) -> Direction3<F>
Source§impl<F: FullFloat> Direction3<F>
impl<F: FullFloat> Direction3<F>
pub fn cross(&self, rhs: Direction3<F>) -> Vec3<F>
Source§impl<F: FullFloat> Direction3<F>
impl<F: FullFloat> Direction3<F>
pub fn dot(&self, rhs: Direction3<F>) -> F
Source§impl<F: FullFloat> Direction3<F>
impl<F: FullFloat> Direction3<F>
pub fn from_lat_long(latitude: Angle<F>, longitude: Angle<F>) -> Direction3<F>
pub fn to_lat_long(&self) -> (Angle<F>, Angle<F>)
Methods from Deref<Target = Vec3<F>>§
pub fn truncate_n(&self, n: usize) -> Vec2<F>
pub fn truncate_x(&self) -> Vec2<F>
pub fn truncate_y(&self) -> Vec2<F>
pub fn truncate_z(&self) -> Vec2<F>
pub fn squared_magnitude(&self) -> F
pub fn magnitude(&self) -> F
pub fn is_normal(&self) -> bool
pub fn dot(&self, rhs: Vec3<F>) -> F
pub fn project_onto(&self, axis: Vec3<F>) -> Vec3<F>
pub fn reject_onto(&self, axis: Vec3<F>) -> Vec3<F>
pub fn exp(&self) -> Vec3<F>
pub fn cross(&self, rhs: Vec3<F>) -> Vec3<F>
pub fn triple_product(&self, b: Vec3<F>, c: Vec3<F>) -> F
pub fn to_vec4(&self, w: F) -> Vec4<F>
Trait Implementations§
Source§impl<F: FullFloat> ApproxEq for Direction3<F>
impl<F: FullFloat> ApproxEq for Direction3<F>
type Flt = F
Source§fn approx_eq(
&self,
other: &Self,
epsilon: <F as ApproxEq>::Flt,
ulps: <<F as ApproxEq>::Flt as Ulps>::U,
) -> bool
fn approx_eq( &self, other: &Self, epsilon: <F as ApproxEq>::Flt, ulps: <<F as ApproxEq>::Flt as Ulps>::U, ) -> bool
This method tests for
self and other values to be approximately equal
using two methods: epsilon and ulps. If the values differ by less than the
given epsilon, they will be considered equal. If the values differ by more
than epsilon, but by less than the given ulps, they will also be considered
equal. Otherwise they are unequal. Read moreSource§fn approx_ne(
&self,
other: &Self,
epsilon: Self::Flt,
ulps: <Self::Flt as Ulps>::U,
) -> bool
fn approx_ne( &self, other: &Self, epsilon: Self::Flt, ulps: <Self::Flt as Ulps>::U, ) -> bool
This method tests for
self and other values to be not approximately equal
using two methods: epsilon and ulps. If the values differ by less than the
given epsilon, they will be considered equal. If the values differ by more
than epsilon, but by less than the given ulps, they will also be considered
equal. Otherwise they are unequal. Read moreSource§impl<F: Clone> Clone for Direction3<F>
impl<F: Clone> Clone for Direction3<F>
Source§fn clone(&self) -> Direction3<F>
fn clone(&self) -> Direction3<F>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<F: Debug> Debug for Direction3<F>
impl<F: Debug> Debug for Direction3<F>
Source§impl<F: FullFloat> Deref for Direction3<F>
impl<F: FullFloat> Deref for Direction3<F>
Source§impl<'de, F> Deserialize<'de> for Direction3<F>where
F: Deserialize<'de>,
impl<'de, F> Deserialize<'de> for Direction3<F>where
F: Deserialize<'de>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<F: FullFloat> From<Direction3<F>> for Vec3<F>
impl<F: FullFloat> From<Direction3<F>> for Vec3<F>
Source§fn from(v: Direction3<F>) -> Vec3<F>
fn from(v: Direction3<F>) -> Vec3<F>
Converts to this type from the input type.
Source§impl<F: FullFloat> From<Direction3<F>> for Vec4<F>
impl<F: FullFloat> From<Direction3<F>> for Vec4<F>
Source§fn from(v: Direction3<F>) -> Vec4<F>
fn from(v: Direction3<F>) -> Vec4<F>
Converts to this type from the input type.
Source§impl<F: FullFloat> From<Vec3<F>> for Direction3<F>
impl<F: FullFloat> From<Vec3<F>> for Direction3<F>
Source§fn from(v: Vec3<F>) -> Direction3<F>
fn from(v: Vec3<F>) -> Direction3<F>
Converts to this type from the input type.
Source§impl<F: Hash> Hash for Direction3<F>
impl<F: Hash> Hash for Direction3<F>
Source§impl<F: FullFloat> Neg for Direction3<F>
impl<F: FullFloat> Neg for Direction3<F>
Source§type Output = Direction3<F>
type Output = Direction3<F>
The resulting type after applying the
- operator.Source§fn neg(self) -> Direction3<F>
fn neg(self) -> Direction3<F>
Performs the unary
- operation. Read moreSource§impl<F: PartialEq> PartialEq for Direction3<F>
impl<F: PartialEq> PartialEq for Direction3<F>
Source§impl<F> Serialize for Direction3<F>where
F: Serialize,
impl<F> Serialize for Direction3<F>where
F: Serialize,
impl<F: Copy> Copy for Direction3<F>
impl<F: Eq> Eq for Direction3<F>
impl<F> StructuralPartialEq for Direction3<F>
Auto Trait Implementations§
impl<F> Freeze for Direction3<F>where
F: Freeze,
impl<F> RefUnwindSafe for Direction3<F>where
F: RefUnwindSafe,
impl<F> Send for Direction3<F>where
F: Send,
impl<F> Sync for Direction3<F>where
F: Sync,
impl<F> Unpin for Direction3<F>where
F: Unpin,
impl<F> UnwindSafe for Direction3<F>where
F: 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