docs/sphinx/reference-libobs-graphics-matrix4.rst
.. code:: cpp
#include <graphics/matrix4.h>
.. struct:: matrix4
Matrix structure
.. member:: struct vec4 matrix4.x
X component vector
.. member:: struct vec4 matrix4.y
Y component vector
.. member:: struct vec4 matrix4.z
Z component vector
.. member:: struct vec4 matrix4.w
W component vector
.. function:: void matrix4_copy(struct matrix4 *dst, const struct matrix4 *m)
Copies a matrix
:param dst: Destination matrix :param m: Matrix to copy
.. function:: void matrix4_identity(struct matrix4 *dst)
Sets an identity matrix
:param dst: Destination matrix
.. function:: void matrix4_from_quat(struct matrix4 *dst, const struct quat *q)
Converts a quaternion to a matrix
:param dst: Destination matrix :param q: Quaternion to convert
.. function:: void matrix4_from_axisang(struct matrix4 *dst, const struct axisang *aa)
Converts an axis angle to a matrix
:param dst: Destination matrix :param aa: Axis angle to convert
.. function:: void matrix4_mul(struct matrix4 *dst, const struct matrix4 *m1, const struct matrix4 *m2)
Multiples two matrices
:param dst: Destination matrix :param m1: Matrix 1 :param m2: Matrix 2
.. function:: float matrix4_determinant(const struct matrix4 *m)
Gets the determinant value of a matrix
:param m: Matrix :return: Determinant
.. function:: void matrix4_translate3v(struct matrix4 *dst, const struct matrix4 *m, const struct vec3 *v) void matrix4_translate3f(struct matrix4 *dst, const struct matrix4 *m, float x, float y, float z)
Translates the matrix by a 3-component vector
:param dst: Destination matrix :param m: Matrix to translate :param v: Translation vector
.. function:: void matrix4_translate4v(struct matrix4 *dst, const struct matrix4 *m, const struct vec4 *v)
Translates the matrix by a 4-component vector
:param dst: Destination matrix :param m: Matrix to translate :param v: Translation vector
.. function:: void matrix4_rotate(struct matrix4 *dst, const struct matrix4 *m, const struct quat *q)
Rotates a matrix by a quaternion
:param dst: Destination matrix :param m: Matrix to rotate :param q: Rotation quaternion
.. function:: void matrix4_rotate_aa(struct matrix4 *dst, const struct matrix4 *m, const struct axisang *aa) void matrix4_rotate_aa4f(struct matrix4 *dst, const struct matrix4 *m, float x, float y, float z, float rot)
Rotates a matrix by an axis angle
:param dst: Destination matrix :param m: Matrix to rotate :param aa: Rotation anxis angle
.. function:: void matrix4_scale(struct matrix4 *dst, const struct matrix4 *m, const struct vec3 *v) void matrix4_scale3f(struct matrix4 *dst, const struct matrix4 *m, float x, float y, float z)
Scales each matrix component by the components of a 3-component vector
:param dst: Destination matrix :param m: Matrix to scale :param v: Scale vector
.. function:: bool matrix4_inv(struct matrix4 *dst, const struct matrix4 *m)
Inverts a matrix
:param dst: Destination matrix :param m: Matrix to invert
.. function:: void matrix4_transpose(struct matrix4 *dst, const struct matrix4 *m)
Transposes a matrix
:param dst: Destination matrix :param m: Matrix to transpose