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

JVector3D Class Reference

#include <Vector3D.hpp>

List of all members.

Public Methods

 JVector3D ()
 JVector3D (const double x, const double y, const double z)
 JVector3D (const JVector3D &v)
JVector3D & operator= (const JVector3D &v)
BOOL operator== (const JVector3D &v) const
BOOL operator!= (const JVector3D &v) const
void operator+= (const JVector3D &v)
void operator+= (const double Factor)
void operator-= (const JVector3D &v)
void operator-= (const double Factor)
void operator *= (const JVector3D &v)
void operator *= (const double Factor)
void operator/= (const JVector3D &v)
void operator/= (const double Factor)
void Abs ()
void AddScaled (const JVector3D &v, const double &Scale)
void Adjust (const double X, const double Y, const double Z)
BOOL bAtOrg () const
BOOL bWithinLimits (const double Limit) const
double Dot (const JVector3D &v) const
double X () const
double X (const double x)
double Y () const
double Y (const double y)
double Z () const
double Z (const double z)
double Magnitude () const
double MagSum () const
void ClipToDegrees ()
void Cross (const JVector3D &v)
void HalfBetween (const JVector3D &v)
void Mix (const JVector3D &v)
void Negate ()
void Normalize ()
void Set (const double x, const double y, const double z)
void Square ()
void ToRadians ()
 JVector3D ()
 JVector3D (const double x, const double y, const double z)
 JVector3D (const JVector3D &v)
JVector3D & operator= (const JVector3D &v)
BOOL operator== (const JVector3D &v) const
BOOL operator!= (const JVector3D &v) const
void operator+= (const JVector3D &v)
void operator+= (const double Factor)
void operator-= (const JVector3D &v)
void operator-= (const double Factor)
void operator *= (const JVector3D &v)
void operator *= (const double Factor)
void operator/= (const JVector3D &v)
void operator/= (const double Factor)
void Abs ()
void AddScaled (const JVector3D &v, const double &Scale)
void Adjust (const double X, const double Y, const double Z)
BOOL bAtOrg () const
BOOL bWithinLimits (const double Limit) const
double Dot (const JVector3D &v) const
double X () const
double X (const double x)
double Y () const
double Y (const double y)
double Z () const
double Z (const double z)
double Magnitude () const
double MagSum () const
void ClipToDegrees ()
void Cross (const JVector3D &v)
void HalfBetween (const JVector3D &v)
void Mix (const JVector3D &v)
void Negate ()
void Normalize ()
void Set (const double x, const double y, const double z)
void Square ()
void ToRadians ()

Private Attributes

double X
double Y
double Z

Friends

class Matrix4by4
JVector3D operator+ (const JVector3D &left, const JVector3D &right)
JVector3D operator+ (const JVector3D &left, const double Factor)
JVector3D operator- (const JVector3D &left, const JVector3D &right)
JVector3D operator- (const JVector3D &left, const double Factor)
JVector3D operator * (const JVector3D &left, const JVector3D &right)
JVector3D operator * (const JVector3D &left, const double Factor)
JVector3D operator/ (const JVector3D &left, const JVector3D &right)
JVector3D operator/ (const JVector3D &left, const double Factor)
JVector3D vecCross (const JVector3D &left, const JVector3D &right)
JVector3D vecMix (const JVector3D &left, const JVector3D &right)
JVector3D vecHalfBetween (const JVector3D &left, const JVector3D &right)
JVector3D operator+ (const JVector3D &left, const JVector3D &right)
JVector3D operator+ (const JVector3D &left, const double Factor)
JVector3D operator- (const JVector3D &left, const JVector3D &right)
JVector3D operator- (const JVector3D &left, const double Factor)
JVector3D operator * (const JVector3D &left, const JVector3D &right)
JVector3D operator * (const JVector3D &left, const double Factor)
JVector3D operator/ (const JVector3D &left, const JVector3D &right)
JVector3D operator/ (const JVector3D &left, const double Factor)
JVector3D vecCross (const JVector3D &left, const JVector3D &right)
JVector3D vecMix (const JVector3D &left, const JVector3D &right)
JVector3D vecHalfBetween (const JVector3D &left, const JVector3D &right)


Constructor & Destructor Documentation

JVector3D::JVector3D  
 

Definition at line 12 of file Vector3D.cpp.

Referenced by MATH_PI().

00013   : X(0.0), Y(0.0), Z(0.0) { }

