QGIS API Documentation  2.18.21-Las Palmas (9fba24a)
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 *
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
28 class ANALYSIS_EXPORT Vector3D
29 {
30  protected:
32  double mX;
34  double mY;
36  double mZ;
37
38  public:
40  Vector3D( double x, double y, double z );
42  Vector3D();
44  Vector3D( const Vector3D& v );
46  ~Vector3D();
47  Vector3D& operator=( const Vector3D& v );
48  bool operator==( const Vector3D& v ) const;
49  bool operator!=( const Vector3D& v ) const;
51  double getX() const;
53  double getY() const;
55  double getZ() const;
57  double getLength() const;
59  void setX( double x );
61  void setY( double y );
63  void setZ( double z );
65  void standardise();
66 };
67
68 //------------------------------------------constructors------------------------------------
69
70 inline Vector3D::Vector3D( double x, double y, double z )
71  : mX( x )
72  , mY( y )
73  , mZ( z )
74 {
75
76 }
77
79  : mX( 0 )
80  , mY( 0 )
81  , mZ( 0 )//using a list
82 {
83
84 }
85
87 {
88
89 }
90
91 //-------------------------------------------setter and getters-------------------------------
92
93 inline double Vector3D::getX() const
94 {
95  return mX;
96 }
97
98 inline double Vector3D::getY() const
99 {
100  return mY;
101 }
102
103 inline double Vector3D::getZ() const
104 {
105  return mZ;
106 }
107
108 inline void Vector3D::setX( double x )
109 {
110  mX = x;
111 }
112
113 inline void Vector3D::setY( double y )
114 {
115  mY = y;
116 }
117
118 inline void Vector3D::setZ( double z )
119 {
120  mZ = z;
121 }
122
123 #endif
void setX(double x)
Sets the x-component of the vector.
Definition: Vector3D.h:108
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
double getZ() const
Returns the z-component of the vector.
Definition: Vector3D.h:103
Class Vector3D represents a 3D-Vector, capable to store x-,y- and z-coordinates in double values...
Definition: Vector3D.h:28
void setZ(double z)
Sets the z-component of the vector.
Definition: Vector3D.h:118
double mX
X-component of the vector.
Definition: Vector3D.h:32
double mZ
Z-component of the vector.
Definition: Vector3D.h:36
~Vector3D()
Destructor.
Definition: Vector3D.h:86
double getY() const
Returns the y-component of the vector.
Definition: Vector3D.h:98
double mY
Y-component of the vector.
Definition: Vector3D.h:34
void setY(double y)
Sets the y-component of the vector.
Definition: Vector3D.h:113
Vector3D()
Default constructor.
Definition: Vector3D.h:78
double getX() const
Returns the x-component of the vector.
Definition: Vector3D.h:93