cedric, Current matrix usage seems going wrong. I found the current matrix usage is this.
matrix m; matrix_translate(m, ...); matrix m2; matrix_rotation(m, ...); matrix m3; matrix_scale(m, ...); matrix m4; matrix_compose(m, m2, m4); matrix m5; matrix_compose(m3, m4, m5); it's unnecessary and inefficient. Rather than, default matrix usage should be designed to compose of the transforms. matrix m; matrix_identify(m); matrix_translate(m); matrix_rotate(m); matrix_scale(m); if you focused to single factor transform rather than composition then single vector is enough to use rather than matrix. ------------------------------------ -Regards, Hermet- -----Original Message----- From: "Stefan Schmidt"<[email protected]> To: <[email protected]>; Cc: Sent: 2015-04-08 (수) 21:39:57 Subject: [EGIT] [core/efl] master 02/02: eina_matrix: Add since tags to all new functions in 1.14 stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c3ee9ff22b8d74eaaad0c65ebd06f59eb1253efe commit c3ee9ff22b8d74eaaad0c65ebd06f59eb1253efe Author: Stefan Schmidt <[email protected]> Date: Wed Apr 8 14:36:17 2015 +0200 eina_matrix: Add since tags to all new functions in 1.14 --- src/lib/eina/eina_matrix.h 63 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/src/lib/eina/eina_matrix.h b/src/lib/eina/eina_matrix.h index 57b5bab..4f6c23e 100644 --- a/src/lib/eina/eina_matrix.h +++ b/src/lib/eina/eina_matrix.h @@ -76,9 +76,14 @@ struct _Eina_Matrix3_F16p16 * * This function sets @p m to the identity matrix. No check is done on * @p m. + * + * @since 1.14 */ EAPI void eina_matrix3_f16p16_identity(Eina_Matrix3_F16p16 *m); +/** + * @since 1.14 + */ EAPI void eina_matrix3_f16p16_compose(const Eina_Matrix3_F16p16 *m1, const Eina_Matrix3_F16p16 *m2, Eina_Matrix3_F16p16 *dst); @@ -91,6 +96,8 @@ EAPI void eina_matrix3_f16p16_compose(const Eina_Matrix3_F16p16 *m1, * * This function returns the type of the matrix @p m. No check is done * on @p m. + * + * @since 1.14 */ EAPI Eina_Matrix_Type eina_matrix3_f16p16_type_get(const Eina_Matrix3_F16p16 *m); @@ -138,6 +145,8 @@ struct _Eina_Matrix3 * * This function returns the type of the matrix @p m. No check is done * on @p m. + * + * @since 1.14 */ EAPI Eina_Matrix_Type eina_matrix3_type_get(const Eina_Matrix3 *m); @@ -160,6 +169,8 @@ EAPI Eina_Matrix_Type eina_matrix3_type_get(const Eina_Matrix3 *m); * @p m. No check is done on @p m. * * @see eina_matrix3_values_get() + * + * @since 1.14 */ EAPI void eina_matrix3_values_set(Eina_Matrix3 *m, double xx, double xy, double xz, @@ -185,6 +196,8 @@ EAPI void eina_matrix3_values_set(Eina_Matrix3 *m, * @p m. No check is done on @p m. * * @see eina_matrix3_values_set() + * + * @since 1.14 */ EAPI void eina_matrix3_values_get(const Eina_Matrix3 *m, double *xx, double *xy, double *xz, @@ -210,6 +223,8 @@ EAPI void eina_matrix3_values_get(const Eina_Matrix3 *m, * @p m. No check is done on @p m. * * @see eina_matrix3_values_set() + * + * @since 1.14 */ EAPI void eina_matrix3_fixed_values_get(const Eina_Matrix3 *m, Eina_F16p16 *xx, Eina_F16p16 *xy, Eina_F16p16 *xz, @@ -226,6 +241,8 @@ EAPI void eina_matrix3_fixed_values_get(const Eina_Matrix3 *m, * This function transforms the floating point matrix @p m to a fixed * point matrix and store the coefficients into the fixed point matrix * @p fm. + * + * @since 1.14 */ EAPI void eina_matrix3_matrix3_f16p16_to(const Eina_Matrix3 *m, Eina_Matrix3_F16p16 *fm); @@ -239,8 +256,14 @@ EAPI void eina_matrix3_matrix3_f16p16_to(const Eina_Matrix3 *m, * * This function return EINA_TRUE if thematrices @p m1 and @p m2 are * equal, EINA_FALSE otherwise. No check is done on the matrices. + * + * @since 1.14 */ EAPI Eina_Bool eina_matrix3_equal(const Eina_Matrix3 *m1, const Eina_Matrix3 *m2); + +/** + * @since 1.14 + */ EAPI void eina_matrix3_compose(const Eina_Matrix3 *m1, const Eina_Matrix3 *m2, Eina_Matrix3 *dst); @@ -250,6 +273,8 @@ EAPI void eina_matrix3_compose(const Eina_Matrix3 *m1, * @param[in] m The matrix to set the translation values * @param[in] tx The X coordinate translate * @param[in] ty The Y coordinate translate + * + * @since 1.14 */ EAPI void eina_matrix3_translate(Eina_Matrix3 *t, double tx, double ty); @@ -258,6 +283,8 @@ EAPI void eina_matrix3_translate(Eina_Matrix3 *t, double tx, double ty); * @param[in] m The matrix to set the scale values * @param[in] sx The X coordinate scale * @param[in] sy The Y coordinate scale + * + * @since 1.14 */ EAPI void eina_matrix3_scale(Eina_Matrix3 *t, double sx, double sy); @@ -265,6 +292,8 @@ EAPI void eina_matrix3_scale(Eina_Matrix3 *t, double sx, double sy); * Set the matrix values for a rotation * @param[in] m The matrix to set the rotation values * @param[in] rad The radius to rotate the matrix + * + * @since 1.14 */ EAPI void eina_matrix3_rotate(Eina_Matrix3 *t, double rad); @@ -275,6 +304,8 @@ EAPI void eina_matrix3_rotate(Eina_Matrix3 *t, double rad); * * This function sets @p m to the identity matrix. No check is done on * @p m. + * + * @since 1.14 */ EAPI void eina_matrix3_identity(Eina_Matrix3 *t); @@ -286,6 +317,8 @@ EAPI void eina_matrix3_identity(Eina_Matrix3 *t); * * This function returns the determinant of the matrix @p m. No check * is done on @p m. + * + * @since 1.14 */ EAPI double eina_matrix3_determinant(const Eina_Matrix3 *m); @@ -297,6 +330,8 @@ EAPI double eina_matrix3_determinant(const Eina_Matrix3 *m); * * This function divides the matrix @p m by @p scalar. No check * is done on @p m. + * + * @since 1.14 */ EAPI void eina_matrix3_divide(Eina_Matrix3 *m, double scalar); @@ -309,15 +344,35 @@ EAPI void eina_matrix3_divide(Eina_Matrix3 *m, double scalar); * This function inverse the matrix @p m and stores the result in * @p m2. No check is done on @p m or @p m2. If @p m can not be * invertible, then @p m2 is set to the identity matrix. + * + * @since 1.14 */ EAPI void eina_matrix3_inverse(const Eina_Matrix3 *m, Eina_Matrix3 *m2); + +/** + * @since 1.14 + */ EAPI void eina_matrix3_transpose(const Eina_Matrix3 *m, Eina_Matrix3 *a); + +/** + * @since 1.14 + */ EAPI void eina_matrix3_cofactor(const Eina_Matrix3 *m, Eina_Matrix3 *a); + +/** + * @since 1.14 + */ EAPI void eina_matrix3_adjoint(const Eina_Matrix3 *m, Eina_Matrix3 *a); +/** + * @since 1.14 + */ EAPI void eina_matrix3_point_transform(const Eina_Matrix3 *m, double x, double y, double *xr, double *yr); +/** + * @since 1.14 + */ EAPI void eina_matrix3_rectangle_transform(const Eina_Matrix3 *m, const Eina_Rectangle *r, const Eina_Quad *q); @@ -328,8 +383,16 @@ EAPI void eina_matrix3_rectangle_transform(const Eina_Matrix3 *m, EAPI Eina_Bool eina_matrix3_quad_quad_map(Eina_Matrix3 *m, const Eina_Quad *src, const Eina_Quad *dst); + +/** + * @since 1.14 + */ EAPI Eina_Bool eina_matrix3_square_quad_map(Eina_Matrix3 *m, const Eina_Quad *q); + +/** + * @since 1.14 + */ EAPI Eina_Bool eina_matrix3_quad_square_map(Eina_Matrix3 *m, const Eina_Quad *q); -- ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
