Skip to main content

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}