VR-Link API Documentation for DIS
3dPoint.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00006 #ifndef Dt3dPoint_H
00007 #define Dt3dPoint_H
00008 
00012 
00013 #include <vlutil/vlMachineTypes.h>
00014 
00015 #include <iosfwd>
00016 
00017 #ifdef DtUSE_UTILITIES_NAMESPACE
00018 namespace DtUSE_UTILITIES_NAMESPACE
00019 {
00020 #endif
00021 
00022 class DtVector;
00023 class Dt4dPoint;
00024 
00025 
00028 class Dt3dPoint;
00029 typedef Dt3dPoint Dt3dVertex;
00030 
00042 
00043 class DT_DLL_MATRIX Dt3dPoint
00044 {
00045 public:
00046 
00048    inline Dt3dPoint();
00049 
00051    inline Dt3dPoint( const double& x, const double& y, const double& z);
00052 
00054    inline Dt3dPoint(const Dt3dPoint& orig);
00055 
00057    inline ~Dt3dPoint();
00058 
00059    Dt3dPoint& operator=(const Dt3dPoint& rhs);
00060  
00062 
00063    const double& operator[](const int index) const;
00064    double& operator[](const int index);
00066 
00067    inline bool operator==(const Dt3dPoint& rhs) const;
00068    inline bool operator!=(const Dt3dPoint& rhs) const;
00069 
00071 
00072    inline Dt3dPoint operator*(const double& rhs) const;
00073    inline Dt3dPoint& operator*=(const double& rhs);
00075 
00077 
00078 
00079 
00080    inline Dt3dPoint operator/(const double& rhs) const;
00081    inline Dt3dPoint& operator/=(const double& rhs);
00083 
00084    inline Dt3dPoint operator+(const DtVector& rhs) const;
00085    inline Dt3dPoint& operator+=(const DtVector& rhs);
00086 
00087    inline DtVector operator-(const Dt3dPoint & rhs) const;
00088    inline Dt3dPoint operator-(const DtVector& rhs) const;
00089    inline Dt3dPoint& operator-=(const DtVector& rhs);
00090 
00092    Dt3dPoint differenceAs3dPoint(const Dt3dPoint& rhs) const;
00093  
00095    DtVector difference(const Dt3dPoint& rhs) const;
00096 
00099    bool approxEq(const Dt3dPoint& p, const double& tolerance) const;
00100 
00102    inline const double& x() const;
00103 
00105    inline const double& y() const;
00106 
00108    inline const double& z() const;
00109 
00110    inline void set( const double& x, const double& y, const double& z);
00111 
00113    inline void setX(const double& x);
00114 
00116    inline void setY(const double& y);
00117 
00119    inline void setZ(const double& z);
00120 
00121    inline void setFromVector( const DtVector & vector );
00122 
00124    inline void setFrom4dPoint( const Dt4dPoint & point );
00125 
00127    double distanceTo(const Dt3dPoint & end) const;
00128  
00130    double distanceSquaredTo(const Dt3dPoint & end) const;
00131 
00133    double xyDistanceTo(const Dt3dPoint & end) const;
00134    
00136    double xyDistanceSquaredTo(const Dt3dPoint & end) const;
00137 
00139    double xyDistanceToLine(const Dt3dPoint& pointA, const Dt3dPoint& pointB) const;
00142    double xyDistanceToLineSquared(const Dt3dPoint& pointA, const Dt3dPoint& pointB) const;
00143 
00145    double magnitudeSquared() const;
00146 
00150    void normalize();
00151 
00154    Dt3dPoint(const DtVector& orig);
00155 
00158    Dt3dPoint& operator=(const DtVector& rhs);
00159    
00162    Dt3dPoint operator+(const Dt3dPoint& rhs) const;
00163 
00166    Dt3dPoint& operator+=(const Dt3dPoint& rhs);
00167 
00170    Dt3dPoint& operator-=(const Dt3dPoint& rhs);
00171 
00172 
00173 protected:
00174 
00175    //no not change the order of this classes data memebers
00176    //VR-Forces depends on the current ordering.
00177    double myX;
00178    double myY;
00179    double myZ;
00180 };
00181 
00182 
00183 DT_DLL_MATRIX std::ostream& operator<<(std::ostream& os, const Dt3dPoint& point);
00184 DT_DLL_MATRIX std::istream& operator>>(std::istream& is, Dt3dPoint& point);
00185 
00186 #ifdef DtUSE_UTILITIES_NAMESPACE
00187 }
00188 #endif
00189 
00190 #define _3dPoint_inl
00191 #include "3dPoint.inl"
00192 #undef _3dPoint_inl
00193 
00194 
00195 #endif
00196 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)