mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-04 01:43:24 +00:00
added gimp_matrix2_mult().
2003-07-07 Sven Neumann <sven@gimp.org> * libgimpmath/gimpmatrix.[ch]: added gimp_matrix2_mult().
This commit is contained in:
parent
6f83a52571
commit
6b9681c7d3
5 changed files with 59 additions and 18 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2003-07-07 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
|
* libgimpmath/gimpmatrix.[ch]: added gimp_matrix2_mult().
|
||||||
|
|
||||||
2003-07-07 Sven Neumann <sven@gimp.org>
|
2003-07-07 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
* libgimpbase/gimpbasetypes.h: include <libgimpmath/gimpmathtypes.h>.
|
* libgimpbase/gimpbasetypes.h: include <libgimpmath/gimpmathtypes.h>.
|
||||||
|
|
|
@ -23,6 +23,7 @@ GimpMatrix2
|
||||||
GimpMatrix3
|
GimpMatrix3
|
||||||
GimpMatrix4
|
GimpMatrix4
|
||||||
gimp_matrix2_identity
|
gimp_matrix2_identity
|
||||||
|
gimp_matrix2_mult
|
||||||
gimp_matrix3_identity
|
gimp_matrix3_identity
|
||||||
gimp_matrix3_transform_point
|
gimp_matrix3_transform_point
|
||||||
gimp_matrix3_mult
|
gimp_matrix3_mult
|
||||||
|
|
|
@ -53,6 +53,15 @@ basic matrix manipulations and tests.
|
||||||
@matrix:
|
@matrix:
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### FUNCTION gimp_matrix2_mult ##### -->
|
||||||
|
<para>
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
@matrix1:
|
||||||
|
@matrix2:
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gimp_matrix3_identity ##### -->
|
<!-- ##### FUNCTION gimp_matrix3_identity ##### -->
|
||||||
<para>
|
<para>
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
|
|
||||||
#define EPSILON 1e-6
|
#define EPSILON 1e-6
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gimp_matrix2_identity:
|
* gimp_matrix2_identity:
|
||||||
* @matrix: A matrix.
|
* @matrix: A matrix.
|
||||||
|
@ -44,6 +45,46 @@ gimp_matrix2_identity (GimpMatrix2 *matrix)
|
||||||
*matrix = identity;
|
*matrix = identity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gimp_matrix2_mult:
|
||||||
|
* @matrix1: The first input matrix.
|
||||||
|
* @matrix2: The second input matrix which will be overwritten by the result.
|
||||||
|
*
|
||||||
|
* Multiplies two matrices and puts the result into the second one.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
gimp_matrix2_mult (const GimpMatrix2 *matrix1,
|
||||||
|
GimpMatrix2 *matrix2)
|
||||||
|
{
|
||||||
|
GimpMatrix2 tmp;
|
||||||
|
|
||||||
|
tmp.coeff[0][0] = (matrix1->coeff[0][0] * matrix2->coeff[0][0] +
|
||||||
|
matrix1->coeff[0][1] * matrix2->coeff[1][0]);
|
||||||
|
tmp.coeff[0][1] = (matrix1->coeff[0][0] * matrix2->coeff[0][1] +
|
||||||
|
matrix1->coeff[0][1] * matrix2->coeff[1][1]);
|
||||||
|
tmp.coeff[1][0] = (matrix1->coeff[1][0] * matrix2->coeff[0][0] +
|
||||||
|
matrix1->coeff[1][1] * matrix2->coeff[1][0]);
|
||||||
|
tmp.coeff[1][1] = (matrix1->coeff[1][0] * matrix2->coeff[0][1] +
|
||||||
|
matrix1->coeff[1][1] * matrix2->coeff[1][1]);
|
||||||
|
|
||||||
|
*matrix2 = tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gimp_matrix3_identity:
|
||||||
|
* @matrix: A matrix.
|
||||||
|
*
|
||||||
|
* Sets the matrix to the identity matrix.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
gimp_matrix3_identity (GimpMatrix3 *matrix)
|
||||||
|
{
|
||||||
|
static const GimpMatrix3 identity = { { { 1.0, 0.0, 0.0 },
|
||||||
|
{ 0.0, 1.0, 0.0 },
|
||||||
|
{ 0.0, 0.0, 1.0 } } };
|
||||||
|
|
||||||
|
*matrix = identity;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gimp_matrix3_transform_point:
|
* gimp_matrix3_transform_point:
|
||||||
|
@ -82,7 +123,7 @@ gimp_matrix3_transform_point (const GimpMatrix3 *matrix,
|
||||||
/**
|
/**
|
||||||
* gimp_matrix3_mult:
|
* gimp_matrix3_mult:
|
||||||
* @matrix1: The first input matrix.
|
* @matrix1: The first input matrix.
|
||||||
* @matrix2: The second input matrix which will be oeverwritten by the result.
|
* @matrix2: The second input matrix which will be overwritten by the result.
|
||||||
*
|
*
|
||||||
* Multiplies two matrices and puts the result into the second one.
|
* Multiplies two matrices and puts the result into the second one.
|
||||||
*/
|
*/
|
||||||
|
@ -111,22 +152,6 @@ gimp_matrix3_mult (const GimpMatrix3 *matrix1,
|
||||||
*matrix2 = tmp;
|
*matrix2 = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* gimp_matrix3_identity:
|
|
||||||
* @matrix: A matrix.
|
|
||||||
*
|
|
||||||
* Sets the matrix to the identity matrix.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
gimp_matrix3_identity (GimpMatrix3 *matrix)
|
|
||||||
{
|
|
||||||
static const GimpMatrix3 identity = { { { 1.0, 0.0, 0.0 },
|
|
||||||
{ 0.0, 1.0, 0.0 },
|
|
||||||
{ 0.0, 0.0, 1.0 } } };
|
|
||||||
|
|
||||||
*matrix = identity;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gimp_matrix3_translate:
|
* gimp_matrix3_translate:
|
||||||
* @matrix: The matrix that is to be translated.
|
* @matrix: The matrix that is to be translated.
|
||||||
|
|
|
@ -44,7 +44,10 @@ struct _GimpMatrix4
|
||||||
|
|
||||||
|
|
||||||
void gimp_matrix2_identity (GimpMatrix2 *matrix);
|
void gimp_matrix2_identity (GimpMatrix2 *matrix);
|
||||||
|
void gimp_matrix2_mult (const GimpMatrix2 *matrix1,
|
||||||
|
GimpMatrix2 *matrix2);
|
||||||
|
|
||||||
|
void gimp_matrix3_identity (GimpMatrix3 *matrix);
|
||||||
void gimp_matrix3_transform_point (const GimpMatrix3 *matrix,
|
void gimp_matrix3_transform_point (const GimpMatrix3 *matrix,
|
||||||
gdouble x,
|
gdouble x,
|
||||||
gdouble y,
|
gdouble y,
|
||||||
|
@ -52,7 +55,6 @@ void gimp_matrix3_transform_point (const GimpMatrix3 *matrix,
|
||||||
gdouble *newy);
|
gdouble *newy);
|
||||||
void gimp_matrix3_mult (const GimpMatrix3 *matrix1,
|
void gimp_matrix3_mult (const GimpMatrix3 *matrix1,
|
||||||
GimpMatrix3 *matrix2);
|
GimpMatrix3 *matrix2);
|
||||||
void gimp_matrix3_identity (GimpMatrix3 *matrix);
|
|
||||||
void gimp_matrix3_translate (GimpMatrix3 *matrix,
|
void gimp_matrix3_translate (GimpMatrix3 *matrix,
|
||||||
gdouble x,
|
gdouble x,
|
||||||
gdouble y);
|
gdouble y);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue