summaryrefslogtreecommitdiffstats
path: root/devel-docs/libgimpmath/html/libgimpmath-GimpVector.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 03:13:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 03:13:10 +0000
commit3c57dd931145d43f2b0aef96c4d178135956bf91 (patch)
tree3de698981e9f0cc2c4f9569b19a5f3595e741f6b /devel-docs/libgimpmath/html/libgimpmath-GimpVector.html
parentInitial commit. (diff)
downloadgimp-3c57dd931145d43f2b0aef96c4d178135956bf91.tar.xz
gimp-3c57dd931145d43f2b0aef96c4d178135956bf91.zip
Adding upstream version 2.10.36.upstream/2.10.36
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devel-docs/libgimpmath/html/libgimpmath-GimpVector.html')
-rw-r--r--devel-docs/libgimpmath/html/libgimpmath-GimpVector.html2219
1 files changed, 2219 insertions, 0 deletions
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