QGIS API Documentation  2.0.1-Dufour
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Vector3D.h
Go to the documentation of this file.
1 /***************************************************************************
2  Vector3D.h - description
3  -------------------
4  copyright : (C) 2004 by Marco Hugentobler
5  email : [email protected]
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 VECTOR3D_H
18 #define VECTOR3D_H
19 
20 #include <cmath>
21 
22 class ANALYSIS_EXPORT Vector3D
27 {
28  protected:
30  double mX;
32  double mY;
34  double mZ;
35 
36  public:
38  Vector3D( double x, double y, double z );
40  Vector3D();
42  Vector3D( const Vector3D& v );
44  ~Vector3D();
45  Vector3D& operator=( const Vector3D& v );
46  bool operator==( const Vector3D& v );
47  bool operator!=( const Vector3D& v );
49  double getX() const;
51  double getY() const;
53  double getZ() const;
55  double getLength() const;
57  void setX( double x );
59  void setY( double y );
61  void setZ( double z );
63  void standardise();
64 };
65 
66 //------------------------------------------constructors------------------------------------
67 
68 inline Vector3D::Vector3D( double x, double y, double z ) : mX( x ), mY( y ), mZ( z )
69 {
70 
71 }
72 
73 inline Vector3D::Vector3D() : mX( 0 ), mY( 0 ), mZ( 0 )//using a list
74 {
75 
76 }
77 
79 {
80 
81 }
82 
83 //-------------------------------------------setter and getters-------------------------------
84 
85 inline double Vector3D::getX() const
86 {
87  return mX;
88 }
89 
90 inline double Vector3D::getY() const
91 {
92  return mY;
93 }
94 
95 inline double Vector3D::getZ() const
96 {
97  return mZ;
98 }
99 
100 inline void Vector3D::setX( double x )
101 {
102  mX = x;
103 }
104 
105 inline void Vector3D::setY( double y )
106 {
107  mY = y;
108 }
109 
110 inline void Vector3D::setZ( double z )
111 {
112  mZ = z;
113 }
114 
115 #endif