QGIS API Documentation 3.41.0-Master (cea29feecf2)
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#include "qgis_analysis.h"
22
23#define SIP_NO_FILE
24
35class ANALYSIS_EXPORT Vector3D
36{
37 protected:
39 double mX = 0;
41 double mY = 0;
43 double mZ = 0;
44
45 public:
47 Vector3D( double x, double y, double z );
48
49 Vector3D() = default;
50
51 // TODO c++20 - replace with = default
52 bool operator==( const Vector3D &v ) const;
53 bool operator!=( const Vector3D &v ) const;
55 double getX() const;
57 double getY() const;
59 double getZ() const;
61 double getLength() const;
63 void setX( double x );
65 void setY( double y );
67 void setZ( double z );
69 void standardise();
70
71 private:
72#ifdef SIP_RUN
73 Vector3D( const Vector3D &v );
74#endif
75};
76
77#ifndef SIP_RUN
78
79//------------------------------------------constructors------------------------------------
80
81inline Vector3D::Vector3D( double x, double y, double z )
82 : mX( x )
83 , mY( y )
84 , mZ( z )
85{
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
Class Vector3D represents a 3D-Vector, capable to store x-,y- and z-coordinates in double values.
Definition Vector3D.h:36
double mX
X-component of the vector.
Definition Vector3D.h:39
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:43
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 mY
Y-component of the vector.
Definition Vector3D.h:41
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)