547 lines
31 KiB
XML
547 lines
31 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
|
|
|
|
<refentry id="libgimpmath-GimpMatrix">
|
|
<refmeta>
|
|
<refentrytitle role="top_of_page" id="libgimpmath-GimpMatrix.top_of_page">GimpMatrix</refentrytitle>
|
|
<manvolnum>3</manvolnum>
|
|
<refmiscinfo>LIBGIMPMATH Library</refmiscinfo>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>GimpMatrix</refname>
|
|
<refpurpose>Utilities to set up and manipulate 3x3 transformation matrices.</refpurpose>
|
|
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv id="libgimpmath-GimpMatrix.synopsis" role="synopsis">
|
|
<title role="synopsis.title">Synopsis</title>
|
|
|
|
<synopsis>
|
|
<link linkend="GimpMatrix2">GimpMatrix2</link>;
|
|
<link linkend="GimpMatrix3">GimpMatrix3</link>;
|
|
<link linkend="GimpMatrix4">GimpMatrix4</link>;
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix2-identity">gimp_matrix2_identity</link> (<link linkend="GimpMatrix2">GimpMatrix2</link> *matrix);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix2-mult">gimp_matrix2_mult</link> (const <link linkend="GimpMatrix2">GimpMatrix2</link> *matrix1,
|
|
<link linkend="GimpMatrix2">GimpMatrix2</link> *matrix2);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix3-identity">gimp_matrix3_identity</link> (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix3-mult">gimp_matrix3_mult</link> (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix1,
|
|
<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix2);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix3-translate">gimp_matrix3_translate</link> (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> x,
|
|
<link linkend="gdouble">gdouble</link> y);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix3-scale">gimp_matrix3_scale</link> (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> x,
|
|
<link linkend="gdouble">gdouble</link> y);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix3-rotate">gimp_matrix3_rotate</link> (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> theta);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix3-xshear">gimp_matrix3_xshear</link> (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> amount);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix3-yshear">gimp_matrix3_yshear</link> (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> amount);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix3-affine">gimp_matrix3_affine</link> (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> a,
|
|
<link linkend="gdouble">gdouble</link> b,
|
|
<link linkend="gdouble">gdouble</link> c,
|
|
<link linkend="gdouble">gdouble</link> d,
|
|
<link linkend="gdouble">gdouble</link> e,
|
|
<link linkend="gdouble">gdouble</link> f);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix3-transform-point">gimp_matrix3_transform_point</link> (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> x,
|
|
<link linkend="gdouble">gdouble</link> y,
|
|
<link linkend="gdouble">gdouble</link> *newx,
|
|
<link linkend="gdouble">gdouble</link> *newy);
|
|
<link linkend="gdouble">gdouble</link> <link linkend="gimp-matrix3-determinant">gimp_matrix3_determinant</link> (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix3-invert">gimp_matrix3_invert</link> (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);
|
|
<link linkend="gboolean">gboolean</link> <link linkend="gimp-matrix3-is-identity">gimp_matrix3_is_identity</link> (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);
|
|
<link linkend="gboolean">gboolean</link> <link linkend="gimp-matrix3-is-diagonal">gimp_matrix3_is_diagonal</link> (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);
|
|
<link linkend="gboolean">gboolean</link> <link linkend="gimp-matrix3-is-affine">gimp_matrix3_is_affine</link> (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);
|
|
<link linkend="gboolean">gboolean</link> <link linkend="gimp-matrix3-is-simple">gimp_matrix3_is_simple</link> (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);
|
|
<link linkend="void">void</link> <link linkend="gimp-matrix4-to-deg">gimp_matrix4_to_deg</link> (const <link linkend="GimpMatrix4">GimpMatrix4</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> *a,
|
|
<link linkend="gdouble">gdouble</link> *b,
|
|
<link linkend="gdouble">gdouble</link> *c);
|
|
#define <link linkend="GIMP-TYPE-MATRIX2:CAPS">GIMP_TYPE_MATRIX2</link>
|
|
#define <link linkend="GIMP-TYPE-PARAM-MATRIX2:CAPS">GIMP_TYPE_PARAM_MATRIX2</link>
|
|
#define <link linkend="GIMP-IS-PARAM-SPEC-MATRIX2:CAPS">GIMP_IS_PARAM_SPEC_MATRIX2</link> (pspec)
|
|
<link linkend="GParamSpec">GParamSpec</link>* <link linkend="gimp-param-spec-matrix2">gimp_param_spec_matrix2</link> (const <link linkend="gchar">gchar</link> *name,
|
|
const <link linkend="gchar">gchar</link> *nick,
|
|
const <link linkend="gchar">gchar</link> *blurb,
|
|
const <link linkend="GimpMatrix2">GimpMatrix2</link> *default_value,
|
|
<link linkend="GParamFlags">GParamFlags</link> flags);
|
|
#define <link linkend="GIMP-VALUE-HOLDS-MATRIX2:CAPS">GIMP_VALUE_HOLDS_MATRIX2</link> (value)
|
|
</synopsis>
|
|
</refsynopsisdiv>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<refsect1 id="libgimpmath-GimpMatrix.description" role="desc">
|
|
<title role="desc.title">Description</title>
|
|
<para>
|
|
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.
|
|
</para>
|
|
<para>
|
|
Each matrix class has a 2 dimensional gdouble coeff member. The
|
|
element for row r and column c of the matrix is coeff[r][c].
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 id="libgimpmath-GimpMatrix.details" role="details">
|
|
<title role="details.title">Details</title>
|
|
<refsect2 id="GimpMatrix2" role="struct">
|
|
<title>GimpMatrix2</title>
|
|
<indexterm zone="GimpMatrix2"><primary>GimpMatrix2</primary></indexterm><programlisting>typedef struct {
|
|
gdouble coeff[2][2];
|
|
} GimpMatrix2;
|
|
</programlisting>
|
|
<para>
|
|
A two by two matrix.
|
|
</para></refsect2>
|
|
<refsect2 id="GimpMatrix3" role="struct">
|
|
<title>GimpMatrix3</title>
|
|
<indexterm zone="GimpMatrix3"><primary>GimpMatrix3</primary></indexterm><programlisting>typedef struct {
|
|
gdouble coeff[3][3];
|
|
} GimpMatrix3;
|
|
</programlisting>
|
|
<para>
|
|
A three by three matrix.
|
|
</para></refsect2>
|
|
<refsect2 id="GimpMatrix4" role="struct">
|
|
<title>GimpMatrix4</title>
|
|
<indexterm zone="GimpMatrix4"><primary>GimpMatrix4</primary></indexterm><programlisting>typedef struct {
|
|
gdouble coeff[4][4];
|
|
} GimpMatrix4;
|
|
</programlisting>
|
|
<para>
|
|
A four by four matrix.
|
|
</para></refsect2>
|
|
<refsect2 id="gimp-matrix2-identity" role="function">
|
|
<title>gimp_matrix2_identity ()</title>
|
|
<indexterm zone="gimp-matrix2-identity"><primary>gimp_matrix2_identity</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix2_identity (<link linkend="GimpMatrix2">GimpMatrix2</link> *matrix);</programlisting>
|
|
<para>
|
|
Sets the matrix to the identity matrix.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> A matrix.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix2-mult" role="function">
|
|
<title>gimp_matrix2_mult ()</title>
|
|
<indexterm zone="gimp-matrix2-mult"><primary>gimp_matrix2_mult</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix2_mult (const <link linkend="GimpMatrix2">GimpMatrix2</link> *matrix1,
|
|
<link linkend="GimpMatrix2">GimpMatrix2</link> *matrix2);</programlisting>
|
|
<para>
|
|
Multiplies two matrices and puts the result into the second one.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix1</parameter> :</term>
|
|
<listitem><simpara> The first input matrix.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>matrix2</parameter> :</term>
|
|
<listitem><simpara> The second input matrix which will be overwritten by the result.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-identity" role="function">
|
|
<title>gimp_matrix3_identity ()</title>
|
|
<indexterm zone="gimp-matrix3-identity"><primary>gimp_matrix3_identity</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix3_identity (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);</programlisting>
|
|
<para>
|
|
Sets the matrix to the identity matrix.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> A matrix.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-mult" role="function">
|
|
<title>gimp_matrix3_mult ()</title>
|
|
<indexterm zone="gimp-matrix3-mult"><primary>gimp_matrix3_mult</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix3_mult (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix1,
|
|
<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix2);</programlisting>
|
|
<para>
|
|
Multiplies two matrices and puts the result into the second one.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix1</parameter> :</term>
|
|
<listitem><simpara> The first input matrix.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>matrix2</parameter> :</term>
|
|
<listitem><simpara> The second input matrix which will be overwritten by the result.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-translate" role="function">
|
|
<title>gimp_matrix3_translate ()</title>
|
|
<indexterm zone="gimp-matrix3-translate"><primary>gimp_matrix3_translate</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix3_translate (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> x,
|
|
<link linkend="gdouble">gdouble</link> y);</programlisting>
|
|
<para>
|
|
Translates the matrix by x and y.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The matrix that is to be translated.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>x</parameter> :</term>
|
|
<listitem><simpara> Translation in X direction.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>y</parameter> :</term>
|
|
<listitem><simpara> Translation in Y direction.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-scale" role="function">
|
|
<title>gimp_matrix3_scale ()</title>
|
|
<indexterm zone="gimp-matrix3-scale"><primary>gimp_matrix3_scale</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix3_scale (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> x,
|
|
<link linkend="gdouble">gdouble</link> y);</programlisting>
|
|
<para>
|
|
Scales the matrix by x and y</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The matrix that is to be scaled.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>x</parameter> :</term>
|
|
<listitem><simpara> X scale factor.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>y</parameter> :</term>
|
|
<listitem><simpara> Y scale factor.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-rotate" role="function">
|
|
<title>gimp_matrix3_rotate ()</title>
|
|
<indexterm zone="gimp-matrix3-rotate"><primary>gimp_matrix3_rotate</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix3_rotate (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> theta);</programlisting>
|
|
<para>
|
|
Rotates the matrix by theta degrees.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The matrix that is to be rotated.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>theta</parameter> :</term>
|
|
<listitem><simpara> The angle of rotation (in radians).
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-xshear" role="function">
|
|
<title>gimp_matrix3_xshear ()</title>
|
|
<indexterm zone="gimp-matrix3-xshear"><primary>gimp_matrix3_xshear</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix3_xshear (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> amount);</programlisting>
|
|
<para>
|
|
Shears the matrix in the X direction.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The matrix that is to be sheared.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>amount</parameter> :</term>
|
|
<listitem><simpara> X shear amount.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-yshear" role="function">
|
|
<title>gimp_matrix3_yshear ()</title>
|
|
<indexterm zone="gimp-matrix3-yshear"><primary>gimp_matrix3_yshear</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix3_yshear (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> amount);</programlisting>
|
|
<para>
|
|
Shears the matrix in the Y direction.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The matrix that is to be sheared.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>amount</parameter> :</term>
|
|
<listitem><simpara> Y shear amount.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-affine" role="function">
|
|
<title>gimp_matrix3_affine ()</title>
|
|
<indexterm zone="gimp-matrix3-affine"><primary>gimp_matrix3_affine</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix3_affine (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> a,
|
|
<link linkend="gdouble">gdouble</link> b,
|
|
<link linkend="gdouble">gdouble</link> c,
|
|
<link linkend="gdouble">gdouble</link> d,
|
|
<link linkend="gdouble">gdouble</link> e,
|
|
<link linkend="gdouble">gdouble</link> f);</programlisting>
|
|
<para>
|
|
Applies the affine transformation given by six values to <parameter>matrix</parameter>.
|
|
The six values form define an affine transformation matrix as
|
|
illustrated below:
|
|
</para>
|
|
<para>
|
|
( a c e )
|
|
( b d f )
|
|
( 0 0 1 )</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The input matrix.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>a</parameter> :</term>
|
|
<listitem><simpara>
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>b</parameter> :</term>
|
|
<listitem><simpara>
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>c</parameter> :</term>
|
|
<listitem><simpara>
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>d</parameter> :</term>
|
|
<listitem><simpara>
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>e</parameter> :</term>
|
|
<listitem><simpara>
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>f</parameter> :</term>
|
|
<listitem><simpara>
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-transform-point" role="function">
|
|
<title>gimp_matrix3_transform_point ()</title>
|
|
<indexterm zone="gimp-matrix3-transform-point"><primary>gimp_matrix3_transform_point</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix3_transform_point (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> x,
|
|
<link linkend="gdouble">gdouble</link> y,
|
|
<link linkend="gdouble">gdouble</link> *newx,
|
|
<link linkend="gdouble">gdouble</link> *newy);</programlisting>
|
|
<para>
|
|
Transforms a point in 2D as specified by the transformation matrix.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The transformation matrix.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>x</parameter> :</term>
|
|
<listitem><simpara> The source X coordinate.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>y</parameter> :</term>
|
|
<listitem><simpara> The source Y coordinate.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>newx</parameter> :</term>
|
|
<listitem><simpara> The transformed X coordinate.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>newy</parameter> :</term>
|
|
<listitem><simpara> The transformed Y coordinate.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-determinant" role="function">
|
|
<title>gimp_matrix3_determinant ()</title>
|
|
<indexterm zone="gimp-matrix3-determinant"><primary>gimp_matrix3_determinant</primary></indexterm><programlisting><link linkend="gdouble">gdouble</link> gimp_matrix3_determinant (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);</programlisting>
|
|
<para>
|
|
Calculates the determinant of the given matrix.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The input matrix.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The determinant.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-invert" role="function">
|
|
<title>gimp_matrix3_invert ()</title>
|
|
<indexterm zone="gimp-matrix3-invert"><primary>gimp_matrix3_invert</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix3_invert (<link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);</programlisting>
|
|
<para>
|
|
Inverts the given matrix.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The matrix that is to be inverted.
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-is-identity" role="function">
|
|
<title>gimp_matrix3_is_identity ()</title>
|
|
<indexterm zone="gimp-matrix3-is-identity"><primary>gimp_matrix3_is_identity</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gimp_matrix3_is_identity (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);</programlisting>
|
|
<para>
|
|
Checks if the given matrix is the identity matrix.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The matrix that is to be tested.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the matrix is the identity matrix, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-is-diagonal" role="function">
|
|
<title>gimp_matrix3_is_diagonal ()</title>
|
|
<indexterm zone="gimp-matrix3-is-diagonal"><primary>gimp_matrix3_is_diagonal</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gimp_matrix3_is_diagonal (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);</programlisting>
|
|
<para>
|
|
Checks if the given matrix is diagonal.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The matrix that is to be tested.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the matrix is diagonal, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix3-is-affine" role="function" condition="since:GIMP 2.4">
|
|
<title>gimp_matrix3_is_affine ()</title>
|
|
<indexterm zone="gimp-matrix3-is-affine" role="GIMP 2.4"><primary>gimp_matrix3_is_affine</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gimp_matrix3_is_affine (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);</programlisting>
|
|
<para>
|
|
Checks if the given matrix defines an affine transformation.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The matrix that is to be tested.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the matrix defines an affine transformation,
|
|
<link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist><para role="since">Since GIMP 2.4
|
|
</para></refsect2>
|
|
<refsect2 id="gimp-matrix3-is-simple" role="function">
|
|
<title>gimp_matrix3_is_simple ()</title>
|
|
<indexterm zone="gimp-matrix3-is-simple"><primary>gimp_matrix3_is_simple</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gimp_matrix3_is_simple (const <link linkend="GimpMatrix3">GimpMatrix3</link> *matrix);</programlisting>
|
|
<para>
|
|
Checks if we'll need to interpolate when applying this matrix as
|
|
a transformation.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara> The matrix that is to be tested.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if all entries of the upper left 2x2 matrix are
|
|
either 0 or 1, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-matrix4-to-deg" role="function">
|
|
<title>gimp_matrix4_to_deg ()</title>
|
|
<indexterm zone="gimp-matrix4-to-deg"><primary>gimp_matrix4_to_deg</primary></indexterm><programlisting><link linkend="void">void</link> gimp_matrix4_to_deg (const <link linkend="GimpMatrix4">GimpMatrix4</link> *matrix,
|
|
<link linkend="gdouble">gdouble</link> *a,
|
|
<link linkend="gdouble">gdouble</link> *b,
|
|
<link linkend="gdouble">gdouble</link> *c);</programlisting>
|
|
<para>
|
|
</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>matrix</parameter> :</term>
|
|
<listitem><simpara>
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>a</parameter> :</term>
|
|
<listitem><simpara>
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>b</parameter> :</term>
|
|
<listitem><simpara>
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>c</parameter> :</term>
|
|
<listitem><simpara>
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="GIMP-TYPE-MATRIX2:CAPS" role="macro">
|
|
<title>GIMP_TYPE_MATRIX2</title>
|
|
<indexterm zone="GIMP-TYPE-MATRIX2:CAPS"><primary>GIMP_TYPE_MATRIX2</primary></indexterm><programlisting>#define GIMP_TYPE_MATRIX2 (gimp_matrix2_get_type ())
|
|
</programlisting>
|
|
<para>
|
|
|
|
</para></refsect2>
|
|
<refsect2 id="GIMP-TYPE-PARAM-MATRIX2:CAPS" role="macro">
|
|
<title>GIMP_TYPE_PARAM_MATRIX2</title>
|
|
<indexterm zone="GIMP-TYPE-PARAM-MATRIX2:CAPS"><primary>GIMP_TYPE_PARAM_MATRIX2</primary></indexterm><programlisting>#define GIMP_TYPE_PARAM_MATRIX2 (gimp_param_matrix2_get_type ())
|
|
</programlisting>
|
|
<para>
|
|
|
|
</para></refsect2>
|
|
<refsect2 id="GIMP-IS-PARAM-SPEC-MATRIX2:CAPS" role="macro">
|
|
<title>GIMP_IS_PARAM_SPEC_MATRIX2()</title>
|
|
<indexterm zone="GIMP-IS-PARAM-SPEC-MATRIX2:CAPS"><primary>GIMP_IS_PARAM_SPEC_MATRIX2</primary></indexterm><programlisting>#define GIMP_IS_PARAM_SPEC_MATRIX2(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), GIMP_TYPE_PARAM_MATRIX2))
|
|
</programlisting>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>pspec</parameter> :</term>
|
|
<listitem><simpara>
|
|
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-param-spec-matrix2" role="function" condition="since:GIMP 2.4">
|
|
<title>gimp_param_spec_matrix2 ()</title>
|
|
<indexterm zone="gimp-param-spec-matrix2" role="GIMP 2.4"><primary>gimp_param_spec_matrix2</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>* gimp_param_spec_matrix2 (const <link linkend="gchar">gchar</link> *name,
|
|
const <link linkend="gchar">gchar</link> *nick,
|
|
const <link linkend="gchar">gchar</link> *blurb,
|
|
const <link linkend="GimpMatrix2">GimpMatrix2</link> *default_value,
|
|
<link linkend="GParamFlags">GParamFlags</link> flags);</programlisting>
|
|
<para>
|
|
Creates a param spec to hold a <link linkend="GimpMatrix2"><type>GimpMatrix2</type></link> value.
|
|
See <link linkend="g-param-spec-internal"><function>g_param_spec_internal()</function></link> for more information.</para>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>name</parameter> :</term>
|
|
<listitem><simpara> Canonical name of the param
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>nick</parameter> :</term>
|
|
<listitem><simpara> Nickname of the param
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>blurb</parameter> :</term>
|
|
<listitem><simpara> Brief desciption of param.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>default_value</parameter> :</term>
|
|
<listitem><simpara> Value to use if none is assigned.
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><parameter>flags</parameter> :</term>
|
|
<listitem><simpara> a combination of <link linkend="GParamFlags"><type>GParamFlags</type></link>
|
|
</simpara></listitem></varlistentry>
|
|
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a newly allocated <link linkend="GParamSpec"><type>GParamSpec</type></link> instance
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist><para role="since">Since GIMP 2.4
|
|
</para></refsect2>
|
|
<refsect2 id="GIMP-VALUE-HOLDS-MATRIX2:CAPS" role="macro">
|
|
<title>GIMP_VALUE_HOLDS_MATRIX2()</title>
|
|
<indexterm zone="GIMP-VALUE-HOLDS-MATRIX2:CAPS"><primary>GIMP_VALUE_HOLDS_MATRIX2</primary></indexterm><programlisting>#define GIMP_VALUE_HOLDS_MATRIX2(value) (G_TYPE_CHECK_VALUE_TYPE ((value), GIMP_TYPE_MATRIX2))
|
|
</programlisting>
|
|
<para>
|
|
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>value</parameter> :</term>
|
|
<listitem><simpara>
|
|
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1 id="libgimpmath-GimpMatrix.see-also">
|
|
<title>See Also</title>
|
|
<para>
|
|
<link linkend="GimpVector2"><type>GimpVector2</type></link>
|
|
</para>
|
|
<para>
|
|
<link linkend="GimpVector3"><type>GimpVector3</type></link>
|
|
</para>
|
|
<para>
|
|
<link linkend="GimpVector4"><type>GimpVector4</type></link>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|