Tizen Native API
4.0
|
Matrix definition and operations.
Functions | |
Eina_Matrix_Type | eina_matrix3_type_get (const Eina_Matrix3 *m) |
Returns the type of the given floating point matrix. | |
void | eina_matrix3_values_set (Eina_Matrix3 *m, double xx, double xy, double xz, double yx, double yy, double yz, double zx, double zy, double zz) |
Sets the values of the coefficients of the given floating point matrix. | |
void | eina_matrix3_values_get (const Eina_Matrix3 *m, double *xx, double *xy, double *xz, double *yx, double *yy, double *yz, double *zx, double *zy, double *zz) |
Gets the values of the coefficients of the given floating point matrix. | |
void | eina_matrix3_fixed_values_get (const Eina_Matrix3 *m, Eina_F16p16 *xx, Eina_F16p16 *xy, Eina_F16p16 *xz, Eina_F16p16 *yx, Eina_F16p16 *yy, Eina_F16p16 *yz, Eina_F16p16 *zx, Eina_F16p16 *zy, Eina_F16p16 *zz) |
Gets the values of the coefficients of the given fixed point matrix. | |
void | eina_matrix3_matrix3_f16p16_to (const Eina_Matrix3 *m, Eina_Matrix3_F16p16 *fm) |
Transforms the given floating point matrix to the given fixed point matrix. | |
Eina_Bool | eina_matrix3_equal (const Eina_Matrix3 *m1, const Eina_Matrix3 *m2) |
Checks whether the two given matrices are equal or not. | |
void | eina_matrix3_compose (const Eina_Matrix3 *m1, const Eina_Matrix3 *m2, Eina_Matrix3 *dst) |
void | eina_matrix3_translate (Eina_Matrix3 *t, double tx, double ty) |
Sets the matrix values for a translation. | |
void | eina_matrix3_scale (Eina_Matrix3 *t, double sx, double sy) |
Sets the matrix values for a scale. | |
void | eina_matrix3_rotate (Eina_Matrix3 *t, double rad) |
Sets the matrix values for a rotation. | |
void | eina_matrix3_identity (Eina_Matrix3 *t) |
Sets the given floating point matrix to the identity matrix. | |
double | eina_matrix3_determinant (const Eina_Matrix3 *m) |
Returns the determinant of the given matrix. | |
void | eina_matrix3_divide (Eina_Matrix3 *m, double scalar) |
Divides the given matrix by the given scalar. | |
void | eina_matrix3_inverse (const Eina_Matrix3 *m, Eina_Matrix3 *m2) |
Computes the inverse of the given matrix. | |
void | eina_matrix3_transpose (const Eina_Matrix3 *m, Eina_Matrix3 *a) |
void | eina_matrix3_cofactor (const Eina_Matrix3 *m, Eina_Matrix3 *a) |
void | eina_matrix3_adjoint (const Eina_Matrix3 *m, Eina_Matrix3 *a) |
void | eina_matrix3_point_transform (const Eina_Matrix3 *m, double x, double y, double *xr, double *yr) |
void | eina_matrix3_rectangle_transform (const Eina_Matrix3 *m, const Eina_Rectangle *r, const Eina_Quad *q) |
Eina_Bool | eina_matrix3_quad_quad_map (Eina_Matrix3 *m, const Eina_Quad *src, const Eina_Quad *dst) |
Creates a projective matrix that maps a quadrangle to a quadrangle. | |
Eina_Bool | eina_matrix3_square_quad_map (Eina_Matrix3 *m, const Eina_Quad *q) |
Eina_Bool | eina_matrix3_quad_square_map (Eina_Matrix3 *m, const Eina_Quad *q) |
void | eina_matrix3_array_set (Eina_Matrix3 *m, const double *v) |
Sets array to matrix. | |
void | eina_matrix3_copy (Eina_Matrix3 *dst, const Eina_Matrix3 *src) |
Copies matrix. | |
void | eina_matrix3_multiply (Eina_Matrix3 *out, const Eina_Matrix3 *mat_a, const Eina_Matrix3 *mat_b) |
Multiplies two matrix. | |
void | eina_matrix3_multiply_copy (Eina_Matrix3 *out, const Eina_Matrix3 *mat_a, const Eina_Matrix3 *mat_b) |
Multiplies two matrix. | |
void | eina_matrix3_scale_transform_set (Eina_Matrix3 *out, double s_x, double s_y) |
Transforms scale of matrix. | |
void | eina_matrix3_position_transform_set (Eina_Matrix3 *out, const double p_x, const double p_y) |
Transforms position of matrix. | |
void | eina_normal3_matrix_get (Eina_Matrix3 *out, const Eina_Matrix4 *m) |
Sets normal of the given matrix. | |
void | eina_matrix3_matrix4_to (Eina_Matrix4 *m4, const Eina_Matrix3 *m3) |
Converts an Eina_Matrix3 into an Eina_Matrix4. | |
Typedefs | |
typedef struct _Eina_Matrix3 | Eina_Matrix3 |
Defines | |
#define | EINA_MATRIX3_FORMAT "g %g %g | %g %g %g | %g %g %g" |
#define | EINA_MATRIX3_ARGS(m) |
#define EINA_MATRIX3_ARGS | ( | m | ) |
(m)->xx, (m)->xy, (m)->xz, \ (m)->yx, (m)->yy, (m)->yz, \ (m)->zx, (m)->zy, (m)->zz
Helper macro for printf formatting arg
#define EINA_MATRIX3_FORMAT "g %g %g | %g %g %g | %g %g %g" |
Helper macro for printf formatting
Floating point matrix3 handler
void eina_matrix3_adjoint | ( | const Eina_Matrix3 * | m, |
Eina_Matrix3 * | a | ||
) |
void eina_matrix3_array_set | ( | Eina_Matrix3 * | m, |
const double * | v | ||
) |
Sets array to matrix.
m | The result matrix |
v | The the array[9] for set |
Set to matrix first 9 elements from array
void eina_matrix3_cofactor | ( | const Eina_Matrix3 * | m, |
Eina_Matrix3 * | a | ||
) |
void eina_matrix3_compose | ( | const Eina_Matrix3 * | m1, |
const Eina_Matrix3 * | m2, | ||
Eina_Matrix3 * | dst | ||
) |
void eina_matrix3_copy | ( | Eina_Matrix3 * | dst, |
const Eina_Matrix3 * | src | ||
) |
Copies matrix.
dst | The matrix copy |
src | The matrix for copy. |
double eina_matrix3_determinant | ( | const Eina_Matrix3 * | m | ) |
Returns the determinant of the given matrix.
m | The matrix. |
This function returns the determinant of the matrix m
. No check is done on m
.
void eina_matrix3_divide | ( | Eina_Matrix3 * | m, |
double | scalar | ||
) |
Divides the given matrix by the given scalar.
m | The matrix. |
scalar | The scalar number. |
This function divides the matrix m
by scalar
. No check is done on m
.
Eina_Bool eina_matrix3_equal | ( | const Eina_Matrix3 * | m1, |
const Eina_Matrix3 * | m2 | ||
) |
Checks whether the two given matrices are equal or not.
m1 | The first matrix. |
m2 | The second matrix. |
0
otherwise.This function return EINA_TRUE if thematrices m1
and m2
are equal, EINA_FALSE otherwise. No check is done on the matrices.
void eina_matrix3_fixed_values_get | ( | const Eina_Matrix3 * | m, |
Eina_F16p16 * | xx, | ||
Eina_F16p16 * | xy, | ||
Eina_F16p16 * | xz, | ||
Eina_F16p16 * | yx, | ||
Eina_F16p16 * | yy, | ||
Eina_F16p16 * | yz, | ||
Eina_F16p16 * | zx, | ||
Eina_F16p16 * | zy, | ||
Eina_F16p16 * | zz | ||
) |
Gets the values of the coefficients of the given fixed point matrix.
m | The fixed point matrix. |
xx | The first coefficient value. |
xy | The second coefficient value. |
xz | The third coefficient value. |
yx | The fourth coefficient value. |
yy | The fifth coefficient value. |
yz | The sixth coefficient value. |
zx | The seventh coefficient value. |
zy | The heighth coefficient value. |
zz | The nineth coefficient value. |
This function gets the values of the coefficients of the matrix m
. No check is done on m
.
void eina_matrix3_identity | ( | Eina_Matrix3 * | t | ) |
Sets the given floating point matrix to the identity matrix.
t | The floating point matrix to set |
This function sets m
to the identity matrix. No check is done on m
.
void eina_matrix3_inverse | ( | const Eina_Matrix3 * | m, |
Eina_Matrix3 * | m2 | ||
) |
Computes the inverse of the given matrix.
m | The matrix to inverse. |
m2 | The inverse matrix. |
This function inverse the matrix m
and stores the result in m2
. No check is done on m
or m2
. If m
can not be invertible, then m2
is set to the identity matrix.
void eina_matrix3_matrix3_f16p16_to | ( | const Eina_Matrix3 * | m, |
Eina_Matrix3_F16p16 * | fm | ||
) |
Transforms the given floating point matrix to the given fixed point matrix.
m | The floating point matrix. |
fm | The fixed point matrix. |
This function transforms the floating point matrix m
to a fixed point matrix and store the coefficients into the fixed point matrix fm
.
void eina_matrix3_matrix4_to | ( | Eina_Matrix4 * | m4, |
const Eina_Matrix3 * | m3 | ||
) |
Converts an Eina_Matrix3 into an Eina_Matrix4.
m3 | The destination Eina_Matrix3. |
m4 | The source Eina_Matrix4. |
void eina_matrix3_multiply | ( | Eina_Matrix3 * | out, |
const Eina_Matrix3 * | mat_a, | ||
const Eina_Matrix3 * | mat_b | ||
) |
Multiplies two matrix.
out | The resulting matrix |
a | The first member of the multiplication |
b | The second member of the multiplication |
void eina_matrix3_multiply_copy | ( | Eina_Matrix3 * | out, |
const Eina_Matrix3 * | mat_a, | ||
const Eina_Matrix3 * | mat_b | ||
) |
Multiplies two matrix.
out | The resulting matrix |
a | The first member of the multiplication |
b | The second member of the multiplication |
void eina_matrix3_point_transform | ( | const Eina_Matrix3 * | m, |
double | x, | ||
double | y, | ||
double * | xr, | ||
double * | yr | ||
) |
void eina_matrix3_position_transform_set | ( | Eina_Matrix3 * | out, |
const double | p_x, | ||
const double | p_y | ||
) |
Transforms position of matrix.
out | The resulting matrix |
p_x | The position value for x |
p_y | The position value for y |
Eina_Bool eina_matrix3_quad_quad_map | ( | Eina_Matrix3 * | m, |
const Eina_Quad * | src, | ||
const Eina_Quad * | dst | ||
) |
Creates a projective matrix that maps a quadrangle to a quadrangle.
Eina_Bool eina_matrix3_quad_square_map | ( | Eina_Matrix3 * | m, |
const Eina_Quad * | q | ||
) |
void eina_matrix3_rectangle_transform | ( | const Eina_Matrix3 * | m, |
const Eina_Rectangle * | r, | ||
const Eina_Quad * | q | ||
) |
void eina_matrix3_rotate | ( | Eina_Matrix3 * | t, |
double | rad | ||
) |
Sets the matrix values for a rotation.
[in] | t | The matrix to set the rotation values |
[in] | rad | The radius to rotate the matrix |
void eina_matrix3_scale | ( | Eina_Matrix3 * | t, |
double | sx, | ||
double | sy | ||
) |
Sets the matrix values for a scale.
[in] | t | The matrix to set the scale values |
[in] | sx | The X coordinate scale |
[in] | sy | The Y coordinate scale |
void eina_matrix3_scale_transform_set | ( | Eina_Matrix3 * | out, |
double | s_x, | ||
double | s_y | ||
) |
Transforms scale of matrix.
out | The resulting matrix |
s_x | The scale value for x |
s_y | The scale value for y |
Eina_Bool eina_matrix3_square_quad_map | ( | Eina_Matrix3 * | m, |
const Eina_Quad * | q | ||
) |
void eina_matrix3_translate | ( | Eina_Matrix3 * | t, |
double | tx, | ||
double | ty | ||
) |
Sets the matrix values for a translation.
[in] | t | The matrix to set the translation values |
[in] | tx | The X coordinate translate |
[in] | ty | The Y coordinate translate |
void eina_matrix3_transpose | ( | const Eina_Matrix3 * | m, |
Eina_Matrix3 * | a | ||
) |
Eina_Matrix_Type eina_matrix3_type_get | ( | const Eina_Matrix3 * | m | ) |
Returns the type of the given floating point matrix.
m | The floating point matrix. |
This function returns the type of the matrix m
. No check is done on m
.
void eina_matrix3_values_get | ( | const Eina_Matrix3 * | m, |
double * | xx, | ||
double * | xy, | ||
double * | xz, | ||
double * | yx, | ||
double * | yy, | ||
double * | yz, | ||
double * | zx, | ||
double * | zy, | ||
double * | zz | ||
) |
Gets the values of the coefficients of the given floating point matrix.
m | The floating point matrix. |
xx | The first coefficient value. |
xy | The second coefficient value. |
xz | The third coefficient value. |
yx | The fourth coefficient value. |
yy | The fifth coefficient value. |
yz | The sixth coefficient value. |
zx | The seventh coefficient value. |
zy | The heighth coefficient value. |
zz | The nineth coefficient value. |
This function gets the values of the coefficients of the matrix m
. No check is done on m
.
void eina_matrix3_values_set | ( | Eina_Matrix3 * | m, |
double | xx, | ||
double | xy, | ||
double | xz, | ||
double | yx, | ||
double | yy, | ||
double | yz, | ||
double | zx, | ||
double | zy, | ||
double | zz | ||
) |
Sets the values of the coefficients of the given floating point matrix.
m | The floating point matrix. |
xx | The first coefficient value. |
xy | The second coefficient value. |
xz | The third coefficient value. |
yx | The fourth coefficient value. |
yy | The fifth coefficient value. |
yz | The sixth coefficient value. |
zx | The seventh coefficient value. |
zy | The heighth coefficient value. |
zz | The nineth coefficient value. |
This function sets the values of the coefficients of the matrix m
. No check is done on m
.
void eina_normal3_matrix_get | ( | Eina_Matrix3 * | out, |
const Eina_Matrix4 * | m | ||
) |
Sets normal of the given matrix.
out | The result mtrix of normal |
m | The matrix |