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/NotDone/Vector4D.hh

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