QGIS API Documentation 3.29.0-Master (006c3c0232)
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 );
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
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
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: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:43
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 mY
Y-component of the vector.
Definition: Vector3D.h:41
Vector3D()=default
Default constructor.
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)