VectorF

Four-component float vector (x, y, z, w)

It

Float vector object

self {
  F32 x
  F32 y
  F32 z
  F32 w
  bool operator==(const It& o) { return x==o.x && y==o.y && z==o.z && w==o.w; }
  It operator+(const It& o) { return {x+o.x, y+o.y, z+o.z, w+o.w}; }
  It operator-(const It& o) { return {x-o.x, y-o.y, z-o.z, w-o.w}; }
  It operator-() { return {-x, -y, -z, -w}; }
  It operator*(const It& o) { return {x*o.x, y*o.y, z*o.z, w*o.w}; }
  It operator*(float s) { return {x*s, y*s, z*s, w*s}; }
  It operator/(float s) { return {x/s, y/s, z/s, w/s}; }
}

equals

Test whether two float vectors are component-wise equal

U8 equals(VectorF a, VectorF b)

Parameters

  • a — First vector
  • b — Second vector

Returns — Non-zero if equal


set

Set all four components of a float vector

U0 set(VectorF vec, F32 x, F32 y, F32 z, F32 w)

Parameters

  • vec — Target vector
  • x — X component
  • y — Y component
  • z — Z component
  • w — W component

normalize

Normalize a float vector to unit length in-place

U0 normalize(VectorF vec)

Parameters

  • vec — Vector to normalize

length

Compute the length (magnitude) of a float vector

F32 length(VectorF vec)

Parameters

  • vec — The vector

Returns — Euclidean length


zero

Set all components of a float vector to zero

U0 zero(VectorF vec)

Parameters

  • vec — Vector to zero

dot

Compute the dot product of two float vectors

F32 dot(VectorF a, VectorF b)

Parameters

  • a — First vector
  • b — Second vector

Returns — Dot product


cross

Compute the cross product of two float vectors

U0 cross(VectorF result, VectorF a, VectorF b)

Parameters

  • result — Vector to store the result
  • a — First vector
  • b — Second vector

add

Add two float vectors component-wise

U0 add(VectorF result, VectorF a, VectorF b)

Parameters

  • result — Vector to store the result
  • a — First vector
  • b — Second vector

sub

Subtract one float vector from another

U0 sub(VectorF result, VectorF a, VectorF b)

Parameters

  • result — Vector to store the result
  • a — Minuend vector
  • b — Subtrahend vector

mul

Multiply two float vectors component-wise

U0 mul(VectorF result, VectorF a, VectorF b)

Parameters

  • result — Vector to store the result
  • a — First vector
  • b — Second vector

scale

Multiply a float vector by a scalar

U0 scale(VectorF result, VectorF a, F32 s)

Parameters

  • result — Vector to store the result
  • a — Source vector
  • s — Scalar factor

div

Divide a float vector by a scalar

U0 div(VectorF result, VectorF a, F32 s)

Parameters

  • result — Vector to store the result
  • a — Source vector
  • s — Scalar divisor