JVector3D::JVector3D const double    x,
const double    y,
const double    z
 

Definition at line 15 of file Vector3D.cpp.

00016   : X( x ), Y( y ), Z( z ) { }

JVector3D::JVector3D const JVector3D &    v
 

Definition at line 18 of file Vector3D.cpp.

00019   : X( v.X ), Y( v.Y ), Z( v.Z ) { }

JVector3D::JVector3D  
 

JVector3D::JVector3D const double    x,
const double    y,
const double    z
 

JVector3D::JVector3D const JVector3D &    v
 


Member Function Documentation

void JVector3D::Abs  
 

void JVector3D::Abs   [inline]
 

Definition at line 118 of file Vector3D.cpp.

Referenced by MATH_PI().

00118                            {
00119   X = abs(X);
00120   Y = abs(Y);
00121   Z = abs(Z);
00122 }

void JVector3D::AddScaled const JVector3D &    v,
const double &    Scale
 

void JVector3D::AddScaled const JVector3D &    v,
const double &    Scale
 

Referenced by MATH_PI().

void JVector3D::Adjust const double    X,
const double    Y,
const double    Z
 

void JVector3D::Adjust const double    x,
const double    y,
const double    z
[inline]
 

Definition at line 214 of file Vector3D.cpp.

Referenced by MATH_PI().

00215 {
00216   X += x;
00217   Y += y;
00218   Z += z;
00219 }

void JVector3D::ClipToDegrees  
 

void JVector3D::ClipToDegrees  
 

Definition at line 141 of file Vector3D.cpp.

Referenced by MATH_PI().

00141                               {
00142   if (X > 360.0) 
00143     X = mod(X, 360.0);
00144 
00145   if (Y > 360.0)
00146     Y = mod(Y, 360.0);
00147 
00148   if (Z > 360.0)
00149     Z = mod(Z, 360.0);
00150 }

void JVector3D::Cross const JVector3D &    v
 

void JVector3D::Cross const JVector3D &    v
 

Definition at line 179 of file Vector3D.cpp.

Referenced by MATH_PI().

00179                                           {
00180   const double xTmp = (Y * v.Z) - (Z * v.Y);
00181   const double yTmp = (Z * v.X) - (X * v.Z);
00182   const double zTmp = (X * v.Y) - (Y * v.X);
00183   X = xTmp;
00184   Y = yTmp;
00185   Z = zTmp;
00186 }

double JVector3D::Dot const JVector3D &    v const
 

double JVector3D::Dot const JVector3D &    v const [inline]
 

Definition at line 133 of file Vector3D.cpp.

Referenced by MATH_PI().

00133                                                        {
00134   return (X * v.X) + (Y * v.Y) + (Z * v.Z);
00135 }

void JVector3D::HalfBetween const JVector3D &    v
 

void JVector3D::HalfBetween const JVector3D &    v
 

Definition at line 188 of file Vector3D.cpp.

Referenced by MATH_PI().

00188                                                 {
00189   X = 0.5 * (X + v.X);
00190   Y = 0.5 * (Y + v.Y);
00191   Z = 0.5 * (Z + v.Z);
00192 }

double JVector3D::MagSum   const
 

double JVector3D::MagSum   const [inline]
 

Definition at line 247 of file Vector3D.cpp.

Referenced by MATH_PI().

00247                                       {
00248   return (X + Y + Z);
00249 }

double JVector3D::Magnitude   const
 

double JVector3D::Magnitude   const [inline]
 

Definition at line 137 of file Vector3D.cpp.

Referenced by MATH_PI(), and Normalize().

00137                                          {
00138   return sqrt( (X * X) + (Y * Y) + (Z * Z) );
00139 }

void JVector3D::Mix const JVector3D &    v
 

void JVector3D::Mix const JVector3D &    v
 

Definition at line 6 of file Vector3D.cpp.

Referenced by MATH_PI().

00006                                         {  // ??????
00007   X *= v.Y;
00008   X *= v.Z;
00009   Y *= v.Z;
00010 }

void JVector3D::Negate  
 

void JVector3D::Negate   [inline]
 

Definition at line 251 of file Vector3D.cpp.

Referenced by MATH_PI().

00251                               {
00252   X *= -1;
00253   Y *= -1;
00254   Z *= -1;
00255 }

void JVector3D::Normalize  
 

void JVector3D::Normalize  
 

