macro_rules! vec4 {
    ($a:expr) => { ... };
    ($xy:expr, $zw:expr) => { ... };
    ($xy:expr, $z:expr, $w:expr) => { ... };
    ($x:expr, $y:expr, $z:expr, $w:expr) => { ... };
}
Expand description

Create 4D scalar vectors via different forms.

This macro allows to create 4D (V4) scalar vectors from several forms:

  • vec4!(xyzw), which acts as the cast operator. Only types T satisfying [Vec4] are castable.
  • vec4!(xyz, w), which builds a V4<T> with xyz a value that can be turned into a Expr<V3<T>> and w: T.
  • vec4!(xy, zw), which builds a V4<T> with xy and zw values that can be turned into Expr<V3<T>>.
  • vec4!(xy, z, w), which builds a V4<T> with xy, z: T and w: T.
  • vec4!(x, y, z, w), which builds a V3<T> for x: T, y: T and z: T.