summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2015-06-24 15:31:32 +0200
committerCedric BAIL <cedric@osg.samsung.com>2015-08-21 16:37:16 +0200
commit32cbc04f96c785290683c4836f626fe10a29093f (patch)
treedaa24600c07de7186355068fbc245f6136ebb7f6
parent10f8149115cd8b3c43270888f72546dfb6bfc609 (diff)
downloadefl-32cbc04f96c785290683c4836f626fe10a29093f.tar.gz
eina: our 3x3 matrix are 2D matrix, not 3D rotation matrix.
-rw-r--r--src/lib/eina/eina_matrix.c30
-rw-r--r--src/tests/eina/eina_test_matrix.c19
2 files changed, 24 insertions, 25 deletions
diff --git a/src/lib/eina/eina_matrix.c b/src/lib/eina/eina_matrix.c
index 8e2d0beb98..6c96893927 100644
--- a/src/lib/eina/eina_matrix.c
+++ b/src/lib/eina/eina_matrix.c
@@ -664,13 +664,13 @@ eina_matrix4_matrix3_to(Eina_Matrix3 *m3, const Eina_Matrix4 *m4)
{
MATRIX_XX(m3) = MATRIX_XX(m4);
MATRIX_XY(m3) = MATRIX_XY(m4);
- MATRIX_XZ(m3) = MATRIX_XZ(m4);
+ MATRIX_XZ(m3) = MATRIX_XW(m4);
MATRIX_YX(m3) = MATRIX_YX(m4);
MATRIX_YY(m3) = MATRIX_YY(m4);
- MATRIX_YZ(m3) = MATRIX_YZ(m4);
- MATRIX_ZX(m3) = MATRIX_ZX(m4);
- MATRIX_ZY(m3) = MATRIX_ZY(m4);
- MATRIX_ZZ(m3) = MATRIX_ZZ(m4);
+ MATRIX_YZ(m3) = MATRIX_YW(m4);
+ MATRIX_ZX(m3) = MATRIX_WX(m4);
+ MATRIX_ZY(m3) = MATRIX_WY(m4);
+ MATRIX_ZZ(m3) = MATRIX_WW(m4);
}
EAPI void
@@ -678,18 +678,18 @@ eina_matrix3_matrix4_to(Eina_Matrix4 *m4, const Eina_Matrix3 *m3)
{
MATRIX_XX(m4) = MATRIX_XX(m3);
MATRIX_XY(m4) = MATRIX_XY(m3);
- MATRIX_XZ(m4) = MATRIX_XZ(m3);
- MATRIX_XW(m4) = 0;
+ MATRIX_XZ(m4) = 0;
+ MATRIX_XW(m4) = MATRIX_XZ(m3);
MATRIX_YX(m4) = MATRIX_YX(m3);
MATRIX_YY(m4) = MATRIX_YY(m3);
- MATRIX_YZ(m4) = MATRIX_YZ(m3);
- MATRIX_YW(m4) = 0;
- MATRIX_ZX(m4) = MATRIX_ZX(m3);
- MATRIX_ZY(m4) = MATRIX_ZY(m3);
- MATRIX_ZZ(m4) = MATRIX_ZZ(m3);
+ MATRIX_YZ(m4) = 0;
+ MATRIX_YW(m4) = MATRIX_YZ(m3);
+ MATRIX_ZX(m4) = 0;
+ MATRIX_ZY(m4) = 0;
+ MATRIX_ZZ(m4) = 1;
MATRIX_ZW(m4) = 0;
- MATRIX_WX(m4) = 0;
- MATRIX_WY(m4) = 0;
+ MATRIX_WX(m4) = MATRIX_ZX(m3);
+ MATRIX_WY(m4) = MATRIX_ZY(m3);
MATRIX_WZ(m4) = 0;
- MATRIX_WW(m4) = 1;
+ MATRIX_WW(m4) = MATRIX_ZZ(m3);
}
diff --git a/src/tests/eina/eina_test_matrix.c b/src/tests/eina/eina_test_matrix.c
index af1e005c78..51cf9d8205 100644
--- a/src/tests/eina/eina_test_matrix.c
+++ b/src/tests/eina/eina_test_matrix.c
@@ -72,21 +72,20 @@ END_TEST
START_TEST(eina_matrix4_2_3)
{
- Eina_Matrix4 m4, m4b;
- Eina_Matrix3 m3;
+ Eina_Matrix4 m4;
+ Eina_Matrix3 m3, m3b;
eina_init();
- eina_matrix4_values_set(&m4,
- 1, 3, 2, 0,
- 3, 1, 4, 0,
- 2, 4, 1, 0,
- 0, 0, 0, 1);
+ eina_matrix3_values_set(&m3,
+ 1, 3, 2,
+ 3, 1, 4,
+ 2, 4, 1);
- eina_matrix4_matrix3_to(&m3, &m4);
- eina_matrix3_matrix4_to(&m4b, &m3);
+ eina_matrix3_matrix4_to(&m4, &m3);
+ eina_matrix4_matrix3_to(&m3b, &m4);
- fail_if(memcmp(&m4, &m4b, sizeof (Eina_Matrix4)) != 0);
+ fail_if(memcmp(&m3, &m3b, sizeof (Eina_Matrix3)) != 0);
eina_shutdown();
}