Definition at line 152 of file Vector3D.cpp.

Referenced by MATH_PI().

00152                           {
00153   double Mag = Magnitude();
00154 
00155   if ( Mag != 0 ) {
00156     X /= Mag;
00157     Y /= Mag;
00158     Z /= Mag;
00159   }
00160 }

void JVector3D::Set const double    x,
const double    y,
const double    z
 

void JVector3D::Set const double    x,
const double    y,
const double    z
[inline]
 

Definition at line 257 of file Vector3D.cpp.

Referenced by MATH_PI().

00257                                                                            {
00258   X = x;
00259   Y = y;
00260   Z = z;
00261 }

void JVector3D::Square  
 

void JVector3D::Square   [inline]
 

Definition at line 263 of file Vector3D.cpp.

Referenced by MATH_PI().

00263                               {
00264   X *= X;
00265   Y *= Y;
00266   Z *= Z;
00267 }

void JVector3D::ToRadians  
 

void JVector3D::ToRadians  
 

Definition at line 162 of file Vector3D.cpp.

Referenced by MATH_PI().

00163 {
00164   if (abs(X) > 360.0)
00165     X = mod(X, 360.0);
00166 
00167   if (abs(Y) > 360.0)
00168     Y = mod(Y, 360.0);
00169 
00170   if (abs(Z) > 360.0)
00171     Z = mod(Z, 360.0);
00172 
00173   X *= MATH_PI / 180.0;
00174   Y *= MATH_PI / 180.0;
00175   Z *= MATH_PI / 180.0;
00176 }

double JVector3D::X const double    x
 

double JVector3D::X   const
 

double JVector3D::X const double    x
 

double JVector3D::X   const
 

Referenced by Matrix4By4::AppendScale(), Matrix4By4::AppendTranslation(), Cross(), Dot(), HalfBetween(), MATH_PI(), operator *(), operator *=(), operator+(), operator+=(), operator-(), operator-=(), operator/(), operator/=(), operator=(), vecCross(), vecHalfBetween(), and vecMix().

double JVector3D::Y const double    y
 

double JVector3D::Y   const
 

double JVector3D::Y const double    y
 

double JVector3D::Y   const
 

Referenced by Matrix4By4::AppendScale(), Matrix4By4::AppendTranslation(), Cross(), Dot(), HalfBetween(), MATH_PI(), Mix(), operator *(), operator *=(), operator+(), operator+=(), operator-(), operator-=(), operator/(), operator/=(), operator=(), vecCross(), vecHalfBetween(), and vecMix().

double JVector3D::Z const double    z
 

double JVector3D::Z   const
 

double JVector3D::Z const double    z
 

double JVector3D::Z   const
 

Referenced by Matrix4By4::AppendScale(), Matrix4By4::AppendTranslation(), Cross(), Dot(), HalfBetween(), MATH_PI(), Mix(), operator *(), operator *=(), operator+(), operator+=(), operator-(), operator-=(), operator/(), operator/=(), operator=(), vecCross(), vecHalfBetween(), and vecMix().

BOOL JVector3D::bAtOrg   const
 

BOOL JVector3D::bAtOrg   const [inline]
 

Definition at line 124 of file Vector3D.cpp.

Referenced by MATH_PI().

00124                                     {
00125   return ( (X == 0.0) && (Y == 0.0) && (Z == 0.0) );
00126 }

BOOL JVector3D::bWithinLimits const double    Limit const
 

BOOL JVector3D::bWithinLimits const double    r const
 

Definition at line 128 of file Vector3D.cpp.

Referenced by MATH_PI().

00128                                                     {
00129   return !( (X >  r) || (Y >  r) || (Z >  r)
00130          || (X < -r) || (Y < -r) || (Z < -r) );
00131 }

void JVector3D::operator *= const double    Factor
 

void JVector3D::operator *= const JVector3D &    v
 

void JVector3D::operator *= const double    r
 

Definition at line 105 of file Vector3D.cpp.

00105                                            {
00106   X *= r;
00107   Y *= r;
00108   Z *= r;
00109 }

void JVector3D::operator *= const JVector3D &    v
 

Definition at line 81 of file Vector3D.cpp.

Referenced by MATH_PI().

00081                                                {
00082   X *= v.X;
00083   Y *= v.Y;
00084   Z *= v.Z;
00085 }

BOOL JVector3D::operator!= const JVector3D &    v const
 

