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

JVector3 Class Reference

#include <Vector3.hpp>

List of all members.

Public Methods

 JVector3 ()
 JVector3 (const JVector3 &obj)
 JVector3 (const JVector2 &obj)
 JVector3 (double x, double y, double z)
virtual ~JVector3 ()
void print ()
void add (JVector3)
void subtract (JVector3)
void multiply (double)
void divide (double)
double dot (JVector3)
void cross (JVector3)
void negative ()
double length ()
void unit ()
double comp (JVector3)
JVector3 proj (JVector3)
double & operator[] (int)
JVector3 operator() (double, double, double)
JVector3 operator+ (JVector3)
JVector3 operator- (JVector3)
JVector3 operator * (double)
JVector3 operator/ (double)
double operator * (JVector3)
JVector3 operator% (JVector3)
void operator+= (JVector3 val)
void operator-= (JVector3 val)
void operator *= (double val)
void operator/= (double val)
void operator%= (JVector3 val)
JVector3 operator- ()
double operator! ()
JVector3 operator~ ()
bool operator== (JVector3 val)
 JVector3 ()
 JVector3 (const JVector3 &obj)
 JVector3 (const JVector2 &obj)
 JVector3 (double x, double y, double z)
virtual ~JVector3 ()
void print ()
void add (JVector3)
void subtract (JVector3)
void multiply (double)
void divide (double)
double dot (JVector3)
void cross (JVector3)
void negative ()
double length ()
void unit ()
double comp (JVector3)
JVector3 proj (JVector3)
double & operator[] (int)
JVector3 operator() (double, double, double)
JVector3 operator+ (JVector3)
JVector3 operator- (JVector3)
JVector3 operator * (double)
JVector3 operator/ (double)
double operator * (JVector3)
JVector3 operator% (JVector3)
void operator+= (JVector3 val)
void operator-= (JVector3 val)
void operator *= (double val)
void operator/= (double val)
void operator%= (JVector3 val)
JVector3 operator- ()
double operator! ()
JVector3 operator~ ()
bool operator== (JVector3 val)

Public Attributes

double v [3]

Friends

JVector3 operator * (double, JVector3)
JVector3 operator/ (double, JVector3)
JVector3 operator * (double, JVector3)
JVector3 operator/ (double, JVector3)


Constructor & Destructor Documentation

JVector3::JVector3   [inline]
 

Definition at line 20 of file Vector3.hpp.

00020 {}

JVector3::JVector3 const JVector3 &    obj [inline]
 

Definition at line 15 of file Vector3.cpp.

00016 {
00017    v[0] = obj.v[0];
00018    v[1] = obj.v[1];
00019    v[2] = obj.v[2];
00020 }

JVector3::JVector3 const JVector2   obj [inline]
 

Definition at line 6 of file Vector3.cpp.

00007 {
00008    v[0] = obj.v[0];
00009    v[1] = obj.v[1];
00010    v[2] = 1;
00011 }

JVector3::JVector3 double    x,
double    y,
double    z
[inline]
 

Definition at line 26 of file Vector3.hpp.

00026                                         {
00027      v[0] = x;
00028      v[1] = y;
00029      v[2] = z;
00030   }

virtual JVector3::~JVector3   [inline, virtual]
 

Definition at line 32 of file Vector3.hpp.

00032 {}

JVector3::JVector3   [inline]
 

Definition at line 20 of file Vector3.hpp.

00020 {}

JVector3::JVector3 const JVector3 &    obj
 

JVector3::JVector3 const JVector2   obj
 

JVector3::JVector3 double    x,
double    y,
double    z
[inline]
 

Definition at line 26 of file Vector3.hpp.

00026                                         {
00027      v[0] = x;
00028      v[1] = y;
00029      v[2] = z;
00030   }

virtual JVector3::~JVector3   [inline, virtual]
 

Definition at line 32 of file Vector3.hpp.

00032 {}


Member Function Documentation

void JVector3::add JVector3   
 

void JVector3::add JVector3    add
 

Definition at line 31 of file Vector3.cpp.

Referenced by operator+=().

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 }

double JVector3::comp JVector3   
 

double JVector3::comp JVector3    obj
 

Definition at line 111 of file Vector3.cpp.

00112 {
00113   return (*this * obj) / !*this;
00114 }

void JVector3::cross JVector3   
 

void JVector3::cross JVector3    cross
 

Definition at line 74 of file Vector3.cpp.

Referenced by operator%=().

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 }

void JVector3::divide double   
 

void JVector3::divide double    div
 

Definition at line 58 of file Vector3.cpp.

Referenced by operator/=().

00059 {
00060   v[0] = v[0] / div;
00061   v[1] = v[1] / div;
00062   v[2] = v[2] / div;
00063 }

double JVector3::dot JVector3   
 

double JVector3::dot JVector3    dot
 

Definition at line 67 of file Vector3.cpp.

00068 {
00069   return v[0] * dot.v[0] + v[1] * dot.v[1] + v[2] * dot.v[2];
00070 }

double JVector3::length  
 

double JVector3::length  
 

Definition at line 94 of file Vector3.cpp.

00095 {
00096   return (double) sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
00097 }

void JVector3::multiply double   
 

void JVector3::multiply double    mult
 

Definition at line 49 of file Vector3.cpp.

Referenced by operator *=().

00050 {
00051   v[0] = v[0] * mult;
00052   v[1] = v[1] * mult;
00053   v[2] = v[2] * mult;
00054 }

void JVector3::negative  
 

void JVector3::negative  
 

Definition at line 85 of file Vector3.cpp.

00086 {
00087   v[0] = -v[0];
00088   v[1] = -v[1];
00089   v[2] = -v[2];
00090 }

double JVector3::operator * JVector3   
 

