libgimpmath: add gimp_matrix3_equal()

... which compares two matrices.
This commit is contained in:
Ell 2020-01-15 23:40:09 +02:00
parent b9a801f7d4
commit 006f300fff
4 changed files with 34 additions and 0 deletions

View File

@ -38,6 +38,7 @@ gimp_matrix3_is_identity
gimp_matrix3_is_diagonal
gimp_matrix3_is_affine
gimp_matrix3_is_simple
gimp_matrix3_equal
gimp_matrix4_identity
gimp_matrix4_mult
gimp_matrix4_to_deg

View File

@ -7,6 +7,7 @@ EXPORTS
gimp_matrix2_transform_point
gimp_matrix3_affine
gimp_matrix3_determinant
gimp_matrix3_equal
gimp_matrix3_get_type
gimp_matrix3_identity
gimp_matrix3_invert

View File

@ -891,6 +891,35 @@ gimp_matrix3_is_simple (const GimpMatrix3 *matrix)
return TRUE;
}
/**
* gimp_matrix3_equal:
* @matrix1: The first matrix
* @matrix2: The second matrix
*
* Checks if two matrices are equal.
*
* Returns: %TRUE the matrices are equal, %FALSE otherwise
*
* Since: 2.10.16
*/
gboolean
gimp_matrix3_equal (const GimpMatrix3 *matrix1,
const GimpMatrix3 *matrix2)
{
gint i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
if (fabs (matrix1->coeff[i][j] - matrix2->coeff[i][j]) > EPSILON)
return FALSE;
}
}
return TRUE;
}
/**
* gimp_matrix4_identity:
* @matrix: A matrix.

View File

@ -120,6 +120,9 @@ gboolean gimp_matrix3_is_diagonal (const GimpMatrix3 *matrix);
gboolean gimp_matrix3_is_affine (const GimpMatrix3 *matrix);
gboolean gimp_matrix3_is_simple (const GimpMatrix3 *matrix);
gboolean gimp_matrix3_equal (const GimpMatrix3 *matrix1,
const GimpMatrix3 *matrix2);
void gimp_matrix3_transform_point (const GimpMatrix3 *matrix,
gdouble x,
gdouble y,