Quantum GIS API Documentation  1.7.5-Wroclaw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Point3D.h
Go to the documentation of this file.
1 /***************************************************************************
2  Point3D.h - description
3  -------------------
4  copyright : (C) 2004 by Marco Hugentobler
5  email : mhugent@geo.unizh.ch
6  ***************************************************************************/
7 
8 /***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 
17 #ifndef POINT3D_H
18 #define POINT3D_H
19 
20 #include <cmath>
21 #include <iostream>
22 
24 class ANALYSIS_EXPORT Point3D
25 {
26  protected:
28  double mX;
30  double mY;
32  double mZ;
33  public:
34  Point3D();
36  Point3D( double x, double y, double z );
37  Point3D( const Point3D& p );
38  ~Point3D();
39  Point3D& operator=( const Point3D& p );
40  bool operator==( const Point3D& p );
41  bool operator!=( const Point3D& p );
43  double dist3D( Point3D* p ) const;
45  double getX() const;
47  double getY() const;
49  double getZ() const;
51  void setX( double x );
53  void setY( double y );
55  void setZ( double z );
56 };
57 
58 inline Point3D::Point3D() : mX( 0 ), mY( 0 ), mZ( 0 )
59 {
60 
61 }
62 
63 inline Point3D::Point3D( double x, double y, double z ) : mX( x ), mY( y ), mZ( z )
64 {
65 
66 }
67 
68 inline Point3D::Point3D( const Point3D& p ): mX( p.mX ), mY( p.mY ), mZ( p.mZ )
69 {
70 
71 }
72 
74 {
75 
76 }
77 
78 inline double Point3D::getX() const
79 {
80  return mX;
81 }
82 
83 inline double Point3D::getY() const
84 {
85  return mY;
86 }
87 
88 inline double Point3D::getZ() const
89 {
90  return mZ;
91 }
92 
93 inline void Point3D::setX( double x )
94 {
95  mX = x;
96 }
97 
98 inline void Point3D::setY( double y )
99 {
100  mY = y;
101 }
102 
103 inline void Point3D::setZ( double z )
104 {
105  mZ = z;
106 }
107 
108 #endif