Quantum GIS API Documentation
1.8
|
00001 /*************************************************************************** 00002 Point3D.h - description 00003 ------------------- 00004 copyright : (C) 2004 by Marco Hugentobler 00005 email : [email protected] 00006 ***************************************************************************/ 00007 00008 /*************************************************************************** 00009 * * 00010 * This program is free software; you can redistribute it and/or modify * 00011 * it under the terms of the GNU General Public License as published by * 00012 * the Free Software Foundation; either version 2 of the License, or * 00013 * (at your option) any later version. * 00014 * * 00015 ***************************************************************************/ 00016 00017 #ifndef POINT3D_H 00018 #define POINT3D_H 00019 00020 #include <cmath> 00021 00023 class ANALYSIS_EXPORT Point3D 00024 { 00025 protected: 00027 double mX; 00029 double mY; 00031 double mZ; 00032 public: 00033 Point3D(); 00035 Point3D( double x, double y, double z ); 00036 Point3D( const Point3D& p ); 00037 ~Point3D(); 00038 Point3D& operator=( const Point3D& p ); 00039 bool operator==( const Point3D& p ); 00040 bool operator!=( const Point3D& p ); 00042 double dist3D( Point3D* p ) const; 00044 double getX() const; 00046 double getY() const; 00048 double getZ() const; 00050 void setX( double x ); 00052 void setY( double y ); 00054 void setZ( double z ); 00055 }; 00056 00057 inline Point3D::Point3D() : mX( 0 ), mY( 0 ), mZ( 0 ) 00058 { 00059 00060 } 00061 00062 inline Point3D::Point3D( double x, double y, double z ) : mX( x ), mY( y ), mZ( z ) 00063 { 00064 00065 } 00066 00067 inline Point3D::Point3D( const Point3D& p ): mX( p.mX ), mY( p.mY ), mZ( p.mZ ) 00068 { 00069 00070 } 00071 00072 inline Point3D::~Point3D() 00073 { 00074 00075 } 00076 00077 inline double Point3D::getX() const 00078 { 00079 return mX; 00080 } 00081 00082 inline double Point3D::getY() const 00083 { 00084 return mY; 00085 } 00086 00087 inline double Point3D::getZ() const 00088 { 00089 return mZ; 00090 } 00091 00092 inline void Point3D::setX( double x ) 00093 { 00094 mX = x; 00095 } 00096 00097 inline void Point3D::setY( double y ) 00098 { 00099 mY = y; 00100 } 00101 00102 inline void Point3D::setZ( double z ) 00103 { 00104 mZ = z; 00105 } 00106 00107 #endif