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/Vector3D.hpp

Go to the documentation of this file.
00001 #ifndef __J2K__JVector3D_HPP__
00002 #define __J2K__JVector3D_HPP__
00003 
00004 #define MATH_PI 3.141592653589793238462643
00005 
00006 class JVector3D {
00007 public:
00008 
00009   JVector3D();
00010   JVector3D( const double x, const double y, const double z );
00011   JVector3D( const JVector3D& v );
00012 
00013   JVector3D& operator=( const JVector3D& v );
00014 
00015   BOOL operator==( const JVector3D& v ) const;
00016   BOOL operator!=( const JVector3D& v ) const;
00017 
00018   friend JVector3D operator+( const JVector3D& left, const JVector3D& right );
00019   friend JVector3D operator+( const JVector3D& left, const double Factor );
00020   friend JVector3D operator-( const JVector3D& left, const JVector3D& right );
00021   friend JVector3D operator-( const JVector3D& left, const double Factor );
00022   friend JVector3D operator*( const JVector3D& left, const JVector3D& right );
00023   friend JVector3D operator*( const JVector3D& left, const double Factor );
00024   friend JVector3D operator/( const JVector3D& left, const JVector3D& right );
00025   friend JVector3D operator/( const JVector3D& left, const double Factor );
00026 
00027   void operator+=( const JVector3D& v );
00028   void operator+=( const double Factor );
00029   void operator-=( const JVector3D& v );
00030   void operator-=( const double Factor );
00031   void operator*=( const JVector3D& v );
00032   void operator*=( const double Factor );
00033   void operator/=( const JVector3D& v );
00034   void operator/=( const double Factor );
00035 
00036   void Abs();
00037 
00038   void AddScaled( const JVector3D& v, const double& Scale );
00039   void Adjust( const double X, const double Y, const double Z);
00040 
00041   BOOL bAtOrg() const;
00042   BOOL bWithinLimits( const double Limit ) const;
00043 
00044   double Dot( const JVector3D& v ) const;
00045 
00046   double X() const;
00047   double X( const double x );
00048   double Y() const;
00049   double Y( const double y );
00050   double Z() const;
00051   double Z( const double z );
00052 
00053   double Magnitude() const;
00054   double MagSum() const;
00055   void ClipToDegrees();
00056   void Cross( const JVector3D& v );
00057   void HalfBetween( const JVector3D& v );
00058   void Mix( const JVector3D& v );
00059   void Negate();
00060   void Normalize();
00061   void Set( const double x, const double y, const double z );
00062   void Square();
00063   void ToRadians();
00064   
00065   friend JVector3D vecCross( const JVector3D& left, const JVector3D& right );
00066   friend JVector3D vecMix(   const JVector3D& left, const JVector3D& right );
00067   friend JVector3D vecHalfBetween( const JVector3D& left,
00068                                    const JVector3D& right );
00069 
00070 protected:
00071   friend class Matrix4by4;
00072 
00073 private:
00074   double X;
00075   double Y;
00076   double Z;
00077 };
00078 
00079 #endif

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