Skip to content

shz_mat4x4_transform_vec3

Markdown
SHZ_INLINE shz_vec3_t shz_mat4x4_transform_vec3(const shz_mat4x4_t* m, shz_vec3_t v) SHZ_NOEXCEPT;

Transforms a 3D vector by a 4x4 matrix.

NameTypeDescription
mconst shz_mat4x4_t *
vshz_vec3_t

shz_vec3_t

This is a routine specializing in one-off transforms of a single 3D vector (such as a normal, without a W component) by a single 4x4 matrix. It should be faster than going through XMTRX.

  • For batch transforming multiple 3D vectors against the same 4x4 matrix, preload the matrix into XMTRX, then use shz_xmtrx_transform_vec3().
  • shz_mat4x4_t and shz_mat2x2_t arguments must be 8-byte aligned. Unaligned data goes through the float[16] parameters of the _unaligned routines.
  • C++ equivalent: none (call the C function from C++)
  • Type-generic form: none
  • Back-ends: SH4: dedicated SH4 implementation · SW: portable C · SPU: shared C implementation
  • Defined in: sh4zam/shz_matrix.h:679
  • Module: Matrix, section "Transforming"

shz_mat4x4_transform_vec4, shz_xmtrx_transform_vec3