QGIS API Documentation 3.99.0-Master (21b3aa880ba)
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
89//-------------------------------------------setter and getters-------------------------------
90
91inline double Vector3D::getX() const
92{
93 return mX;
94}
95
96inline double Vector3D::getY() const
97{
98 return mY;
99}
100
101inline double Vector3D::getZ() const
102{
103 return mZ;
104}
105
106inline void Vector3D::setX( double x )
107{
108 mX = x;
109}
110
111inline void Vector3D::setY( double y )
112{
113 mY = y;
114}
115
116inline void Vector3D::setZ( double z )
117{
118 mZ = z;
119}
120
121#endif
122#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:106
double getY() const
Returns the y-component of the vector.
Definition Vector3D.h:96
double mZ
Z-component of the vector.
Definition Vector3D.h:44
double getX() const
Returns the x-component of the vector.
Definition Vector3D.h:91
void setY(double y)
Sets the y-component of the vector.
Definition Vector3D.h:111
double getZ() const
Returns the z-component of the vector.
Definition Vector3D.h:101
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:116
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)