eina: add eina_matrix4_transpose.

This commit is contained in:
Cedric BAIL 2015-06-25 14:52:55 +02:00
parent 0330717ab2
commit 26f33dc6bd
2 changed files with 33 additions and 0 deletions

View File

@ -915,3 +915,24 @@ eina_matrix4_inverse(Eina_Matrix4 *out, const Eina_Matrix4 *in)
return EINA_TRUE;
}
EAPI void
eina_matrix4_transpose(Eina_Matrix4 *out, const Eina_Matrix4 *in)
{
MATRIX_XX(out) = MATRIX_XX(in);
MATRIX_XY(out) = MATRIX_YX(in);
MATRIX_XZ(out) = MATRIX_ZX(in);
MATRIX_XW(out) = MATRIX_WX(in);
MATRIX_YX(out) = MATRIX_XY(in);
MATRIX_YY(out) = MATRIX_YY(in);
MATRIX_YZ(out) = MATRIX_ZY(in);
MATRIX_YW(out) = MATRIX_WY(in);
MATRIX_ZX(out) = MATRIX_XZ(in);
MATRIX_ZY(out) = MATRIX_YZ(in);
MATRIX_ZZ(out) = MATRIX_ZZ(in);
MATRIX_ZW(out) = MATRIX_WZ(in);
MATRIX_WX(out) = MATRIX_XW(in);
MATRIX_WY(out) = MATRIX_YW(in);
MATRIX_WZ(out) = MATRIX_ZW(in);
MATRIX_WW(out) = MATRIX_WW(in);
}

View File

@ -549,6 +549,18 @@ EAPI Eina_Bool eina_matrix4_normalized(Eina_Matrix4 *out,
*/
EAPI Eina_Bool eina_matrix4_inverse(Eina_Matrix4 *out, const Eina_Matrix4 *in);
/**
* @brief Return the transpose of the given matrix.
*
* @param out The transpose matrix
* @param in The matrix.
*
* Just going to swap row and column.
*
* @since 1.15
*/
EAPI void eina_matrix4_transpose(Eina_Matrix4 *out, const Eina_Matrix4 *in);
/**
* @brief Convert an Eina_Matrix4 into an Eina_Matrix3.
*