![]() |
VR-Link API Documentation for HLA 1516
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 #ifndef _4dPoint_H 00007 #define _4dPoint_H 00008 00012 00013 #include <vlutil/vlMachineTypes.h> 00014 00015 00016 #ifdef DtUSE_UTILITIES_NAMESPACE 00017 namespace DtUSE_UTILITIES_NAMESPACE 00018 { 00019 #endif 00020 00021 class Dt3dPoint; 00022 class DtVector; 00023 00026 class DT_DLL_MATRIX Dt4dPoint 00027 { 00028 public: 00029 00031 Dt4dPoint(); 00032 00033 Dt4dPoint(const double& x, const double& y, const double& z, const double& w); 00034 00035 Dt4dPoint(const Dt4dPoint& orig); 00036 00037 virtual ~Dt4dPoint(); 00038 00039 Dt4dPoint& operator=(const Dt4dPoint& rhs); 00040 00042 00043 const double& operator[](const int i) const; 00044 double& operator[](const int i); 00046 00047 const double& x() const; 00048 const double& y() const; 00049 const double& z() const; 00050 const double& w() const; 00051 00052 virtual void set ( 00053 const double& x, 00054 const double& y, 00055 const double& z, 00056 const double& w ); 00057 00058 void setX(const double& x); 00059 void setY(const double& y); 00060 void setZ(const double& z); 00061 void setW(const double& w); 00062 00064 void setFromVector( const DtVector & vector ); 00065 00067 void setFrom3dPoint( const Dt3dPoint & point ); 00068 00070 virtual void unhomogenize(); 00071 00072 bool operator==(const Dt4dPoint& rhs) const; 00073 bool operator!=(const Dt4dPoint& rhs) const; 00074 00075 Dt4dPoint operator*(const double& rhs) const; 00076 Dt4dPoint& operator*=(const double& rhs); 00077 00078 Dt4dPoint operator+(const Dt4dPoint& rhs) const; 00079 Dt4dPoint& operator+=(const Dt4dPoint& rhs); 00080 00081 Dt4dPoint operator-(const Dt4dPoint& rhs) const; 00082 Dt4dPoint& operator-=(const Dt4dPoint& rhs); 00083 00084 protected: 00085 00086 double myX; 00087 double myY; 00088 double myZ; 00089 double myW; 00090 00091 }; 00092 00093 #define _4dPoint_inl 00094 #include "4dPoint.inl" 00095 #undef _4dPoint_inl 00096 00097 #ifdef DtUSE_UTILITIES_NAMESPACE 00098 } 00099 #endif 00100 00101 00102 #endif 00103