| Top |  |  |  |  | 
| void | gimp_matrix2_identity () | 
| void | gimp_matrix2_mult () | 
| void | gimp_matrix3_identity () | 
| void | gimp_matrix3_mult () | 
| void | gimp_matrix3_translate () | 
| void | gimp_matrix3_scale () | 
| void | gimp_matrix3_rotate () | 
| void | gimp_matrix3_xshear () | 
| void | gimp_matrix3_yshear () | 
| void | gimp_matrix3_affine () | 
| void | gimp_matrix3_transform_point () | 
| gdouble | gimp_matrix3_determinant () | 
| void | gimp_matrix3_invert () | 
| gboolean | gimp_matrix3_is_identity () | 
| gboolean | gimp_matrix3_is_diagonal () | 
| gboolean | gimp_matrix3_is_affine () | 
| gboolean | gimp_matrix3_is_simple () | 
| void | gimp_matrix4_to_deg () | 
| #define | GIMP_IS_PARAM_SPEC_MATRIX2() | 
| GParamSpec * | gimp_param_spec_matrix2 () | 
| #define | GIMP_VALUE_HOLDS_MATRIX2() | 
| #define | GIMP_IS_PARAM_SPEC_MATRIX3() | 
| GParamSpec * | gimp_param_spec_matrix3 () | 
| #define | GIMP_VALUE_HOLDS_MATRIX3() | 
| struct | GimpMatrix2 | 
| struct | GimpMatrix3 | 
| struct | GimpMatrix4 | 
| #define | GIMP_TYPE_MATRIX2 | 
| #define | GIMP_TYPE_PARAM_MATRIX2 | 
| #define | GIMP_TYPE_MATRIX3 | 
| #define | GIMP_TYPE_PARAM_MATRIX3 | 
When doing image manipulation you will often need 3x3 transformation matrices that define translation, rotation, scaling, shearing and arbitrary perspective transformations using a 3x3 matrix. Here you'll find a set of utility functions to set up those matrices and to perform basic matrix manipulations and tests.
Each matrix class has a 2 dimensional gdouble coeff member. The element for row r and column c of the matrix is coeffr.
void
gimp_matrix2_identity (GimpMatrix2 *matrix);
Sets the matrix to the identity matrix.
void gimp_matrix2_mult (const GimpMatrix2 *matrix1,GimpMatrix2 *matrix2);
Multiplies two matrices and puts the result into the second one.
void
gimp_matrix3_identity (GimpMatrix3 *matrix);
Sets the matrix to the identity matrix.
void gimp_matrix3_mult (const GimpMatrix3 *matrix1,GimpMatrix3 *matrix2);
Multiplies two matrices and puts the result into the second one.
void gimp_matrix3_translate (GimpMatrix3 *matrix,gdouble x,gdouble y);
Translates the matrix by x and y.
void gimp_matrix3_scale (GimpMatrix3 *matrix,gdouble x,gdouble y);
Scales the matrix by x and y
void gimp_matrix3_rotate (GimpMatrix3 *matrix,gdouble theta);
Rotates the matrix by theta degrees.
void gimp_matrix3_xshear (GimpMatrix3 *matrix,gdouble amount);
Shears the matrix in the X direction.
void gimp_matrix3_yshear (GimpMatrix3 *matrix,gdouble amount);
Shears the matrix in the Y direction.
void gimp_matrix3_affine (GimpMatrix3 *matrix,gdouble a,gdouble b,gdouble c,gdouble d,gdouble e,gdouble f);
Applies the affine transformation given by six values to matrix
.
The six values form define an affine transformation matrix as
illustrated below:
( a c e ) ( b d f ) ( 0 0 1 )
void gimp_matrix3_transform_point (const GimpMatrix3 *matrix,gdouble x,gdouble y,gdouble *newx,gdouble *newy);
Transforms a point in 2D as specified by the transformation matrix.
gdouble
gimp_matrix3_determinant (const GimpMatrix3 *matrix);
Calculates the determinant of the given matrix.
gboolean
gimp_matrix3_is_identity (const GimpMatrix3 *matrix);
Checks if the given matrix is the identity matrix.
gboolean
gimp_matrix3_is_diagonal (const GimpMatrix3 *matrix);
Checks if the given matrix is diagonal.
gboolean
gimp_matrix3_is_affine (const GimpMatrix3 *matrix);
Checks if the given matrix defines an affine transformation.
Since: GIMP 2.4
gboolean
gimp_matrix3_is_simple (const GimpMatrix3 *matrix);
Checks if we'll need to interpolate when applying this matrix as a transformation.
void gimp_matrix4_to_deg (const GimpMatrix4 *matrix,gdouble *a,gdouble *b,gdouble *c);
#define GIMP_IS_PARAM_SPEC_MATRIX2(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), GIMP_TYPE_PARAM_MATRIX2))
GParamSpec * gimp_param_spec_matrix2 (const gchar *name,const gchar *nick,const gchar *blurb,const GimpMatrix2 *default_value,GParamFlags flags);
Creates a param spec to hold a GimpMatrix2 value.
See g_param_spec_internal() for more information.
| name | Canonical name of the param | |
| nick | Nickname of the param | |
| blurb | Brief desciption of param. | |
| default_value | Value to use if none is assigned. | |
| flags | a combination of GParamFlags | 
Since: GIMP 2.4
#define GIMP_VALUE_HOLDS_MATRIX2(value) (G_TYPE_CHECK_VALUE_TYPE ((value), GIMP_TYPE_MATRIX2))
#define GIMP_IS_PARAM_SPEC_MATRIX3(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), GIMP_TYPE_PARAM_MATRIX3))
GParamSpec * gimp_param_spec_matrix3 (const gchar *name,const gchar *nick,const gchar *blurb,const GimpMatrix3 *default_value,GParamFlags flags);
Creates a param spec to hold a GimpMatrix3 value.
See g_param_spec_internal() for more information.
| name | Canonical name of the param | |
| nick | Nickname of the param | |
| blurb | Brief desciption of param. | |
| default_value | Value to use if none is assigned. | |
| flags | a combination of GParamFlags | 
Since: GIMP 2.8