Macro shades::vec4[][src]

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

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.

Examples

use shades::{vec2, vec3, vec4};

let _ = vec4!(1, 2, 3, 4);
let _ = vec4!(vec3!(1, 2, 3), 4);
let _ = vec4!(vec2!(1, 2), vec2!(3, 4));
let _ = vec4!(vec2!(1, 2), 3, 4);