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}