gfxmath_vec2/impls/norm/
norm.rs1use crate::{Vec2, ops::Norm};
2
3#[opimps::impl_uni_ops(Norm)]
14#[inline]
15fn norm(self: Vec2<f32>) -> Option<Vec2<f32>> {
16 let l = (self.x * self.x + self.y * self.y).sqrt();
17 if l == 0.0 { return None; }
18 Some(Vec2 { x: self.x / l, y: self.y / l })
19}
20
21#[opimps::impl_uni_ops(Norm)]
32#[inline]
33fn norm(self: Vec2<f64>) -> Option<Vec2<f64>> {
34 let l = (self.x * self.x + self.y * self.y).sqrt();
35 if l == 0.0 { return None; }
36 Some(Vec2 { x: self.x / l, y: self.y / l })
37}