Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/Beta/Math/Vector/Vector2.cpp

Go to the documentation of this file.
00001 #ifndef __J2K__Vector2_CPP__
00002 #define __J2K__Vector2_CPP__
00003 
00004 #include <j2k/Fred/Games/Vector2.hpp>
00005 
00006 inline JVector2::JVector2(const JVector2& obj)
00007 {
00008    v[0] = obj.v[0];
00009    v[1] = obj.v[1];
00010 }
00011 
00012 
00013 
00014 inline JVector2::JVector2(const JVector3& obj)
00015 {
00016    v[0] = obj.v[0] / obj.v[2];
00017    v[1] = obj.v[1] / obj.v[2];
00018 }
00019 
00020 
00021 
00022 void JVector2::printSelf()
00023 {
00024   printf("| %-+7.2f %-+7.2f|\n\n", v[0], v[1]);
00025 }
00026 
00027 
00028 
00029 JVector2 JVector2::rotate(double rad)
00030 {
00031         double s = (double)sin(rad), c = (double)cos(rad);
00032         JVector2 ret;
00033   
00034    ret.v[0] = c * v[0] - s * v[1];
00035    ret.v[1] = s * v[0] + c * v[1];
00036 
00037    return ret;
00038 }
00039 
00040 
00041 
00042 void JVector2::add(JVector2 add)
00043 {
00044   v[0] = v[0] + add.v[0];
00045   v[1] = v[1] + add.v[1];
00046 }
00047 
00048 
00049 
00050 void JVector2::subtract(JVector2 sub)
00051 {
00052   v[0] = v[0] - sub.v[0];
00053   v[1] = v[1] - sub.v[1];
00054 }
00055 
00056 
00057 
00058 void JVector2::multiply(double mult)
00059 {
00060   v[0] = v[0] * mult;
00061   v[1] = v[1] * mult;
00062 }
00063 
00064 
00065 
00066 void JVector2::divide(double div)
00067 {
00068   v[0] = v[0] / div;
00069   v[1] = v[1] / div;
00070 }
00071 
00072 
00073 
00074 double JVector2::dot(JVector2 dot)
00075 {
00076   return v[0] * dot.v[0] + v[1] * dot.v[1];
00077 }
00078 
00079 
00080 
00081 void JVector2::negative()
00082 {
00083   v[0] = -v[0];
00084   v[1] = -v[1];
00085 }
00086 
00087 
00088 
00089 double JVector2::length()
00090 {
00091   return (double) sqrt(v[0] * v[0] + v[1] * v[1]);
00092 }
00093 
00094 
00095 
00096 void JVector2::unit()
00097 {
00098   double len = (double) sqrt(v[0] * v[0] + v[1] * v[1]);
00099   v[0] = v[0] / len;
00100   v[1] = v[1] / len;
00101 }
00102 
00103 
00104 
00105 double JVector2::comp(JVector2 obj)
00106 {
00107   return (*this * obj) / !*this;
00108 }
00109 
00110 
00111 
00112 JVector2 JVector2::proj(JVector2 obj)
00113 {
00114   JVector2 a = *this, b = obj;
00115   return ((a * b) / (!a * !a)) * a;
00116 }
00117 
00118 double JVector2::operator[](int i)
00119 {
00120   assert( i >= 0 && i < 2);
00121   return v[i];
00122 }
00123 
00124 
00125 
00126 JVector2 JVector2::operator()(double x, double y)
00127 {
00128   v[0] = x;
00129   v[1] = y;
00130   return *this;
00131 }
00132 
00133 
00134 
00135 JVector2 JVector2::operator+(JVector2 add)
00136 {
00137   JVector2 result;
00138   result.v[0] = v[0] + add.v[0];
00139   result.v[1] = v[1] + add.v[1];
00140   return result;
00141 }
00142 
00143 
00144 
00145 JVector2 JVector2::operator-(JVector2 add)
00146 {
00147   JVector2 result;
00148   result.v[0] = v[0] - add.v[0];
00149   result.v[1] = v[1] - add.v[1];
00150   return result;
00151 }
00152 
00153 
00154 
00155 JVector2 JVector2::operator*(double mult)
00156 {
00157   JVector2 result;
00158   result.v[0] = v[0] * mult;
00159   result.v[1] = v[1] * mult;
00160   return result;
00161 }
00162 
00163 
00164 
00165 JVector2 operator*(double mult, JVector2 vect)
00166 {
00167   JVector2 result;
00168   result.v[0] = vect.v[0] * mult;
00169   result.v[1] = vect.v[1] * mult;
00170   return result;
00171 }
00172 
00173 
00174 
00175 JVector2 JVector2::operator/(double div)
00176 {
00177   JVector2 result;
00178   result.v[0] = v[0] / div;
00179   result.v[1] = v[1] / div;
00180   return result;
00181 }
00182 
00183 
00184 
00185 JVector2 operator/(double div, JVector2 vect)
00186 {
00187   JVector2 result;
00188   result.v[0] = div / vect.v[0];
00189   result.v[1] = div / vect.v[1];
00190   return result;
00191 }
00192 
00193 
00194 
00195 double JVector2::operator*(JVector2 dot)
00196 {
00197   double result;
00198   result = v[0] * dot.v[0] + v[1] * dot.v[1];
00199   return result;
00200 }
00201 
00202 
00203 
00204 JVector2 JVector2::operator-()
00205 {
00206   JVector2 result;
00207   result.v[0] = -v[0];
00208   result.v[1] = -v[1];
00209   return result;
00210 }
00211 
00212 
00213 
00214 double JVector2::operator!()
00215 {
00216   return (double) sqrt(v[0] * v[0] + v[1] * v[1]);
00217 }
00218 
00219 
00220 
00221 JVector2 JVector2::operator~()
00222 {
00223   JVector2 result;
00224   double len = (double) sqrt(v[0] * v[0] + v[1] * v[1]);
00225   result.v[0] = v[0] / len;
00226   result.v[1] = v[1] / len;
00227   return result;
00228 }
00229 
00230 #endif

Generated on Sun Oct 14 18:46:16 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001