Skip to content

Latest commit

 

History

History
151 lines (87 loc) · 3.58 KB

reference-libobs-graphics-matrix4.rst

File metadata and controls

151 lines (87 loc) · 3.58 KB

Matrix

#include <graphics/matrix4.h>
.. type:: 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