summaryrefslogtreecommitdiff
path: root/doc/html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html')
-rw-r--r--doc/html/@GDScript.html93
-rw-r--r--doc/html/@Global Scope.html459
-rw-r--r--doc/html/@Squirrel.html2
-rw-r--r--doc/html/main.css146
-rw-r--r--doc/html/tutorial01/0_home_red_coding_godot_doc_math_position.pngbin0 -> 1679 bytes
-rw-r--r--doc/html/tutorial01/1_home_red_coding_godot_doc_math_direction.pngbin0 -> 3600 bytes
-rw-r--r--doc/html/tutorial01/2_home_red_coding_godot_doc_math_normals.pngbin0 -> 2452 bytes
-rw-r--r--doc/html/tutorial01/tutorial.css128
-rw-r--r--doc/html/tutorial01/tutorial.html902
-rw-r--r--doc/html/tutorial01/tutorial0x.pngbin0 -> 2056 bytes
-rw-r--r--doc/html/tutorial01/tutorial1x.pngbin0 -> 4122 bytes
-rw-r--r--doc/html/tutorial01/tutorial2x.pngbin0 -> 618 bytes
-rw-r--r--doc/html/tutorial01/tutorial3x.pngbin0 -> 754 bytes
-rw-r--r--doc/html/tutorial01/tutorial4x.pngbin0 -> 2961 bytes
14 files changed, 1730 insertions, 0 deletions
diff --git a/doc/html/@GDScript.html b/doc/html/@GDScript.html
new file mode 100644
index 0000000000..5d5d77ffbf
--- /dev/null
+++ b/doc/html/@GDScript.html
@@ -0,0 +1,93 @@
+<html><link href="main.css" rel="stylesheet" type="text/css" /><body><table class="top_table"><tr><td class="top_table"><image src="images/logo.png" /></td><td class="top_table"><a href="index.html">Index</a></td><td class="top_table"><a href="alphabetical.html">Classes</a></td><td class="top_table"><a href="category.html">Categories</a></td><td><a href="inheritance.html">Inheritance</a></td></tr></table><hr /><div class="class"><a name="@GDScript"><h3 class="title class_title">@GDScript</h3></a><div class="description class_description">
+ Built-in GDScript functions.
+ </div><br /><div class="category"><span class="category">Category: </span><a class="category_ref" href="category.html#CATEGORY_Core">Core</a></div><h4>Public Methods:</h4><table class="method_list"><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_sin">sin</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_cos">cos</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_tan">tan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_sinh">sinh</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_cosh">cosh</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_tanh">tanh</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_asin">asin</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_acos">acos</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_atan">atan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_atan2">atan2</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_sqrt">sqrt</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_fmod">fmod</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_fposmod">fposmod</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_floor">floor</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_ceil">ceil</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_round">round</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_abs">abs</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_sign">sign</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_pow">pow</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_log">log</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_exp">exp</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_isnan">isnan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_isinf">isinf</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_ease">ease</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>curve</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_decimals">decimals</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>step</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_stepify">stepify</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>step</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="int.html">int </a></td><td><span class="identifier funcdef"><a href="#@GDScript_rand">rand</a></span><span class="symbol"> (</span><span class="symbol">)</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_randf">randf</a></span><span class="symbol"> (</span><span class="symbol">)</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_rand_range">rand_range</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>from</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>to</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Array.html">Array </a></td><td><span class="identifier funcdef"><a href="#@GDScript_rand_seed">rand_seed</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>seed</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_deg2rad">deg2rad</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>deg</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_rad2deg">rad2deg</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>rad</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_linear2db">linear2db</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>nrg</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_db2linear">db2linear</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>db</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_max">max</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>a</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>b</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_min">min</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>a</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>b</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_clamp">clamp</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>val</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>min</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>max</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="int.html">int </a></td><td><span class="identifier funcdef"><a href="#@GDScript_nearest_po2">nearest_po2</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="int.html">int </a><span>val</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Object.html">Object </a></td><td><span class="identifier funcdef"><a href="#@GDScript_weakref">weakref</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="Object.html">Object </a><span>obj</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Object.html">Object </a></td><td><span class="identifier funcdef"><a href="#@GDScript_convert">convert</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><a class="datatype_existing" href="int.html">int </a><span>type</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="String.html">String </a></td><td><span class="identifier funcdef"><a href="#@GDScript_str">str</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Nil.html">Nil </a></td><td><span class="identifier funcdef"><a href="#@GDScript_print">print</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Nil.html">Nil </a></td><td><span class="identifier funcdef"><a href="#@GDScript_printerr">printerr</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Nil.html">Nil </a></td><td><span class="identifier funcdef"><a href="#@GDScript_printraw">printraw</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Array.html">Array </a></td><td><span class="identifier funcdef"><a href="#@GDScript_range">range</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></td></tr></table><h4>Description:</h4><div class="description">
+ This contains the list of built-in gdscript functions. Mostly math functions and other utilities. Everything else is expanded by objects.
+ </div><h4>Method Documentation:</h4><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_sin">@GDScript::sin</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Standard sine function.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_cos">@GDScript::cos</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Standard cosine function.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_tan">@GDScript::tan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Standard tangent function.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_sinh">@GDScript::sinh</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Hyperbolic sine.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_tanh">@GDScript::tanh</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Hyperbolic tangent.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_asin">@GDScript::asin</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Arc-sine.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_acos">@GDScript::acos</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Arc-cosine.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_atan">@GDScript::atan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Arc-tangent.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_atan2">@GDScript::atan2</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></div><div class="description">
+ Arc-tangent that takes a 2D vector as argument, retuns the full -pi to +pi range.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_sqrt">@GDScript::sqrt</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Square root.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_fmod">@GDScript::fmod</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></div><div class="description">
+ Module (remainder of x/y).
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_fposmod">@GDScript::fposmod</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></div><div class="description">
+ Module (remainder of x/y) that wraps equally in positive and negative.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_floor">@GDScript::floor</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Floor (rounds down to nearest integer).
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_ceil">@GDScript::ceil</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Ceiling (rounds up to nearest integer).
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_round">@GDScript::round</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Round to nearest integer.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_abs">@GDScript::abs</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Remove sign (works for integer and float).
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_sign">@GDScript::sign</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Return sign (-1 or +1).
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_pow">@GDScript::pow</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></div><div class="description">
+ Power function, x elevate to y.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_log">@GDScript::log</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Natural logarithm.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_exp">@GDScript::exp</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Exponential logarithm.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_isnan">@GDScript::isnan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Return true if the float is not a number.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_isinf">@GDScript::isinf</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
+ Return true if the float is infinite.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_ease">@GDScript::ease</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>curve</span><span class="symbol"> )</span></div><div class="description">
+ Easing function, based on exponent. 0 is constant, 1 is linear, 0 to 1 is ease-in, 1+ is ease out. Negative values are in-out/out in.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_decimals">@GDScript::decimals</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>step</span><span class="symbol"> )</span></div><div class="description">
+ Return the amount of decimals in the floating point value.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_stepify">@GDScript::stepify</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>step</span><span class="symbol"> )</span></div><div class="description">
+ Snap float value to a given step.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="int.html">int </a><span class="funcdecl"><a name="@GDScript_rand">@GDScript::rand</a></span><span class="symbol"> (</span><span class="symbol">)</span></div><div class="description">
+ Random value (integer).
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_randf">@GDScript::randf</a></span><span class="symbol"> (</span><span class="symbol">)</span></div><div class="description">
+ Random value (0 to 1 float).
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_rand_range">@GDScript::rand_range</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>from</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>to</span><span class="symbol"> )</span></div><div class="description">
+ Random range.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Array.html">Array </a><span class="funcdecl"><a name="@GDScript_rand_seed">@GDScript::rand_seed</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>seed</span><span class="symbol"> )</span></div><div class="description">
+ random from seed, pass a seed and an array with both number and new seed is returned.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_deg2rad">@GDScript::deg2rad</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>deg</span><span class="symbol"> )</span></div><div class="description">
+ Convert from degrees to radians.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_rad2deg">@GDScript::rad2deg</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>rad</span><span class="symbol"> )</span></div><div class="description">
+ Convert from radias to degrees.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_linear2db">@GDScript::linear2db</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>nrg</span><span class="symbol"> )</span></div><div class="description">
+ Convert from linear energy to decibels (audio).
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_db2linear">@GDScript::db2linear</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>db</span><span class="symbol"> )</span></div><div class="description">
+ Convert from decibels to linear energy (audio).
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_max">@GDScript::max</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>a</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>b</span><span class="symbol"> )</span></div><div class="description">
+ Return the maximum of two values.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_min">@GDScript::min</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>a</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>b</span><span class="symbol"> )</span></div><div class="description">
+ Return the minimum of two values.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_clamp">@GDScript::clamp</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>val</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>min</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>max</span><span class="symbol"> )</span></div><div class="description">
+ Clamp both values to a range.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="int.html">int </a><span class="funcdecl"><a name="@GDScript_nearest_po2">@GDScript::nearest_po2</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="int.html">int </a><span>val</span><span class="symbol"> )</span></div><div class="description">
+ Return the nearest larger power of 2 for an integer.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Object.html">Object </a><span class="funcdecl"><a name="@GDScript_weakref">@GDScript::weakref</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="Object.html">Object </a><span>obj</span><span class="symbol"> )</span></div><div class="description">
+ Return a weak reference to an object.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Object.html">Object </a><span class="funcdecl"><a name="@GDScript_convert">@GDScript::convert</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><a class="datatype_existing" href="int.html">int </a><span>type</span><span class="symbol"> )</span></div><div class="description">
+ Convert from a type to another in the best way possible. The "type" parameter uses the enum TYPE_* in Global Scope.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="String.html">String </a><span class="funcdecl"><a name="@GDScript_str">@GDScript::str</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></div><div class="description">
+ Convert one or more arguments to strings in the best way possible.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Nil.html">Nil </a><span class="funcdecl"><a name="@GDScript_print">@GDScript::print</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></div><div class="description">
+ Print one or more arguments to strings in the best way possible to a console line.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Nil.html">Nil </a><span class="funcdecl"><a name="@GDScript_printerr">@GDScript::printerr</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></div><div class="description">
+ Print one or more arguments to strings in the best way possible to standard error line.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Nil.html">Nil </a><span class="funcdecl"><a name="@GDScript_printraw">@GDScript::printraw</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></div><div class="description">
+ Print one or more arguments to strings in the best way possible to console. No newline is added at the end.
+ </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Array.html">Array </a><span class="funcdecl"><a name="@GDScript_range">@GDScript::range</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></div><div class="description">
+ Return an array with the given range. Range can be 1 argument N (0 to N-1), two arguments (initial, final-1) or three arguments (initial,final-1,increment).
+ </div></div></div><hr /><span>Copyright 2008-2010 Codenix SRL</span></body></html> \ No newline at end of file
diff --git a/doc/html/@Global Scope.html b/doc/html/@Global Scope.html
new file mode 100644
index 0000000000..3324383c3d
--- /dev/null
+++ b/doc/html/@Global Scope.html
@@ -0,0 +1,459 @@
+<html><link href="main.css" rel="stylesheet" type="text/css" /><body><table class="top_table"><tr><td class="top_table"><image src="images/logo.png" /></td><td class="top_table"><a href="index.html">Index</a></td><td class="top_table"><a href="alphabetical.html">Classes</a></td><td class="top_table"><a href="category.html">Categories</a></td><td><a href="inheritance.html">Inheritance</a></td></tr></table><hr /><div class="class"><a name="@Global Scope"><h3 class="title class_title">@Global Scope</h3></a><div class="description class_description">
+ Global scope constants and variables.
+ </div><br /><div class="category"><span class="category">Category: </span><a class="category_ref" href="category.html#CATEGORY_Core">Core</a></div><h4>Public Variables:</h4><div class="member_list"><li><div class="member"><a class="datatype_existing" href="Globals.html">Globals </a><span class="identifier member_name"> Globals </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="IP.html">IP </a><span class="identifier member_name"> IP </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="Geometry.html">Geometry </a><span class="identifier member_name"> Geometry </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="ResourceLoader.html">ResourceLoader </a><span class="identifier member_name"> ResourceLoader </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="ResourceSaver.html">ResourceSaver </a><span class="identifier member_name"> ResourceSaver </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="PathRemap.html">PathRemap </a><span class="identifier member_name"> PathRemap </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="OS.html">OS </a><span class="identifier member_name"> OS </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="TranslationServer.html">TranslationServer </a><span class="identifier member_name"> TranslationServer </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="TranslationServer.html">TranslationServer </a><span class="identifier member_name"> TS </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="SceneIO.html">SceneIO </a><span class="identifier member_name"> SceneIO </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="VisualServer.html">VisualServer </a><span class="identifier member_name"> VisualServer </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="VisualServer.html">VisualServer </a><span class="identifier member_name"> VS </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="AudioServer.html">AudioServer </a><span class="identifier member_name"> AudioServer </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="AudioServer.html">AudioServer </a><span class="identifier member_name"> AS </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="PhysicsServer.html">PhysicsServer </a><span class="identifier member_name"> PhysicsServer </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="PhysicsServer.html">PhysicsServer </a><span class="identifier member_name"> PS </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="Physics2DServer.html">Physics2DServer </a><span class="identifier member_name"> Physics2DServer </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="Physics2DServer.html">Physics2DServer </a><span class="identifier member_name"> PS2D </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="SpatialSound2DServer.html">SpatialSound2DServer </a><span class="identifier member_name"> SpatialSoundServer </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="SpatialSound2DServer.html">SpatialSound2DServer </a><span class="identifier member_name"> SS </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="SpatialSound2DServer.html">SpatialSound2DServer </a><span class="identifier member_name"> SpatialSound2DServer </span><span class="member_description">
+ </span></div></li><li><div class="member"><a class="datatype_existing" href="SpatialSound2DServer.html">SpatialSound2DServer </a><span class="identifier member_name"> SS2D </span><span class="member_description">
+ </span></div></li></div><h4>Constants:</h4><div class="constant_list"><li><div class="constant"><span class="identifier constant_name">MARGIN_LEFT </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">MARGIN_TOP </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">MARGIN_RIGHT </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">MARGIN_BOTTOM </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">VERTICAL </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">HORIZONTAL </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">HALIGN_LEFT </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">HALIGN_CENTER </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">HALIGN_RIGHT </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">VALIGN_TOP </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">VALIGN_CENTER </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">VALIGN_BOTTOM </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">SPKEY </span><span class="symbol">= </span><span class="constant_value">16777216 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ESCAPE </span><span class="symbol">= </span><span class="constant_value">16777217 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_TAB </span><span class="symbol">= </span><span class="constant_value">16777218 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BACKTAB </span><span class="symbol">= </span><span class="constant_value">16777219 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BACKSPACE </span><span class="symbol">= </span><span class="constant_value">16777220 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_RETURN </span><span class="symbol">= </span><span class="constant_value">16777221 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ENTER </span><span class="symbol">= </span><span class="constant_value">16777222 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_INSERT </span><span class="symbol">= </span><span class="constant_value">16777223 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DELETE </span><span class="symbol">= </span><span class="constant_value">16777224 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PAUSE </span><span class="symbol">= </span><span class="constant_value">16777225 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PRINT </span><span class="symbol">= </span><span class="constant_value">16777226 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SYSREQ </span><span class="symbol">= </span><span class="constant_value">16777227 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CLEAR </span><span class="symbol">= </span><span class="constant_value">16777228 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HOME </span><span class="symbol">= </span><span class="constant_value">16777229 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_END </span><span class="symbol">= </span><span class="constant_value">16777230 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LEFT </span><span class="symbol">= </span><span class="constant_value">16777231 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UP </span><span class="symbol">= </span><span class="constant_value">16777232 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_RIGHT </span><span class="symbol">= </span><span class="constant_value">16777233 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DOWN </span><span class="symbol">= </span><span class="constant_value">16777234 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PAGEUP </span><span class="symbol">= </span><span class="constant_value">16777235 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PAGEDOWN </span><span class="symbol">= </span><span class="constant_value">16777236 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SHIFT </span><span class="symbol">= </span><span class="constant_value">16777237 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CONTROL </span><span class="symbol">= </span><span class="constant_value">16777238 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_META </span><span class="symbol">= </span><span class="constant_value">16777239 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ALT </span><span class="symbol">= </span><span class="constant_value">16777240 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CAPSLOCK </span><span class="symbol">= </span><span class="constant_value">16777241 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_NUMLOCK </span><span class="symbol">= </span><span class="constant_value">16777242 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SCROLLLOCK </span><span class="symbol">= </span><span class="constant_value">16777243 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F1 </span><span class="symbol">= </span><span class="constant_value">16777244 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F2 </span><span class="symbol">= </span><span class="constant_value">16777245 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F3 </span><span class="symbol">= </span><span class="constant_value">16777246 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F4 </span><span class="symbol">= </span><span class="constant_value">16777247 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F5 </span><span class="symbol">= </span><span class="constant_value">16777248 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F6 </span><span class="symbol">= </span><span class="constant_value">16777249 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F7 </span><span class="symbol">= </span><span class="constant_value">16777250 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F8 </span><span class="symbol">= </span><span class="constant_value">16777251 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F9 </span><span class="symbol">= </span><span class="constant_value">16777252 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F10 </span><span class="symbol">= </span><span class="constant_value">16777253 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F11 </span><span class="symbol">= </span><span class="constant_value">16777254 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F12 </span><span class="symbol">= </span><span class="constant_value">16777255 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F13 </span><span class="symbol">= </span><span class="constant_value">16777256 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F14 </span><span class="symbol">= </span><span class="constant_value">16777257 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F15 </span><span class="symbol">= </span><span class="constant_value">16777258 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F16 </span><span class="symbol">= </span><span class="constant_value">16777259 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_ENTER </span><span class="symbol">= </span><span class="constant_value">16777344 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_MULTIPLY </span><span class="symbol">= </span><span class="constant_value">16777345 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_DIVIDE </span><span class="symbol">= </span><span class="constant_value">16777346 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_SUBSTRACT </span><span class="symbol">= </span><span class="constant_value">16777347 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_PERIOD </span><span class="symbol">= </span><span class="constant_value">16777348 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_ADD </span><span class="symbol">= </span><span class="constant_value">16777349 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_0 </span><span class="symbol">= </span><span class="constant_value">16777350 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_1 </span><span class="symbol">= </span><span class="constant_value">16777351 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_2 </span><span class="symbol">= </span><span class="constant_value">16777352 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_3 </span><span class="symbol">= </span><span class="constant_value">16777353 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_4 </span><span class="symbol">= </span><span class="constant_value">16777354 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_5 </span><span class="symbol">= </span><span class="constant_value">16777355 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_6 </span><span class="symbol">= </span><span class="constant_value">16777356 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_7 </span><span class="symbol">= </span><span class="constant_value">16777357 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_8 </span><span class="symbol">= </span><span class="constant_value">16777358 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_9 </span><span class="symbol">= </span><span class="constant_value">16777359 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SUPER_L </span><span class="symbol">= </span><span class="constant_value">16777260 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SUPER_R </span><span class="symbol">= </span><span class="constant_value">16777261 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MENU </span><span class="symbol">= </span><span class="constant_value">16777262 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HYPER_L </span><span class="symbol">= </span><span class="constant_value">16777263 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HYPER_R </span><span class="symbol">= </span><span class="constant_value">16777264 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HELP </span><span class="symbol">= </span><span class="constant_value">16777265 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DIRECTION_L </span><span class="symbol">= </span><span class="constant_value">16777266 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DIRECTION_R </span><span class="symbol">= </span><span class="constant_value">16777267 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BACK </span><span class="symbol">= </span><span class="constant_value">16777280 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_FORWARD </span><span class="symbol">= </span><span class="constant_value">16777281 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_STOP </span><span class="symbol">= </span><span class="constant_value">16777282 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_REFRESH </span><span class="symbol">= </span><span class="constant_value">16777283 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_VOLUMEDOWN </span><span class="symbol">= </span><span class="constant_value">16777284 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_VOLUMEMUTE </span><span class="symbol">= </span><span class="constant_value">16777285 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_VOLUMEUP </span><span class="symbol">= </span><span class="constant_value">16777286 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BASSBOOST </span><span class="symbol">= </span><span class="constant_value">16777287 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BASSUP </span><span class="symbol">= </span><span class="constant_value">16777288 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BASSDOWN </span><span class="symbol">= </span><span class="constant_value">16777289 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_TREBLEUP </span><span class="symbol">= </span><span class="constant_value">16777290 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_TREBLEDOWN </span><span class="symbol">= </span><span class="constant_value">16777291 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MEDIAPLAY </span><span class="symbol">= </span><span class="constant_value">16777292 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MEDIASTOP </span><span class="symbol">= </span><span class="constant_value">16777293 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MEDIAPREVIOUS </span><span class="symbol">= </span><span class="constant_value">16777294 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MEDIANEXT </span><span class="symbol">= </span><span class="constant_value">16777295 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MEDIARECORD </span><span class="symbol">= </span><span class="constant_value">16777296 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HOMEPAGE </span><span class="symbol">= </span><span class="constant_value">16777297 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_FAVORITES </span><span class="symbol">= </span><span class="constant_value">16777298 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SEARCH </span><span class="symbol">= </span><span class="constant_value">16777299 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_STANDBY </span><span class="symbol">= </span><span class="constant_value">16777300 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OPENURL </span><span class="symbol">= </span><span class="constant_value">16777301 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHMAIL </span><span class="symbol">= </span><span class="constant_value">16777302 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHMEDIA </span><span class="symbol">= </span><span class="constant_value">16777303 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH0 </span><span class="symbol">= </span><span class="constant_value">16777304 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH1 </span><span class="symbol">= </span><span class="constant_value">16777305 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH2 </span><span class="symbol">= </span><span class="constant_value">16777306 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH3 </span><span class="symbol">= </span><span class="constant_value">16777307 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH4 </span><span class="symbol">= </span><span class="constant_value">16777308 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH5 </span><span class="symbol">= </span><span class="constant_value">16777309 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH6 </span><span class="symbol">= </span><span class="constant_value">16777310 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH7 </span><span class="symbol">= </span><span class="constant_value">16777311 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH8 </span><span class="symbol">= </span><span class="constant_value">16777312 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH9 </span><span class="symbol">= </span><span class="constant_value">16777313 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHA </span><span class="symbol">= </span><span class="constant_value">16777314 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHB </span><span class="symbol">= </span><span class="constant_value">16777315 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHC </span><span class="symbol">= </span><span class="constant_value">16777316 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHD </span><span class="symbol">= </span><span class="constant_value">16777317 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHE </span><span class="symbol">= </span><span class="constant_value">16777318 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHF </span><span class="symbol">= </span><span class="constant_value">16777319 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UNKNOWN </span><span class="symbol">= </span><span class="constant_value">33554431 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SPACE </span><span class="symbol">= </span><span class="constant_value">32 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EXCLAM </span><span class="symbol">= </span><span class="constant_value">33 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_QUOTEDBL </span><span class="symbol">= </span><span class="constant_value">34 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_NUMBERSIGN </span><span class="symbol">= </span><span class="constant_value">35 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DOLLAR </span><span class="symbol">= </span><span class="constant_value">36 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PERCENT </span><span class="symbol">= </span><span class="constant_value">37 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_AMPERSAND </span><span class="symbol">= </span><span class="constant_value">38 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_APOSTROPHE </span><span class="symbol">= </span><span class="constant_value">39 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PARENLEFT </span><span class="symbol">= </span><span class="constant_value">40 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PARENRIGHT </span><span class="symbol">= </span><span class="constant_value">41 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ASTERISK </span><span class="symbol">= </span><span class="constant_value">42 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PLUS </span><span class="symbol">= </span><span class="constant_value">43 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_COMMA </span><span class="symbol">= </span><span class="constant_value">44 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MINUS </span><span class="symbol">= </span><span class="constant_value">45 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PERIOD </span><span class="symbol">= </span><span class="constant_value">46 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SLASH </span><span class="symbol">= </span><span class="constant_value">47 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_0 </span><span class="symbol">= </span><span class="constant_value">48 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_1 </span><span class="symbol">= </span><span class="constant_value">49 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_2 </span><span class="symbol">= </span><span class="constant_value">50 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_3 </span><span class="symbol">= </span><span class="constant_value">51 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_4 </span><span class="symbol">= </span><span class="constant_value">52 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_5 </span><span class="symbol">= </span><span class="constant_value">53 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_6 </span><span class="symbol">= </span><span class="constant_value">54 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_7 </span><span class="symbol">= </span><span class="constant_value">55 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_8 </span><span class="symbol">= </span><span class="constant_value">56 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_9 </span><span class="symbol">= </span><span class="constant_value">57 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_COLON </span><span class="symbol">= </span><span class="constant_value">58 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SEMICOLON </span><span class="symbol">= </span><span class="constant_value">59 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LESS </span><span class="symbol">= </span><span class="constant_value">60 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EQUAL </span><span class="symbol">= </span><span class="constant_value">61 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_GREATER </span><span class="symbol">= </span><span class="constant_value">62 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_QUESTION </span><span class="symbol">= </span><span class="constant_value">63 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_AT </span><span class="symbol">= </span><span class="constant_value">64 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_A </span><span class="symbol">= </span><span class="constant_value">65 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_B </span><span class="symbol">= </span><span class="constant_value">66 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_C </span><span class="symbol">= </span><span class="constant_value">67 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_D </span><span class="symbol">= </span><span class="constant_value">68 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_E </span><span class="symbol">= </span><span class="constant_value">69 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F </span><span class="symbol">= </span><span class="constant_value">70 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_G </span><span class="symbol">= </span><span class="constant_value">71 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_H </span><span class="symbol">= </span><span class="constant_value">72 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_I </span><span class="symbol">= </span><span class="constant_value">73 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_J </span><span class="symbol">= </span><span class="constant_value">74 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_K </span><span class="symbol">= </span><span class="constant_value">75 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_L </span><span class="symbol">= </span><span class="constant_value">76 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_M </span><span class="symbol">= </span><span class="constant_value">77 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_N </span><span class="symbol">= </span><span class="constant_value">78 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_O </span><span class="symbol">= </span><span class="constant_value">79 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_P </span><span class="symbol">= </span><span class="constant_value">80 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_Q </span><span class="symbol">= </span><span class="constant_value">81 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_R </span><span class="symbol">= </span><span class="constant_value">82 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_S </span><span class="symbol">= </span><span class="constant_value">83 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_T </span><span class="symbol">= </span><span class="constant_value">84 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_U </span><span class="symbol">= </span><span class="constant_value">85 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_V </span><span class="symbol">= </span><span class="constant_value">86 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_W </span><span class="symbol">= </span><span class="constant_value">87 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_X </span><span class="symbol">= </span><span class="constant_value">88 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_Y </span><span class="symbol">= </span><span class="constant_value">89 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_Z </span><span class="symbol">= </span><span class="constant_value">90 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BRACKETLEFT </span><span class="symbol">= </span><span class="constant_value">91 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BACKSLASH </span><span class="symbol">= </span><span class="constant_value">92 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BRACKETRIGHT </span><span class="symbol">= </span><span class="constant_value">93 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ASCIICIRCUM </span><span class="symbol">= </span><span class="constant_value">94 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UNDERSCORE </span><span class="symbol">= </span><span class="constant_value">95 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_QUOTELEFT </span><span class="symbol">= </span><span class="constant_value">96 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BRACELEFT </span><span class="symbol">= </span><span class="constant_value">123 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BAR </span><span class="symbol">= </span><span class="constant_value">124 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BRACERIGHT </span><span class="symbol">= </span><span class="constant_value">125 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ASCIITILDE </span><span class="symbol">= </span><span class="constant_value">126 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_NOBREAKSPACE </span><span class="symbol">= </span><span class="constant_value">160 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EXCLAMDOWN </span><span class="symbol">= </span><span class="constant_value">161 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CENT </span><span class="symbol">= </span><span class="constant_value">162 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_STERLING </span><span class="symbol">= </span><span class="constant_value">163 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CURRENCY </span><span class="symbol">= </span><span class="constant_value">164 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_YEN </span><span class="symbol">= </span><span class="constant_value">165 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BROKENBAR </span><span class="symbol">= </span><span class="constant_value">166 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SECTION </span><span class="symbol">= </span><span class="constant_value">167 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DIAERESIS </span><span class="symbol">= </span><span class="constant_value">168 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_COPYRIGHT </span><span class="symbol">= </span><span class="constant_value">169 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ORDFEMININE </span><span class="symbol">= </span><span class="constant_value">170 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_GUILLEMOTLEFT </span><span class="symbol">= </span><span class="constant_value">171 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_NOTSIGN </span><span class="symbol">= </span><span class="constant_value">172 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HYPHEN </span><span class="symbol">= </span><span class="constant_value">173 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_REGISTERED </span><span class="symbol">= </span><span class="constant_value">174 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MACRON </span><span class="symbol">= </span><span class="constant_value">175 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DEGREE </span><span class="symbol">= </span><span class="constant_value">176 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PLUSMINUS </span><span class="symbol">= </span><span class="constant_value">177 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_TWOSUPERIOR </span><span class="symbol">= </span><span class="constant_value">178 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_THREESUPERIOR </span><span class="symbol">= </span><span class="constant_value">179 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ACUTE </span><span class="symbol">= </span><span class="constant_value">180 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MU </span><span class="symbol">= </span><span class="constant_value">181 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PARAGRAPH </span><span class="symbol">= </span><span class="constant_value">182 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PERIODCENTERED </span><span class="symbol">= </span><span class="constant_value">183 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CEDILLA </span><span class="symbol">= </span><span class="constant_value">184 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ONESUPERIOR </span><span class="symbol">= </span><span class="constant_value">185 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASCULINE </span><span class="symbol">= </span><span class="constant_value">186 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_GUILLEMOTRIGHT </span><span class="symbol">= </span><span class="constant_value">187 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ONEQUARTER </span><span class="symbol">= </span><span class="constant_value">188 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ONEHALF </span><span class="symbol">= </span><span class="constant_value">189 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_THREEQUARTERS </span><span class="symbol">= </span><span class="constant_value">190 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_QUESTIONDOWN </span><span class="symbol">= </span><span class="constant_value">191 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_AGRAVE </span><span class="symbol">= </span><span class="constant_value">192 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_AACUTE </span><span class="symbol">= </span><span class="constant_value">193 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ACIRCUMFLEX </span><span class="symbol">= </span><span class="constant_value">194 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ATILDE </span><span class="symbol">= </span><span class="constant_value">195 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ADIAERESIS </span><span class="symbol">= </span><span class="constant_value">196 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ARING </span><span class="symbol">= </span><span class="constant_value">197 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_AE </span><span class="symbol">= </span><span class="constant_value">198 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CCEDILLA </span><span class="symbol">= </span><span class="constant_value">199 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EGRAVE </span><span class="symbol">= </span><span class="constant_value">200 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EACUTE </span><span class="symbol">= </span><span class="constant_value">201 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ECIRCUMFLEX </span><span class="symbol">= </span><span class="constant_value">202 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EDIAERESIS </span><span class="symbol">= </span><span class="constant_value">203 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_IGRAVE </span><span class="symbol">= </span><span class="constant_value">204 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_IACUTE </span><span class="symbol">= </span><span class="constant_value">205 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ICIRCUMFLEX </span><span class="symbol">= </span><span class="constant_value">206 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_IDIAERESIS </span><span class="symbol">= </span><span class="constant_value">207 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ETH </span><span class="symbol">= </span><span class="constant_value">208 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_NTILDE </span><span class="symbol">= </span><span class="constant_value">209 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OGRAVE </span><span class="symbol">= </span><span class="constant_value">210 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OACUTE </span><span class="symbol">= </span><span class="constant_value">211 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OCIRCUMFLEX </span><span class="symbol">= </span><span class="constant_value">212 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OTILDE </span><span class="symbol">= </span><span class="constant_value">213 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ODIAERESIS </span><span class="symbol">= </span><span class="constant_value">214 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MULTIPLY </span><span class="symbol">= </span><span class="constant_value">215 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OOBLIQUE </span><span class="symbol">= </span><span class="constant_value">216 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UGRAVE </span><span class="symbol">= </span><span class="constant_value">217 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UACUTE </span><span class="symbol">= </span><span class="constant_value">218 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UCIRCUMFLEX </span><span class="symbol">= </span><span class="constant_value">219 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UDIAERESIS </span><span class="symbol">= </span><span class="constant_value">220 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_YACUTE </span><span class="symbol">= </span><span class="constant_value">221 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_THORN </span><span class="symbol">= </span><span class="constant_value">222 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SSHARP </span><span class="symbol">= </span><span class="constant_value">223 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DIVISION </span><span class="symbol">= </span><span class="constant_value">247 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_YDIAERESIS </span><span class="symbol">= </span><span class="constant_value">255 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CODE_MASK </span><span class="symbol">= </span><span class="constant_value">33554431 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MODIFIER_MASK </span><span class="symbol">= </span><span class="constant_value">-16777216 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_SHIFT </span><span class="symbol">= </span><span class="constant_value">33554432 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_ALT </span><span class="symbol">= </span><span class="constant_value">67108864 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_META </span><span class="symbol">= </span><span class="constant_value">134217728 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_CTRL </span><span class="symbol">= </span><span class="constant_value">268435456 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_KPAD </span><span class="symbol">= </span><span class="constant_value">536870912 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_GROUP_SWITCH </span><span class="symbol">= </span><span class="constant_value">1073741824 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_LEFT </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_RIGHT </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_MIDDLE </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_WHEEL_UP </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_WHEEL_DOWN </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_MASK_LEFT </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_MASK_RIGHT </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_MASK_MIDDLE </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_0 </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_1 </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_2 </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_3 </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_4 </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_5 </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_6 </span><span class="symbol">= </span><span class="constant_value">6 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_7 </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_8 </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_9 </span><span class="symbol">= </span><span class="constant_value">9 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_10 </span><span class="symbol">= </span><span class="constant_value">10 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_11 </span><span class="symbol">= </span><span class="constant_value">11 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_12 </span><span class="symbol">= </span><span class="constant_value">12 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_13 </span><span class="symbol">= </span><span class="constant_value">13 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_14 </span><span class="symbol">= </span><span class="constant_value">14 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_15 </span><span class="symbol">= </span><span class="constant_value">15 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_MAX </span><span class="symbol">= </span><span class="constant_value">16 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SNES_A </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SNES_B </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SNES_X </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SNES_Y </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SONY_CIRCLE </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SONY_X </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SONY_SQUARE </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SONY_TRIANGLE </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SEGA_B </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SEGA_A </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SEGA_X </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SEGA_Y </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_XBOX_B </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_XBOX_A </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_XBOX_X </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_XBOX_Y </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DS_A </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DS_B </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DS_X </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DS_Y </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SELECT </span><span class="symbol">= </span><span class="constant_value">10 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_START </span><span class="symbol">= </span><span class="constant_value">11 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DPAD_UP </span><span class="symbol">= </span><span class="constant_value">12 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DPAD_DOWN </span><span class="symbol">= </span><span class="constant_value">13 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DPAD_LEFT </span><span class="symbol">= </span><span class="constant_value">14 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DPAD_RIGHT </span><span class="symbol">= </span><span class="constant_value">15 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_L </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_L2 </span><span class="symbol">= </span><span class="constant_value">6 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_L3 </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_R </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_R2 </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_R3 </span><span class="symbol">= </span><span class="constant_value">9 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_0 </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_1 </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_2 </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_3 </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_4 </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_5 </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_6 </span><span class="symbol">= </span><span class="constant_value">6 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_7 </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_MAX </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_0_X </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_0_Y </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_1_X </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_1_Y </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_2_X </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_2_Y </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">OK </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">FAILED </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_UNAVAILABLE </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_UNCONFIGURED </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_UNAUTHORIZED </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_PARAMETER_RANGE_ERROR </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_OUT_OF_MEMORY </span><span class="symbol">= </span><span class="constant_value">6 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_NOT_FOUND </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_BAD_DRIVE </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_BAD_PATH </span><span class="symbol">= </span><span class="constant_value">9 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_NO_PERMISSION </span><span class="symbol">= </span><span class="constant_value">10 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_ALREADY_IN_USE </span><span class="symbol">= </span><span class="constant_value">11 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_CANT_OPEN </span><span class="symbol">= </span><span class="constant_value">12 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_CANT_WRITE </span><span class="symbol">= </span><span class="constant_value">13 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_CANT_READ </span><span class="symbol">= </span><span class="constant_value">14 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_UNRECOGNIZED </span><span class="symbol">= </span><span class="constant_value">15 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_CORRUPT </span><span class="symbol">= </span><span class="constant_value">16 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_EOF </span><span class="symbol">= </span><span class="constant_value">17 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_CANT_OPEN </span><span class="symbol">= </span><span class="constant_value">18 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_CANT_CREATE </span><span class="symbol">= </span><span class="constant_value">19 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERROR_QUERY_FAILED </span><span class="symbol">= </span><span class="constant_value">20 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_ALREADY_IN_USE </span><span class="symbol">= </span><span class="constant_value">21 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_LOCKED </span><span class="symbol">= </span><span class="constant_value">22 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_TIMEOUT </span><span class="symbol">= </span><span class="constant_value">23 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_CANT_AQUIRE_RESOURCE </span><span class="symbol">= </span><span class="constant_value">24 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_INVALID_DATA </span><span class="symbol">= </span><span class="constant_value">26 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_INVALID_PARAMETER </span><span class="symbol">= </span><span class="constant_value">27 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_ALREADY_EXISTS </span><span class="symbol">= </span><span class="constant_value">28 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_DOES_NOT_EXIST </span><span class="symbol">= </span><span class="constant_value">29 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_DATABASE_CANT_READ </span><span class="symbol">= </span><span class="constant_value">30 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_DATABASE_CANT_WRITE </span><span class="symbol">= </span><span class="constant_value">31 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_COMPILATION_FAILED </span><span class="symbol">= </span><span class="constant_value">32 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_METHOD_NOT_FOUND </span><span class="symbol">= </span><span class="constant_value">33 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_LINK_FAILED </span><span class="symbol">= </span><span class="constant_value">34 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_SCRIPT_FAILED </span><span class="symbol">= </span><span class="constant_value">35 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_CYCLIC_LINK </span><span class="symbol">= </span><span class="constant_value">36 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_BUSY </span><span class="symbol">= </span><span class="constant_value">40 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_HELP </span><span class="symbol">= </span><span class="constant_value">42 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_BUG </span><span class="symbol">= </span><span class="constant_value">43 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_WTF </span><span class="symbol">= </span><span class="constant_value">45 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_NONE </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ No hint for edited property.
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_RANGE </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_EXP_RANGE </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ Hint string is an exponential range, defined as "min,max" or "min,max,step". This is valid for integers and floats.
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_ENUM </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ Property hint is an enumerated value, like "Hello,Something,Else". This is valid for integers, floats and strings properties.
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_LENGTH </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_FLAGS </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
+ Property hint is a bitmask description, for bits 0,1,2,3 abd 5 the hint would be like "Bit0,Bit1,Bit2,Bit3,,Bit5". Valid only for integers.
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_FILE </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
+ String property is a file (so pop up a file dialog when edited). Hint string can be a set of wildcards like "*.doc".
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_DIR </span><span class="symbol">= </span><span class="constant_value">9 </span><span class="constant_description">
+ String property is a directory (so pop up a file dialog when edited).
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_RESOURCE_TYPE </span><span class="symbol">= </span><span class="constant_value">10 </span><span class="constant_description">
+ String property is a resource, so open the resource popup menu when edited.
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_USAGE_STORAGE </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ Property will be used as storage (default).
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_USAGE_STORAGE </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ Property will be used as storage (default).
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_USAGE_EDITOR </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ Property will be visible in editor (default).
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_USAGE_NETWORK </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_USAGE_DEFAULT </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
+ Default usage (storage and editor).
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_NIL </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_BOOL </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_INT </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_REAL </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_STRING </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_VECTOR2 </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_RECT2 </span><span class="symbol">= </span><span class="constant_value">6 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_VECTOR3 </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_MATRIX32 </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_PLANE </span><span class="symbol">= </span><span class="constant_value">9 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_QUAT </span><span class="symbol">= </span><span class="constant_value">10 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_AABB </span><span class="symbol">= </span><span class="constant_value">11 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_MATRIX3 </span><span class="symbol">= </span><span class="constant_value">12 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_TRANSFORM </span><span class="symbol">= </span><span class="constant_value">13 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_COLOR </span><span class="symbol">= </span><span class="constant_value">14 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_IMAGE </span><span class="symbol">= </span><span class="constant_value">15 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_NODE_PATH </span><span class="symbol">= </span><span class="constant_value">16 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_RID </span><span class="symbol">= </span><span class="constant_value">17 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_OBJECT </span><span class="symbol">= </span><span class="constant_value">18 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_INPUT_EVENT </span><span class="symbol">= </span><span class="constant_value">19 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_DICTIONARY </span><span class="symbol">= </span><span class="constant_value">20 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_ARRAY </span><span class="symbol">= </span><span class="constant_value">21 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_RAW_ARRAY </span><span class="symbol">= </span><span class="constant_value">22 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_INT_ARRAY </span><span class="symbol">= </span><span class="constant_value">23 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_REAL_ARRAY </span><span class="symbol">= </span><span class="constant_value">24 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_STRING_ARRAY </span><span class="symbol">= </span><span class="constant_value">25 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_VECTOR2_ARRAY </span><span class="symbol">= </span><span class="constant_value">26 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_VECTOR3_ARRAY </span><span class="symbol">= </span><span class="constant_value">27 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_COLOR_ARRAY </span><span class="symbol">= </span><span class="constant_value">28 </span><span class="constant_description">
+ </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_MAX </span><span class="symbol">= </span><span class="constant_value">29 </span><span class="constant_description">
+ </span></div></li></div><h4>Description:</h4><div class="description">
+ Global scope constants and variables. This is all that resides in the globals, constants regarding error codes, scancodes, property hints, etc. It's not much.
+ Singletons are also documented here, since they can be accessed from anywhere.
+ </div><h4>Method Documentation:</h4></div><hr /><span>Copyright 2008-2010 Codenix SRL</span></body></html> \ No newline at end of file
diff --git a/doc/html/@Squirrel.html b/doc/html/@Squirrel.html
new file mode 100644
index 0000000000..ad4aaa49d8
--- /dev/null
+++ b/doc/html/@Squirrel.html
@@ -0,0 +1,2 @@
+<html><link href="main.css" rel="stylesheet" type="text/css" /><body><table class="top_table"><tr><td class="top_table"><image src="images/logo.png" /></td><td class="top_table"><a href="index.html">Index</a></td><td class="top_table"><a href="alphabetical.html">Classes</a></td><td class="top_table"><a href="category.html">Categories</a></td><td><a href="inheritance.html">Inheritance</a></td></tr></table><hr /><div class="class"><a name="@Squirrel"><h3 class="title class_title">@Squirrel</h3></a><div class="description class_description">
+ </div><br /><div class="category"><span class="category">Category: </span><a class="category_ref" href="category.html#CATEGORY_Core">Core</a></div><h4>Method Documentation:</h4></div><hr /><span>Copyright 2008-2010 Codenix SRL</span></body></html> \ No newline at end of file
diff --git a/doc/html/main.css b/doc/html/main.css
new file mode 100644
index 0000000000..a76e6bbed8
--- /dev/null
+++ b/doc/html/main.css
@@ -0,0 +1,146 @@
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV, SPAN {
+ font-family: Arial, Geneva, Helvetica, sans-serif;
+}
+
+a {
+
+ text-decoration: none;
+
+}
+
+a:hover {
+
+ text-decoration: underline;
+}
+
+td.top_table {
+
+ padding: 5px;
+}
+
+div.method_doc {
+
+ padding-bottom: 30px;
+}
+
+div.method_description {
+ margin-left: 30px;
+}
+
+list.inh_class_list {
+ margin-left: 30px;
+
+}
+
+div.inh_class_list {
+ margin-left: 30px;
+
+}
+
+div.method_doc div.method {
+
+ font-size: 12pt;
+ font-weight: bold;
+}
+
+span.funcdecl {
+
+ color: #202060;
+}
+
+span.funcdef {
+
+ color: #202060;
+}
+
+
+span.qualifier {
+
+ font-weight: bold;
+}
+
+
+span.symbol {
+
+ /*font-weight: bold;*/
+ color: #471870;
+}
+
+
+span.datatype {
+
+ color: #6a1533;
+}
+
+tr.category_title {
+
+ background-color: #333333;
+}
+a.category_title {
+ font-weight: bold;
+ color: #FFFFFF;
+}
+
+div.method_list {
+
+ margin-left: 30px;
+}
+
+div.constant_list {
+
+ margin-left: 30px;
+}
+
+div.member_list {
+
+ margin-left: 30px;
+}
+
+div.description {
+
+ margin-left: 30px;
+}
+
+div.class_description {
+
+ margin-left: 30px;
+}
+
+div.method_list li div {
+
+ display: inline;
+}
+
+div.member_list li div.member {
+
+ display: inline;
+}
+
+div.constant_list li div.constant {
+
+ display: inline;
+}
+
+span.member_description {
+
+ font-style: italic;
+ color: grey;
+}
+
+span.constant_description {
+
+ font-style: italic;
+ color: grey;
+}
+
+span.identifier {
+
+ font-weight: bold;
+}
+
+
+table.class_table td {
+
+ vertical-align: top;
+}
+
diff --git a/doc/html/tutorial01/0_home_red_coding_godot_doc_math_position.png b/doc/html/tutorial01/0_home_red_coding_godot_doc_math_position.png
new file mode 100644
index 0000000000..df52c05462
--- /dev/null
+++ b/doc/html/tutorial01/0_home_red_coding_godot_doc_math_position.png
Binary files differ
diff --git a/doc/html/tutorial01/1_home_red_coding_godot_doc_math_direction.png b/doc/html/tutorial01/1_home_red_coding_godot_doc_math_direction.png
new file mode 100644
index 0000000000..5b58274bcb
--- /dev/null
+++ b/doc/html/tutorial01/1_home_red_coding_godot_doc_math_direction.png
Binary files differ
diff --git a/doc/html/tutorial01/2_home_red_coding_godot_doc_math_normals.png b/doc/html/tutorial01/2_home_red_coding_godot_doc_math_normals.png
new file mode 100644
index 0000000000..73681a58ce
--- /dev/null
+++ b/doc/html/tutorial01/2_home_red_coding_godot_doc_math_normals.png
Binary files differ
diff --git a/doc/html/tutorial01/tutorial.css b/doc/html/tutorial01/tutorial.css
new file mode 100644
index 0000000000..a518c6dff7
--- /dev/null
+++ b/doc/html/tutorial01/tutorial.css
@@ -0,0 +1,128 @@
+
+/* start css.sty */
+.cmr-7{font-size:70%;}
+.cmmi-7{font-size:70%;font-style: italic;}
+.cmmi-10{font-style: italic;}
+.ectt-1000{ font-family: monospace;}
+.ectt-1000{ font-family: monospace;}
+.ectt-1000{ font-family: monospace;}
+.ectt-1000{ font-family: monospace;}
+.ectt-1000{ font-family: monospace;}
+.ecti-1000{ font-style: italic;}
+.ecti-1000{ font-style: italic;}
+.ecti-1000{ font-style: italic;}
+.ecti-1000{ font-style: italic;}
+.ecti-1000{ font-style: italic;}
+.ecti-0700{font-size:70%; font-style: italic;}
+.ecti-0700{ font-style: italic;}
+.ecti-0700{ font-style: italic;}
+.ecti-0700{ font-style: italic;}
+.ecti-0700{ font-style: italic;}
+.ecrm-0700{font-size:70%;}
+p.noindent { text-indent: 0em }
+td p.noindent { text-indent: 0em; margin-top:0em; }
+p.nopar { text-indent: 0em; }
+p.indent{ text-indent: 1.5em }
+@media print {div.crosslinks {visibility:hidden;}}
+a img { border-top: 0; border-left: 0; border-right: 0; }
+center { margin-top:1em; margin-bottom:1em; }
+td center { margin-top:0em; margin-bottom:0em; }
+.Canvas { position:relative; }
+img.math{vertical-align:middle;}
+li p.indent { text-indent: 0em }
+.enumerate1 {list-style-type:decimal;}
+.enumerate2 {list-style-type:lower-alpha;}
+.enumerate3 {list-style-type:lower-roman;}
+.enumerate4 {list-style-type:upper-alpha;}
+div.newtheorem { margin-bottom: 2em; margin-top: 2em;}
+.obeylines-h,.obeylines-v {white-space: nowrap; }
+div.obeylines-v p { margin-top:0; margin-bottom:0; }
+.overline{ text-decoration:overline; }
+.overline img{ border-top: 1px solid black; }
+td.displaylines {text-align:center; white-space:nowrap;}
+.centerline {text-align:center;}
+.rightline {text-align:right;}
+div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; }
+.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
+div.fbox {display:table}
+div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
+table.minipage{width:100%;}
+div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;}
+div.center div {text-align: left;}
+div.flushright, div.flushright div.flushright {text-align: right;}
+div.flushright div {text-align: left;}
+div.flushleft {text-align: left;}
+.underline{ text-decoration:underline; }
+.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; }
+.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
+.framebox-c {text-align:center;}
+.framebox-l {text-align:left;}
+.framebox-r {text-align:right;}
+span.thank-mark{ vertical-align: super }
+span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; }
+div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; }
+table.tabular td p{margin-top:0em;}
+table.tabular {margin-left: auto; margin-right: auto;}
+div.td00{ margin-left:0pt; margin-right:0pt; }
+div.td01{ margin-left:0pt; margin-right:5pt; }
+div.td10{ margin-left:5pt; margin-right:0pt; }
+div.td11{ margin-left:5pt; margin-right:5pt; }
+table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
+td.td00{ padding-left:0pt; padding-right:0pt; }
+td.td01{ padding-left:0pt; padding-right:5pt; }
+td.td10{ padding-left:5pt; padding-right:0pt; }
+td.td11{ padding-left:5pt; padding-right:5pt; }
+table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
+.hline hr, .cline hr{ height : 1px; margin:0px; }
+.tabbing-right {text-align:right;}
+span.TEX {letter-spacing: -0.125em; }
+span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;}
+a span.TEX span.E {text-decoration: none; }
+span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;}
+span.LATEX span.TEX{ position:relative; left: -0.4em; }
+div.float img, div.float .caption {text-align:center;}
+div.figure img, div.figure .caption {text-align:center;}
+.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
+.marginpar p{margin-top:0.4em; margin-bottom:0.4em;}
+table.equation {width:100%;}
+.equation td{text-align:center; }
+td.equation { margin-top:1em; margin-bottom:1em; }
+td.equation-label { width:5%; text-align:center; }
+td.eqnarray4 { width:5%; white-space: normal; }
+td.eqnarray2 { width:5%; }
+table.eqnarray-star, table.eqnarray {width:100%;}
+div.eqnarray{text-align:center;}
+div.array {text-align:center;}
+div.pmatrix {text-align:center;}
+table.pmatrix {width:100%;}
+span.pmatrix img{vertical-align:middle;}
+div.pmatrix {text-align:center;}
+table.pmatrix {width:100%;}
+img.cdots{vertical-align:middle;}
+.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;}
+.index-item, .index-subitem, .index-subsubitem {display:block}
+.caption td.id{font-weight: bold; white-space: nowrap; }
+table.caption {text-align:center;}
+h1.partHead{text-align: center}
+p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
+p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
+.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;}
+.subparagraphHead, .likesubparagraphHead { font-weight: bold;}
+.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;}
+.verse{white-space:nowrap; margin-left:2em}
+div.maketitle {text-align:center;}
+h2.titleHead{text-align:center;}
+div.maketitle{ margin-bottom: 2em; }
+div.author, div.date {text-align:center;}
+div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; }
+div.author{white-space: nowrap;}
+.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; }
+.abstract p {margin-left:5%; margin-right:5%;}
+table.abstract {width:100%;}
+.lstlisting .label{margin-right:0.5em; }
+div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; }
+div.lstinputlisting{ font-family: monospace; white-space: nowrap; }
+.lstinputlisting .label{margin-right:0.5em;}
+.figure img.graphics {margin-left:10%;}
+/* end css.sty */
+
diff --git a/doc/html/tutorial01/tutorial.html b/doc/html/tutorial01/tutorial.html
new file mode 100644
index 0000000000..45c0258709
--- /dev/null
+++ b/doc/html/tutorial01/tutorial.html
@@ -0,0 +1,902 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html >
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)">
+<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)">
+<!-- html -->
+<meta name="src" content="tutorial.tex">
+<meta name="date" content="2009-10-07 00:28:00">
+<link rel="stylesheet" type="text/css" href="tutorial.css">
+</head><body
+>
+ <h3 class="sectionHead"><span class="titlemark">1 </span> <a
+ id="x1-10001"></a>Introduction to 3D Math</h3>
+<!--l. 27--><p class="noindent" >
+ <h4 class="subsectionHead"><span class="titlemark">1.1 </span> <a
+ id="x1-20001.1"></a>Introduction</h4>
+<!--l. 29--><p class="noindent" >There are many approaches to understanding the type of 3D math used in video
+games, modelling, ray-tracing, etc. The usual is through vector algebra, matrices, and
+linear transformations and, while they are not completely necesary to understand
+most of the aspects of 3D game programming (from the theorical point of view), they
+provide a common language to communicate with other programmers or
+engineers.
+<!--l. 36--><p class="indent" > This tutorial will focus on explaining all the basic concepts needed for a
+programmer to understand how to develop 3D games without getting too deep into
+algebra. Instead of a math-oriented language, code examples will be given instead
+when possible. The reason for this is that. while programmers may have
+different backgrounds or experience (be it scientific, engineering or self taught),
+code is the most familiar language and the lowest common denominator for
+understanding.
+<!--l. 45--><p class="noindent" >
+ <h4 class="subsectionHead"><span class="titlemark">1.2 </span> <a
+ id="x1-30001.2"></a>Vectors</h4>
+<!--l. 48--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.2.1 </span> <a
+ id="x1-40001.2.1"></a>Brief Introduction</h5>
+<!--l. 50--><p class="noindent" >When writing 2D games, interfaces and other applications, the typical convention is
+to define coordinates as an <span
+class="ecti-1000">x,y </span>pair, <span
+class="ecti-1000">x </span>representing the horizontal offset and <span
+class="ecti-1000">y </span>the
+vertical one. In most cases, the unit for both is <span
+class="ecti-1000">pixels</span>. This makes sense given the
+screen is just a rectangle in two dimensions.
+<!--l. 56--><p class="indent" > An <span
+class="ecti-1000">x,y </span>pair can be used for two purposes. It can be an absolute position (screen
+cordinate in the previous case), or a relative direction, if we trace an arrow from the
+origin (0,0 coordinates) to it&#8217;s position.
+<div class="center"
+>
+<!--l. 60--><p class="noindent" >
+
+<div class="tabular">
+ <table id="TBL-1" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-1-1g"><col
+id="TBL-1-1"><col
+id="TBL-1-2"><col
+id="TBL-1-3"></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-1-1-1"
+class="td11"><img
+src="tutorial0x.png" alt="PIC" class="graphics" width="100.375pt" height="100.375pt" ><!--tex4ht:graphics
+name="tutorial0x.png" src="0_home_red_coding_godot_doc_math_position.eps"
+--></td><td style="white-space:nowrap; text-align:center;" id="TBL-1-1-2"
+class="td11"></td><td style="white-space:nowrap; text-align:center;" id="TBL-1-1-3"
+class="td11"><img
+src="tutorial1x.png" alt="PIC" class="graphics" width="100.375pt" height="100.375pt" ><!--tex4ht:graphics
+name="tutorial1x.png" src="1_home_red_coding_godot_doc_math_direction.eps"
+--></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-1-2-1"
+class="td11"> <span
+class="ecti-0700">Position </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-1-2-2"
+class="td11"></td><td style="white-space:nowrap; text-align:center;" id="TBL-1-2-3"
+class="td11"> <span
+class="ecti-0700">Direction </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-1-3-1"
+class="td11"> </td>
+</tr></table></div>
+</div>
+<!--l. 67--><p class="indent" > When used as a direction, this pair is called a <span
+class="ecti-1000">vector</span>, and two properties can be
+observed: The first is the <span
+class="ecti-1000">magnitude </span>or <span
+class="ecti-1000">length </span>, and the second is the direction. In
+two dimensions, direction can be an angle. The <span
+class="ecti-1000">magnitude </span>or <span
+class="ecti-1000">length </span>can be computed
+by simply using Pithagoras theorem:
+<div class="center"
+>
+<!--l. 73--><p class="noindent" >
+<div class="tabular"> <table id="TBL-2" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-2-1g"><col
+id="TBL-2-1"><col
+id="TBL-2-2"></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-2-1-1"
+class="td11"><img
+src="tutorial2x.png" alt="&#x2218;x2-+-y2-" class="sqrt" ></td><td style="white-space:nowrap; text-align:center;" id="TBL-2-1-2"
+class="td11"><img
+src="tutorial3x.png" alt="&#x2218;x2-+-y2 +-z2" class="sqrt" ></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-2-2-1"
+class="td11"> <span
+class="ecti-0700">2D </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-2-2-2"
+class="td11"> <span
+class="ecti-0700">3D </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-2-3-1"
+class="td11"> </td>
+</tr></table></div>
+</div>
+<!--l. 80--><p class="indent" > The direction can be an arbitrary angle from either the <span
+class="ecti-1000">x </span>or <span
+class="ecti-1000">y </span>axis, and could be
+computed by using trigonometry, or just using the usual <span
+class="ecti-1000">atan2 </span>function present in
+most math libraries. However, when dealing with 3D, the direction can&#8217;t be described
+as an angle. To separate magnitude and direction, 3D uses the concept of <span
+class="ecti-1000">normal</span>
+<span
+class="ecti-1000">vectors.</span>
+<!--l. 88--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.2.2 </span> <a
+ id="x1-50001.2.2"></a>Implementation</h5>
+<!--l. 90--><p class="noindent" >Vectors are implemented in Godot Engine as a class named <span
+class="ecti-1000">Vector3 </span>for 3D, and as
+both <span
+class="ecti-1000">Vector2</span>, <span
+class="ecti-1000">Point2 </span>or <span
+class="ecti-1000">Size2 </span>in 2D (they are all aliases). They are used for any
+purpose where a pair of 2D or 3D values (described as <span
+class="ecti-1000">x,y </span>or <span
+class="ecti-1000">x,y,z) </span>is needed. This is
+somewhat a standard in most libraries or engines. In the script API, they can be
+instanced like this:
+ <!--l. 98-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-5001r1"></a></span>a&#x00A0;=&#x00A0;Vector3()&#x00A0;<br /><span class="label"><a
+ id="x1-5002r2"></a></span>a&#x00A0;=&#x00A0;Vector2(&#x00A0;2.0,&#x00A0;3.4&#x00A0;)
+ </div>
+
+<!--l. 104--><p class="indent" > Vectors also support the common operators <span
+class="ecti-1000">+, -, / and * </span>for addition,
+substraction, multiplication and division.
+ <!--l. 108-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-5003r1"></a></span>a&#x00A0;=&#x00A0;Vector3(1,2,3)&#x00A0;<br /><span class="label"><a
+ id="x1-5004r2"></a></span>b&#x00A0;=&#x00A0;Vector3(4,5,6)&#x00A0;<br /><span class="label"><a
+ id="x1-5005r3"></a></span>c&#x00A0;=&#x00A0;Vector3()&#x00A0;<br /><span class="label"><a
+ id="x1-5006r4"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-5007r5"></a></span>//&#x00A0;writing&#x00A0;<br /><span class="label"><a
+ id="x1-5008r6"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-5009r7"></a></span>c&#x00A0;=&#x00A0;a&#x00A0;+&#x00A0;b&#x00A0;<br /><span class="label"><a
+ id="x1-5010r8"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-5011r9"></a></span>//&#x00A0;is&#x00A0;the&#x00A0;same&#x00A0;as&#x00A0;writing&#x00A0;<br /><span class="label"><a
+ id="x1-5012r10"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-5013r11"></a></span>c.x&#x00A0;=&#x00A0;a.x&#x00A0;+&#x00A0;b.x&#x00A0;<br /><span class="label"><a
+ id="x1-5014r12"></a></span>c.y&#x00A0;=&#x00A0;a.y&#x00A0;+&#x00A0;b.y&#x00A0;<br /><span class="label"><a
+ id="x1-5015r13"></a></span>c.z&#x00A0;=&#x00A0;a.z&#x00A0;+&#x00A0;b.z&#x00A0;<br /><span class="label"><a
+ id="x1-5016r14"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-5017r15"></a></span>//&#x00A0;both&#x00A0;will&#x00A0;result&#x00A0;in&#x00A0;a&#x00A0;vector&#x00A0;containing&#x00A0;(5,7,9).&#x00A0;<br /><span class="label"><a
+ id="x1-5018r16"></a></span>//&#x00A0;the&#x00A0;same&#x00A0;happens&#x00A0;for&#x00A0;the&#x00A0;rest&#x00A0;of&#x00A0;the&#x00A0;operators.
+ </div>
+<!--l. 128--><p class="indent" > Vectors also can perform a wide variety of built-in functions, their most common
+usages will be explored next.
+<!--l. 132--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.2.3 </span> <a
+ id="x1-60001.2.3"></a>Normal Vectors</h5>
+<!--l. 134--><p class="noindent" >Two points ago, it was mentioned that 3D vectors can&#8217;t describe their direction as an
+agle (as 2D vectors can). Because of this, <span
+class="ecti-1000">normal vectors </span>become important for
+separating a vector between <span
+class="ecti-1000">direction </span>and <span
+class="ecti-1000">magnitude.</span>
+<!--l. 139--><p class="indent" > A <span
+class="ecti-1000">normal vector </span>is a vector with a <span
+class="ecti-1000">magnitude </span>of <span
+class="ecti-1000">1. </span>This means, no matter where
+the vector is pointing to, it&#8217;s length is always <span
+class="ecti-1000">1</span>.
+ <div class="tabular">
+ <table id="TBL-3" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-3-1g"><col
+id="TBL-3-1"></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-3-1-1"
+class="td11"><img
+src="tutorial4x.png" alt="PIC" class="graphics" width="100.375pt" height="100.375pt" ><!--tex4ht:graphics
+name="tutorial4x.png" src="2_home_red_coding_godot_doc_math_normals.eps"
+--></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-3-2-1"
+class="td11"> <span
+class="ecrm-0700">Normal vectors aroud the origin. </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-3-3-1"
+class="td11"> </td> </tr></table>
+</div>
+<!--l. 148--><p class="indent" > Normal vectors have endless uses in 3D graphics programming, so it&#8217;s
+recommended to get familiar with them as much as possible.
+<!--l. 152--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.2.4 </span> <a
+ id="x1-70001.2.4"></a>Normalization</h5>
+<!--l. 154--><p class="noindent" >Normalization is the process through which normal vectors are obtained
+from regular vectors. In other words, normalization is used to reduce the
+<span
+class="ecti-1000">magnitude </span>of any vector to <span
+class="ecti-1000">1</span>. (except of course, unless the vector is (0,0,0)
+).
+<!--l. 159--><p class="indent" > To normalize a vector, it must be divided by its magnitude (which should be
+greater than zero):
+ <!--l. 163-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-7001r1"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">a</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">custom</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">vector</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">is</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">created</span>&#x00A0;<br /><span class="label"><a
+ id="x1-7002r2"></a></span>a&#x00A0;=&#x00A0;Vector3(4,5,6)&#x00A0;<br /><span class="label"><a
+ id="x1-7003r3"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">&#8217;</span><span
+class="ecti-1000">l</span><span
+class="ecti-1000">&#8217;</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">is</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">a</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">single</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">real</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">number</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">(</span><span
+class="ecti-1000">or</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">scalar</span><span
+class="ecti-1000">)</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">containight</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">the</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">length</span>&#x00A0;<br /><span class="label"><a
+ id="x1-7004r4"></a></span>l&#x00A0;=&#x00A0;Math.sqrt(&#x00A0;a.x<span
+class="cmsy-10">*</span>a.x&#x00A0;+&#x00A0;a.y<span
+class="cmsy-10">*</span>a.y&#x00A0;+&#x00A0;a.z<span
+class="cmsy-10">*</span>a.z&#x00A0;)&#x00A0;<br /><span class="label"><a
+ id="x1-7005r5"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">the</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">vector</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">&#8217;</span><span
+class="ecti-1000">a</span><span
+class="ecti-1000">&#8217;</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">is</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">divided</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">by</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">its</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">length</span><span
+class="ecti-1000">,</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">by</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">performing</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">scalar</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">divide</span>&#x00A0;<br /><span class="label"><a
+ id="x1-7006r6"></a></span>a&#x00A0;=&#x00A0;a&#x00A0;/&#x00A0;l&#x00A0;<br /><span class="label"><a
+ id="x1-7007r7"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">which</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">is</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">the</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">same</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">as</span>&#x00A0;<br /><span class="label"><a
+ id="x1-7008r8"></a></span>a.x&#x00A0;=&#x00A0;a.x&#x00A0;/&#x00A0;l&#x00A0;<br /><span class="label"><a
+ id="x1-7009r9"></a></span>a.y&#x00A0;=&#x00A0;a.y&#x00A0;/&#x00A0;l&#x00A0;<br /><span class="label"><a
+ id="x1-7010r10"></a></span>a.z&#x00A0;=&#x00A0;a.z&#x00A0;/&#x00A0;l
+
+ </div>
+<!--l. 177--><p class="indent" > Vector3 contains two built in functions for normalization:
+ <!--l. 180-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-7011r1"></a></span>a&#x00A0;=&#x00A0;Vector3(4,5,6)&#x00A0;<br /><span class="label"><a
+ id="x1-7012r2"></a></span>a.normalize()&#x00A0;<span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">in</span><span
+class="cmsy-10">-</span><span
+class="ecti-1000">place</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">normalization</span>&#x00A0;<br /><span class="label"><a
+ id="x1-7013r3"></a></span>b&#x00A0;=&#x00A0;a.normalized()&#x00A0;<span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">returns</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">a</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">copy</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">of</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">a</span><span
+class="ecti-1000">,</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">normalized</span>
+ </div>
+<!--l. 188--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.2.5 </span> <a
+ id="x1-80001.2.5"></a>Dot Product</h5>
+<!--l. 190--><p class="noindent" >The dot product is, pheraps, the most useful operation that can be applied to 3D
+vectors. In the surface, it&#8217;s multiple usages are not very obvious, but in depth it can
+provide very useful information between two vectors (be it direction or just points in
+space).
+<!--l. 195--><p class="indent" > The dot product takes two vectors (<span
+class="ecti-1000">a </span>and <span
+class="ecti-1000">b </span>in the example) and returns a scalar
+(single real number):
+<div class="center"
+>
+<!--l. 198--><p class="noindent" >
+<!--l. 199--><p class="noindent" ><span
+class="cmmi-10">a</span><sub><span
+class="cmmi-7">x</span></sub><span
+class="cmmi-10">b</span><sub><span
+class="cmmi-7">x</span></sub> <span
+class="cmr-10">+ </span><span
+class="cmmi-10">a</span><sub><span
+class="cmmi-7">y</span></sub><span
+class="cmmi-10">b</span><sub><span
+class="cmmi-7">y</span></sub> <span
+class="cmr-10">+ </span><span
+class="cmmi-10">a</span><sub><span
+class="cmmi-7">z</span></sub><span
+class="cmmi-10">b</span><sub><span
+class="cmmi-7">z</span></sub>
+</div>
+<!--l. 202--><p class="indent" > The same expressed in code:
+ <!--l. 205-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-8001r1"></a></span>a&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
+ id="x1-8002r2"></a></span>b&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
+ id="x1-8003r3"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-8004r4"></a></span>c&#x00A0;=&#x00A0;a.x<span
+class="cmsy-10">*</span>b.x&#x00A0;+&#x00A0;a.y<span
+class="cmsy-10">*</span>b.y&#x00A0;+&#x00A0;a.z<span
+class="cmsy-10">*</span>b.z&#x00A0;<br /><span class="label"><a
+ id="x1-8005r5"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-8006r6"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">using</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">built</span><span
+class="cmsy-10">-</span><span
+class="ecti-1000">in</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">dot</span><span
+class="ecti-1000">()</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">function</span>&#x00A0;<br /><span class="label"><a
+ id="x1-8007r7"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-8008r8"></a></span>c&#x00A0;=&#x00A0;a.dot(b)
+ </div>
+<!--l. 218--><p class="indent" > The dot product presents several useful properties:
+ <ul class="itemize1">
+ <li class="itemize">If both <span
+class="ecti-1000">a </span>and <span
+class="ecti-1000">b </span>parameters to a <span
+class="ecti-1000">dot product </span>are direction vectors, dot
+ product will return positive if both point towards the same direction,
+ negative if both point towards opposite directions, and zero if they are
+ orthogonal (one is perpendicular to the other).
+ </li>
+ <li class="itemize">If both <span
+class="ecti-1000">a </span>and <span
+class="ecti-1000">b </span>parameters to a <span
+class="ecti-1000">dot product </span>are <span
+class="ecti-1000">normalized </span>direction
+ vectors, then the dot product will return the cosine of the angle between
+ them (ranging from 1 if they are equal, 0 if they are orthogonal, and -1 if
+ they are opposed (a == -b)).
+ </li>
+ <li class="itemize">If <span
+class="ecti-1000">a </span>is a <span
+class="ecti-1000">normalized </span>direction vector and <span
+class="ecti-1000">b </span>is a point, the dot product will
+ return the distance from <span
+class="ecti-1000">b </span>to the plane passing through the origin, with
+ normal <span
+class="ecti-1000">a (see item about planes)</span>
+
+ </li>
+ <li class="itemize">More uses will be presented later in this tutorial.</li></ul>
+<!--l. 236--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.2.6 </span> <a
+ id="x1-90001.2.6"></a>Cross Product</h5>
+<!--l. 238--><p class="noindent" >The <span
+class="ecti-1000">cross product </span>also takes two vectors <span
+class="ecti-1000">a </span>and <span
+class="ecti-1000">b</span>, but returns another vector <span
+class="ecti-1000">c </span>that is
+orthogonal to the two previous ones.
+<div class="center"
+>
+<!--l. 242--><p class="noindent" >
+<!--l. 243--><p class="noindent" ><span
+class="cmmi-10">c</span><sub><span
+class="cmmi-7">x</span></sub> <span
+class="cmr-10">= </span><span
+class="cmmi-10">a</span><sub><span
+class="cmmi-7">x</span></sub><span
+class="cmmi-10">b</span><sub><span
+class="cmmi-7">z</span></sub> <span
+class="cmsy-10">- </span><span
+class="cmmi-10">a</span><sub><span
+class="cmmi-7">z</span></sub><span
+class="cmmi-10">b</span><sub><span
+class="cmmi-7">y</span></sub>
+</div>
+<div class="center"
+>
+<!--l. 246--><p class="noindent" >
+<!--l. 247--><p class="noindent" ><span
+class="cmmi-10">c</span><sub><span
+class="cmmi-7">y</span></sub> <span
+class="cmr-10">= </span><span
+class="cmmi-10">a</span><sub><span
+class="cmmi-7">z</span></sub><span
+class="cmmi-10">b</span><sub><span
+class="cmmi-7">x</span></sub> <span
+class="cmsy-10">- </span><span
+class="cmmi-10">a</span><sub><span
+class="cmmi-7">x</span></sub><span
+class="cmmi-10">b</span><sub><span
+class="cmmi-7">z</span></sub>
+</div>
+<div class="center"
+>
+<!--l. 250--><p class="noindent" >
+<!--l. 251--><p class="noindent" ><span
+class="cmmi-10">c</span><sub><span
+class="cmmi-7">z</span></sub> <span
+class="cmr-10">= </span><span
+class="cmmi-10">a</span><sub><span
+class="cmmi-7">x</span></sub><span
+class="cmmi-10">b</span><sub><span
+class="cmmi-7">y</span></sub> <span
+class="cmsy-10">- </span><span
+class="cmmi-10">a</span><sub><span
+class="cmmi-7">y</span></sub><span
+class="cmmi-10">b</span><sub><span
+class="cmmi-7">x</span></sub>
+</div>
+<!--l. 254--><p class="indent" > The same in code:
+ <!--l. 257-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-9001r1"></a></span>a&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
+ id="x1-9002r2"></a></span>b&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
+ id="x1-9003r3"></a></span>c&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
+ id="x1-9004r4"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-9005r5"></a></span>c.x&#x00A0;=&#x00A0;a.x<span
+class="cmsy-10">*</span>b.z&#x00A0;<span
+class="cmsy-10">-</span>&#x00A0;a.z<span
+class="cmsy-10">*</span>b.y&#x00A0;<br /><span class="label"><a
+ id="x1-9006r6"></a></span>c.y&#x00A0;=&#x00A0;a.z<span
+class="cmsy-10">*</span>b.x&#x00A0;<span
+class="cmsy-10">-</span>&#x00A0;a.x<span
+class="cmsy-10">*</span>b.z&#x00A0;<br /><span class="label"><a
+ id="x1-9007r7"></a></span>c.z&#x00A0;=&#x00A0;a.x<span
+class="cmsy-10">*</span>b.y&#x00A0;<span
+class="cmsy-10">-</span>&#x00A0;a.y<span
+class="cmsy-10">*</span>b.x&#x00A0;<br /><span class="label"><a
+ id="x1-9008r8"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-9009r9"></a></span>//&#x00A0;or&#x00A0;using&#x00A0;the&#x00A0;built<span
+class="cmsy-10">-</span>in&#x00A0;function&#x00A0;<br /><span class="label"><a
+ id="x1-9010r10"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-9011r11"></a></span>c&#x00A0;=&#x00A0;a.cross(b)
+ </div>
+<!--l. 273--><p class="indent" > The <span
+class="ecti-1000">cross product </span>also presents several useful properties:
+ <ul class="itemize1">
+ <li class="itemize">As mentioned, the resulting vector <span
+class="ecti-1000">c </span>is orthogonal to the input vectors <span
+class="ecti-1000">a</span>
+ and <span
+class="ecti-1000">b.</span>
+ </li>
+ <li class="itemize">Since the <span
+class="ecti-1000">cross product </span>is anticommutative, swapping <span
+class="ecti-1000">a </span>and <span
+class="ecti-1000">b </span>will result
+ in a negated vector <span
+class="ecti-1000">c.</span>
+
+ </li>
+ <li class="itemize">if <span
+class="ecti-1000">a </span>and <span
+class="ecti-1000">b </span>are taken from two of the segmets <span
+class="ecti-1000">AB</span>, <span
+class="ecti-1000">BC </span>or <span
+class="ecti-1000">CA </span>that form a
+ 3D triangle, the magnitude of the resulting vector divided by 2 is the area
+ of that triangle.
+ </li>
+ <li class="itemize">The direction of the resulting vector <span
+class="ecti-1000">c </span>in the previous triangle example
+ determines wether the points A,B and C are arranged in clocwise or
+ counter-clockwise order.</li></ul>
+<!--l. 287--><p class="noindent" >
+ <h4 class="subsectionHead"><span class="titlemark">1.3 </span> <a
+ id="x1-100001.3"></a>Plane</h4>
+<!--l. 290--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.3.1 </span> <a
+ id="x1-110001.3.1"></a>Theory</h5>
+<!--l. 292--><p class="noindent" >A plane can be considered as an infinite, flat surface that splits space in two halves,
+usually one named positive and one named negative. In regular mathematics, a plane
+formula is described as:
+<div class="center"
+>
+<!--l. 296--><p class="noindent" >
+<!--l. 297--><p class="noindent" ><span
+class="cmmi-10">ax </span><span
+class="cmr-10">+ </span><span
+class="cmmi-10">by </span><span
+class="cmr-10">+ </span><span
+class="cmmi-10">cz </span><span
+class="cmr-10">+ </span><span
+class="cmmi-10">d</span>
+</div>
+<!--l. 300--><p class="indent" > However, in 3D programming, this form alone is often of little use. For planes to
+become useful, they must be in normalized form.
+<!--l. 303--><p class="indent" > A normalized plane consists of a <span
+class="ecti-1000">normal vector n </span>and a <span
+class="ecti-1000">distance d. </span>To normalize
+a plane, a vector <span
+class="ecti-1000">n </span>and distance <span
+class="ecti-1000">d&#8217; </span>are created this way:
+<!--l. 307--><p class="indent" > <span
+class="cmmi-10">n</span><sub><span
+class="cmmi-7">x</span></sub> <span
+class="cmr-10">= </span><span
+class="cmmi-10">a</span>
+<!--l. 309--><p class="indent" > <span
+class="cmmi-10">n</span><sub><span
+class="cmmi-7">y</span></sub> <span
+class="cmr-10">= </span><span
+class="cmmi-10">b</span>
+<!--l. 311--><p class="indent" > <span
+class="cmmi-10">n</span><sub><span
+class="cmmi-7">z</span></sub> <span
+class="cmr-10">= </span><span
+class="cmmi-10">c</span>
+<!--l. 313--><p class="indent" > <span
+class="cmmi-10">d</span><span
+class="cmsy-10">&#x2032; </span><span
+class="cmr-10">= </span><span
+class="cmmi-10">d</span>
+<!--l. 315--><p class="indent" > Finally, both <span
+class="ecti-1000">n </span>and <span
+class="ecti-1000">d&#8217; </span>are both divided by the magnitude of n.
+<!--l. 318--><p class="indent" > In any case, normalizing planes is not often needed (this was mostly for
+explanation purposes), and normalized planes are useful because they can be created
+and used easily.
+<!--l. 322--><p class="indent" > A normalized plane could be visualized as a plane pointing towards normal <span
+class="ecti-1000">n,</span>
+offseted by <span
+class="ecti-1000">d </span>in the direction of <span
+class="ecti-1000">n</span>.
+<!--l. 325--><p class="indent" > In other words, take <span
+class="ecti-1000">n</span>, multiply it by scalar <span
+class="ecti-1000">d </span>and the resulting point will be part
+of the plane. This may need some thinking, so an example with a 2D normal vector
+(z is 0, so plane is orthogonal to it) is provided:
+<!--l. 330--><p class="indent" > Some operations can be done with normalized planes:
+
+ <ul class="itemize1">
+ <li class="itemize">Given any point <span
+class="ecti-1000">p</span>, the distance from it to a plane can be computed by
+ doing: n.dot(p) - d
+ </li>
+ <li class="itemize">If the resulting distance in the previous point is negative, the point is
+ below the plane.
+ </li>
+ <li class="itemize">Convex polygonal shapes can be defined by enclosing them in planes (the
+ physics engine uses this property)</li></ul>
+<!--l. 340--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.3.2 </span> <a
+ id="x1-120001.3.2"></a>Implementation</h5>
+<!--l. 342--><p class="noindent" >Godot Engine implements normalized planes by using the <span
+class="ecti-1000">Plane </span>class.
+ <!--l. 346-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-12001r1"></a></span>//creates&#x00A0;a&#x00A0;plane&#x00A0;with&#x00A0;normal&#x00A0;(0,1,0)&#x00A0;and&#x00A0;distance&#x00A0;5&#x00A0;<br /><span class="label"><a
+ id="x1-12002r2"></a></span>p&#x00A0;=&#x00A0;Plane(&#x00A0;Vector3(0,1,0),&#x00A0;5&#x00A0;)&#x00A0;<br /><span class="label"><a
+ id="x1-12003r3"></a></span>//&#x00A0;get&#x00A0;the&#x00A0;distance&#x00A0;to&#x00A0;a&#x00A0;point&#x00A0;<br /><span class="label"><a
+ id="x1-12004r4"></a></span>d&#x00A0;=&#x00A0;p.distance(&#x00A0;Vector3(4,5,6)&#x00A0;)
+ </div>
+<!--l. 355--><p class="noindent" >
+ <h4 class="subsectionHead"><span class="titlemark">1.4 </span> <a
+ id="x1-130001.4"></a>Matrices, Quaternions and Coordinate Systems</h4>
+<!--l. 357--><p class="noindent" >It is very often needed to store the location/rotation of something. In 2D, it is often
+enough to store an <span
+class="ecti-1000">x,y </span>location and maybe an angle as the rotation, as that should
+be enough to represent any posible position.
+<!--l. 362--><p class="indent" > In 3D this becomes a little more difficult, as there is nothing as simple as an angle
+to store a 3-axis rotation.
+<!--l. 365--><p class="indent" > The first think that may come to mind is to use 3 angles, one for x, one for y and
+one for z. However this suffers from the problem that it becomes very cumbersome to
+use, as the individual rotations in each axis need to be performed one after another
+(they can&#8217;t be performed at the same time), leading to a problem called &#8220;gimbal
+lock&#8221;. Also, it becomes impossible to accumulate rotations (add a rotation to an
+existing one).
+<!--l. 373--><p class="indent" > To solve this, there are two known diferent approaches that aid in solving
+rotation, <span
+class="ecti-1000">Quaternions </span>and <span
+class="ecti-1000">Oriented Coordinate Systems.</span>
+<!--l. 378--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.4.1 </span> <a
+ id="x1-140001.4.1"></a>Oriented Coordinate Systems</h5>
+<!--l. 380--><p class="noindent" ><span
+class="ecti-1000">Oriented Coordinate Systems </span>(<span
+class="ecti-1000">OCS</span>) are a way of representing a coordinate system
+inside the cartesian coordinate system. They are mainly composed of 3 Vectors, one
+for each axis. The first vector is the <span
+class="ecti-1000">x </span>axis, the second the <span
+class="ecti-1000">y </span>axis, and the third is the
+
+<span
+class="ecti-1000">z </span>axis. The OCS vectors can be rotated around freely as long as they are kept the
+same length (as changing the length of an axis changes its cale), and as long as they
+remain orthogonal to eachother (as in, the same as the default cartesian system,
+with <span
+class="ecti-1000">y </span>pointing up, <span
+class="ecti-1000">x </span>pointing left and <span
+class="ecti-1000">z </span>pointing front, but all rotated
+together).
+<!--l. 391--><p class="indent" > <span
+class="ecti-1000">Oriented Coordinate Systems </span>are represented in 3D programming as a 3x3 matrix,
+where each row (or column, depending on the implementation) contains one of the
+axis vectors. Transforming a Vector by a rotated OCS Matrix results in the rotation
+being applied to the resulting vector. OCS Matrices can also be multiplied to
+accumulate their transformations.
+<!--l. 397--><p class="indent" > Godot Engine implements OCS Matrices in the <span
+class="ecti-1000">Matrix3 </span>class:
+ <!--l. 400-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-14001r1"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">create</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">a</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">3</span><span
+class="ecti-1000">x3</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">matrix</span>&#x00A0;<br /><span class="label"><a
+ id="x1-14002r2"></a></span>m&#x00A0;=&#x00A0;Matrix3()&#x00A0;<br /><span class="label"><a
+ id="x1-14003r3"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">rotate</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">the</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">matrix</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">in</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">the</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">y</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">axis</span><span
+class="ecti-1000">,</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">by</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">45</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">degrees</span>&#x00A0;<br /><span class="label"><a
+ id="x1-14004r4"></a></span>m.rotate(&#x00A0;Vector3(0,1,0),&#x00A0;Math.deg2rad(45)&#x00A0;)&#x00A0;<br /><span class="label"><a
+ id="x1-14005r5"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">transform</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">a</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">vector</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">v</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">(</span><span
+class="ecti-1000">xform</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">method</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">is</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">used</span><span
+class="ecti-1000">)</span>&#x00A0;<br /><span class="label"><a
+ id="x1-14006r6"></a></span>v&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
+ id="x1-14007r7"></a></span>result&#x00A0;=&#x00A0;m.xform(&#x00A0;v&#x00A0;)
+ </div>
+<!--l. 412--><p class="indent" > However, in most usage cases, one wants to store a translation together with the
+rotation. For this, an <span
+class="ecti-1000">origin </span>vector must be added to the OCS, thus transforming it
+into a 3x4 (or 4x3, depending on preference) matrix. Godot engine implements this
+functionality in the <span
+class="ecti-1000">Transform </span>class:
+ <!--l. 419-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-14010r1"></a></span>t&#x00A0;=&#x00A0;Transform()&#x00A0;<br /><span class="label"><a
+ id="x1-14011r2"></a></span>//rotate&#x00A0;the&#x00A0;transform&#x00A0;in&#x00A0;the&#x00A0;y&#x00A0;axis,&#x00A0;by&#x00A0;45&#x00A0;degrees&#x00A0;<br /><span class="label"><a
+ id="x1-14012r3"></a></span>t.rotate(&#x00A0;Vector3(0,1,0),&#x00A0;Math.deg2rad(45)&#x00A0;)&#x00A0;<br /><span class="label"><a
+ id="x1-14013r4"></a></span>//translate&#x00A0;the&#x00A0;transform&#x00A0;by&#x00A0;5&#x00A0;in&#x00A0;the&#x00A0;z&#x00A0;axis&#x00A0;<br /><span class="label"><a
+ id="x1-14014r5"></a></span>t.translate(&#x00A0;Vector3(&#x00A0;0,0,5&#x00A0;)&#x00A0;)&#x00A0;<br /><span class="label"><a
+ id="x1-14015r6"></a></span>//transform&#x00A0;a&#x00A0;vector&#x00A0;v&#x00A0;(xform&#x00A0;method&#x00A0;is&#x00A0;used)&#x00A0;<br /><span class="label"><a
+ id="x1-14016r7"></a></span>v&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
+ id="x1-14017r8"></a></span>result&#x00A0;=&#x00A0;t.xform(&#x00A0;v&#x00A0;)
+ </div>
+<!--l. 431--><p class="indent" > Transform contains internally a Matrix3 &#8220;basis&#8221; and a Vector3 &#8220;origin&#8221; (which can
+be modified individually).
+<!--l. 435--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.4.2 </span> <a
+ id="x1-150001.4.2"></a>Transform Internals</h5>
+<!--l. 437--><p class="noindent" >Internally, the xform() process is quite simple, to apply a 3x3 transform to a vector,
+the transposed axis vectors are used (as using the regular axis vectors will result on
+an inverse of the desired transform):
+ <!--l. 442-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-15001r1"></a></span>m&#x00A0;=&#x00A0;Matrix3(...)&#x00A0;<br /><span class="label"><a
+ id="x1-15002r2"></a></span>v&#x00A0;=&#x00A0;Vector3(..)&#x00A0;<br /><span class="label"><a
+ id="x1-15003r3"></a></span>result&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
+ id="x1-15004r4"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-15005r5"></a></span>x_axis&#x00A0;=&#x00A0;m.get_axis(0)&#x00A0;<br /><span class="label"><a
+ id="x1-15006r6"></a></span>y_axis&#x00A0;=&#x00A0;m.get_axis(1)&#x00A0;<br /><span class="label"><a
+ id="x1-15007r7"></a></span>z_axis&#x00A0;=&#x00A0;m.get_axis(2)&#x00A0;<br /><span class="label"><a
+ id="x1-15008r8"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-15009r9"></a></span>result.x&#x00A0;=&#x00A0;Vector3(x_axis.x,&#x00A0;y_axis.x,&#x00A0;z_axis.x).dot(v)&#x00A0;<br /><span class="label"><a
+ id="x1-15010r10"></a></span>result.y&#x00A0;=&#x00A0;Vector3(x_axis.y,&#x00A0;y_axis.y,&#x00A0;z_axis.y).dot(v)&#x00A0;<br /><span class="label"><a
+ id="x1-15011r11"></a></span>result.z&#x00A0;=&#x00A0;Vector3(x_axis.z,&#x00A0;y_axis.z,&#x00A0;z_axis.z).dot(v)&#x00A0;<br /><span class="label"><a
+ id="x1-15012r12"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-15013r13"></a></span>//&#x00A0;is&#x00A0;the&#x00A0;same&#x00A0;as&#x00A0;doing&#x00A0;<br /><span class="label"><a
+ id="x1-15014r14"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-15015r15"></a></span>result&#x00A0;=&#x00A0;m.xform(v)&#x00A0;<br /><span class="label"><a
+ id="x1-15016r16"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-15017r17"></a></span>//&#x00A0;if&#x00A0;m&#x00A0;this&#x00A0;was&#x00A0;a&#x00A0;Transform(),&#x00A0;the&#x00A0;origin&#x00A0;would&#x00A0;be&#x00A0;added&#x00A0;<br /><span class="label"><a
+ id="x1-15018r18"></a></span>//&#x00A0;like&#x00A0;this:&#x00A0;<br /><span class="label"><a
+ id="x1-15019r19"></a></span>&#x00A0;<br /><span class="label"><a
+ id="x1-15020r20"></a></span>result&#x00A0;=&#x00A0;result&#x00A0;+&#x00A0;t.get_origin()
+ </div>
+<!--l. 468--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.4.3 </span> <a
+ id="x1-160001.4.3"></a>Using The Transform</h5>
+<!--l. 470--><p class="noindent" >So, it is often desired apply sucessive operations to a transformation. For example,
+let&#8217;s a assume that there is a turtle sitting at the origin (the turtle is a logo reference,
+
+for those familiar with it). The <span
+class="ecti-1000">y </span>axis is up, and the the turtle&#8217;s nose is pointing
+towards the <span
+class="ecti-1000">z </span>axis.
+<!--l. 476--><p class="indent" > The turtle (like many other animals, or vehicles!) can only walk towards the
+direction it&#8217;s looking at. So, moving the turtle around a little should be something
+like this:
+ <!--l. 481-->
+ <div class="lstlisting"><span class="label"><a
+ id="x1-16001r1"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">turtle</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">at</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">the</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">origin</span>&#x00A0;<br /><span class="label"><a
+ id="x1-16002r2"></a></span>turtle&#x00A0;=&#x00A0;Transform()&#x00A0;<br /><span class="label"><a
+ id="x1-16003r3"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">turtle</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">will</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">walk</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">5</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">units</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">in</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">z</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">axis</span>&#x00A0;<br /><span class="label"><a
+ id="x1-16004r4"></a></span>turtle.translate(&#x00A0;Vector3(0,0,5)&#x00A0;)&#x00A0;<br /><span class="label"><a
+ id="x1-16005r5"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">turtle</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">eyes</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">a</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">lettuce</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">3</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">units</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">away</span><span
+class="ecti-1000">,</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">will</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">rotate</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">45</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">degrees</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">right</span>&#x00A0;<br /><span class="label"><a
+ id="x1-16006r6"></a></span>turtle.rotate(&#x00A0;Vector3(0,1,0),&#x00A0;Math.deg2rad(45)&#x00A0;)&#x00A0;<br /><span class="label"><a
+ id="x1-16007r7"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">turtle</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">approaches</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">the</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">lettuce</span>&#x00A0;<br /><span class="label"><a
+ id="x1-16008r8"></a></span>turtle.translate(&#x00A0;Vector3(0,0,5)&#x00A0;)&#x00A0;<br /><span class="label"><a
+ id="x1-16009r9"></a></span><span
+class="ecti-1000">//</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">happy</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">turtle</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">over</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">lettuce</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">is</span><span
+class="ecti-1000">&#x00A0;</span><span
+class="ecti-1000">at</span>&#x00A0;<br /><span class="label"><a
+ id="x1-16010r10"></a></span>print(turtle.get_origin())
+ </div>
+<!--l. 496--><p class="indent" > As can be seen, every new action the turtle takes is based on the previous one it
+took. Had the order of actions been different and the turtle would have never reached
+the lettuce.
+<!--l. 500--><p class="indent" > Transforms are just that, a mean of &#8220;accumulating&#8221; rotation, translation, scale,
+etc.
+<!--l. 504--><p class="noindent" >
+ <h5 class="subsubsectionHead"><span class="titlemark">1.4.4 </span> <a
+ id="x1-170001.4.4"></a>A Warning about Numerical Precision</h5>
+<!--l. 506--><p class="noindent" >Performing several actions over a transform will slowly and gradually lead to
+precision loss (objects that draw according to a transform may get jittery, bigger,
+smaller, skewed, etc). This happens due to the nature of floating point numbers. if
+transforms/matrices are created from other kind of values (like a position and
+some angular rotation) this is not needed, but if has been accumulating
+transformations and was never recreated, it can be normalized by calling the
+.orthonormalize() built-in function. This function has little cost and calling it every
+now and then will avoid the effects from precision loss to become visible.
+
+</body></html>
+
+
+
diff --git a/doc/html/tutorial01/tutorial0x.png b/doc/html/tutorial01/tutorial0x.png
new file mode 100644
index 0000000000..a0ed4f53ff
--- /dev/null
+++ b/doc/html/tutorial01/tutorial0x.png
Binary files differ
diff --git a/doc/html/tutorial01/tutorial1x.png b/doc/html/tutorial01/tutorial1x.png
new file mode 100644
index 0000000000..80f0d099f7
--- /dev/null
+++ b/doc/html/tutorial01/tutorial1x.png
Binary files differ
diff --git a/doc/html/tutorial01/tutorial2x.png b/doc/html/tutorial01/tutorial2x.png
new file mode 100644
index 0000000000..76c502b6da
--- /dev/null
+++ b/doc/html/tutorial01/tutorial2x.png
Binary files differ
diff --git a/doc/html/tutorial01/tutorial3x.png b/doc/html/tutorial01/tutorial3x.png
new file mode 100644
index 0000000000..8431e9d15c
--- /dev/null
+++ b/doc/html/tutorial01/tutorial3x.png
Binary files differ
diff --git a/doc/html/tutorial01/tutorial4x.png b/doc/html/tutorial01/tutorial4x.png
new file mode 100644
index 0000000000..1ce7a2bb45
--- /dev/null
+++ b/doc/html/tutorial01/tutorial4x.png
Binary files differ