forked from enlightenment/efl
eina: use matrix compose in place of equivalent code in matrix multiply
Summary: The eina_matrix3_compose and eina_matrix3_multiply API's are mathematically identical (even though the implementations are reversed... weird), except that the latter also includes a fastpath for identity matrices. Having two functionally equivalent APIs is redundant, so ideally one or the other would be dropped. But in order avoid API breakage, just have one routine wrapper the other and eliminate the internal redundancy. (Note that the parameter signatures of the two routines are different - eina_matrix3_compose() takes the two input matrices first, and the output matrix last, while eina_matrix3_multiply() takes the parameters in the reverse order. This inconsistency in the API style could result in accidentally erroneous usage and would be an argument for deprecation of one of the two APIs.) Signed-off-by: Bryce Harrington <bryce@osg.samsung.com> Reviewers: cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D5806 Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
This commit is contained in:
parent
9c191d3890
commit
572ffe7271
|
@ -1119,17 +1119,7 @@ eina_matrix3_multiply(Eina_Matrix3 *out, const Eina_Matrix3 *mat_a, const Eina_M
|
|||
return;
|
||||
}
|
||||
|
||||
MATRIX_XX(out) = MATRIX_XX(mat_b) * MATRIX_XX(mat_a) + MATRIX_YX(mat_b) * MATRIX_XY(mat_a) + MATRIX_ZX(mat_b) * MATRIX_XZ(mat_a);
|
||||
MATRIX_XY(out) = MATRIX_XY(mat_b) * MATRIX_XX(mat_a) + MATRIX_YY(mat_b) * MATRIX_XY(mat_a) + MATRIX_ZY(mat_b) * MATRIX_XZ(mat_a);
|
||||
MATRIX_XZ(out) = MATRIX_XZ(mat_b) * MATRIX_XX(mat_a) + MATRIX_YZ(mat_b) * MATRIX_XY(mat_a) + MATRIX_ZZ(mat_b) * MATRIX_XZ(mat_a);
|
||||
|
||||
MATRIX_YX(out) = MATRIX_XX(mat_b) * MATRIX_YX(mat_a) + MATRIX_YX(mat_b) * MATRIX_YY(mat_a) + MATRIX_ZX(mat_b) * MATRIX_YZ(mat_a);
|
||||
MATRIX_YY(out) = MATRIX_XY(mat_b) * MATRIX_YX(mat_a) + MATRIX_YY(mat_b) * MATRIX_YY(mat_a) + MATRIX_ZY(mat_b) * MATRIX_YZ(mat_a);
|
||||
MATRIX_YZ(out) = MATRIX_XZ(mat_b) * MATRIX_YX(mat_a) + MATRIX_YZ(mat_b) * MATRIX_YY(mat_a) + MATRIX_ZZ(mat_b) * MATRIX_YZ(mat_a);
|
||||
|
||||
MATRIX_ZX(out) = MATRIX_XX(mat_b) * MATRIX_ZX(mat_a) + MATRIX_YX(mat_b) * MATRIX_ZY(mat_a) + MATRIX_ZX(mat_b) * MATRIX_ZZ(mat_a);
|
||||
MATRIX_ZY(out) = MATRIX_XY(mat_b) * MATRIX_ZX(mat_a) + MATRIX_YY(mat_b) * MATRIX_ZY(mat_a) + MATRIX_ZY(mat_b) * MATRIX_ZZ(mat_a);
|
||||
MATRIX_ZZ(out) = MATRIX_XZ(mat_b) * MATRIX_ZX(mat_a) + MATRIX_YZ(mat_b) * MATRIX_ZY(mat_a) + MATRIX_ZZ(mat_b) * MATRIX_ZZ(mat_a);
|
||||
eina_matrix3_compose(mat_a, mat_b, out);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
|
Loading…
Reference in New Issue