BOOL JVector3D::operator!= const JVector3D &    v const [inline]
 

Definition at line 33 of file Vector3D.cpp.

00033                                                             {
00034   return !Compare( v );
00035 }

void JVector3D::operator+= const double    Factor
 

void JVector3D::operator+= const JVector3D &    v
 

void JVector3D::operator+= const double    r
 

Definition at line 93 of file Vector3D.cpp.

00093                                            {
00094   X += r;
00095   Y += r;
00096   Z += r;
00097 }

void JVector3D::operator+= const JVector3D &    v
 

Definition at line 69 of file Vector3D.cpp.

Referenced by MATH_PI().

00069                                                {
00070   X += v.X;
00071   Y += v.Y;
00072   Z += v.Z;
00073 }

void JVector3D::operator-= const double    Factor
 

void JVector3D::operator-= const JVector3D &    v
 

void JVector3D::operator-= const double    r
 

Definition at line 99 of file Vector3D.cpp.

00099                                            {
00100   X -= r;
00101   Y -= r;
00102   Z -= r;
00103 }

void JVector3D::operator-= const JVector3D &    v
 

Definition at line 75 of file Vector3D.cpp.

Referenced by MATH_PI().

00075                                                {
00076   X -= v.X;
00077   Y -= v.Y;
00078   Z -= v.Z;
00079 }

void JVector3D::operator/= const double    Factor
 

void JVector3D::operator/= const JVector3D &    v
 

void JVector3D::operator/= const double    r
 

Definition at line 111 of file Vector3D.cpp.

00111                                            {
00112  if ( r == 0 ) return;
00113   X /= r;
00114   Y /= r;
00115   Z /= r;
00116 }

void JVector3D::operator/= const JVector3D &    v
 

Definition at line 87 of file Vector3D.cpp.

Referenced by MATH_PI().

00087                                                {
00088   X /= v.X;
00089   Y /= v.Y;
00090   Z /= v.Z;
00091 }

JVector3D& JVector3D::operator= const JVector3D &    v
 

JVector3D & JVector3D::operator= const JVector3D &    v [inline]
 

Definition at line 201 of file Vector3D.cpp.

Referenced by MATH_PI().

00201                                                            {
00202   X = v.X;
00203   Y = v.Y:
00204   Z = v.Z;
00205   return *this;
00206 }

BOOL JVector3D::operator== const JVector3D &    v const
 

BOOL JVector3D::operator== const JVector3D &    v const [inline]
 

Definition at line 29 of file Vector3D.cpp.

Referenced by MATH_PI().

00029                                                             {
00030   return Compare( v );
00031 }


Friends And Related Function Documentation

Matrix4by4 [friend]
 

Definition at line 71 of file Vector3D.hpp.

JVector3D operator * const JVector3D &    v,
const double    r
[friend]
 

Definition at line 61 of file Vector3D.cpp.

00061                                                           {
00062   return JVector3D( v.X * r, v.Y * r, v.Z * r );
00063 }

JVector3D operator * const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 45 of file Vector3D.cpp.

00045                                                                 {
00046   return JVector3D( v1.X * v2.X, v1.Y * v2.Y, v1.Z * v2.Z );
00047 }

JVector3D operator * const JVector3D &    v,
const double    r
[friend]
 

Definition at line 61 of file Vector3D.cpp.

00061                                                           {
00062   return JVector3D( v.X * r, v.Y * r, v.Z * r );
00063 }

JVector3D operator * const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 45 of file Vector3D.cpp.

Referenced by MATH_PI().

00045                                                                 {
00046   return JVector3D( v1.X * v2.X, v1.Y * v2.Y, v1.Z * v2.Z );
00047 }

JVector3D operator+ const JVector3D &    v,
const double    r
[friend]
 

Definition at line 53 of file Vector3D.cpp.

00053                                                           {
00054   return JVector3D( v.X + r, v.Y + r, v.Z + r );
00055 }

JVector3D operator+ const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 37 of file Vector3D.cpp.

00037                                                                 {
00038   return JVector3D( v1.X + v2.X, v1.Y + v2.Y, v1.Z + v2.Z );
00039 }

JVector3D operator+ const JVector3D &    v,
const double    r
[friend]
 

Definition at line 53 of file Vector3D.cpp.

00053                                                           {
00054   return JVector3D( v.X + r, v.Y + r, v.Z + r );
00055 }

