<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://codresearch.dev/index.php?action=history&amp;feed=atom&amp;title=Vectors</id>
	<title>Vectors - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://codresearch.dev/index.php?action=history&amp;feed=atom&amp;title=Vectors"/>
	<link rel="alternate" type="text/html" href="https://codresearch.dev/index.php?title=Vectors&amp;action=history"/>
	<updated>2026-07-28T09:20:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://codresearch.dev/index.php?title=Vectors&amp;diff=9&amp;oldid=prev</id>
		<title>99.129.4.53: Created page with &quot;__NOTOC__ Category:Utilities There are 3 different vectors that will be used by this wiki. The following classes will be more than enough to handle the vectors used here. ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://codresearch.dev/index.php?title=Vectors&amp;diff=9&amp;oldid=prev"/>
		<updated>2013-12-28T23:43:00Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;__NOTOC__ &lt;a href=&quot;/index.php/Category:Utilities&quot; title=&quot;Category:Utilities&quot;&gt;Category:Utilities&lt;/a&gt; There are 3 different vectors that will be used by this wiki. The following classes will be more than enough to handle the vectors used here. ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Category:Utilities]]&lt;br /&gt;
There are 3 different vectors that will be used by this wiki. The following classes will be more than enough to handle the vectors used here. Keep in mind this is expanded, as the regular CoD engine simply uses float[2],float[3],float[4]. These will still work the same way.&lt;br /&gt;
* vec2_t for 2-dimensional systems such as coordinates on the screen.&lt;br /&gt;
* vec3_t for 3-dimensional systems such as angles, XYZ coordinates, and easy RGB storage.&lt;br /&gt;
* vec4_t for 4-dimensional systems such as easy RGBA storage.&lt;br /&gt;
&lt;br /&gt;
== vec2_t ==&lt;br /&gt;
 class vec2_t&lt;br /&gt;
 {&lt;br /&gt;
 private: float x,y;&lt;br /&gt;
 public:&lt;br /&gt;
   vec2_t() : x(0),y(0) {}&lt;br /&gt;
   vec2_t(float xc, float yc) : x(xc),y(yc) { } &lt;br /&gt;
   vec2_t(float (&amp;amp;axis)[2]) : x(axis[0]),y(axis[1]) { }&lt;br /&gt;
 &lt;br /&gt;
   //-vec2_t, invert&lt;br /&gt;
   vec2_t&amp;amp; operator- ()&lt;br /&gt;
     { return vec2_t(-x,-y); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator++ ()&lt;br /&gt;
   { &lt;br /&gt;
     ++x,++y;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator++ (int unused)&lt;br /&gt;
   { &lt;br /&gt;
     vec2_t result = *this; &lt;br /&gt;
     operator++();&lt;br /&gt;
     return result;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator-- ()&lt;br /&gt;
   { &lt;br /&gt;
     --x,--y;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator-- (int unused)&lt;br /&gt;
   { &lt;br /&gt;
     vec2_t result = *this; &lt;br /&gt;
     operator--();&lt;br /&gt;
     return result;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
 #pragma region vec2_t input&lt;br /&gt;
   vec2_t&amp;amp; operator- (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return vec2_t(x-vec.x,y-vec.y); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator+ (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return vec2_t(x+vec.x,y+vec.y); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator* (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return vec2_t(x*vec.x,y*vec.y); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator/ (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return vec2_t(x/vec.x,y/vec.y); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator= (vec2_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x = vec.x, y = vec.y;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   bool operator== (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return x == vec.x &amp;amp;&amp;amp; y == vec.y; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator!= (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return x != vec.x || y != vec.y; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt; (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;gt; vec.x &amp;amp;&amp;amp; y &amp;gt; vec.y; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt; (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;lt; vec.x &amp;amp;&amp;amp; y &amp;lt; vec.y; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt;= (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;gt;= vec.x &amp;amp;&amp;amp; y &amp;gt;= vec.y; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt;= (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;lt;= vec.x &amp;amp;&amp;amp; y &amp;lt;= vec.y; }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator+= (vec2_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x += vec.x, y += vec.y;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator-= (vec2_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x -= vec.x, y -= vec.y;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator*= (vec2_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x *= vec.x, y *= vec.y;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator/= (vec2_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x /= vec.x, y /= vec.y;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 #pragma endregion&lt;br /&gt;
 &lt;br /&gt;
 #pragma region float input&lt;br /&gt;
   vec2_t&amp;amp; operator- (float vec)&lt;br /&gt;
     { return vec2_t(x-vec,y-vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator+ (float vec)&lt;br /&gt;
     { return vec2_t(x+vec,y+vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator* (float vec)&lt;br /&gt;
     { return vec2_t(x*vec,y*vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator/ (float vec)&lt;br /&gt;
     { return vec2_t(x/vec,y/vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x = vec, y = vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   bool operator== (float vec)&lt;br /&gt;
     { return x == vec &amp;amp;&amp;amp; y == vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator!= (float vec)&lt;br /&gt;
     { return x != vec || y != vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt; (float vec)&lt;br /&gt;
     { return x &amp;gt; vec &amp;amp;&amp;amp; y &amp;gt; vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt; (float vec)&lt;br /&gt;
     { return x &amp;lt; vec &amp;amp;&amp;amp; y &amp;lt; vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt;= (float vec)&lt;br /&gt;
     { return x &amp;gt;= vec &amp;amp;&amp;amp; y &amp;gt;= vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt;= (float vec)&lt;br /&gt;
     { return x &amp;lt;= vec &amp;amp;&amp;amp; y &amp;lt;= vec; }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator+= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x += vec, y += vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator-= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x -= vec, y -= vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator*= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x *= vec, y *= vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator/= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x /= vec, y /= vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 #pragma endregion&lt;br /&gt;
 &lt;br /&gt;
 #pragma region float(*)[2] input&lt;br /&gt;
   vec2_t&amp;amp; operator- (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return vec2_t(x-vec[0],y-vec[1]); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator+ (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return vec2_t(x+vec[0],y+vec[1]); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator* (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return vec2_t(x*vec[0],y*vec[1]); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator/ (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return vec2_t(x/vec[0],y/vec[1]); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator= (float (&amp;amp;vec)[2])&lt;br /&gt;
   { &lt;br /&gt;
     x = vec[0], y = vec[1];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   bool operator== (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return x == vec[0] &amp;amp;&amp;amp; y == vec[1]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator!= (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return x != vec[0] || y != vec[1]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt; (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return x &amp;gt; vec[0] &amp;amp;&amp;amp; y &amp;gt; vec[1]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt; (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return x &amp;lt; vec[0] &amp;amp;&amp;amp; y &amp;lt; vec[1]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt;= (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return x &amp;gt;= vec[0] &amp;amp;&amp;amp; y &amp;gt;= vec[1]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt;= (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return x &amp;lt;= vec[0] &amp;amp;&amp;amp; y &amp;lt;= vec[1]; }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator+= (float (&amp;amp;vec)[2])&lt;br /&gt;
   { &lt;br /&gt;
     x += vec[0], y += vec[1];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator-= (float (&amp;amp;vec)[2])&lt;br /&gt;
   { &lt;br /&gt;
     x -= vec[0], y -= vec[1];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator*= (float (&amp;amp;vec)[2])&lt;br /&gt;
   { &lt;br /&gt;
     x *= vec[0], y *= vec[1];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; operator/= (float (&amp;amp;vec)[2])&lt;br /&gt;
   { &lt;br /&gt;
     x /= vec[0], y /= vec[1];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 #pragma endregion&lt;br /&gt;
 &lt;br /&gt;
   float operator[] (int xc)&lt;br /&gt;
     { return *(float*)((int)this + xc*4); }&lt;br /&gt;
 &lt;br /&gt;
   vec2_t&amp;amp; Normalize()&lt;br /&gt;
   {&lt;br /&gt;
     float length = Length();&lt;br /&gt;
     *this /= length;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   float Length()&lt;br /&gt;
     { return sqrt(x*x + y*y); }&lt;br /&gt;
 &lt;br /&gt;
   float LengthSq()&lt;br /&gt;
     { return (x*x + y*y); }&lt;br /&gt;
 &lt;br /&gt;
   float Distance (vec2_t &amp;amp;vec)&lt;br /&gt;
     { return sqrt(DistanceEx(vec)); }&lt;br /&gt;
 &lt;br /&gt;
   float DistanceEx (vec2_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     float newX = x - vec.x;&lt;br /&gt;
     float newY = y - vec.y;&lt;br /&gt;
     return (newX * newX + newY * newY);&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   float Distance (float (&amp;amp;vec)[2])&lt;br /&gt;
     { return sqrt(DistanceEx(vec)); }&lt;br /&gt;
 &lt;br /&gt;
   float DistanceEx (float (&amp;amp;vec)[2])&lt;br /&gt;
   { &lt;br /&gt;
     float newX = x - vec[0];&lt;br /&gt;
     float newY = y - vec[1];&lt;br /&gt;
     return (newX * newX + newY * newY);&lt;br /&gt;
   }&lt;br /&gt;
 };&lt;br /&gt;
== vec3_t ==&lt;br /&gt;
 class vec3_t&lt;br /&gt;
 {&lt;br /&gt;
 private: float x,y,z;&lt;br /&gt;
 public:&lt;br /&gt;
   vec3_t() : x(0),y(0),z(0) {}&lt;br /&gt;
   vec3_t(float xc, float yc, float zc) : x(xc),y(yc),z(zc) { } &lt;br /&gt;
   vec3_t(float (&amp;amp;axis)[3]) : x(axis[0]),y(axis[1]),z(axis[2]) { } &lt;br /&gt;
 &lt;br /&gt;
   //-vec3_t, invert&lt;br /&gt;
   vec3_t&amp;amp; operator- ()&lt;br /&gt;
     { return vec3_t(-x,-y,-z); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator++ ()&lt;br /&gt;
   { &lt;br /&gt;
     ++x,++y,++z;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator++ (int unused)&lt;br /&gt;
   { &lt;br /&gt;
     vec3_t result = *this; &lt;br /&gt;
     ++x,++y,++z;&lt;br /&gt;
     return result;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator-- ()&lt;br /&gt;
   { &lt;br /&gt;
     --x,--y,--z;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator-- (int unused)&lt;br /&gt;
   { &lt;br /&gt;
     vec3_t result = *this; &lt;br /&gt;
     --x,--y,--z;&lt;br /&gt;
     return result;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
 #pragma region vec3_t input&lt;br /&gt;
   vec3_t&amp;amp; operator- (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return vec3_t(x-vec.x,y-vec.y,z-vec.z); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator+ (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return vec3_t(x+vec.x,y+vec.y,z+vec.z); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator* (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return vec3_t(x*vec.x,y*vec.y,z*vec.z); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator/ (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return vec3_t(x/vec.x,y/vec.y,z/vec.z); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator= (vec3_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x = vec.x, y = vec.y, z = vec.z;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   bool operator== (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return x == vec.x &amp;amp;&amp;amp; y == vec.y &amp;amp;&amp;amp; z == vec.z; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator!= (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return x != vec.x || y != vec.y || z != vec.z; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt; (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;gt; vec.x &amp;amp;&amp;amp; y &amp;gt; vec.y &amp;amp;&amp;amp; z &amp;gt; vec.z; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt; (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;lt; vec.x &amp;amp;&amp;amp; y &amp;lt; vec.y &amp;amp;&amp;amp; z &amp;lt; vec.z; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt;= (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;gt;= vec.x &amp;amp;&amp;amp; y &amp;gt;= vec.y &amp;amp;&amp;amp; z &amp;gt;= vec.z; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt;= (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;lt;= vec.x &amp;amp;&amp;amp; y &amp;lt;= vec.y &amp;amp;&amp;amp; z &amp;lt;= vec.z; }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator+= (vec3_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x += vec.x, y += vec.y, z += vec.z;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator-= (vec3_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x -= vec.x, y -= vec.y, z -= vec.z;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator*= (vec3_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x *= vec.x, y *= vec.y, z *= vec.z;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator/= (vec3_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x /= vec.x, y /= vec.y, z /= vec.z;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 #pragma endregion&lt;br /&gt;
 &lt;br /&gt;
 #pragma region float input&lt;br /&gt;
   vec3_t&amp;amp; operator- (float vec)&lt;br /&gt;
     { return vec3_t(x-vec,y-vec,z-vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator+ (float vec)&lt;br /&gt;
     { return vec3_t(x+vec,y+vec,z+vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator* (float vec)&lt;br /&gt;
     { return vec3_t(x*vec,y*vec,z*vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator/ (float vec)&lt;br /&gt;
     { return vec3_t(x/vec,y/vec,z/vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x = vec, y = vec, z = vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   bool operator== (float vec)&lt;br /&gt;
     { return x == vec &amp;amp;&amp;amp; y == vec &amp;amp;&amp;amp; z == vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator!= (float vec)&lt;br /&gt;
     { return x != vec || y != vec || z != vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt; (float vec)&lt;br /&gt;
     { return x &amp;gt; vec &amp;amp;&amp;amp; y &amp;gt; vec &amp;amp;&amp;amp; z &amp;gt; vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt; (float vec)&lt;br /&gt;
     { return x &amp;lt; vec &amp;amp;&amp;amp; y &amp;lt; vec &amp;amp;&amp;amp; z &amp;lt; vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt;= (float vec)&lt;br /&gt;
     { return x &amp;gt;= vec &amp;amp;&amp;amp; y &amp;gt;= vec &amp;amp;&amp;amp; z &amp;gt;= vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt;= (float vec)&lt;br /&gt;
     { return x &amp;lt;= vec &amp;amp;&amp;amp; y &amp;lt;= vec &amp;amp;&amp;amp; z &amp;lt;= vec; }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator+= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x += vec, y += vec, z += vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator-= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x -= vec, y -= vec, z -= vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator*= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x *= vec, y *= vec, z *= vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator/= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x /= vec, y /= vec, z /= vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 #pragma endregion&lt;br /&gt;
 &lt;br /&gt;
 #pragma region float(*)[3] input&lt;br /&gt;
   vec3_t&amp;amp; operator- (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return vec3_t(x-vec[0],y-vec[1],z-vec[2]); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator+ (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return vec3_t(x+vec[0],y+vec[1],z+vec[2]); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator* (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return vec3_t(x*vec[0],y*vec[1],z*vec[2]); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator/ (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return vec3_t(x/vec[0],y/vec[1],z/vec[2]); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator= (float (&amp;amp;vec)[3])&lt;br /&gt;
   { &lt;br /&gt;
     x = vec[0], y = vec[1], z = vec[2];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   bool operator== (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return x == vec[0] &amp;amp;&amp;amp; y == vec[1] &amp;amp;&amp;amp; z == vec[2]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator!= (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return x != vec[0] || y != vec[1] || z != vec[2]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt; (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return x &amp;gt; vec[0] &amp;amp;&amp;amp; y &amp;gt; vec[1] &amp;amp;&amp;amp; z &amp;gt; vec[2]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt; (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return x &amp;lt; vec[0] &amp;amp;&amp;amp; y &amp;lt; vec[1] &amp;amp;&amp;amp; z &amp;lt; vec[2]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt;= (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return x &amp;gt;= vec[0] &amp;amp;&amp;amp; y &amp;gt;= vec[1] &amp;amp;&amp;amp; z &amp;gt;= vec[2]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt;= (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return x &amp;lt;= vec[0] &amp;amp;&amp;amp; y &amp;lt;= vec[1] &amp;amp;&amp;amp; z &amp;lt;= vec[2]; }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator+= (float (&amp;amp;vec)[3])&lt;br /&gt;
   { &lt;br /&gt;
     x += vec[0], y += vec[1], z += vec[2];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator-= (float (&amp;amp;vec)[3])&lt;br /&gt;
   { &lt;br /&gt;
     x -= vec[0], y -= vec[1], z -= vec[2];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator*= (float (&amp;amp;vec)[3])&lt;br /&gt;
   { &lt;br /&gt;
     x *= vec[0], y *= vec[1], z *= vec[2];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; operator/= (float (&amp;amp;vec)[3])&lt;br /&gt;
   { &lt;br /&gt;
     x /= vec[0], y /= vec[1], z /= vec[2];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 #pragma endregion&lt;br /&gt;
 &lt;br /&gt;
   float operator[] (int xc)&lt;br /&gt;
     { return *(float*)((int)this + (xc*4)); }&lt;br /&gt;
 &lt;br /&gt;
   vec3_t&amp;amp; Normalize()&lt;br /&gt;
   {&lt;br /&gt;
     float length = Length();&lt;br /&gt;
     *this /= length;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   float Length()&lt;br /&gt;
     { return sqrt(x*x + y*y + z*z); }&lt;br /&gt;
 &lt;br /&gt;
   float LengthSq()&lt;br /&gt;
     { return (x*x + y*y + z*z); }&lt;br /&gt;
 &lt;br /&gt;
   float Distance (vec3_t &amp;amp;vec)&lt;br /&gt;
     { return sqrt(DistanceEx(vec)); }&lt;br /&gt;
 &lt;br /&gt;
   float DistanceEx (vec3_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     float newX = x - vec.x;&lt;br /&gt;
     float newY = y - vec.y;&lt;br /&gt;
     float newZ = z - vec.z;&lt;br /&gt;
     return (newX * newX + newY * newY + newZ * newZ);&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   float Distance (float (&amp;amp;vec)[3])&lt;br /&gt;
     { return sqrt(DistanceEx(vec)); }&lt;br /&gt;
 &lt;br /&gt;
   float DistanceEx (float (&amp;amp;vec)[3])&lt;br /&gt;
   { &lt;br /&gt;
     float newX = x - vec[0];&lt;br /&gt;
     float newY = y - vec[1];&lt;br /&gt;
     float newZ = z - vec[2];&lt;br /&gt;
     return (newX * newX + newY * newY + newZ * newZ);&lt;br /&gt;
   }&lt;br /&gt;
 };&lt;br /&gt;
== vec4_t ==&lt;br /&gt;
 class vec4_t&lt;br /&gt;
 {&lt;br /&gt;
 private: float x,y,z,a;&lt;br /&gt;
 public:&lt;br /&gt;
   vec4_t() : x(0),y(0),z(0),a(0) {}&lt;br /&gt;
   vec4_t(float xc, float yc, float zc, float ac) : x(xc),y(yc),z(zc),a(ac) { } &lt;br /&gt;
   vec4_t(float (&amp;amp;axis)[4]) : x(axis[0]),y(axis[1]),z(axis[2]),a(axis[3]) { } &lt;br /&gt;
 &lt;br /&gt;
   //-vec3_t, invert&lt;br /&gt;
   vec4_t&amp;amp; operator- ()&lt;br /&gt;
     { return vec4_t(-x,-y,-z,-a); }&lt;br /&gt;
 	&lt;br /&gt;
   vec4_t&amp;amp; operator++ ()&lt;br /&gt;
   { &lt;br /&gt;
     ++x,++y,++z,++a;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator++ (int unused)&lt;br /&gt;
   { &lt;br /&gt;
     vec4_t result(*this); &lt;br /&gt;
     operator++();&lt;br /&gt;
     return result;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator-- ()&lt;br /&gt;
   { &lt;br /&gt;
     --x,--y,--z;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 	&lt;br /&gt;
   vec4_t&amp;amp; operator-- (int unused)&lt;br /&gt;
   { &lt;br /&gt;
     vec4_t result(*this); &lt;br /&gt;
     operator--();&lt;br /&gt;
     return result;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
 #pragma region vec4_t input&lt;br /&gt;
   vec4_t&amp;amp; operator- (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return vec4_t(x-vec.x,y-vec.y,z-vec.z,a-vec.a); }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator+ (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return vec4_t(x+vec.x,y+vec.y,z+vec.z,a+vec.a); }&lt;br /&gt;
 	&lt;br /&gt;
   vec4_t&amp;amp; operator* (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return vec4_t(x*vec.x,y*vec.y,z*vec.z,a*vec.a); }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator/ (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return vec4_t(x/vec.x,y/vec.y,z/vec.z,a/vec.a); }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator= (vec4_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x = vec.x, y = vec.y, z = vec.z, a = vec.a;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   bool operator== (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return x == vec.x &amp;amp;&amp;amp; y == vec.y &amp;amp;&amp;amp; z == vec.z &amp;amp;&amp;amp; a == vec.a; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator!= (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return x != vec.x || y != vec.y || z != vec.z || a != vec.a; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt; (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;gt; vec.x &amp;amp;&amp;amp; y &amp;gt; vec.y &amp;amp;&amp;amp; z &amp;gt; vec.z &amp;amp;&amp;amp; a &amp;gt; vec.a; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt; (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;lt; vec.x &amp;amp;&amp;amp; y &amp;lt; vec.y &amp;amp;&amp;amp; z &amp;lt; vec.z &amp;amp;&amp;amp; a &amp;lt; vec.a; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt;= (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;gt;= vec.x &amp;amp;&amp;amp; y &amp;gt;= vec.y &amp;amp;&amp;amp; z &amp;gt;= vec.z &amp;amp;&amp;amp; a &amp;gt;= vec.a; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt;= (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return x &amp;lt;= vec.x &amp;amp;&amp;amp; y &amp;lt;= vec.y &amp;amp;&amp;amp; z &amp;lt;= vec.z &amp;amp;&amp;amp; a &amp;lt;= vec.a; }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator+= (vec4_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x += vec.x, y += vec.y, z += vec.z, a += vec.a;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator-= (vec4_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x -= vec.x, y -= vec.y, z -= vec.z, a -= vec.a;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator*= (vec4_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x *= vec.x, y *= vec.y, z *= vec.z, a *= vec.a;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator/= (vec4_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     x /= vec.x, y /= vec.y, z /= vec.z, a /= vec.a;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 #pragma endregion&lt;br /&gt;
 &lt;br /&gt;
 #pragma region float input&lt;br /&gt;
   vec4_t&amp;amp; operator- (float vec)&lt;br /&gt;
     { return vec4_t(x-vec,y-vec,z-vec,a-vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator+ (float vec)&lt;br /&gt;
     { return vec4_t(x+vec,y+vec,z+vec,a+vec); }&lt;br /&gt;
 	&lt;br /&gt;
   vec4_t&amp;amp; operator* (float vec)&lt;br /&gt;
     { return vec4_t(x*vec,y*vec,z*vec,a*vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator/ (float vec)&lt;br /&gt;
     { return vec4_t(x/vec,y/vec,z/vec,a/vec); }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x = vec, y = vec, z = vec, a = vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   bool operator== (float vec)&lt;br /&gt;
     { return x == vec &amp;amp;&amp;amp; y == vec &amp;amp;&amp;amp; z == vec &amp;amp;&amp;amp; a == vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator!= (float vec)&lt;br /&gt;
     { return x != vec || y != vec || z != vec || a != vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt; (float vec)&lt;br /&gt;
     { return x &amp;gt; vec &amp;amp;&amp;amp; y &amp;gt; vec &amp;amp;&amp;amp; z &amp;gt; vec &amp;amp;&amp;amp; a &amp;gt; vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt; (float vec)&lt;br /&gt;
     { return x &amp;lt; vec &amp;amp;&amp;amp; y &amp;lt; vec &amp;amp;&amp;amp; z &amp;lt; vec &amp;amp;&amp;amp; a &amp;lt; vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt;= (float vec)&lt;br /&gt;
     { return x &amp;gt;= vec &amp;amp;&amp;amp; y &amp;gt;= vec &amp;amp;&amp;amp; z &amp;gt;= vec &amp;amp;&amp;amp; a &amp;gt;= vec; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt;= (float vec)&lt;br /&gt;
     { return x &amp;lt;= vec &amp;amp;&amp;amp; y &amp;lt;= vec &amp;amp;&amp;amp; z &amp;lt;= vec &amp;amp;&amp;amp; a &amp;lt;= vec; }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator+= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x += vec, y += vec, z += vec, a += vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator-= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x -= vec, y -= vec, z -= vec, a -= vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator*= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x *= vec, y *= vec, z *= vec, a *= vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator/= (float vec)&lt;br /&gt;
   { &lt;br /&gt;
     x /= vec, y /= vec, z /= vec, a /= vec;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 #pragma endregion&lt;br /&gt;
 &lt;br /&gt;
 #pragma region float(*)[3] input&lt;br /&gt;
   vec4_t&amp;amp; operator- (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return vec4_t(x-vec[0],y-vec[1],z-vec[2],a-vec[3]); }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator+ (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return vec4_t(x+vec[0],y+vec[1],z+vec[2],a+vec[3]); }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator* (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return vec4_t(x*vec[0],y*vec[1],z*vec[2],a*vec[3]); }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator/ (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return vec4_t(x/vec[0],y/vec[1],z/vec[2],a/vec[3]); }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator= (float (&amp;amp;vec)[4])&lt;br /&gt;
   { &lt;br /&gt;
     x = vec[0], y = vec[1], z = vec[2], a = vec[3];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   bool operator== (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return x == vec[0] &amp;amp;&amp;amp; y == vec[1] &amp;amp;&amp;amp; z == vec[2] &amp;amp;&amp;amp; a == vec[3]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator!= (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return x != vec[0] || y != vec[1] || z != vec[2] || a != vec[3]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt; (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return x &amp;gt; vec[0] &amp;amp;&amp;amp; y &amp;gt; vec[1] &amp;amp;&amp;amp; z &amp;gt; vec[2] &amp;amp;&amp;amp; a &amp;gt; vec[3]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt; (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return x &amp;lt; vec[0] &amp;amp;&amp;amp; y &amp;lt; vec[1] &amp;amp;&amp;amp; z &amp;lt; vec[2] &amp;amp;&amp;amp; z &amp;lt; vec[3]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;gt;= (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return x &amp;gt;= vec[0] &amp;amp;&amp;amp; y &amp;gt;= vec[1] &amp;amp;&amp;amp; z &amp;gt;= vec[2] &amp;amp;&amp;amp; a &amp;gt;= vec[3]; }&lt;br /&gt;
 &lt;br /&gt;
   bool operator&amp;lt;= (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return x &amp;lt;= vec[0] &amp;amp;&amp;amp; y &amp;lt;= vec[1] &amp;amp;&amp;amp; z &amp;lt;= vec[2] &amp;amp;&amp;amp; a &amp;lt;= vec[3]; }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator+= (float (&amp;amp;vec)[4])&lt;br /&gt;
   { &lt;br /&gt;
     x += vec[0], y += vec[1], z += vec[2], a += vec[3];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator-= (float (&amp;amp;vec)[4])&lt;br /&gt;
   { &lt;br /&gt;
     x -= vec[0], y -= vec[1], z -= vec[2], a -= vec[3];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator*= (float (&amp;amp;vec)[4])&lt;br /&gt;
   { &lt;br /&gt;
     x *= vec[0], y *= vec[1], z *= vec[2], a *= vec[3];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   vec4_t&amp;amp; operator/= (float (&amp;amp;vec)[4])&lt;br /&gt;
   { &lt;br /&gt;
     x /= vec[0], y /= vec[1], z /= vec[2], a /= vec[3];&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 #pragma endregion&lt;br /&gt;
 &lt;br /&gt;
   float operator[] (int xc)&lt;br /&gt;
     { return *(float*)((int)this + (xc*4)); }&lt;br /&gt;
 	&lt;br /&gt;
   vec4_t&amp;amp; Normalize()&lt;br /&gt;
   {&lt;br /&gt;
     float length = Length();&lt;br /&gt;
     *this /= length;&lt;br /&gt;
     return *this;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   float Length()&lt;br /&gt;
     { return sqrt(x*x + y*y + z*z); }&lt;br /&gt;
 &lt;br /&gt;
   float LengthSq()&lt;br /&gt;
     { return (x*x + y*y + z*z); }&lt;br /&gt;
 &lt;br /&gt;
   float Distance (vec4_t &amp;amp;vec)&lt;br /&gt;
     { return sqrt(DistanceEx(vec)); }&lt;br /&gt;
 &lt;br /&gt;
   float DistanceEx (vec4_t &amp;amp;vec)&lt;br /&gt;
   { &lt;br /&gt;
     float newX = x - vec.x;&lt;br /&gt;
     float newY = y - vec.y;&lt;br /&gt;
     float newZ = z - vec.z;&lt;br /&gt;
     float newA = a - vec.a;&lt;br /&gt;
     return (newX * newX + newY * newY + newZ * newZ + newA * newA);&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   float Distance (float (&amp;amp;vec)[4])&lt;br /&gt;
     { return sqrt(DistanceEx(vec)); }&lt;br /&gt;
 &lt;br /&gt;
   float DistanceEx (float (&amp;amp;vec)[4])&lt;br /&gt;
   { &lt;br /&gt;
     float newX = x - vec[0];&lt;br /&gt;
     float newY = y - vec[1];&lt;br /&gt;
     float newZ = z - vec[2];&lt;br /&gt;
     float newA = a - vec[3];&lt;br /&gt;
     return (newX * newX + newY * newY + newZ * newZ + newA * newA);&lt;br /&gt;
   }&lt;br /&gt;
 };&lt;/div&gt;</summary>
		<author><name>99.129.4.53</name></author>
	</entry>
</feed>