summaryrefslogtreecommitdiffstats
path: root/devel-docs/libgimpmath/html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:30:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:30:19 +0000
commit5c1676dfe6d2f3c837a5e074117b45613fd29a72 (patch)
treecbffb45144febf451e54061db2b21395faf94bfe /devel-docs/libgimpmath/html
parentInitial commit. (diff)
downloadgimp-5c1676dfe6d2f3c837a5e074117b45613fd29a72.tar.xz
gimp-5c1676dfe6d2f3c837a5e074117b45613fd29a72.zip
Adding upstream version 2.10.34.upstream/2.10.34upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devel-docs/libgimpmath/html')
-rw-r--r--devel-docs/libgimpmath/html/api-index-full.html438
-rw-r--r--devel-docs/libgimpmath/html/home.pngbin0 -> 256 bytes
-rw-r--r--devel-docs/libgimpmath/html/index.html47
-rw-r--r--devel-docs/libgimpmath/html/left-insensitive.pngbin0 -> 395 bytes
-rw-r--r--devel-docs/libgimpmath/html/left.pngbin0 -> 262 bytes
-rw-r--r--devel-docs/libgimpmath/html/libgimpmath-GimpMD5.html102
-rw-r--r--devel-docs/libgimpmath/html/libgimpmath-GimpMath.html340
-rw-r--r--devel-docs/libgimpmath/html/libgimpmath-GimpMatrix.html1373
-rw-r--r--devel-docs/libgimpmath/html/libgimpmath-GimpVector.html2219
-rw-r--r--devel-docs/libgimpmath/html/libgimpmath.devhelp2127
-rw-r--r--devel-docs/libgimpmath/html/pt01.html47
-rw-r--r--devel-docs/libgimpmath/html/right-insensitive.pngbin0 -> 373 bytes
-rw-r--r--devel-docs/libgimpmath/html/right.pngbin0 -> 261 bytes
-rw-r--r--devel-docs/libgimpmath/html/style.css530
-rw-r--r--devel-docs/libgimpmath/html/up-insensitive.pngbin0 -> 374 bytes
-rw-r--r--devel-docs/libgimpmath/html/up.pngbin0 -> 260 bytes
16 files changed, 5223 insertions, 0 deletions
diff --git a/devel-docs/libgimpmath/html/api-index-full.html b/devel-docs/libgimpmath/html/api-index-full.html
new file mode 100644
index 0000000..6c1298d
--- /dev/null
+++ b/devel-docs/libgimpmath/html/api-index-full.html
@@ -0,0 +1,438 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index: GIMP Math Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="GIMP Math Library Reference Manual">
+<link rel="up" href="index.html" title="GIMP Math Library Reference Manual">
+<link rel="prev" href="libgimpmath-GimpMD5.html" title="GimpMD5">
+<link rel="next" href="api-index-2-4.html" title="Index of new symbols in GIMP 2.4">
+<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxC">C</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxD">D</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxI">I</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxM">M</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxP">P</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxR">R</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxS">S</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxT">T</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxV">V</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="libgimpmath-GimpMD5.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-index-2-4.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-full"></a>Index</h1></div></div></div>
+<a name="idx"></a><a name="idxC"></a><h3 class="title">C</h3>
+<dt>
+<a class="link" href="libgimpmath-GimpMath.html#CLAMP0255:CAPS" title="CLAMP0255()">CLAMP0255</a>, macro in <a class="link" href="libgimpmath-GimpMath.html" title="GimpMath">GimpMath</a>
+</dt>
+<dd></dd>
+<a name="idxD"></a><h3 class="title">D</h3>
+<dt>
+<a class="link" href="libgimpmath-GimpMath.html#gimp-deg-to-rad" title="gimp_deg_to_rad()">gimp_deg_to_rad</a>, macro in <a class="link" href="libgimpmath-GimpMath.html" title="GimpMath">GimpMath</a>
+</dt>
+<dd></dd>
+<a name="idxI"></a><h3 class="title">I</h3>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-IS-PARAM-SPEC-MATRIX2:CAPS" title="GIMP_IS_PARAM_SPEC_MATRIX2()">GIMP_IS_PARAM_SPEC_MATRIX2</a>, macro in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-IS-PARAM-SPEC-MATRIX3:CAPS" title="GIMP_IS_PARAM_SPEC_MATRIX3()">GIMP_IS_PARAM_SPEC_MATRIX3</a>, macro in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<a name="idxM"></a><h3 class="title">M</h3>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2">GimpMatrix2</a>, struct in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix2-determinant" title="gimp_matrix2_determinant ()">gimp_matrix2_determinant</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix2-identity" title="gimp_matrix2_identity ()">gimp_matrix2_identity</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix2-invert" title="gimp_matrix2_invert ()">gimp_matrix2_invert</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix2-mult" title="gimp_matrix2_mult ()">gimp_matrix2_mult</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix2-transform-point" title="gimp_matrix2_transform_point ()">gimp_matrix2_transform_point</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3">GimpMatrix3</a>, struct in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-affine" title="gimp_matrix3_affine ()">gimp_matrix3_affine</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-determinant" title="gimp_matrix3_determinant ()">gimp_matrix3_determinant</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-equal" title="gimp_matrix3_equal ()">gimp_matrix3_equal</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-identity" title="gimp_matrix3_identity ()">gimp_matrix3_identity</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-invert" title="gimp_matrix3_invert ()">gimp_matrix3_invert</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-is-affine" title="gimp_matrix3_is_affine ()">gimp_matrix3_is_affine</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-is-diagonal" title="gimp_matrix3_is_diagonal ()">gimp_matrix3_is_diagonal</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-is-identity" title="gimp_matrix3_is_identity ()">gimp_matrix3_is_identity</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-is-simple" title="gimp_matrix3_is_simple ()">gimp_matrix3_is_simple</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-mult" title="gimp_matrix3_mult ()">gimp_matrix3_mult</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-rotate" title="gimp_matrix3_rotate ()">gimp_matrix3_rotate</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-scale" title="gimp_matrix3_scale ()">gimp_matrix3_scale</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-transform-point" title="gimp_matrix3_transform_point ()">gimp_matrix3_transform_point</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-translate" title="gimp_matrix3_translate ()">gimp_matrix3_translate</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-xshear" title="gimp_matrix3_xshear ()">gimp_matrix3_xshear</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-yshear" title="gimp_matrix3_yshear ()">gimp_matrix3_yshear</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix4" title="struct GimpMatrix4">GimpMatrix4</a>, struct in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix4-identity" title="gimp_matrix4_identity ()">gimp_matrix4_identity</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix4-mult" title="gimp_matrix4_mult ()">gimp_matrix4_mult</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix4-to-deg" title="gimp_matrix4_to_deg ()">gimp_matrix4_to_deg</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix4-transform-point" title="gimp_matrix4_transform_point ()">gimp_matrix4_transform_point</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMath.html#MAX255:CAPS" title="MAX255()">MAX255</a>, macro in <a class="link" href="libgimpmath-GimpMath.html" title="GimpMath">GimpMath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMD5.html#gimp-md5-get-digest" title="gimp_md5_get_digest ()">gimp_md5_get_digest</a>, function in <a class="link" href="libgimpmath-GimpMD5.html" title="GimpMD5">GimpMD5</a>
+</dt>
+<dd></dd>
+<a name="idxP"></a><h3 class="title">P</h3>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-param-spec-matrix2" title="gimp_param_spec_matrix2 ()">gimp_param_spec_matrix2</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-param-spec-matrix3" title="gimp_param_spec_matrix3 ()">gimp_param_spec_matrix3</a>, function in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<a name="idxR"></a><h3 class="title">R</h3>
+<dt>
+<a class="link" href="libgimpmath-GimpMath.html#gimp-rad-to-deg" title="gimp_rad_to_deg()">gimp_rad_to_deg</a>, macro in <a class="link" href="libgimpmath-GimpMath.html" title="GimpMath">GimpMath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMath.html#RINT:CAPS" title="RINT()">RINT</a>, macro in <a class="link" href="libgimpmath-GimpMath.html" title="GimpMath">GimpMath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMath.html#ROUND:CAPS" title="ROUND()">ROUND</a>, macro in <a class="link" href="libgimpmath-GimpMath.html" title="GimpMath">GimpMath</a>
+</dt>
+<dd></dd>
+<a name="idxS"></a><h3 class="title">S</h3>
+<dt>
+<a class="link" href="libgimpmath-GimpMath.html#SAFE-CLAMP:CAPS" title="SAFE_CLAMP()">SAFE_CLAMP</a>, macro in <a class="link" href="libgimpmath-GimpMath.html" title="GimpMath">GimpMath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMath.html#SIGNED-ROUND:CAPS" title="SIGNED_ROUND()">SIGNED_ROUND</a>, macro in <a class="link" href="libgimpmath-GimpMath.html" title="GimpMath">GimpMath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMath.html#SQR:CAPS" title="SQR()">SQR</a>, macro in <a class="link" href="libgimpmath-GimpMath.html" title="GimpMath">GimpMath</a>
+</dt>
+<dd></dd>
+<a name="idxT"></a><h3 class="title">T</h3>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-TYPE-MATRIX2:CAPS" title="GIMP_TYPE_MATRIX2">GIMP_TYPE_MATRIX2</a>, macro in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-TYPE-MATRIX3:CAPS" title="GIMP_TYPE_MATRIX3">GIMP_TYPE_MATRIX3</a>, macro in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-TYPE-PARAM-MATRIX2:CAPS" title="GIMP_TYPE_PARAM_MATRIX2">GIMP_TYPE_PARAM_MATRIX2</a>, macro in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-TYPE-PARAM-MATRIX3:CAPS" title="GIMP_TYPE_PARAM_MATRIX3">GIMP_TYPE_PARAM_MATRIX3</a>, macro in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<a name="idxV"></a><h3 class="title">V</h3>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-VALUE-HOLDS-MATRIX2:CAPS" title="GIMP_VALUE_HOLDS_MATRIX2()">GIMP_VALUE_HOLDS_MATRIX2</a>, macro in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-VALUE-HOLDS-MATRIX3:CAPS" title="GIMP_VALUE_HOLDS_MATRIX3()">GIMP_VALUE_HOLDS_MATRIX3</a>, macro in <a class="link" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">GimpMatrix</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2">GimpVector2</a>, struct in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-add" title="gimp_vector2_add ()">gimp_vector2_add</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-add-val" title="gimp_vector2_add_val ()">gimp_vector2_add_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-cross-product" title="gimp_vector2_cross_product ()">gimp_vector2_cross_product</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-cross-product-val" title="gimp_vector2_cross_product_val ()">gimp_vector2_cross_product_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-inner-product" title="gimp_vector2_inner_product ()">gimp_vector2_inner_product</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-inner-product-val" title="gimp_vector2_inner_product_val ()">gimp_vector2_inner_product_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-length" title="gimp_vector2_length ()">gimp_vector2_length</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-length-val" title="gimp_vector2_length_val ()">gimp_vector2_length_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-mul" title="gimp_vector2_mul ()">gimp_vector2_mul</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-mul-val" title="gimp_vector2_mul_val ()">gimp_vector2_mul_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-neg" title="gimp_vector2_neg ()">gimp_vector2_neg</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-neg-val" title="gimp_vector2_neg_val ()">gimp_vector2_neg_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-new" title="gimp_vector2_new ()">gimp_vector2_new</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-normal" title="gimp_vector2_normal ()">gimp_vector2_normal</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-normalize" title="gimp_vector2_normalize ()">gimp_vector2_normalize</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-normalize-val" title="gimp_vector2_normalize_val ()">gimp_vector2_normalize_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-normal-val" title="gimp_vector2_normal_val ()">gimp_vector2_normal_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-rotate" title="gimp_vector2_rotate ()">gimp_vector2_rotate</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-rotate-val" title="gimp_vector2_rotate_val ()">gimp_vector2_rotate_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-set" title="gimp_vector2_set ()">gimp_vector2_set</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-sub" title="gimp_vector2_sub ()">gimp_vector2_sub</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-sub-val" title="gimp_vector2_sub_val ()">gimp_vector2_sub_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3">GimpVector3</a>, struct in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-add" title="gimp_vector3_add ()">gimp_vector3_add</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-add-val" title="gimp_vector3_add_val ()">gimp_vector3_add_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-cross-product" title="gimp_vector3_cross_product ()">gimp_vector3_cross_product</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-cross-product-val" title="gimp_vector3_cross_product_val ()">gimp_vector3_cross_product_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-inner-product" title="gimp_vector3_inner_product ()">gimp_vector3_inner_product</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-inner-product-val" title="gimp_vector3_inner_product_val ()">gimp_vector3_inner_product_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-length" title="gimp_vector3_length ()">gimp_vector3_length</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-length-val" title="gimp_vector3_length_val ()">gimp_vector3_length_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-mul" title="gimp_vector3_mul ()">gimp_vector3_mul</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-mul-val" title="gimp_vector3_mul_val ()">gimp_vector3_mul_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-neg" title="gimp_vector3_neg ()">gimp_vector3_neg</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-neg-val" title="gimp_vector3_neg_val ()">gimp_vector3_neg_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-new" title="gimp_vector3_new ()">gimp_vector3_new</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-normalize" title="gimp_vector3_normalize ()">gimp_vector3_normalize</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-normalize-val" title="gimp_vector3_normalize_val ()">gimp_vector3_normalize_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-rotate" title="gimp_vector3_rotate ()">gimp_vector3_rotate</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-rotate-val" title="gimp_vector3_rotate_val ()">gimp_vector3_rotate_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-set" title="gimp_vector3_set ()">gimp_vector3_set</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-sub" title="gimp_vector3_sub ()">gimp_vector3_sub</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-sub-val" title="gimp_vector3_sub_val ()">gimp_vector3_sub_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector4" title="struct GimpVector4">GimpVector4</a>, struct in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector-2d-to-3d" title="gimp_vector_2d_to_3d ()">gimp_vector_2d_to_3d</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector-2d-to-3d-val" title="gimp_vector_2d_to_3d_val ()">gimp_vector_2d_to_3d_val</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector-3d-to-2d" title="gimp_vector_3d_to_2d ()">gimp_vector_3d_to_2d</a>, function in <a class="link" href="libgimpmath-GimpVector.html" title="GimpVector">GimpVector</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/devel-docs/libgimpmath/html/home.png b/devel-docs/libgimpmath/html/home.png
new file mode 100644
index 0000000..3966a91
--- /dev/null
+++ b/devel-docs/libgimpmath/html/home.png
Binary files differ
diff --git a/devel-docs/libgimpmath/html/index.html b/devel-docs/libgimpmath/html/index.html
new file mode 100644
index 0000000..f511333
--- /dev/null
+++ b/devel-docs/libgimpmath/html/index.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GIMP Math Library Reference Manual: GIMP Math Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="GIMP Math Library Reference Manual">
+<link rel="next" href="pt01.html" title="Part I. GIMP Math Library">
+<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div lang="en" class="book">
+<div class="titlepage">
+<div>
+<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GIMP Math Library Reference Manual</p></th></tr></table></div>
+<div><p class="releaseinfo">
+ for GIMP 2.10.34
+
+ </p></div>
+</div>
+<hr>
+</div>
+<div class="toc"><dl class="toc">
+<dt><span class="part"><a href="pt01.html">I. GIMP Math Library</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="libgimpmath-GimpMath.html">GimpMath</a></span><span class="refpurpose"> — Mathematical definitions and macros.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libgimpmath-GimpMatrix.html">GimpMatrix</a></span><span class="refpurpose"> — Utilities to set up and manipulate 3x3
+transformation matrices.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libgimpmath-GimpVector.html">GimpVector</a></span><span class="refpurpose"> — Utilities to set up and manipulate vectors.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libgimpmath-GimpMD5.html">GimpMD5</a></span><span class="refpurpose"> — The MD5 message-digest algorithm</span>
+</dt>
+</dl></dd>
+<dt><span class="index"><a href="api-index-full.html">Index</a></span></dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/devel-docs/libgimpmath/html/left-insensitive.png b/devel-docs/libgimpmath/html/left-insensitive.png
new file mode 100644
index 0000000..2cd8c16
--- /dev/null
+++ b/devel-docs/libgimpmath/html/left-insensitive.png
Binary files differ
diff --git a/devel-docs/libgimpmath/html/left.png b/devel-docs/libgimpmath/html/left.png
new file mode 100644
index 0000000..1ca1664
--- /dev/null
+++ b/devel-docs/libgimpmath/html/left.png
Binary files differ
diff --git a/devel-docs/libgimpmath/html/libgimpmath-GimpMD5.html b/devel-docs/libgimpmath/html/libgimpmath-GimpMD5.html
new file mode 100644
index 0000000..7465cd4
--- /dev/null
+++ b/devel-docs/libgimpmath/html/libgimpmath-GimpMD5.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GimpMD5: GIMP Math Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="GIMP Math Library Reference Manual">
+<link rel="up" href="pt01.html" title="Part I. GIMP Math Library">
+<link rel="prev" href="libgimpmath-GimpVector.html" title="GimpVector">
+<link rel="next" href="api-index-full.html" title="Index">
+<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#libgimpmath-GimpMD5.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="libgimpmath-GimpVector.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="libgimpmath-GimpMD5"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libgimpmath-GimpMD5.top_of_page"></a>GimpMD5</span></h2>
+<p>GimpMD5 — The MD5 message-digest algorithm</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMD5.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_proto_type">
+<col class="functions_proto_name">
+</colgroup>
+<tbody><tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMD5.html#gimp-md5-get-digest" title="gimp_md5_get_digest ()">gimp_md5_get_digest</a> <span class="c_punctuation">()</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMD5.description"></a><h2>Description</h2>
+<p>The MD5 message-digest algorithm</p>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMD5.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gimp-md5-get-digest"></a><h3>gimp_md5_get_digest ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_md5_get_digest (<em class="parameter"><code>const <span class="type">gchar</span> *buffer</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> buffer_size</code></em>,
+ <em class="parameter"><code><span class="type">guchar</span> digest[16]</code></em>);</pre>
+<div class="warning"><p><code class="literal">gimp_md5_get_digest</code> is deprecated and should not be used in newly-written code.</p></div>
+<p>This function is deprecated! Use <code class="literal">GChecksum</code> from GLib instead.</p>
+<p>Get the md5 hash of a buffer. The result is put in the 16 bytes
+buffer <em class="parameter"><code>digest</code></em>
+. For more information see RFC 1321.</p>
+<div class="refsect3">
+<a name="gimp-md5-get-digest.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>buffer</p></td>
+<td class="parameter_description"><p>byte buffer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buffer_size</p></td>
+<td class="parameter_description"><p>buffer size (in bytes) or -1 if <em class="parameter"><code>buffer</code></em>
+is nul-terminated.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>16 bytes buffer receiving the hash code.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/devel-docs/libgimpmath/html/libgimpmath-GimpMath.html b/devel-docs/libgimpmath/html/libgimpmath-GimpMath.html
new file mode 100644
index 0000000..399351b
--- /dev/null
+++ b/devel-docs/libgimpmath/html/libgimpmath-GimpMath.html
@@ -0,0 +1,340 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GimpMath: GIMP Math Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="GIMP Math Library Reference Manual">
+<link rel="up" href="pt01.html" title="Part I. GIMP Math Library">
+<link rel="prev" href="pt01.html" title="Part I. GIMP Math Library">
+<link rel="next" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">
+<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#libgimpmath-GimpMath.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="pt01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="libgimpmath-GimpMatrix.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="libgimpmath-GimpMath"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libgimpmath-GimpMath.top_of_page"></a>GimpMath</span></h2>
+<p>GimpMath — Mathematical definitions and macros.</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMath.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_proto_type">
+<col class="functions_proto_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMath.html#RINT:CAPS" title="RINT()">RINT</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMath.html#ROUND:CAPS" title="ROUND()">ROUND</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMath.html#SIGNED-ROUND:CAPS" title="SIGNED_ROUND()">SIGNED_ROUND</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMath.html#SQR:CAPS" title="SQR()">SQR</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMath.html#MAX255:CAPS" title="MAX255()">MAX255</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMath.html#CLAMP0255:CAPS" title="CLAMP0255()">CLAMP0255</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMath.html#SAFE-CLAMP:CAPS" title="SAFE_CLAMP()">SAFE_CLAMP</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMath.html#gimp-deg-to-rad" title="gimp_deg_to_rad()">gimp_deg_to_rad</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMath.html#gimp-rad-to-deg" title="gimp_rad_to_deg()">gimp_rad_to_deg</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMath.description"></a><h2>Description</h2>
+<p>Mathematical definitions and macros for use both by the GIMP
+application and plug-ins. These macros should be used rather than
+the ones from &lt;math.h&gt; for enhanced portability.</p>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMath.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="RINT:CAPS"></a><h3>RINT()</h3>
+<pre class="programlisting">#define RINT(x) rint(x)
+</pre>
+<p>This macro rounds its argument <em class="parameter"><code>x</code></em>
+ to an integer value in floating
+point format. Use <a class="link" href="libgimpmath-GimpMath.html#RINT:CAPS" title="RINT()"><code class="function">RINT()</code></a> instead of <code class="function">rint()</code>.</p>
+<div class="refsect3">
+<a name="RINT.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the value to be rounded</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ROUND:CAPS"></a><h3>ROUND()</h3>
+<pre class="programlisting">#define ROUND(x) ((int) ((x) + 0.5))
+</pre>
+<p>This macro rounds its positive argument <em class="parameter"><code>x</code></em>
+ to the nearest integer.</p>
+<div class="refsect3">
+<a name="ROUND.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the value to be rounded.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="SIGNED-ROUND:CAPS"></a><h3>SIGNED_ROUND()</h3>
+<pre class="programlisting">#define SIGNED_ROUND(x) ((int) RINT (x))
+</pre>
+<p>This macro rounds its argument <em class="parameter"><code>x</code></em>
+ to the nearest integer.</p>
+<div class="refsect3">
+<a name="SIGNED-ROUND.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the value to be rounded.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="SQR:CAPS"></a><h3>SQR()</h3>
+<pre class="programlisting">#define SQR(x) ((x) * (x))
+</pre>
+<p>This macro squares its argument <em class="parameter"><code>x</code></em>
+.</p>
+<div class="refsect3">
+<a name="SQR.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the value to be squared.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MAX255:CAPS"></a><h3>MAX255()</h3>
+<pre class="programlisting">#define MAX255(a) ((a) | (((a) &amp; 256) - (((a) &amp; 256) &gt;&gt; 8)))
+</pre>
+<p>This macro limits it argument <em class="parameter"><code>a</code></em>
+, an (0-511) int, to 255.</p>
+<div class="refsect3">
+<a name="MAX255.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p>the value to be limited.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CLAMP0255:CAPS"></a><h3>CLAMP0255()</h3>
+<pre class="programlisting">#define CLAMP0255(a) CLAMP(a,0,255)
+</pre>
+<p>This macro clamps its argument <em class="parameter"><code>a</code></em>
+, an int32-range int, between 0
+and 255 inclusive.</p>
+<div class="refsect3">
+<a name="CLAMP0255.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p>the value to be clamped.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="SAFE-CLAMP:CAPS"></a><h3>SAFE_CLAMP()</h3>
+<pre class="programlisting">#define SAFE_CLAMP(x, low, high) ((x) &gt; (low) ? (x) &lt; (high) ? (x) : (high) : (low))
+</pre>
+<p>Ensures that <em class="parameter"><code>x</code></em>
+ is between the limits set by <em class="parameter"><code>low</code></em>
+ and <em class="parameter"><code>high</code></em>
+,
+even if <em class="parameter"><code>x</code></em>
+ is NaN. If <em class="parameter"><code>low</code></em>
+ is greater than <em class="parameter"><code>high</code></em>
+, or if either
+of them is NaN, the result is undefined.</p>
+<div class="refsect3">
+<a name="SAFE-CLAMP.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the value to be limited.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>low</p></td>
+<td class="parameter_description"><p>the lower limit.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>high</p></td>
+<td class="parameter_description"><p>the upper limit.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="api-index-2-10.html#api-index-2.10">2.10</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-deg-to-rad"></a><h3>gimp_deg_to_rad()</h3>
+<pre class="programlisting">#define gimp_deg_to_rad(angle) ((angle) * (2.0 * G_PI) / 360.0)
+</pre>
+<p>This macro converts its argument <em class="parameter"><code>angle</code></em>
+ from degree to radian.</p>
+<div class="refsect3">
+<a name="gimp-deg-to-rad.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>angle</p></td>
+<td class="parameter_description"><p>the angle to be converted.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-rad-to-deg"></a><h3>gimp_rad_to_deg()</h3>
+<pre class="programlisting">#define gimp_rad_to_deg(angle) ((angle) * 360.0 / (2.0 * G_PI))
+</pre>
+<p>This macro converts its argument <em class="parameter"><code>angle</code></em>
+ from radian to degree.</p>
+<div class="refsect3">
+<a name="gimp-rad-to-deg.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>angle</p></td>
+<td class="parameter_description"><p>the angle to be converted.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/devel-docs/libgimpmath/html/libgimpmath-GimpMatrix.html b/devel-docs/libgimpmath/html/libgimpmath-GimpMatrix.html
new file mode 100644
index 0000000..e9a56b8
--- /dev/null
+++ b/devel-docs/libgimpmath/html/libgimpmath-GimpMatrix.html
@@ -0,0 +1,1373 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GimpMatrix: GIMP Math Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="GIMP Math Library Reference Manual">
+<link rel="up" href="pt01.html" title="Part I. GIMP Math Library">
+<link rel="prev" href="libgimpmath-GimpMath.html" title="GimpMath">
+<link rel="next" href="libgimpmath-GimpVector.html" title="GimpVector">
+<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#libgimpmath-GimpMatrix.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="libgimpmath-GimpMath.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="libgimpmath-GimpVector.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="libgimpmath-GimpMatrix"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libgimpmath-GimpMatrix.top_of_page"></a>GimpMatrix</span></h2>
+<p>GimpMatrix — Utilities to set up and manipulate 3x3
+transformation matrices.</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMatrix.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_proto_type">
+<col class="functions_proto_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix2-identity" title="gimp_matrix2_identity ()">gimp_matrix2_identity</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix2-mult" title="gimp_matrix2_mult ()">gimp_matrix2_mult</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix2-determinant" title="gimp_matrix2_determinant ()">gimp_matrix2_determinant</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix2-invert" title="gimp_matrix2_invert ()">gimp_matrix2_invert</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix2-transform-point" title="gimp_matrix2_transform_point ()">gimp_matrix2_transform_point</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-identity" title="gimp_matrix3_identity ()">gimp_matrix3_identity</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-mult" title="gimp_matrix3_mult ()">gimp_matrix3_mult</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-translate" title="gimp_matrix3_translate ()">gimp_matrix3_translate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-scale" title="gimp_matrix3_scale ()">gimp_matrix3_scale</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-rotate" title="gimp_matrix3_rotate ()">gimp_matrix3_rotate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-xshear" title="gimp_matrix3_xshear ()">gimp_matrix3_xshear</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-yshear" title="gimp_matrix3_yshear ()">gimp_matrix3_yshear</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-affine" title="gimp_matrix3_affine ()">gimp_matrix3_affine</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-transform-point" title="gimp_matrix3_transform_point ()">gimp_matrix3_transform_point</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-determinant" title="gimp_matrix3_determinant ()">gimp_matrix3_determinant</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-invert" title="gimp_matrix3_invert ()">gimp_matrix3_invert</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-is-identity" title="gimp_matrix3_is_identity ()">gimp_matrix3_is_identity</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-is-diagonal" title="gimp_matrix3_is_diagonal ()">gimp_matrix3_is_diagonal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-is-affine" title="gimp_matrix3_is_affine ()">gimp_matrix3_is_affine</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-is-simple" title="gimp_matrix3_is_simple ()">gimp_matrix3_is_simple</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix3-equal" title="gimp_matrix3_equal ()">gimp_matrix3_equal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix4-identity" title="gimp_matrix4_identity ()">gimp_matrix4_identity</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix4-mult" title="gimp_matrix4_mult ()">gimp_matrix4_mult</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix4-to-deg" title="gimp_matrix4_to_deg ()">gimp_matrix4_to_deg</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-matrix4-transform-point" title="gimp_matrix4_transform_point ()">gimp_matrix4_transform_point</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-IS-PARAM-SPEC-MATRIX2:CAPS" title="GIMP_IS_PARAM_SPEC_MATRIX2()">GIMP_IS_PARAM_SPEC_MATRIX2</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GParamSpec</span> *
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-param-spec-matrix2" title="gimp_param_spec_matrix2 ()">gimp_param_spec_matrix2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-VALUE-HOLDS-MATRIX2:CAPS" title="GIMP_VALUE_HOLDS_MATRIX2()">GIMP_VALUE_HOLDS_MATRIX2</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-IS-PARAM-SPEC-MATRIX3:CAPS" title="GIMP_IS_PARAM_SPEC_MATRIX3()">GIMP_IS_PARAM_SPEC_MATRIX3</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GParamSpec</span> *
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#gimp-param-spec-matrix3" title="gimp_param_spec_matrix3 ()">gimp_param_spec_matrix3</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpMatrix.html#GIMP-VALUE-HOLDS-MATRIX3:CAPS" title="GIMP_VALUE_HOLDS_MATRIX3()">GIMP_VALUE_HOLDS_MATRIX3</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMatrix.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="other_proto_type">
+<col class="other_proto_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2">GimpMatrix2</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3">GimpMatrix3</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix4" title="struct GimpMatrix4">GimpMatrix4</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="libgimpmath-GimpMatrix.html#GIMP-TYPE-MATRIX2:CAPS" title="GIMP_TYPE_MATRIX2">GIMP_TYPE_MATRIX2</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="libgimpmath-GimpMatrix.html#GIMP-TYPE-PARAM-MATRIX2:CAPS" title="GIMP_TYPE_PARAM_MATRIX2">GIMP_TYPE_PARAM_MATRIX2</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="libgimpmath-GimpMatrix.html#GIMP-TYPE-MATRIX3:CAPS" title="GIMP_TYPE_MATRIX3">GIMP_TYPE_MATRIX3</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="libgimpmath-GimpMatrix.html#GIMP-TYPE-PARAM-MATRIX3:CAPS" title="GIMP_TYPE_PARAM_MATRIX3">GIMP_TYPE_PARAM_MATRIX3</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMatrix.description"></a><h2>Description</h2>
+<p>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.</p>
+<p>Each matrix class has a 2 dimensional gdouble coeff member. The
+element for row r and column c of the matrix is coeffr.</p>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMatrix.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gimp-matrix2-identity"></a><h3>gimp_matrix2_identity ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix2_identity (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2"><span class="type">GimpMatrix2</span></a> *matrix</code></em>);</pre>
+<p>Sets the matrix to the identity matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix2-identity.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>A matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix2-mult"></a><h3>gimp_matrix2_mult ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix2_mult (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2"><span class="type">GimpMatrix2</span></a> *matrix1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2"><span class="type">GimpMatrix2</span></a> *matrix2</code></em>);</pre>
+<p>Multiplies two matrices and puts the result into the second one.</p>
+<div class="refsect3">
+<a name="gimp-matrix2-mult.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix1</p></td>
+<td class="parameter_description"><p>The first input matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix2</p></td>
+<td class="parameter_description"><p>The second input matrix which will be overwritten by the result.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix2-determinant"></a><h3>gimp_matrix2_determinant ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_matrix2_determinant (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2"><span class="type">GimpMatrix2</span></a> *matrix</code></em>);</pre>
+<p>Calculates the determinant of the given matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix2-determinant.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The input matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-matrix2-determinant.returns"></a><h4>Returns</h4>
+<p> The determinant.</p>
+</div>
+<p class="since">Since: 2.10.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix2-invert"></a><h3>gimp_matrix2_invert ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix2_invert (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2"><span class="type">GimpMatrix2</span></a> *matrix</code></em>);</pre>
+<p>Inverts the given matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix2-invert.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be inverted.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.10.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix2-transform-point"></a><h3>gimp_matrix2_transform_point ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix2_transform_point (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2"><span class="type">GimpMatrix2</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> y</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *newx</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *newy</code></em>);</pre>
+<p>Transforms a point in 2D as specified by the transformation matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix2-transform-point.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The transformation matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>The source X coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>The source Y coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>newx</p></td>
+<td class="parameter_description"><p>The transformed X coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>newy</p></td>
+<td class="parameter_description"><p>The transformed Y coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.10.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-identity"></a><h3>gimp_matrix3_identity ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix3_identity (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>);</pre>
+<p>Sets the matrix to the identity matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-identity.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>A matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-mult"></a><h3>gimp_matrix3_mult ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix3_mult (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix2</code></em>);</pre>
+<p>Multiplies two matrices and puts the result into the second one.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-mult.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix1</p></td>
+<td class="parameter_description"><p>The first input matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix2</p></td>
+<td class="parameter_description"><p>The second input matrix which will be overwritten by the result.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-translate"></a><h3>gimp_matrix3_translate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix3_translate (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> y</code></em>);</pre>
+<p>Translates the matrix by x and y.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-translate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be translated.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>Translation in X direction.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>Translation in Y direction.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-scale"></a><h3>gimp_matrix3_scale ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix3_scale (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> y</code></em>);</pre>
+<p>Scales the matrix by x and y</p>
+<div class="refsect3">
+<a name="gimp-matrix3-scale.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be scaled.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>X scale factor.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>Y scale factor.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-rotate"></a><h3>gimp_matrix3_rotate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix3_rotate (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> theta</code></em>);</pre>
+<p>Rotates the matrix by theta degrees.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-rotate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be rotated.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>theta</p></td>
+<td class="parameter_description"><p>The angle of rotation (in radians).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-xshear"></a><h3>gimp_matrix3_xshear ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix3_xshear (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> amount</code></em>);</pre>
+<p>Shears the matrix in the X direction.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-xshear.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be sheared.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>amount</p></td>
+<td class="parameter_description"><p>X shear amount.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-yshear"></a><h3>gimp_matrix3_yshear ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix3_yshear (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> amount</code></em>);</pre>
+<p>Shears the matrix in the Y direction.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-yshear.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be sheared.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>amount</p></td>
+<td class="parameter_description"><p>Y shear amount.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-affine"></a><h3>gimp_matrix3_affine ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix3_affine (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> a</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> b</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> c</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> d</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> e</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> f</code></em>);</pre>
+<p>Applies the affine transformation given by six values to <em class="parameter"><code>matrix</code></em>
+.
+The six values form define an affine transformation matrix as
+illustrated below:</p>
+<p> ( a c e )
+ ( b d f )
+ ( 0 0 1 )</p>
+<div class="refsect3">
+<a name="gimp-matrix3-affine.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The input matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p>the 'a' coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>b</p></td>
+<td class="parameter_description"><p>the 'b' coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>c</p></td>
+<td class="parameter_description"><p>the 'c' coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>the 'd' coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>the 'e' coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>f</p></td>
+<td class="parameter_description"><p>the 'f' coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-transform-point"></a><h3>gimp_matrix3_transform_point ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix3_transform_point (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> y</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *newx</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *newy</code></em>);</pre>
+<p>Transforms a point in 2D as specified by the transformation matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-transform-point.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The transformation matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>The source X coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>The source Y coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>newx</p></td>
+<td class="parameter_description"><p>The transformed X coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>newy</p></td>
+<td class="parameter_description"><p>The transformed Y coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-determinant"></a><h3>gimp_matrix3_determinant ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_matrix3_determinant (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>);</pre>
+<p>Calculates the determinant of the given matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-determinant.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The input matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-matrix3-determinant.returns"></a><h4>Returns</h4>
+<p> The determinant.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-invert"></a><h3>gimp_matrix3_invert ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix3_invert (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>);</pre>
+<p>Inverts the given matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-invert.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be inverted.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-is-identity"></a><h3>gimp_matrix3_is_identity ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+gimp_matrix3_is_identity (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>);</pre>
+<p>Checks if the given matrix is the identity matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-is-identity.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be tested.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-matrix3-is-identity.returns"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the matrix is the identity matrix, <code class="literal">FALSE</code> otherwise</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-is-diagonal"></a><h3>gimp_matrix3_is_diagonal ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+gimp_matrix3_is_diagonal (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>);</pre>
+<p>Checks if the given matrix is diagonal.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-is-diagonal.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be tested.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-matrix3-is-diagonal.returns"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the matrix is diagonal, <code class="literal">FALSE</code> otherwise</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-is-affine"></a><h3>gimp_matrix3_is_affine ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+gimp_matrix3_is_affine (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>);</pre>
+<p>Checks if the given matrix defines an affine transformation.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-is-affine.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be tested.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-matrix3-is-affine.returns"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the matrix defines an affine transformation,
+<code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-2-4.html#api-index-2.4">2.4</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-is-simple"></a><h3>gimp_matrix3_is_simple ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+gimp_matrix3_is_simple (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix</code></em>);</pre>
+<p>Checks if we'll need to interpolate when applying this matrix as
+a transformation.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-is-simple.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The matrix that is to be tested.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-matrix3-is-simple.returns"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if all entries of the upper left 2x2 matrix are
+either 0 or 1, <code class="literal">FALSE</code> otherwise</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix3-equal"></a><h3>gimp_matrix3_equal ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+gimp_matrix3_equal (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *matrix2</code></em>);</pre>
+<p>Checks if two matrices are equal.</p>
+<div class="refsect3">
+<a name="gimp-matrix3-equal.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix1</p></td>
+<td class="parameter_description"><p>The first matrix</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix2</p></td>
+<td class="parameter_description"><p>The second matrix</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-matrix3-equal.returns"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> the matrices are equal, <code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: 2.10.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix4-identity"></a><h3>gimp_matrix4_identity ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix4_identity (<em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix4" title="struct GimpMatrix4"><span class="type">GimpMatrix4</span></a> *matrix</code></em>);</pre>
+<p>Sets the matrix to the identity matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix4-identity.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>A matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.10.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix4-mult"></a><h3>gimp_matrix4_mult ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix4_mult (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix4" title="struct GimpMatrix4"><span class="type">GimpMatrix4</span></a> *matrix1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix4" title="struct GimpMatrix4"><span class="type">GimpMatrix4</span></a> *matrix2</code></em>);</pre>
+<p>Multiplies two matrices and puts the result into the second one.</p>
+<div class="refsect3">
+<a name="gimp-matrix4-mult.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix1</p></td>
+<td class="parameter_description"><p>The first input matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix2</p></td>
+<td class="parameter_description"><p>The second input matrix which will be overwritten by the result.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.10.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix4-to-deg"></a><h3>gimp_matrix4_to_deg ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_matrix4_to_deg (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix4" title="struct GimpMatrix4"><span class="type">GimpMatrix4</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *a</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *b</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *c</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-matrix4-transform-point"></a><h3>gimp_matrix4_transform_point ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_matrix4_transform_point (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix4" title="struct GimpMatrix4"><span class="type">GimpMatrix4</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> y</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> z</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *newx</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *newy</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *newz</code></em>);</pre>
+<p>Transforms a point in 3D as specified by the transformation matrix.</p>
+<div class="refsect3">
+<a name="gimp-matrix4-transform-point.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>The transformation matrix.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>The source X coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>The source Y coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>z</p></td>
+<td class="parameter_description"><p>The source Z coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>newx</p></td>
+<td class="parameter_description"><p>The transformed X coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>newy</p></td>
+<td class="parameter_description"><p>The transformed Y coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>newz</p></td>
+<td class="parameter_description"><p>The transformed Z coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-matrix4-transform-point.returns"></a><h4>Returns</h4>
+<p> The transformed W coordinate.</p>
+</div>
+<p class="since">Since: 2.10.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GIMP-IS-PARAM-SPEC-MATRIX2:CAPS"></a><h3>GIMP_IS_PARAM_SPEC_MATRIX2()</h3>
+<pre class="programlisting">#define GIMP_IS_PARAM_SPEC_MATRIX2(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), GIMP_TYPE_PARAM_MATRIX2))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-param-spec-matrix2"></a><h3>gimp_param_spec_matrix2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *
+gimp_param_spec_matrix2 (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+ <em class="parameter"><code>const <span class="type">gchar</span> *nick</code></em>,
+ <em class="parameter"><code>const <span class="type">gchar</span> *blurb</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2"><span class="type">GimpMatrix2</span></a> *default_value</code></em>,
+ <em class="parameter"><code><span class="type">GParamFlags</span> flags</code></em>);</pre>
+<p>Creates a param spec to hold a <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2"><span class="type">GimpMatrix2</span></a> value.
+See <code class="function">g_param_spec_internal()</code> for more information.</p>
+<div class="refsect3">
+<a name="gimp-param-spec-matrix2.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>Canonical name of the param</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nick</p></td>
+<td class="parameter_description"><p>Nickname of the param</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blurb</p></td>
+<td class="parameter_description"><p>Brief description of param.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>default_value</p></td>
+<td class="parameter_description"><p>Value to use if none is assigned.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>a combination of <span class="type">GParamFlags</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-param-spec-matrix2.returns"></a><h4>Returns</h4>
+<p> a newly allocated <span class="type">GParamSpec</span> instance</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-2-4.html#api-index-2.4">2.4</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GIMP-VALUE-HOLDS-MATRIX2:CAPS"></a><h3>GIMP_VALUE_HOLDS_MATRIX2()</h3>
+<pre class="programlisting">#define GIMP_VALUE_HOLDS_MATRIX2(value) (G_TYPE_CHECK_VALUE_TYPE ((value), GIMP_TYPE_MATRIX2))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GIMP-IS-PARAM-SPEC-MATRIX3:CAPS"></a><h3>GIMP_IS_PARAM_SPEC_MATRIX3()</h3>
+<pre class="programlisting">#define GIMP_IS_PARAM_SPEC_MATRIX3(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), GIMP_TYPE_PARAM_MATRIX3))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-param-spec-matrix3"></a><h3>gimp_param_spec_matrix3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *
+gimp_param_spec_matrix3 (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+ <em class="parameter"><code>const <span class="type">gchar</span> *nick</code></em>,
+ <em class="parameter"><code>const <span class="type">gchar</span> *blurb</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> *default_value</code></em>,
+ <em class="parameter"><code><span class="type">GParamFlags</span> flags</code></em>);</pre>
+<p>Creates a param spec to hold a <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a> value.
+See <code class="function">g_param_spec_internal()</code> for more information.</p>
+<div class="refsect3">
+<a name="gimp-param-spec-matrix3.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>Canonical name of the param</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nick</p></td>
+<td class="parameter_description"><p>Nickname of the param</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blurb</p></td>
+<td class="parameter_description"><p>Brief description of param.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>default_value</p></td>
+<td class="parameter_description"><p>Value to use if none is assigned.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>a combination of <span class="type">GParamFlags</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-param-spec-matrix3.returns"></a><h4>Returns</h4>
+<p> a newly allocated <span class="type">GParamSpec</span> instance</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-2-8.html#api-index-2.8">2.8</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GIMP-VALUE-HOLDS-MATRIX3:CAPS"></a><h3>GIMP_VALUE_HOLDS_MATRIX3()</h3>
+<pre class="programlisting">#define GIMP_VALUE_HOLDS_MATRIX3(value) (G_TYPE_CHECK_VALUE_TYPE ((value), GIMP_TYPE_MATRIX3))
+</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMatrix.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GimpMatrix2"></a><h3>struct GimpMatrix2</h3>
+<pre class="programlisting">struct GimpMatrix2 {
+ gdouble coeff[2][2];
+};
+</pre>
+<p>A two by two matrix.</p>
+<div class="refsect3">
+<a name="GimpMatrix2.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpMatrix2.coeff"></a>coeff</code></em>[2][2];</p></td>
+<td class="struct_member_description"><p>the coefficients</p></td>
+<td class="struct_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GimpMatrix3"></a><h3>struct GimpMatrix3</h3>
+<pre class="programlisting">struct GimpMatrix3 {
+ gdouble coeff[3][3];
+};
+</pre>
+<p>A three by three matrix.</p>
+<div class="refsect3">
+<a name="GimpMatrix3.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpMatrix3.coeff"></a>coeff</code></em>[3][3];</p></td>
+<td class="struct_member_description"><p>the coefficients</p></td>
+<td class="struct_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GimpMatrix4"></a><h3>struct GimpMatrix4</h3>
+<pre class="programlisting">struct GimpMatrix4 {
+ gdouble coeff[4][4];
+};
+</pre>
+<p>A four by four matrix.</p>
+<div class="refsect3">
+<a name="GimpMatrix4.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpMatrix4.coeff"></a>coeff</code></em>[4][4];</p></td>
+<td class="struct_member_description"><p>the coefficients</p></td>
+<td class="struct_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GIMP-TYPE-MATRIX2:CAPS"></a><h3>GIMP_TYPE_MATRIX2</h3>
+<pre class="programlisting">#define GIMP_TYPE_MATRIX2 (gimp_matrix2_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GIMP-TYPE-PARAM-MATRIX2:CAPS"></a><h3>GIMP_TYPE_PARAM_MATRIX2</h3>
+<pre class="programlisting">#define GIMP_TYPE_PARAM_MATRIX2 (gimp_param_matrix2_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GIMP-TYPE-MATRIX3:CAPS"></a><h3>GIMP_TYPE_MATRIX3</h3>
+<pre class="programlisting">#define GIMP_TYPE_MATRIX3 (gimp_matrix3_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GIMP-TYPE-PARAM-MATRIX3:CAPS"></a><h3>GIMP_TYPE_PARAM_MATRIX3</h3>
+<pre class="programlisting">#define GIMP_TYPE_PARAM_MATRIX3 (gimp_param_matrix3_get_type ())
+</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpMatrix.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>, <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>, <a class="link" href="libgimpmath-GimpVector.html#GimpVector4" title="struct GimpVector4"><span class="type">GimpVector4</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/devel-docs/libgimpmath/html/libgimpmath-GimpVector.html b/devel-docs/libgimpmath/html/libgimpmath-GimpVector.html
new file mode 100644
index 0000000..7011481
--- /dev/null
+++ b/devel-docs/libgimpmath/html/libgimpmath-GimpVector.html
@@ -0,0 +1,2219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GimpVector: GIMP Math Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="GIMP Math Library Reference Manual">
+<link rel="up" href="pt01.html" title="Part I. GIMP Math Library">
+<link rel="prev" href="libgimpmath-GimpMatrix.html" title="GimpMatrix">
+<link rel="next" href="libgimpmath-GimpMD5.html" title="GimpMD5">
+<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#libgimpmath-GimpVector.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="libgimpmath-GimpMatrix.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="libgimpmath-GimpMD5.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="libgimpmath-GimpVector"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libgimpmath-GimpVector.top_of_page"></a>GimpVector</span></h2>
+<p>GimpVector — Utilities to set up and manipulate vectors.</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libgimpmath-GimpVector.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_proto_type">
+<col class="functions_proto_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-new" title="gimp_vector2_new ()">gimp_vector2_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-set" title="gimp_vector2_set ()">gimp_vector2_set</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-length" title="gimp_vector2_length ()">gimp_vector2_length</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-length-val" title="gimp_vector2_length_val ()">gimp_vector2_length_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-mul" title="gimp_vector2_mul ()">gimp_vector2_mul</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-mul-val" title="gimp_vector2_mul_val ()">gimp_vector2_mul_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-normal" title="gimp_vector2_normal ()">gimp_vector2_normal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-normal-val" title="gimp_vector2_normal_val ()">gimp_vector2_normal_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-normalize" title="gimp_vector2_normalize ()">gimp_vector2_normalize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-normalize-val" title="gimp_vector2_normalize_val ()">gimp_vector2_normalize_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-neg" title="gimp_vector2_neg ()">gimp_vector2_neg</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-neg-val" title="gimp_vector2_neg_val ()">gimp_vector2_neg_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-add" title="gimp_vector2_add ()">gimp_vector2_add</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-add-val" title="gimp_vector2_add_val ()">gimp_vector2_add_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-sub" title="gimp_vector2_sub ()">gimp_vector2_sub</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-sub-val" title="gimp_vector2_sub_val ()">gimp_vector2_sub_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-inner-product" title="gimp_vector2_inner_product ()">gimp_vector2_inner_product</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-inner-product-val" title="gimp_vector2_inner_product_val ()">gimp_vector2_inner_product_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-cross-product" title="gimp_vector2_cross_product ()">gimp_vector2_cross_product</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-cross-product-val" title="gimp_vector2_cross_product_val ()">gimp_vector2_cross_product_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-rotate" title="gimp_vector2_rotate ()">gimp_vector2_rotate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-rotate-val" title="gimp_vector2_rotate_val ()">gimp_vector2_rotate_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-new" title="gimp_vector3_new ()">gimp_vector3_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-set" title="gimp_vector3_set ()">gimp_vector3_set</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-length" title="gimp_vector3_length ()">gimp_vector3_length</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-length-val" title="gimp_vector3_length_val ()">gimp_vector3_length_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-mul" title="gimp_vector3_mul ()">gimp_vector3_mul</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-mul-val" title="gimp_vector3_mul_val ()">gimp_vector3_mul_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-normalize" title="gimp_vector3_normalize ()">gimp_vector3_normalize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-normalize-val" title="gimp_vector3_normalize_val ()">gimp_vector3_normalize_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-neg" title="gimp_vector3_neg ()">gimp_vector3_neg</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-neg-val" title="gimp_vector3_neg_val ()">gimp_vector3_neg_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-add" title="gimp_vector3_add ()">gimp_vector3_add</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-add-val" title="gimp_vector3_add_val ()">gimp_vector3_add_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-sub" title="gimp_vector3_sub ()">gimp_vector3_sub</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-sub-val" title="gimp_vector3_sub_val ()">gimp_vector3_sub_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-inner-product" title="gimp_vector3_inner_product ()">gimp_vector3_inner_product</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-inner-product-val" title="gimp_vector3_inner_product_val ()">gimp_vector3_inner_product_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-cross-product" title="gimp_vector3_cross_product ()">gimp_vector3_cross_product</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-cross-product-val" title="gimp_vector3_cross_product_val ()">gimp_vector3_cross_product_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-rotate" title="gimp_vector3_rotate ()">gimp_vector3_rotate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-rotate-val" title="gimp_vector3_rotate_val ()">gimp_vector3_rotate_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector-2d-to-3d" title="gimp_vector_2d_to_3d ()">gimp_vector_2d_to_3d</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector-2d-to-3d-val" title="gimp_vector_2d_to_3d_val ()">gimp_vector_2d_to_3d_val</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="libgimpmath-GimpVector.html#gimp-vector-3d-to-2d" title="gimp_vector_3d_to_2d ()">gimp_vector_3d_to_2d</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpVector.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="other_proto_type">
+<col class="other_proto_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2">GimpVector2</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3">GimpVector3</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="libgimpmath-GimpVector.html#GimpVector4" title="struct GimpVector4">GimpVector4</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpVector.description"></a><h2>Description</h2>
+<p>Utilities to set up and manipulate vectors.</p>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpVector.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gimp-vector2-new"></a><h3>gimp_vector2_new ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_new (<em class="parameter"><code><span class="type">gdouble</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> y</code></em>);</pre>
+<p>Creates a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> of coordinates <em class="parameter"><code>x</code></em>
+ and <em class="parameter"><code>y</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector2-new.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the X coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the Y coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-new.returns"></a><h4>Returns</h4>
+<p> the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-set"></a><h3>gimp_vector2_set ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector2_set (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> y</code></em>);</pre>
+<p>Sets the X and Y coordinates of <em class="parameter"><code>vector</code></em>
+ to <em class="parameter"><code>x</code></em>
+ and <em class="parameter"><code>y</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector2-set.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the X coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the Y coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-length"></a><h3>gimp_vector2_length ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_vector2_length (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector</code></em>);</pre>
+<p>Computes the length of a 2D vector.</p>
+<div class="refsect3">
+<a name="gimp-vector2-length.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-length.returns"></a><h4>Returns</h4>
+<p> the length of <em class="parameter"><code>vector</code></em>
+(a positive gdouble).</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-length-val"></a><h3>gimp_vector2_length_val ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_vector2_length_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-length" title="gimp_vector2_length ()"><code class="function">gimp_vector2_length()</code></a> but the
+vector is passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector2-length-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-length-val.returns"></a><h4>Returns</h4>
+<p> the length of <em class="parameter"><code>vector</code></em>
+(a positive gdouble).</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-mul"></a><h3>gimp_vector2_mul ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector2_mul (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> factor</code></em>);</pre>
+<p>Multiplies each component of the <em class="parameter"><code>vector</code></em>
+ by <em class="parameter"><code>factor</code></em>
+. Note that this
+is equivalent to multiplying the vectors length by <em class="parameter"><code>factor</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector2-mul.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>factor</p></td>
+<td class="parameter_description"><p>a scalar.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-mul-val"></a><h3>gimp_vector2_mul_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_mul_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> factor</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-mul" title="gimp_vector2_mul ()"><code class="function">gimp_vector2_mul()</code></a> but the vector is
+passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector2-mul-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>factor</p></td>
+<td class="parameter_description"><p>a scalar.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-mul-val.returns"></a><h4>Returns</h4>
+<p> the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-normal"></a><h3>gimp_vector2_normal ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_normal (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector</code></em>);</pre>
+<p>Compute a normalized perpendicular vector to <em class="parameter"><code>vector</code></em>
+</p>
+<div class="refsect3">
+<a name="gimp-vector2-normal.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-normal.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> perpendicular to <em class="parameter"><code>vector</code></em>
+, with a length of 1.0.</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-2-8.html#api-index-2.8">2.8</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-normal-val"></a><h3>gimp_vector2_normal_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_normal_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-normal" title="gimp_vector2_normal ()"><code class="function">gimp_vector2_normal()</code></a> but the vector
+is passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector2-normal-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-normal-val.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> perpendicular to <em class="parameter"><code>vector</code></em>
+, with a length of 1.0.</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-2-8.html#api-index-2.8">2.8</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-normalize"></a><h3>gimp_vector2_normalize ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector2_normalize (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector</code></em>);</pre>
+<p>Normalizes the <em class="parameter"><code>vector</code></em>
+ so the length of the <em class="parameter"><code>vector</code></em>
+ is 1.0. The nul
+vector will not be changed.</p>
+<div class="refsect3">
+<a name="gimp-vector2-normalize.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-normalize-val"></a><h3>gimp_vector2_normalize_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_normalize_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-normalize" title="gimp_vector2_normalize ()"><code class="function">gimp_vector2_normalize()</code></a> but the
+vector is passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector2-normalize-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-normalize-val.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> parallel to <em class="parameter"><code>vector</code></em>
+, pointing in the same
+direction but with a length of 1.0.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-neg"></a><h3>gimp_vector2_neg ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector2_neg (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector</code></em>);</pre>
+<p>Negates the <em class="parameter"><code>vector</code></em>
+ (i.e. negate all its coordinates).</p>
+<div class="refsect3">
+<a name="gimp-vector2-neg.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-neg-val"></a><h3>gimp_vector2_neg_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_neg_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-neg" title="gimp_vector2_neg ()"><code class="function">gimp_vector2_neg()</code></a> but the vector
+is passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector2-neg-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-neg-val.returns"></a><h4>Returns</h4>
+<p> the negated <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-add"></a><h3>gimp_vector2_add ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector2_add (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *result</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector2</code></em>);</pre>
+<p>Computes the sum of two 2D vectors. The resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> is
+stored in <em class="parameter"><code>result</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector2-add.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>destination for the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>a pointer to the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>a pointer to the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-add-val"></a><h3>gimp_vector2_add_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_add_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector2</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-add" title="gimp_vector2_add ()"><code class="function">gimp_vector2_add()</code></a> but the vectors
+are passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector2-add-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-add-val.returns"></a><h4>Returns</h4>
+<p> the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-sub"></a><h3>gimp_vector2_sub ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector2_sub (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *result</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector2</code></em>);</pre>
+<p>Computes the difference of two 2D vectors (<em class="parameter"><code>vector1</code></em>
+ minus <em class="parameter"><code>vector2</code></em>
+).
+The resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> is stored in <em class="parameter"><code>result</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector2-sub.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the destination for the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>a pointer to the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>a pointer to the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-sub-val"></a><h3>gimp_vector2_sub_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_sub_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector2</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-sub" title="gimp_vector2_sub ()"><code class="function">gimp_vector2_sub()</code></a> but the vectors
+are passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector2-sub-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-sub-val.returns"></a><h4>Returns</h4>
+<p> the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-inner-product"></a><h3>gimp_vector2_inner_product ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_vector2_inner_product (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector2</code></em>);</pre>
+<p>Computes the inner (dot) product of two 2D vectors.
+This product is zero if and only if the two vectors are orthogonal.</p>
+<div class="refsect3">
+<a name="gimp-vector2-inner-product.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>a pointer to the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>a pointer to the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-inner-product.returns"></a><h4>Returns</h4>
+<p> The inner product.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-inner-product-val"></a><h3>gimp_vector2_inner_product_val ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_vector2_inner_product_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector2</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-inner-product" title="gimp_vector2_inner_product ()"><code class="function">gimp_vector2_inner_product()</code></a> but the
+vectors are passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector2-inner-product-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-inner-product-val.returns"></a><h4>Returns</h4>
+<p> The inner product.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-cross-product"></a><h3>gimp_vector2_cross_product ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_cross_product (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector2</code></em>);</pre>
+<p>Compute the cross product of two vectors. The result is a
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> which is orthogonal to both <em class="parameter"><code>vector1</code></em>
+ and <em class="parameter"><code>vector2</code></em>
+. If
+<em class="parameter"><code>vector1</code></em>
+ and <em class="parameter"><code>vector2</code></em>
+ are parallel, the result will be the nul
+vector.</p>
+<p>Note that in 2D, this function is useful to test if two vectors are
+parallel or not, or to compute the area spawned by two vectors.</p>
+<div class="refsect3">
+<a name="gimp-vector2-cross-product.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>a pointer to the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>a pointer to the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-cross-product.returns"></a><h4>Returns</h4>
+<p> The cross product.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-cross-product-val"></a><h3>gimp_vector2_cross_product_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_cross_product_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector2</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-cross-product" title="gimp_vector2_cross_product ()"><code class="function">gimp_vector2_cross_product()</code></a> but the
+vectors are passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector2-cross-product-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-cross-product-val.returns"></a><h4>Returns</h4>
+<p> The cross product.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-rotate"></a><h3>gimp_vector2_rotate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector2_rotate (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> *vector</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> alpha</code></em>);</pre>
+<p>Rotates the <em class="parameter"><code>vector</code></em>
+ counterclockwise by <em class="parameter"><code>alpha</code></em>
+ radians.</p>
+<div class="refsect3">
+<a name="gimp-vector2-rotate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>an angle (in radians).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector2-rotate-val"></a><h3>gimp_vector2_rotate_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="returnvalue">GimpVector2</span></a>
+gimp_vector2_rotate_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> vector</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> alpha</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector2-rotate" title="gimp_vector2_rotate ()"><code class="function">gimp_vector2_rotate()</code></a> but the vector
+is passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector2-rotate-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>an angle (in radians).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector2-rotate-val.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="libgimpmath-GimpVector.html#GimpVector2" title="struct GimpVector2"><span class="type">GimpVector2</span></a> representing <em class="parameter"><code>vector</code></em>
+rotated by <em class="parameter"><code>alpha</code></em>
+radians.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-new"></a><h3>gimp_vector3_new ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+gimp_vector3_new (<em class="parameter"><code><span class="type">gdouble</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> y</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> z</code></em>);</pre>
+<p>Creates a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> of coordinate <em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+ and <em class="parameter"><code>z</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector3-new.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the X coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the Y coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>z</p></td>
+<td class="parameter_description"><p>the Z coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-new.returns"></a><h4>Returns</h4>
+<p> the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-set"></a><h3>gimp_vector3_set ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector3_set (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> y</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> z</code></em>);</pre>
+<p>Sets the X, Y and Z coordinates of <em class="parameter"><code>vector</code></em>
+ to <em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+ and <em class="parameter"><code>z</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector3-set.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the X coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the Y coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>z</p></td>
+<td class="parameter_description"><p>the Z coordinate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-length"></a><h3>gimp_vector3_length ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_vector3_length (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector</code></em>);</pre>
+<p>Computes the length of a 3D vector.</p>
+<div class="refsect3">
+<a name="gimp-vector3-length.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-length.returns"></a><h4>Returns</h4>
+<p> the length of <em class="parameter"><code>vector</code></em>
+(a positive gdouble).</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-length-val"></a><h3>gimp_vector3_length_val ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_vector3_length_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-length" title="gimp_vector3_length ()"><code class="function">gimp_vector3_length()</code></a> but the vector
+is passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector3-length-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-length-val.returns"></a><h4>Returns</h4>
+<p> the length of <em class="parameter"><code>vector</code></em>
+(a positive gdouble).</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-mul"></a><h3>gimp_vector3_mul ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector3_mul (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> factor</code></em>);</pre>
+<p>Multiplies each component of the <em class="parameter"><code>vector</code></em>
+ by <em class="parameter"><code>factor</code></em>
+. Note that
+this is equivalent to multiplying the vectors length by <em class="parameter"><code>factor</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector3-mul.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>factor</p></td>
+<td class="parameter_description"><p>a scalar.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-mul-val"></a><h3>gimp_vector3_mul_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+gimp_vector3_mul_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> factor</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-mul" title="gimp_vector3_mul ()"><code class="function">gimp_vector3_mul()</code></a> but the vector is
+passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector3-mul-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>factor</p></td>
+<td class="parameter_description"><p>a scalar.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-mul-val.returns"></a><h4>Returns</h4>
+<p> the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-normalize"></a><h3>gimp_vector3_normalize ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector3_normalize (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector</code></em>);</pre>
+<p>Normalizes the <em class="parameter"><code>vector</code></em>
+ so the length of the <em class="parameter"><code>vector</code></em>
+ is 1.0. The nul
+vector will not be changed.</p>
+<div class="refsect3">
+<a name="gimp-vector3-normalize.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-normalize-val"></a><h3>gimp_vector3_normalize_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+gimp_vector3_normalize_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-normalize" title="gimp_vector3_normalize ()"><code class="function">gimp_vector3_normalize()</code></a> but the
+vector is passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector3-normalize-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-normalize-val.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> parallel to <em class="parameter"><code>vector</code></em>
+, pointing in the same
+direction but with a length of 1.0.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-neg"></a><h3>gimp_vector3_neg ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector3_neg (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector</code></em>);</pre>
+<p>Negates the <em class="parameter"><code>vector</code></em>
+ (i.e. negate all its coordinates).</p>
+<div class="refsect3">
+<a name="gimp-vector3-neg.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-neg-val"></a><h3>gimp_vector3_neg_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+gimp_vector3_neg_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-neg" title="gimp_vector3_neg ()"><code class="function">gimp_vector3_neg()</code></a> but the vector
+is passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector3-neg-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-neg-val.returns"></a><h4>Returns</h4>
+<p> the negated <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-add"></a><h3>gimp_vector3_add ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector3_add (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *result</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector2</code></em>);</pre>
+<p>Computes the sum of two 3D vectors. The resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> is
+stored in <em class="parameter"><code>result</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector3-add.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>destination for the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>a pointer to the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>a pointer to the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-add-val"></a><h3>gimp_vector3_add_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+gimp_vector3_add_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector2</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-add" title="gimp_vector3_add ()"><code class="function">gimp_vector3_add()</code></a> but the vectors
+are passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector3-add-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-add-val.returns"></a><h4>Returns</h4>
+<p> the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-sub"></a><h3>gimp_vector3_sub ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector3_sub (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *result</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector2</code></em>);</pre>
+<p>Computes the difference of two 3D vectors (<em class="parameter"><code>vector1</code></em>
+ minus <em class="parameter"><code>vector2</code></em>
+).
+The resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> is stored in <em class="parameter"><code>result</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector3-sub.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the destination for the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>a pointer to the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>a pointer to the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-sub-val"></a><h3>gimp_vector3_sub_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+gimp_vector3_sub_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector2</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-sub" title="gimp_vector3_sub ()"><code class="function">gimp_vector3_sub()</code></a> but the vectors
+are passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector3-sub-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-sub-val.returns"></a><h4>Returns</h4>
+<p> the resulting <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-inner-product"></a><h3>gimp_vector3_inner_product ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_vector3_inner_product (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector2</code></em>);</pre>
+<p>Computes the inner (dot) product of two 3D vectors. This product
+is zero if and only if the two vectors are orthogonal.</p>
+<div class="refsect3">
+<a name="gimp-vector3-inner-product.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>a pointer to the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>a pointer to the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-inner-product.returns"></a><h4>Returns</h4>
+<p> The inner product.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-inner-product-val"></a><h3>gimp_vector3_inner_product_val ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+gimp_vector3_inner_product_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector2</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-inner-product" title="gimp_vector3_inner_product ()"><code class="function">gimp_vector3_inner_product()</code></a> but the
+vectors are passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector3-inner-product-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-inner-product-val.returns"></a><h4>Returns</h4>
+<p> The inner product.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-cross-product"></a><h3>gimp_vector3_cross_product ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+gimp_vector3_cross_product (<em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector2</code></em>);</pre>
+<p>Compute the cross product of two vectors. The result is a
+<a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> which is orthogonal to both <em class="parameter"><code>vector1</code></em>
+ and <em class="parameter"><code>vector2</code></em>
+. If
+<em class="parameter"><code>vector1</code></em>
+ and <em class="parameter"><code>vector2</code></em>
+ and parallel, the result will be the nul
+vector.</p>
+<p>This function can be used to compute the normal of the plane
+defined by <em class="parameter"><code>vector1</code></em>
+ and <em class="parameter"><code>vector2</code></em>
+.</p>
+<div class="refsect3">
+<a name="gimp-vector3-cross-product.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>a pointer to the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>a pointer to the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-cross-product.returns"></a><h4>Returns</h4>
+<p> The cross product.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-cross-product-val"></a><h3>gimp_vector3_cross_product_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+gimp_vector3_cross_product_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector1</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector2</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-cross-product" title="gimp_vector3_cross_product ()"><code class="function">gimp_vector3_cross_product()</code></a> but the
+vectors are passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector3-cross-product-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-cross-product-val.returns"></a><h4>Returns</h4>
+<p> The cross product.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-rotate"></a><h3>gimp_vector3_rotate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector3_rotate (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vector</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> alpha</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> beta</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> gamma</code></em>);</pre>
+<p>Rotates the <em class="parameter"><code>vector</code></em>
+ around the three axis (Z, Y, and X) by <em class="parameter"><code>alpha</code></em>
+,
+<em class="parameter"><code>beta</code></em>
+ and <em class="parameter"><code>gamma</code></em>
+, respectively.</p>
+<p>Note that the order of the rotation is very important. If you
+expect a vector to be rotated around X, and then around Y, you will
+have to call this function twice. Also, it is often wise to call
+this function with only one of <em class="parameter"><code>alpha</code></em>
+, <em class="parameter"><code>beta</code></em>
+ and <em class="parameter"><code>gamma</code></em>
+ non-zero.</p>
+<div class="refsect3">
+<a name="gimp-vector3-rotate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>the angle (in radian) of rotation around the Z axis.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>beta</p></td>
+<td class="parameter_description"><p>the angle (in radian) of rotation around the Y axis.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>gamma</p></td>
+<td class="parameter_description"><p>the angle (in radian) of rotation around the X axis.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector3-rotate-val"></a><h3>gimp_vector3_rotate_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+gimp_vector3_rotate_val (<em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vector</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> alpha</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> beta</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> gamma</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector3-rotate" title="gimp_vector3_rotate ()"><code class="function">gimp_vector3_rotate()</code></a> but the vectors
+are passed by value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector3-rotate-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>a <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>the angle (in radian) of rotation around the Z axis.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>beta</p></td>
+<td class="parameter_description"><p>the angle (in radian) of rotation around the Y axis.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>gamma</p></td>
+<td class="parameter_description"><p>the angle (in radian) of rotation around the X axis.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector3-rotate-val.returns"></a><h4>Returns</h4>
+<p> the rotated vector.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector-2d-to-3d"></a><h3>gimp_vector_2d_to_3d ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector_2d_to_3d (<em class="parameter"><code><span class="type">gint</span> sx</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> sy</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> w</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> h</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> y</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vp</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *p</code></em>);</pre>
+<p>\"Compute screen (sx, sy) - (sx + w, sy + h) to 3D unit square
+mapping. The plane to map to is given in the z field of p. The
+observer is located at position vp (vp-&gt;z != 0.0).\"</p>
+<p>In other words, this computes the projection of the point (<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+)
+to the plane z = <em class="parameter"><code>p-&gt;z</code></em>
+ (parallel to XY), from the <em class="parameter"><code>vp</code></em>
+ point of view
+through the screen (<em class="parameter"><code>sx</code></em>
+, <em class="parameter"><code>sy</code></em>
+)-&gt;(<em class="parameter"><code>sx</code></em>
+ + <em class="parameter"><code>w</code></em>
+, <em class="parameter"><code>sy</code></em>
+ + <em class="parameter"><code>h</code></em>
+)</p>
+<div class="refsect3">
+<a name="gimp-vector-2d-to-3d.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>sx</p></td>
+<td class="parameter_description"><p>the abscissa of the upper-left screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sy</p></td>
+<td class="parameter_description"><p>the ordinate of the upper-left screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>w</p></td>
+<td class="parameter_description"><p>the width of the screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>h</p></td>
+<td class="parameter_description"><p>the height of the screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the abscissa of the point in the screen rectangle to map.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the ordinate of the point in the screen rectangle to map.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vp</p></td>
+<td class="parameter_description"><p>the position of the observer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>the resulting point.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector-2d-to-3d-val"></a><h3>gimp_vector_2d_to_3d_val ()</h3>
+<pre class="programlisting"><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="returnvalue">GimpVector3</span></a>
+gimp_vector_2d_to_3d_val (<em class="parameter"><code><span class="type">gint</span> sx</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> sy</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> w</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> h</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> x</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> y</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> vp</code></em>,
+ <em class="parameter"><code><a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> p</code></em>);</pre>
+<p>This function is identical to <a class="link" href="libgimpmath-GimpVector.html#gimp-vector-2d-to-3d" title="gimp_vector_2d_to_3d ()"><code class="function">gimp_vector_2d_to_3d()</code></a> but the
+position of the <em class="parameter"><code>observer</code></em>
+ and the resulting point <em class="parameter"><code>p</code></em>
+ are passed by
+value rather than by reference.</p>
+<div class="refsect3">
+<a name="gimp-vector-2d-to-3d-val.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>sx</p></td>
+<td class="parameter_description"><p>the abscissa of the upper-left screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sy</p></td>
+<td class="parameter_description"><p>the ordinate of the upper-left screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>w</p></td>
+<td class="parameter_description"><p>the width of the screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>h</p></td>
+<td class="parameter_description"><p>the height of the screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the abscissa of the point in the screen rectangle to map.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the ordinate of the point in the screen rectangle to map.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vp</p></td>
+<td class="parameter_description"><p>position of the observer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>the resulting point.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gimp-vector-2d-to-3d-val.returns"></a><h4>Returns</h4>
+<p> the computed <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> point.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gimp-vector-3d-to-2d"></a><h3>gimp_vector_3d_to_2d ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gimp_vector_3d_to_2d (<em class="parameter"><code><span class="type">gint</span> sx</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> sy</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> w</code></em>,
+ <em class="parameter"><code><span class="type">gint</span> h</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *x</code></em>,
+ <em class="parameter"><code><span class="type">gdouble</span> *y</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *vp</code></em>,
+ <em class="parameter"><code>const <a class="link" href="libgimpmath-GimpVector.html#GimpVector3" title="struct GimpVector3"><span class="type">GimpVector3</span></a> *p</code></em>);</pre>
+<p>Convert the given 3D point to 2D (project it onto the viewing
+plane, (sx, sy, 0) - (sx + w, sy + h, 0). The input is assumed to
+be in the unit square (0, 0, z) - (1, 1, z). The viewpoint of the
+observer is passed in vp.</p>
+<p>This is basically the opposite of <a class="link" href="libgimpmath-GimpVector.html#gimp-vector-2d-to-3d" title="gimp_vector_2d_to_3d ()"><code class="function">gimp_vector_2d_to_3d()</code></a>.</p>
+<div class="refsect3">
+<a name="gimp-vector-3d-to-2d.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>sx</p></td>
+<td class="parameter_description"><p>the abscissa of the upper-left screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sy</p></td>
+<td class="parameter_description"><p>the ordinate of the upper-left screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>w</p></td>
+<td class="parameter_description"><p>the width of the screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>h</p></td>
+<td class="parameter_description"><p>the height of the screen rectangle.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the abscissa of the point in the screen rectangle to map (return value).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the ordinate of the point in the screen rectangle to map (return value).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vp</p></td>
+<td class="parameter_description"><p>position of the observer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>the 3D point to project to the plane.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpVector.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GimpVector2"></a><h3>struct GimpVector2</h3>
+<pre class="programlisting">struct GimpVector2 {
+ gdouble x, y;
+};
+</pre>
+<p>A two dimensional vector.</p>
+<div class="refsect3">
+<a name="GimpVector2.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpVector2.x"></a>x</code></em>;</p></td>
+<td class="struct_member_description"><p>the x axis</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpVector2.y"></a>y</code></em>;</p></td>
+<td class="struct_member_description"><p>the y axis</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GimpVector3"></a><h3>struct GimpVector3</h3>
+<pre class="programlisting">struct GimpVector3 {
+ gdouble x, y, z;
+};
+</pre>
+<p>A three dimensional vector.</p>
+<div class="refsect3">
+<a name="GimpVector3.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpVector3.x"></a>x</code></em>;</p></td>
+<td class="struct_member_description"><p>the x axis</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpVector3.y"></a>y</code></em>;</p></td>
+<td class="struct_member_description"><p>the y axis</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpVector3.z"></a>z</code></em>;</p></td>
+<td class="struct_member_description"><p>the z axis</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GimpVector4"></a><h3>struct GimpVector4</h3>
+<pre class="programlisting">struct GimpVector4 {
+ gdouble x, y, z, w;
+};
+</pre>
+<p>A four dimensional vector.</p>
+<div class="refsect3">
+<a name="GimpVector4.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpVector4.x"></a>x</code></em>;</p></td>
+<td class="struct_member_description"><p>the x axis</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpVector4.y"></a>y</code></em>;</p></td>
+<td class="struct_member_description"><p>the y axis</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpVector4.z"></a>z</code></em>;</p></td>
+<td class="struct_member_description"><p>the z axis</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">gdouble</span> <em class="structfield"><code><a name="GimpVector4.w"></a>w</code></em>;</p></td>
+<td class="struct_member_description"><p>the w axis</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="libgimpmath-GimpVector.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix2" title="struct GimpMatrix2"><span class="type">GimpMatrix2</span></a>, <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix3" title="struct GimpMatrix3"><span class="type">GimpMatrix3</span></a>, <a class="link" href="libgimpmath-GimpMatrix.html#GimpMatrix4" title="struct GimpMatrix4"><span class="type">GimpMatrix4</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/devel-docs/libgimpmath/html/libgimpmath.devhelp2 b/devel-docs/libgimpmath/html/libgimpmath.devhelp2
new file mode 100644
index 0000000..29c58f6
--- /dev/null
+++ b/devel-docs/libgimpmath/html/libgimpmath.devhelp2
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<book xmlns="http://www.devhelp.net/book" title="GIMP Math Library Reference Manual" link="index.html" author="" name="libgimpmath" version="2" language="c">
+ <chapters>
+ <sub name="GIMP Math Library" link="pt01.html">
+ <sub name="GimpMath" link="libgimpmath-GimpMath.html"/>
+ <sub name="GimpMatrix" link="libgimpmath-GimpMatrix.html"/>
+ <sub name="GimpVector" link="libgimpmath-GimpVector.html"/>
+ <sub name="GimpMD5" link="libgimpmath-GimpMD5.html"/>
+ </sub>
+ <sub name="Index" link="api-index-full.html"/>
+ <sub name="Index of new symbols in GIMP 2.4" link="api-index-2-4.html"/>
+ <sub name="Index of new symbols in GIMP 2.8" link="api-index-2-8.html"/>
+ <sub name="Index of new symbols in GIMP 2.10" link="api-index-2-10.html"/>
+ <sub name="Index of new symbols in GIMP 2.10.16" link="api-index-2-10-16.html"/>
+ <sub name="Index of deprecated symbols" link="api-index-deprecated.html"/>
+ </chapters>
+ <functions>
+ <keyword type="macro" name="RINT()" link="libgimpmath-GimpMath.html#RINT:CAPS"/>
+ <keyword type="macro" name="ROUND()" link="libgimpmath-GimpMath.html#ROUND:CAPS"/>
+ <keyword type="macro" name="SIGNED_ROUND()" link="libgimpmath-GimpMath.html#SIGNED-ROUND:CAPS"/>
+ <keyword type="macro" name="SQR()" link="libgimpmath-GimpMath.html#SQR:CAPS"/>
+ <keyword type="macro" name="MAX255()" link="libgimpmath-GimpMath.html#MAX255:CAPS"/>
+ <keyword type="macro" name="CLAMP0255()" link="libgimpmath-GimpMath.html#CLAMP0255:CAPS"/>
+ <keyword type="macro" name="SAFE_CLAMP()" link="libgimpmath-GimpMath.html#SAFE-CLAMP:CAPS" since="2.10"/>
+ <keyword type="macro" name="gimp_deg_to_rad()" link="libgimpmath-GimpMath.html#gimp-deg-to-rad"/>
+ <keyword type="macro" name="gimp_rad_to_deg()" link="libgimpmath-GimpMath.html#gimp-rad-to-deg"/>
+ <keyword type="function" name="gimp_matrix2_identity ()" link="libgimpmath-GimpMatrix.html#gimp-matrix2-identity"/>
+ <keyword type="function" name="gimp_matrix2_mult ()" link="libgimpmath-GimpMatrix.html#gimp-matrix2-mult"/>
+ <keyword type="function" name="gimp_matrix2_determinant ()" link="libgimpmath-GimpMatrix.html#gimp-matrix2-determinant" since="2.10.16"/>
+ <keyword type="function" name="gimp_matrix2_invert ()" link="libgimpmath-GimpMatrix.html#gimp-matrix2-invert" since="2.10.16"/>
+ <keyword type="function" name="gimp_matrix2_transform_point ()" link="libgimpmath-GimpMatrix.html#gimp-matrix2-transform-point" since="2.10.16"/>
+ <keyword type="function" name="gimp_matrix3_identity ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-identity"/>
+ <keyword type="function" name="gimp_matrix3_mult ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-mult"/>
+ <keyword type="function" name="gimp_matrix3_translate ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-translate"/>
+ <keyword type="function" name="gimp_matrix3_scale ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-scale"/>
+ <keyword type="function" name="gimp_matrix3_rotate ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-rotate"/>
+ <keyword type="function" name="gimp_matrix3_xshear ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-xshear"/>
+ <keyword type="function" name="gimp_matrix3_yshear ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-yshear"/>
+ <keyword type="function" name="gimp_matrix3_affine ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-affine"/>
+ <keyword type="function" name="gimp_matrix3_transform_point ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-transform-point"/>
+ <keyword type="function" name="gimp_matrix3_determinant ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-determinant"/>
+ <keyword type="function" name="gimp_matrix3_invert ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-invert"/>
+ <keyword type="function" name="gimp_matrix3_is_identity ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-is-identity"/>
+ <keyword type="function" name="gimp_matrix3_is_diagonal ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-is-diagonal"/>
+ <keyword type="function" name="gimp_matrix3_is_affine ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-is-affine" since="2.4"/>
+ <keyword type="function" name="gimp_matrix3_is_simple ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-is-simple"/>
+ <keyword type="function" name="gimp_matrix3_equal ()" link="libgimpmath-GimpMatrix.html#gimp-matrix3-equal" since="2.10.16"/>
+ <keyword type="function" name="gimp_matrix4_identity ()" link="libgimpmath-GimpMatrix.html#gimp-matrix4-identity" since="2.10.16"/>
+ <keyword type="function" name="gimp_matrix4_mult ()" link="libgimpmath-GimpMatrix.html#gimp-matrix4-mult" since="2.10.16"/>
+ <keyword type="function" name="gimp_matrix4_to_deg ()" link="libgimpmath-GimpMatrix.html#gimp-matrix4-to-deg"/>
+ <keyword type="function" name="gimp_matrix4_transform_point ()" link="libgimpmath-GimpMatrix.html#gimp-matrix4-transform-point" since="2.10.16"/>
+ <keyword type="macro" name="GIMP_IS_PARAM_SPEC_MATRIX2()" link="libgimpmath-GimpMatrix.html#GIMP-IS-PARAM-SPEC-MATRIX2:CAPS"/>
+ <keyword type="function" name="gimp_param_spec_matrix2 ()" link="libgimpmath-GimpMatrix.html#gimp-param-spec-matrix2" since="2.4"/>
+ <keyword type="macro" name="GIMP_VALUE_HOLDS_MATRIX2()" link="libgimpmath-GimpMatrix.html#GIMP-VALUE-HOLDS-MATRIX2:CAPS"/>
+ <keyword type="macro" name="GIMP_IS_PARAM_SPEC_MATRIX3()" link="libgimpmath-GimpMatrix.html#GIMP-IS-PARAM-SPEC-MATRIX3:CAPS"/>
+ <keyword type="function" name="gimp_param_spec_matrix3 ()" link="libgimpmath-GimpMatrix.html#gimp-param-spec-matrix3" since="2.8"/>
+ <keyword type="macro" name="GIMP_VALUE_HOLDS_MATRIX3()" link="libgimpmath-GimpMatrix.html#GIMP-VALUE-HOLDS-MATRIX3:CAPS"/>
+ <keyword type="struct" name="struct GimpMatrix2" link="libgimpmath-GimpMatrix.html#GimpMatrix2"/>
+ <keyword type="struct" name="struct GimpMatrix3" link="libgimpmath-GimpMatrix.html#GimpMatrix3"/>
+ <keyword type="struct" name="struct GimpMatrix4" link="libgimpmath-GimpMatrix.html#GimpMatrix4"/>
+ <keyword type="macro" name="GIMP_TYPE_MATRIX2" link="libgimpmath-GimpMatrix.html#GIMP-TYPE-MATRIX2:CAPS"/>
+ <keyword type="macro" name="GIMP_TYPE_PARAM_MATRIX2" link="libgimpmath-GimpMatrix.html#GIMP-TYPE-PARAM-MATRIX2:CAPS"/>
+ <keyword type="macro" name="GIMP_TYPE_MATRIX3" link="libgimpmath-GimpMatrix.html#GIMP-TYPE-MATRIX3:CAPS"/>
+ <keyword type="macro" name="GIMP_TYPE_PARAM_MATRIX3" link="libgimpmath-GimpMatrix.html#GIMP-TYPE-PARAM-MATRIX3:CAPS"/>
+ <keyword type="function" name="gimp_vector2_new ()" link="libgimpmath-GimpVector.html#gimp-vector2-new"/>
+ <keyword type="function" name="gimp_vector2_set ()" link="libgimpmath-GimpVector.html#gimp-vector2-set"/>
+ <keyword type="function" name="gimp_vector2_length ()" link="libgimpmath-GimpVector.html#gimp-vector2-length"/>
+ <keyword type="function" name="gimp_vector2_length_val ()" link="libgimpmath-GimpVector.html#gimp-vector2-length-val"/>
+ <keyword type="function" name="gimp_vector2_mul ()" link="libgimpmath-GimpVector.html#gimp-vector2-mul"/>
+ <keyword type="function" name="gimp_vector2_mul_val ()" link="libgimpmath-GimpVector.html#gimp-vector2-mul-val"/>
+ <keyword type="function" name="gimp_vector2_normal ()" link="libgimpmath-GimpVector.html#gimp-vector2-normal" since="2.8"/>
+ <keyword type="function" name="gimp_vector2_normal_val ()" link="libgimpmath-GimpVector.html#gimp-vector2-normal-val" since="2.8"/>
+ <keyword type="function" name="gimp_vector2_normalize ()" link="libgimpmath-GimpVector.html#gimp-vector2-normalize"/>
+ <keyword type="function" name="gimp_vector2_normalize_val ()" link="libgimpmath-GimpVector.html#gimp-vector2-normalize-val"/>
+ <keyword type="function" name="gimp_vector2_neg ()" link="libgimpmath-GimpVector.html#gimp-vector2-neg"/>
+ <keyword type="function" name="gimp_vector2_neg_val ()" link="libgimpmath-GimpVector.html#gimp-vector2-neg-val"/>
+ <keyword type="function" name="gimp_vector2_add ()" link="libgimpmath-GimpVector.html#gimp-vector2-add"/>
+ <keyword type="function" name="gimp_vector2_add_val ()" link="libgimpmath-GimpVector.html#gimp-vector2-add-val"/>
+ <keyword type="function" name="gimp_vector2_sub ()" link="libgimpmath-GimpVector.html#gimp-vector2-sub"/>
+ <keyword type="function" name="gimp_vector2_sub_val ()" link="libgimpmath-GimpVector.html#gimp-vector2-sub-val"/>
+ <keyword type="function" name="gimp_vector2_inner_product ()" link="libgimpmath-GimpVector.html#gimp-vector2-inner-product"/>
+ <keyword type="function" name="gimp_vector2_inner_product_val ()" link="libgimpmath-GimpVector.html#gimp-vector2-inner-product-val"/>
+ <keyword type="function" name="gimp_vector2_cross_product ()" link="libgimpmath-GimpVector.html#gimp-vector2-cross-product"/>
+ <keyword type="function" name="gimp_vector2_cross_product_val ()" link="libgimpmath-GimpVector.html#gimp-vector2-cross-product-val"/>
+ <keyword type="function" name="gimp_vector2_rotate ()" link="libgimpmath-GimpVector.html#gimp-vector2-rotate"/>
+ <keyword type="function" name="gimp_vector2_rotate_val ()" link="libgimpmath-GimpVector.html#gimp-vector2-rotate-val"/>
+ <keyword type="function" name="gimp_vector3_new ()" link="libgimpmath-GimpVector.html#gimp-vector3-new"/>
+ <keyword type="function" name="gimp_vector3_set ()" link="libgimpmath-GimpVector.html#gimp-vector3-set"/>
+ <keyword type="function" name="gimp_vector3_length ()" link="libgimpmath-GimpVector.html#gimp-vector3-length"/>
+ <keyword type="function" name="gimp_vector3_length_val ()" link="libgimpmath-GimpVector.html#gimp-vector3-length-val"/>
+ <keyword type="function" name="gimp_vector3_mul ()" link="libgimpmath-GimpVector.html#gimp-vector3-mul"/>
+ <keyword type="function" name="gimp_vector3_mul_val ()" link="libgimpmath-GimpVector.html#gimp-vector3-mul-val"/>
+ <keyword type="function" name="gimp_vector3_normalize ()" link="libgimpmath-GimpVector.html#gimp-vector3-normalize"/>
+ <keyword type="function" name="gimp_vector3_normalize_val ()" link="libgimpmath-GimpVector.html#gimp-vector3-normalize-val"/>
+ <keyword type="function" name="gimp_vector3_neg ()" link="libgimpmath-GimpVector.html#gimp-vector3-neg"/>
+ <keyword type="function" name="gimp_vector3_neg_val ()" link="libgimpmath-GimpVector.html#gimp-vector3-neg-val"/>
+ <keyword type="function" name="gimp_vector3_add ()" link="libgimpmath-GimpVector.html#gimp-vector3-add"/>
+ <keyword type="function" name="gimp_vector3_add_val ()" link="libgimpmath-GimpVector.html#gimp-vector3-add-val"/>
+ <keyword type="function" name="gimp_vector3_sub ()" link="libgimpmath-GimpVector.html#gimp-vector3-sub"/>
+ <keyword type="function" name="gimp_vector3_sub_val ()" link="libgimpmath-GimpVector.html#gimp-vector3-sub-val"/>
+ <keyword type="function" name="gimp_vector3_inner_product ()" link="libgimpmath-GimpVector.html#gimp-vector3-inner-product"/>
+ <keyword type="function" name="gimp_vector3_inner_product_val ()" link="libgimpmath-GimpVector.html#gimp-vector3-inner-product-val"/>
+ <keyword type="function" name="gimp_vector3_cross_product ()" link="libgimpmath-GimpVector.html#gimp-vector3-cross-product"/>
+ <keyword type="function" name="gimp_vector3_cross_product_val ()" link="libgimpmath-GimpVector.html#gimp-vector3-cross-product-val"/>
+ <keyword type="function" name="gimp_vector3_rotate ()" link="libgimpmath-GimpVector.html#gimp-vector3-rotate"/>
+ <keyword type="function" name="gimp_vector3_rotate_val ()" link="libgimpmath-GimpVector.html#gimp-vector3-rotate-val"/>
+ <keyword type="function" name="gimp_vector_2d_to_3d ()" link="libgimpmath-GimpVector.html#gimp-vector-2d-to-3d"/>
+ <keyword type="function" name="gimp_vector_2d_to_3d_val ()" link="libgimpmath-GimpVector.html#gimp-vector-2d-to-3d-val"/>
+ <keyword type="function" name="gimp_vector_3d_to_2d ()" link="libgimpmath-GimpVector.html#gimp-vector-3d-to-2d"/>
+ <keyword type="struct" name="struct GimpVector2" link="libgimpmath-GimpVector.html#GimpVector2"/>
+ <keyword type="struct" name="struct GimpVector3" link="libgimpmath-GimpVector.html#GimpVector3"/>
+ <keyword type="struct" name="struct GimpVector4" link="libgimpmath-GimpVector.html#GimpVector4"/>
+ <keyword type="function" name="gimp_md5_get_digest ()" link="libgimpmath-GimpMD5.html#gimp-md5-get-digest" deprecated=""/>
+ <keyword type="member" name="GimpMatrix2.coeff" link="libgimpmath-GimpMatrix.html#GimpMatrix2.coeff"/>
+ <keyword type="member" name="GimpMatrix3.coeff" link="libgimpmath-GimpMatrix.html#GimpMatrix3.coeff"/>
+ <keyword type="member" name="GimpMatrix4.coeff" link="libgimpmath-GimpMatrix.html#GimpMatrix4.coeff"/>
+ <keyword type="member" name="GimpVector2.x" link="libgimpmath-GimpVector.html#GimpVector2.x"/>
+ <keyword type="member" name="GimpVector2.y" link="libgimpmath-GimpVector.html#GimpVector2.y"/>
+ <keyword type="member" name="GimpVector3.x" link="libgimpmath-GimpVector.html#GimpVector3.x"/>
+ <keyword type="member" name="GimpVector3.y" link="libgimpmath-GimpVector.html#GimpVector3.y"/>
+ <keyword type="member" name="GimpVector3.z" link="libgimpmath-GimpVector.html#GimpVector3.z"/>
+ <keyword type="member" name="GimpVector4.x" link="libgimpmath-GimpVector.html#GimpVector4.x"/>
+ <keyword type="member" name="GimpVector4.y" link="libgimpmath-GimpVector.html#GimpVector4.y"/>
+ <keyword type="member" name="GimpVector4.z" link="libgimpmath-GimpVector.html#GimpVector4.z"/>
+ <keyword type="member" name="GimpVector4.w" link="libgimpmath-GimpVector.html#GimpVector4.w"/>
+ </functions>
+</book>
diff --git a/devel-docs/libgimpmath/html/pt01.html b/devel-docs/libgimpmath/html/pt01.html
new file mode 100644
index 0000000..97937c4
--- /dev/null
+++ b/devel-docs/libgimpmath/html/pt01.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Part I. GIMP Math Library: GIMP Math Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="GIMP Math Library Reference Manual">
+<link rel="up" href="index.html" title="GIMP Math Library Reference Manual">
+<link rel="prev" href="index.html" title="GIMP Math Library Reference Manual">
+<link rel="next" href="libgimpmath-GimpMath.html" title="GimpMath">
+<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="libgimpmath-GimpMath.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="part">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.2"></a>Part I. GIMP Math Library</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="libgimpmath-GimpMath.html">GimpMath</a></span><span class="refpurpose"> — Mathematical definitions and macros.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libgimpmath-GimpMatrix.html">GimpMatrix</a></span><span class="refpurpose"> — Utilities to set up and manipulate 3x3
+transformation matrices.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libgimpmath-GimpVector.html">GimpVector</a></span><span class="refpurpose"> — Utilities to set up and manipulate vectors.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libgimpmath-GimpMD5.html">GimpMD5</a></span><span class="refpurpose"> — The MD5 message-digest algorithm</span>
+</dt>
+</dl>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/devel-docs/libgimpmath/html/right-insensitive.png b/devel-docs/libgimpmath/html/right-insensitive.png
new file mode 100644
index 0000000..763208d
--- /dev/null
+++ b/devel-docs/libgimpmath/html/right-insensitive.png
Binary files differ
diff --git a/devel-docs/libgimpmath/html/right.png b/devel-docs/libgimpmath/html/right.png
new file mode 100644
index 0000000..eb90dd4
--- /dev/null
+++ b/devel-docs/libgimpmath/html/right.png
Binary files differ
diff --git a/devel-docs/libgimpmath/html/style.css b/devel-docs/libgimpmath/html/style.css
new file mode 100644
index 0000000..41781ba
--- /dev/null
+++ b/devel-docs/libgimpmath/html/style.css
@@ -0,0 +1,530 @@
+body
+{
+ font-family: cantarell, sans-serif;
+}
+.synopsis, .classsynopsis
+{
+ /* tango:aluminium 1/2 */
+ background: #eeeeec;
+ background: rgba(238, 238, 236, 0.5);
+ border: solid 1px rgb(238, 238, 236);
+ padding: 0.5em;
+}
+.programlisting
+{
+ /* tango:sky blue 0/1 */
+ /* fallback for no rgba support */
+ background: #e6f3ff;
+ border: solid 1px #729fcf;
+ background: rgba(114, 159, 207, 0.1);
+ border: solid 1px rgba(114, 159, 207, 0.2);
+ padding: 0.5em;
+}
+.variablelist
+{
+ padding: 4px;
+ margin-left: 3em;
+}
+.variablelist td:first-child
+{
+ vertical-align: top;
+}
+
+span.nowrap {
+ white-space: nowrap;
+}
+
+div.gallery-float
+{
+ float: left;
+ padding: 10px;
+}
+div.gallery-float img
+{
+ border-style: none;
+}
+div.gallery-spacer
+{
+ clear: both;
+}
+
+a, a:visited
+{
+ text-decoration: none;
+ /* tango:sky blue 2 */
+ color: #3465a4;
+}
+a:hover
+{
+ text-decoration: underline;
+ /* tango:sky blue 1 */
+ color: #729fcf;
+}
+
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.parameter_name,
+.struct_member_name,
+.union_member_name,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword
+{
+ text-align: right;
+}
+
+/* dim non-primary columns */
+.c_punctuation,
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword,
+.property_flags,
+.signal_flags,
+.parameter_annotations,
+.enum_member_annotations,
+.struct_member_annotations,
+.union_member_annotations
+{
+ color: #888a85;
+}
+
+.function_type a,
+.function_type a:visited,
+.function_type a:hover,
+.property_type a,
+.property_type a:visited,
+.property_type a:hover,
+.signal_type a,
+.signal_type a:visited,
+.signal_type a:hover,
+.signal_flags a,
+.signal_flags a:visited,
+.signal_flags a:hover
+{
+ color: #729fcf;
+}
+
+td p
+{
+ margin: 0.25em;
+}
+
+div.informaltable table[border="1"],
+div.table table
+{
+ border-collapse: collapse;
+ border-spacing: 0px;
+ /* tango:aluminium 3 */
+ border: solid 1px #babdb6;
+}
+
+div.informaltable table[border="1"] td,
+div.informaltable table th,
+div.table table td, div.table table th
+{
+ /* tango:aluminium 3 */
+ border: solid 1px #babdb6;
+ padding: 3px;
+ vertical-align: top;
+}
+
+div.informaltable table[border="1"] th,
+div.table table th
+{
+ /* tango:aluminium 2 */
+ background-color: #d3d7cf;
+}
+
+h4
+{
+ color: #555753;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+hr
+{
+ /* tango:aluminium 1 */
+ color: #d3d7cf;
+ background: #d3d7cf;
+ border: none 0px;
+ height: 1px;
+ clear: both;
+ margin: 2.0em 0em 2.0em 0em;
+}
+
+dl.toc dt
+{
+ padding-bottom: 0.25em;
+}
+
+dl.toc > dt
+{
+ padding-top: 0.25em;
+ padding-bottom: 0.25em;
+ font-weight: bold;
+}
+
+dl.toc > dl
+{
+ padding-bottom: 0.5em;
+}
+
+.parameter
+{
+ font-style: normal;
+}
+
+.footer
+{
+ padding-top: 3.5em;
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ text-align: center;
+ font-size: 80%;
+}
+
+.informalfigure,
+.figure
+{
+ margin: 1em;
+}
+
+.informalexample,
+.example
+{
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+.warning
+{
+ /* tango:orange 0/1 */
+ background: #ffeed9;
+ background: rgba(252, 175, 62, 0.1);
+ border-color: #ffb04f;
+ border-color: rgba(252, 175, 62, 0.2);
+}
+.note
+{
+ /* tango:chameleon 0/0.5 */
+ background: #d8ffb2;
+ background: rgba(138, 226, 52, 0.1);
+ border-color: #abf562;
+ border-color: rgba(138, 226, 52, 0.2);
+}
+div.blockquote
+{
+ border-color: #eeeeec;
+}
+.note, .warning, div.blockquote
+{
+ padding: 0.5em;
+ border-width: 1px;
+ border-style: solid;
+ margin: 2em;
+}
+.note p, .warning p
+{
+ margin: 0;
+}
+
+div.warning h3.title,
+div.note h3.title
+{
+ display: none;
+}
+
+p + div.section
+{
+ margin-top: 1em;
+}
+
+div.refnamediv,
+div.refsynopsisdiv,
+div.refsect1,
+div.refsect2,
+div.toc,
+div.section
+{
+ margin-bottom: 1em;
+}
+
+/* blob links */
+h2 .extralinks, h3 .extralinks
+{
+ float: right;
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ font-size: 80%;
+ font-weight: normal;
+}
+
+.lineart
+{
+ color: #d3d7cf;
+ font-weight: normal;
+}
+
+.annotation
+{
+ /* tango:aluminium 5 */
+ color: #555753;
+ font-weight: normal;
+}
+
+.structfield
+{
+ font-style: normal;
+ font-weight: normal;
+}
+
+acronym,abbr
+{
+ border-bottom: 1px dotted gray;
+}
+
+.listing_frame {
+ /* tango:sky blue 1 */
+ border: solid 1px #729fcf;
+ border: solid 1px rgba(114, 159, 207, 0.2);
+ padding: 0px;
+}
+
+.listing_lines, .listing_code {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0.5em;
+}
+.listing_lines {
+ /* tango:sky blue 0.5 */
+ background: #a6c5e3;
+ background: rgba(114, 159, 207, 0.2);
+ /* tango:aluminium 6 */
+ color: #2e3436;
+}
+.listing_code {
+ /* tango:sky blue 0 */
+ background: #e6f3ff;
+ background: rgba(114, 159, 207, 0.1);
+}
+.listing_code .programlisting {
+ /* override from previous */
+ border: none 0px;
+ padding: 0px;
+ background: none;
+}
+.listing_lines pre, .listing_code pre {
+ margin: 0px;
+}
+
+@media screen {
+ /* these have a <sup> as a first child, but since there are no parent selectors
+ * we can't use that. */
+ a.footnote
+ {
+ position: relative;
+ top: 0em ! important;
+ }
+ /* this is needed so that the local anchors are displayed below the naviagtion */
+ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+ {
+ display: inline-block;
+ position: relative;
+ top:-5em;
+ }
+ /* this seems to be a bug in the xsl style sheets when generating indexes */
+ div.index div.index
+ {
+ top: 0em;
+ }
+ /* make space for the fixed navigation bar and add space at the bottom so that
+ * link targets appear somewhat close to top
+ */
+ body
+ {
+ padding-top: 2.5em;
+ padding-bottom: 500px;
+ max-width: 60em;
+ }
+ p
+ {
+ max-width: 60em;
+ }
+ /* style and size the navigation bar */
+ table.navigation#top
+ {
+ position: fixed;
+ background: #e2e2e2;
+ border-bottom: solid 1px #babdb6;
+ border-spacing: 5px;
+ margin-top: 0;
+ margin-bottom: 0;
+ top: 0;
+ left: 0;
+ z-index: 10;
+ }
+ table.navigation#top td
+ {
+ padding-left: 6px;
+ padding-right: 6px;
+ }
+ .navigation a, .navigation a:visited
+ {
+ /* tango:sky blue 3 */
+ color: #204a87;
+ }
+ .navigation a:hover
+ {
+ /* tango:sky blue 2 */
+ color: #3465a4;
+ }
+ td.shortcuts
+ {
+ /* tango:sky blue 2 */
+ color: #3465a4;
+ font-size: 80%;
+ white-space: nowrap;
+ }
+ td.shortcuts .dim
+ {
+ color: #babdb6;
+ }
+ .navigation .title
+ {
+ font-size: 80%;
+ max-width: none;
+ margin: 0px;
+ font-weight: normal;
+ }
+}
+@media screen and (min-width: 60em) {
+ /* screen larger than 60em */
+ body { margin: auto; }
+}
+@media screen and (max-width: 60em) {
+ /* screen less than 60em */
+ #nav_hierarchy { display: none; }
+ #nav_interfaces { display: none; }
+ #nav_prerequisites { display: none; }
+ #nav_derived_interfaces { display: none; }
+ #nav_implementations { display: none; }
+ #nav_child_properties { display: none; }
+ #nav_style_properties { display: none; }
+ #nav_index { display: none; }
+ #nav_glossary { display: none; }
+ .gallery_image { display: none; }
+ .property_flags { display: none; }
+ .signal_flags { display: none; }
+ .parameter_annotations { display: none; }
+ .enum_member_annotations { display: none; }
+ .struct_member_annotations { display: none; }
+ .union_member_annotations { display: none; }
+ /* now that a column is hidden, optimize space */
+ col.parameters_name { width: auto; }
+ col.parameters_description { width: auto; }
+ col.struct_members_name { width: auto; }
+ col.struct_members_description { width: auto; }
+ col.enum_members_name { width: auto; }
+ col.enum_members_description { width: auto; }
+ col.union_members_name { width: auto; }
+ col.union_members_description { width: auto; }
+ .listing_lines { display: none; }
+}
+@media print {
+ table.navigation {
+ visibility: collapse;
+ display: none;
+ }
+ div.titlepage table.navigation {
+ visibility: visible;
+ display: table;
+ background: #e2e2e2;
+ border: solid 1px #babdb6;
+ margin-top: 0;
+ margin-bottom: 0;
+ top: 0;
+ left: 0;
+ height: 3em;
+ }
+}
+
+pre { line-height: 125%; margin: 0; }
+td.linenos pre { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; }
+span.linenos { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; }
+td.linenos pre.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; }
+span.linenos.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; }
+.hll { background-color: #ffffcc }
+.c { color: #408080; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #008000; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.cp { color: #BC7A00 } /* Comment.Preproc */
+.cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #408080; font-style: italic } /* Comment.Single */
+.cs { color: #408080; font-style: italic } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #008000 } /* Keyword.Pseudo */
+.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #B00040 } /* Keyword.Type */
+.m { color: #666666 } /* Literal.Number */
+.s { color: #BA2121 } /* Literal.String */
+.na { color: #7D9029 } /* Name.Attribute */
+.nb { color: #008000 } /* Name.Builtin */
+.nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.no { color: #880000 } /* Name.Constant */
+.nd { color: #AA22FF } /* Name.Decorator */
+.ni { color: #999999; font-weight: bold } /* Name.Entity */
+.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.nf { color: #0000FF } /* Name.Function */
+.nl { color: #A0A000 } /* Name.Label */
+.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.nt { color: #008000; font-weight: bold } /* Name.Tag */
+.nv { color: #19177C } /* Name.Variable */
+.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #666666 } /* Literal.Number.Bin */
+.mf { color: #666666 } /* Literal.Number.Float */
+.mh { color: #666666 } /* Literal.Number.Hex */
+.mi { color: #666666 } /* Literal.Number.Integer */
+.mo { color: #666666 } /* Literal.Number.Oct */
+.sa { color: #BA2121 } /* Literal.String.Affix */
+.sb { color: #BA2121 } /* Literal.String.Backtick */
+.sc { color: #BA2121 } /* Literal.String.Char */
+.dl { color: #BA2121 } /* Literal.String.Delimiter */
+.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #BA2121 } /* Literal.String.Double */
+.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #BA2121 } /* Literal.String.Heredoc */
+.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.sx { color: #008000 } /* Literal.String.Other */
+.sr { color: #BB6688 } /* Literal.String.Regex */
+.s1 { color: #BA2121 } /* Literal.String.Single */
+.ss { color: #19177C } /* Literal.String.Symbol */
+.bp { color: #008000 } /* Name.Builtin.Pseudo */
+.fm { color: #0000FF } /* Name.Function.Magic */
+.vc { color: #19177C } /* Name.Variable.Class */
+.vg { color: #19177C } /* Name.Variable.Global */
+.vi { color: #19177C } /* Name.Variable.Instance */
+.vm { color: #19177C } /* Name.Variable.Magic */
+.il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file
diff --git a/devel-docs/libgimpmath/html/up-insensitive.png b/devel-docs/libgimpmath/html/up-insensitive.png
new file mode 100644
index 0000000..478700c
--- /dev/null
+++ b/devel-docs/libgimpmath/html/up-insensitive.png
Binary files differ
diff --git a/devel-docs/libgimpmath/html/up.png b/devel-docs/libgimpmath/html/up.png
new file mode 100644
index 0000000..636d50d
--- /dev/null
+++ b/devel-docs/libgimpmath/html/up.png
Binary files differ