gfxmath_vec4/impls/neg/neg.rs
1use core::ops::Neg;
2use crate::Vec4;
3
4/// ```
5/// use gfxmath_vec4::ops::Cross;
6/// use gfxmath_vec4::Vec4;
7///
8/// let a = Vec4::new(1.0, 3.0, 2.5, -3.0);
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/// assert_eq!( 3.0, res.w);
16/// ```
17#[opimps::impl_uni_ops(Neg)]
18fn neg<T>(self: Vec4<T>) -> Vec4<T>
19where T: Neg<Output = T>
20 + Copy
21{
22 let l = self.as_slice();
23
24 Vec4::new(
25 -l[0],
26 -l[1],
27 -l[2],
28 -l[3]
29 )
30}