QGIS API Documentation 4.1.0-Master (60fea48833c)
Loading...
Searching...
No Matches
Vector3D.h
Go to the documentation of this file.
1/***************************************************************************
2 Vector3D.h - description
3 -------------------
4 copyright : (C) 2004 by Marco Hugentobler
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#include "qgis_analysis.h"
23
24#define SIP_NO_FILE
25
35
36class ANALYSIS_EXPORT Vector3D
37{
38 protected:
40 double mX = 0;
42 double mY = 0;
44 double mZ = 0;
45
46 public:
48 Vector3D( double x, double y, double z );
49
50 Vector3D() = default;
51
52 // TODO c++20 - replace with = default
53 bool operator==( const Vector3D &v ) const;
54 bool operator!=( const Vector3D &v ) const;
56 double getX() const;
58 double getY() const;
60 double getZ() const;
62 double getLength() const;
64 void setX( double x );
66 void setY( double y );
68 void setZ( double z );
70 void standardise();
71
72 private:
73#ifdef SIP_RUN
74 Vector3D( const Vector3D &v );
75#endif
76};
77
78#ifndef SIP_RUN
79
80//------------------------------------------constructors------------------------------------
81
82inline Vector3D::Vector3D( double x, double y, double z )
83 : mX( x )
84 , mY( y )
85 , mZ( z )
86{}
87
88//-------------------------------------------setter and getters-------------------------------
89
90inline double Vector3D::getX() const
91{
92 return mX;
93}
94
95inline double Vector3D::getY() const
96{
97 return mY;
98}
99
100inline double Vector3D::getZ() const
101{
102 return mZ;
103}
104
105inline void Vector3D::setX( double x )
106{
107 mX = x;
108}
109
110inline void Vector3D::setY( double y )
111{
112 mY = y;
113}
114
115inline void Vector3D::setZ( double z )
116{
117 mZ = z;
118}
119
120#endif
121#endif
void standardise()
Standardises the vector.
Definition Vector3D.cpp:24
double mX
X-component of the vector.
Definition Vector3D.h:40
void setX(double x)
Sets the x-component of the vector.
Definition Vector3D.h:105
double getY() const
Returns the y-component of the vector.
Definition Vector3D.h:95
double mZ
Z-component of the vector.
Definition Vector3D.h:44
double getX() const
Returns the x-component of the vector.
Definition Vector3D.h:90
void setY(double y)
Sets the y-component of the vector.
Definition Vector3D.h:110
double getZ() const
Returns the z-component of the vector.
Definition Vector3D.h:100
double getLength() const
Returns the length of the vector.
Definition Vector3D.cpp:19
Vector3D(double x, double y, double z)
Constructor taking the three components as arguments.
Definition Vector3D.h:82
double mY
Y-component of the vector.
Definition Vector3D.h:42
Vector3D()=default
void setZ(double z)
Sets the z-component of the vector.
Definition Vector3D.h:115
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)