pub struct Vec3 {
pub x: f32,
pub y: f32,
pub z: f32,
}Expand description
Vecteur 3D en f32.
Fields§
§x: f32Composante X.
y: f32Composante Y.
z: f32Composante Z.
Implementations§
Source§impl Vec3
impl Vec3
Sourcepub const fn from_array(v: [f32; 3]) -> Self
pub const fn from_array(v: [f32; 3]) -> Self
Crée un vecteur depuis un tableau [x, y, z].
Sourcepub fn cross(&self, rhs: &Self) -> Self
pub fn cross(&self, rhs: &Self) -> Self
Produit vectoriel : self × rhs.
Le résultat est perpendiculaire aux deux opérandes (règle de la main droite).
Propriété : a × b = -(b × a).
Sourcepub fn norm(&self) -> Result<f32, VecError>
pub fn norm(&self) -> Result<f32, VecError>
Norme euclidienne via embedded_f32_sqrt.
Retourne VecError::NonFiniteValue si un composant est NaN ou infini.
Sourcepub fn normalize(&self) -> Result<Self, VecError>
pub fn normalize(&self) -> Result<Self, VecError>
Vecteur unitaire dans la même direction.
Retourne VecError::ZeroNorm si la norme est nulle.
Retourne VecError::NonFiniteValue si un composant est invalide.
Sourcepub fn distance(&self, rhs: &Self) -> Result<f32, VecError>
pub fn distance(&self, rhs: &Self) -> Result<f32, VecError>
Distance euclidienne entre deux vecteurs.
Sourcepub fn lerp(&self, rhs: &Self, t: f32) -> Self
pub fn lerp(&self, rhs: &Self, t: f32) -> Self
Interpolation linéaire : self + t * (rhs - self), t ∈ [0, 1].
Sourcepub fn project_onto(&self, rhs: &Self) -> Result<Self, VecError>
pub fn project_onto(&self, rhs: &Self) -> Result<Self, VecError>
Projection de self sur rhs : (self·rhs / |rhs|²) * rhs.
Retourne VecError::ZeroNorm si rhs est le vecteur nul.
Sourcepub fn reject_from(&self, rhs: &Self) -> Result<Self, VecError>
pub fn reject_from(&self, rhs: &Self) -> Result<Self, VecError>
Composante de self perpendiculaire à rhs : self - proj(self, rhs).
Trait Implementations§
Source§impl AddAssign for Vec3
impl AddAssign for Vec3
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+= operation. Read moreSource§impl MulAssign<f32> for Vec3
impl MulAssign<f32> for Vec3
Source§fn mul_assign(&mut self, s: f32)
fn mul_assign(&mut self, s: f32)
*= 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)
-= operation. Read more