gfxmath_vec3/impls/neg/neg.rs
1use core::ops::Neg;
2use crate::Vec3;
3
4/// ```
5/// use gfxmath_vec3::ops::Cross;
6/// use gfxmath_vec3::Vec3;
7///
8/// let a = Vec3::new(1.0, 3.0, 2.5);
9///
10/// let res = -a;
11///
12/// assert_eq!(-1.0, res.x);
13/// assert_eq!(-3.0, res.y);
14/// assert_eq!(-2.5, res.z);
15/// ```
16#[opimps::impl_uni_ops(Neg)]
17#[inline]
18fn neg<T>(self: Vec3<T>) -> Vec3<T>
19where T: Neg<Output = T>
20 + Copy
21{
22 let l = self.as_slice();
23
24 Vec3::new(
25 -l[0],
26 -l[1],
27 -l[2]
28 )
29}