JVector3 JVector3::operator * double   
 

double JVector3::operator * JVector3    dot
 

Definition at line 210 of file Vector3.cpp.

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 }

JVector3 JVector3::operator * double    mult
 

Definition at line 166 of file Vector3.cpp.

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 }

void JVector3::operator *= double    val [inline]
 

Definition at line 64 of file Vector3.hpp.

00064 { multiply(val); }

void JVector3::operator *= double    val [inline]
 

Definition at line 64 of file Vector3.hpp.

00064 { multiply(val); }

double JVector3::operator!  
 

double JVector3::operator!  
 

Definition at line 241 of file Vector3.cpp.

00242 {
00243   return (double) sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
00244 }

JVector3 JVector3::operator% JVector3   
 

JVector3 JVector3::operator% JVector3    cross
 

Definition at line 219 of file Vector3.cpp.

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 }

void JVector3::operator%= JVector3    val [inline]
 

Definition at line 66 of file Vector3.hpp.

00066 { cross(val); }

void JVector3::operator%= JVector3    val [inline]
 

Definition at line 66 of file Vector3.hpp.

00066 { cross(val); }

JVector3 JVector3::operator() double   ,
double   ,
double   
 

JVector3 JVector3::operator() double    x,
double    y,
double    z
 

Definition at line 134 of file Vector3.cpp.

00135 {
00136   v[0] = x;
00137   v[1] = y;
00138   v[2] = z;
00139   return *this;
00140 }

JVector3 JVector3::operator+ JVector3   
 

JVector3 JVector3::operator+ JVector3    add
 

Definition at line 144 of file Vector3.cpp.

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 }

void JVector3::operator+= JVector3    val [inline]
 

Definition at line 62 of file Vector3.hpp.

00062 { add(val); }

void JVector3::operator+= JVector3    val [inline]
 

Definition at line 62 of file Vector3.hpp.

00062 { add(val); }

JVector3 JVector3::operator-  
 

JVector3 JVector3::operator- JVector3   
 

JVector3 JVector3::operator-  
 

Definition at line 230 of file Vector3.cpp.

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 }

JVector3 JVector3::operator- JVector3    add
 

Definition at line 155 of file Vector3.cpp.

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 }

void JVector3::operator-= JVector3    val [inline]
 

Definition at line 63 of file Vector3.hpp.

00063 { subtract(val); }

void JVector3::operator-= JVector3    val [inline]
 

Definition at line 63 of file Vector3.hpp.

00063 { subtract(val); }

JVector3 JVector3::operator/ double   
 

JVector3 JVector3::operator/ double    div
 

Definition at line 188 of file Vector3.cpp.

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 }

void JVector3::operator/= double    val [inline]
 

Definition at line 65 of file Vector3.hpp.

00065 { divide(val); }

void JVector3::operator/= double    val [inline]
 

Definition at line 65 of file Vector3.hpp.

00065 { divide(val); }

bool JVector3::operator== JVector3    val [inline]
 

Definition at line 72 of file Vector3.hpp.

00073   {
00074     if (v[0] == val.v[0])
00075       if (v[1] == val.v[1])
00076    if (v[2] == val.v[2])
00077           return TRUE;
00078     
00079     return FALSE;
00080   }

bool JVector3::operator== JVector3    val [inline]
 

Definition at line 72 of file Vector3.hpp.

00073   {
00074     if (v[0] == val.v[0])
00075       if (v[1] == val.v[1])
00076    if (v[2] == val.v[2])
00077           return TRUE;
00078     
00079     return FALSE;
00080   }

double& JVector3::operator[] int   
 

double & JVector3::operator[] int    i
 

Definition at line 126 of file Vector3.cpp.

00127 {
00128   assert( i >= 0 && i < 3);
00129   return v[i];
00130 }

JVector3 JVector3::operator~  
 

JVector3 JVector3::operator~  
 

Definition at line 248 of file Vector3.cpp.

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 }

void JVector3::print  
 

void JVector3::print  
 

Definition at line 24 of file Vector3.cpp.

00025 {
00026   printf("|  %-+7.2f %-+7.2f %-+7.2f|\n\n", v[0], v[1], v[2]);
00027 }

JVector3 JVector3::proj JVector3   
 

JVector3 JVector3::proj JVector3    obj
 

Definition at line 118 of file Vector3.cpp.

00119 {
00120   JVector3 a = *this, b = obj;
00121   return ((a * b) / (!a * !a)) * a;
00122 }

void JVector3::subtract JVector3   
 

void JVector3::subtract JVector3    sub
 

Definition at line 40 of file Vector3.cpp.

Referenced by operator-=().

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 }

void JVector3::unit  
 

void JVector3::unit  
 

Definition at line 101 of file Vector3.cpp.

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 }


Friends And Related Function Documentation

JVector3 operator * double    mult,
JVector3    vect
[friend]
 

Definition at line 177 of file Vector3.cpp.

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 }

JVector3 operator * double    mult,
JVector3    vect
[friend]
 

Definition at line 177 of file Vector3.cpp.

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 }

JVector3 operator/ double    div,
JVector3    vect
[friend]
 

Definition at line 199 of file Vector3.cpp.

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 }

JVector3 operator/ double    div,
JVector3    vect
[friend]
 

Definition at line 199 of file Vector3.cpp.

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 }


Member Data Documentation

double JVector3::v
 

Definition at line 17 of file Vector3.hpp.

Referenced by JVector2::JVector2(), JVector3(), add(), cross(), dot(), operator *(), operator *(), operator%(), operator+(), operator-(), operator/(), operator/(), operator==(), operator~(), and subtract().


The documentation for this class was generated from the following files:
Generated on Sun Oct 14 18:49:09 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001