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

C:/temp/src/j2k/Deprecated/old_18mar_diff/Vector/Vector3.cpp

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