diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 03:13:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 03:13:10 +0000 |
commit | 3c57dd931145d43f2b0aef96c4d178135956bf91 (patch) | |
tree | 3de698981e9f0cc2c4f9569b19a5f3595e741f6b /devel-docs/libgimpmath/html/libgimpmath-GimpVector.html | |
parent | Initial commit. (diff) | |
download | gimp-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.html | 2219 |
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->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->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> +)->(<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 |