JVector3D operator+ const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 37 of file Vector3D.cpp.

Referenced by MATH_PI().

00037                                                                 {
00038   return JVector3D( v1.X + v2.X, v1.Y + v2.Y, v1.Z + v2.Z );
00039 }

JVector3D operator- const JVector3D &    v,
const double    r
[friend]
 

Definition at line 57 of file Vector3D.cpp.

00057                                                           {
00058   return JVector3D( v.X - r, v.Y - r, v.Z - r );
00059 }

JVector3D operator- const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 41 of file Vector3D.cpp.

00041                                                                 {
00042   return JVector3D( v1.X - v2.X, v1.Y - v2.Y, v1.Z - v2.Z );
00043 }

JVector3D operator- const JVector3D &    v,
const double    r
[friend]
 

Definition at line 57 of file Vector3D.cpp.

00057                                                           {
00058   return JVector3D( v.X - r, v.Y - r, v.Z - r );
00059 }

JVector3D operator- const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 41 of file Vector3D.cpp.

Referenced by MATH_PI().

00041                                                                 {
00042   return JVector3D( v1.X - v2.X, v1.Y - v2.Y, v1.Z - v2.Z );
00043 }

JVector3D operator/ const JVector3D &    v,
const double    r
[friend]
 

Definition at line 65 of file Vector3D.cpp.

00065                                                           {
00066   return JVector3D( v.X / r, v.Y / r, v.Z / r );
00067 }

JVector3D operator/ const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 49 of file Vector3D.cpp.

00049                                                                 {
00050   return JVector3D( v1.X / v2.X, v1.Y / v2.Y, v1.Z / v2.Z );
00051 }

JVector3D operator/ const JVector3D &    v,
const double    r
[friend]
 

Definition at line 65 of file Vector3D.cpp.

00065                                                           {
00066   return JVector3D( v.X / r, v.Y / r, v.Z / r );
00067 }

JVector3D operator/ const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 49 of file Vector3D.cpp.

Referenced by MATH_PI().

00049                                                                 {
00050   return JVector3D( v1.X / v2.X, v1.Y / v2.Y, v1.Z / v2.Z );
00051 }

JVector3D vecCross const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 194 of file Vector3D.cpp.

00194                                                                {
00195   return JVector3D( (v1.Y * v2.Z) - (v1.Z * v2.Y),
00196                    (v1.Z * v2.X) - (v1.X * v2.Z),
00197                    (v1.X * v2.Y) - (v1.Y * v2.X)
00198   );
00199 }

JVector3D vecCross const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 194 of file Vector3D.cpp.

Referenced by MATH_PI().

00194                                                                {
00195   return JVector3D( (v1.Y * v2.Z) - (v1.Z * v2.Y),
00196                    (v1.Z * v2.X) - (v1.X * v2.Z),
00197                    (v1.X * v2.Y) - (v1.Y * v2.X)
00198   );
00199 }

JVector3D vecHalfBetween const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 269 of file Vector3D.cpp.

00269                                                                             {
00270   return JVector3D(  0.5 * (v1.X + v2.X),
00271                     0.5 * (v1.Y + v2.Y),
00272                     0.5 * (v1.Z + v2.Z)
00273   );
00274 }

JVector3D vecHalfBetween const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 269 of file Vector3D.cpp.

Referenced by MATH_PI().

00269                                                                             {
00270   return JVector3D(  0.5 * (v1.X + v2.X),
00271                     0.5 * (v1.Y + v2.Y),
00272                     0.5 * (v1.Z + v2.Z)
00273   );
00274 }

JVector3D vecMix const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 276 of file Vector3D.cpp.

00276                                                                     {
00277   return JVector3D(  v1.X * v2.Y, v1.X * v2.Z, v1.Y * v2.Z );
00278 }

JVector3D vecMix const JVector3D &    v1,
const JVector3D &    v2
[friend]
 

Definition at line 276 of file Vector3D.cpp.

Referenced by MATH_PI().

00276                                                                     {
00277   return JVector3D(  v1.X * v2.Y, v1.X * v2.Z, v1.Y * v2.Z );
00278 }


Member Data Documentation

double JVector3D::X [inline, private]
 

Definition at line 74 of file Vector3D.hpp.

double JVector3D::Y [inline, private]
 

Definition at line 75 of file Vector3D.hpp.

double JVector3D::Z [inline, private]
 

Definition at line 76 of file Vector3D.hpp.


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