Trait Cross

Source
pub trait Cross<Rhs: Vector>: Vector
where Self::Output: Vector,
{ type Output; // Required method fn cross(self, rhs: Rhs) -> Self::Output; }

Required Associated Types§

Required Methods§

Source

fn cross(self, rhs: Rhs) -> Self::Output

Returns the cross product of a 3- or 7-dimensional vector pair.

u×v

§Arguments
  • rhs - Vector of same dimensions
§Examples
let u = [1.0, 0.0, 0.0];
let v = [0.0, 1.0, 0.0];
let uv = [0.0, 0.0, 1.0];
assert_eq!(u.cross(v), uv);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<F> Cross<[F; 3]> for [F; 3]
where Self: Vector, [<[[F; 2]; 2] as Det>::Output; 3]: Vector, [[F; 2]; 2]: Det, F: Clone,

Source§

type Output = [<[[F; 2]; 2] as Det>::Output; 3]

Source§

fn cross(self, rhs: [F; 3]) -> Self::Output

Source§

impl<F> Cross<[F; 7]> for [F; 7]
where Self: Vector, [<<<[[F; 2]; 2] as Det>::Output as Add<<[[F; 2]; 2] as Det>::Output>>::Output as Add<<[[F; 2]; 2] as Det>::Output>>::Output; 7]: Vector, [[F; 2]; 2]: Det, <[[F; 2]; 2] as Det>::Output: Add, <<[[F; 2]; 2] as Det>::Output as Add<<[[F; 2]; 2] as Det>::Output>>::Output: Add<<[[F; 2]; 2] as Det>::Output>, F: Clone,

Source§

type Output = [<<<[[F; 2]; 2] as Det>::Output as Add>::Output as Add<<[[F; 2]; 2] as Det>::Output>>::Output; 7]

Source§

fn cross(self, rhs: [F; 7]) -> Self::Output

Implementors§