QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
qgsaabb.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsaabb.h
3
--------------------------------------
4
Date : July 2017
5
Copyright : (C) 2017 by Martin Dobias
6
Email : wonder dot sk at gmail dot com
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#ifndef QGSAABB_H
17
#define QGSAABB_H
18
19
#include "qgis_3d.h"
20
#include "
qgsbox3d.h
"
21
22
#include <QList>
23
#include <QVector3D>
24
25
#define SIP_NO_FILE
26
32
class
_3D_EXPORT
QgsAABB
33
{
34
public
:
36
QgsAABB
() =
default
;
37
39
QgsAABB
(
float
xMin
,
float
yMin
,
float
zMin
,
float
xMax
,
float
yMax
,
float
zMax
);
40
46
static
QgsAABB
fromBox3D
(
const
QgsBox3D
&box3D,
const
QgsVector3D
&origin )
47
{
48
return
QgsAABB
(
49
static_cast<
float
>
( box3D.
xMinimum
() - origin.
x
() ),
50
static_cast<
float
>
( box3D.
yMinimum
() - origin.
y
() ),
51
static_cast<
float
>
( box3D.
zMinimum
() - origin.
z
() ),
52
static_cast<
float
>
( box3D.
xMaximum
() - origin.
x
() ),
53
static_cast<
float
>
( box3D.
yMaximum
() - origin.
y
() ),
54
static_cast<
float
>
( box3D.
zMaximum
() - origin.
z
() )
55
);
56
}
57
59
float
xExtent
()
const
{
return
xMax
-
xMin
; }
61
float
yExtent
()
const
{
return
yMax
-
yMin
; }
63
float
zExtent
()
const
{
return
zMax
-
zMin
; }
64
66
float
xCenter
()
const
{
return
(
xMax
+
xMin
) / 2; }
68
float
yCenter
()
const
{
return
(
yMax
+
yMin
) / 2; }
70
float
zCenter
()
const
{
return
(
zMax
+
zMin
) / 2; }
71
73
QVector3D
center
()
const
{
return
QVector3D(
xCenter
(),
yCenter
(),
zCenter
() ); }
75
QVector3D
minimum
()
const
{
return
QVector3D(
xMin
,
yMin
,
zMin
); }
77
QVector3D
maximum
()
const
{
return
QVector3D(
xMax
,
yMax
,
zMax
); }
78
80
bool
intersects(
const
QgsAABB
&other )
const
;
81
83
bool
intersects(
float
x,
float
y,
float
z )
const
;
84
86
float
distanceFromPoint(
float
x,
float
y,
float
z )
const
;
87
89
float
distanceFromPoint( QVector3D v )
const
;
90
92
QList<QVector3D> verticesForLines()
const
;
93
95
QString toString()
const
;
96
98
bool
isEmpty
()
const
{
return
xMin
==
xMax
&&
yMin
==
yMax
&&
zMin
==
zMax
; }
99
100
float
xMin
= 0.0f;
101
float
yMin
= 0.0f;
102
float
zMin
= 0.0f;
103
float
xMax
= 0.0f;
104
float
yMax
= 0.0f;
105
float
zMax
= 0.0f;
106
};
107
108
#endif
// QGSAABB_H
QgsAABB
Axis-aligned bounding box - in world coords.
Definition
qgsaabb.h:33
QgsAABB::yMax
float yMax
Definition
qgsaabb.h:104
QgsAABB::yExtent
float yExtent() const
Returns box width in Y axis.
Definition
qgsaabb.h:61
QgsAABB::xMax
float xMax
Definition
qgsaabb.h:103
QgsAABB::center
QVector3D center() const
Returns coordinates of the center of the box.
Definition
qgsaabb.h:73
QgsAABB::xExtent
float xExtent() const
Returns box width in X axis.
Definition
qgsaabb.h:59
QgsAABB::xCenter
float xCenter() const
Returns center in X axis.
Definition
qgsaabb.h:66
QgsAABB::zExtent
float zExtent() const
Returns box width in Z axis.
Definition
qgsaabb.h:63
QgsAABB::xMin
float xMin
Definition
qgsaabb.h:100
QgsAABB::zMax
float zMax
Definition
qgsaabb.h:105
QgsAABB::yMin
float yMin
Definition
qgsaabb.h:101
QgsAABB::isEmpty
bool isEmpty() const
Returns true if xExtent(), yExtent() and zExtent() are all zero, false otherwise.
Definition
qgsaabb.h:98
QgsAABB::minimum
QVector3D minimum() const
Returns corner of the box with minimal coordinates.
Definition
qgsaabb.h:75
QgsAABB::yCenter
float yCenter() const
Returns center in Y axis.
Definition
qgsaabb.h:68
QgsAABB::QgsAABB
QgsAABB()=default
Constructs bounding box with null coordinates.
QgsAABB::zMin
float zMin
Definition
qgsaabb.h:102
QgsAABB::maximum
QVector3D maximum() const
Returns corner of the box with maximal coordinates.
Definition
qgsaabb.h:77
QgsAABB::zCenter
float zCenter() const
Returns center in Z axis.
Definition
qgsaabb.h:70
QgsAABB::fromBox3D
static QgsAABB fromBox3D(const QgsBox3D &box3D, const QgsVector3D &origin)
Constructs bounding box from QgsBox3D by subtracting origin 3D vector.
Definition
qgsaabb.h:46
QgsBox3D
A 3-dimensional box composed of x, y, z coordinates.
Definition
qgsbox3d.h:45
QgsBox3D::yMaximum
double yMaximum() const
Returns the maximum y value.
Definition
qgsbox3d.h:240
QgsBox3D::xMinimum
double xMinimum() const
Returns the minimum x value.
Definition
qgsbox3d.h:205
QgsBox3D::zMaximum
double zMaximum() const
Returns the maximum z value.
Definition
qgsbox3d.h:268
QgsBox3D::xMaximum
double xMaximum() const
Returns the maximum x value.
Definition
qgsbox3d.h:212
QgsBox3D::zMinimum
double zMinimum() const
Returns the minimum z value.
Definition
qgsbox3d.h:261
QgsBox3D::yMinimum
double yMinimum() const
Returns the minimum y value.
Definition
qgsbox3d.h:233
QgsVector3D
A 3D vector (similar to QVector3D) with the difference that it uses double precision instead of singl...
Definition
qgsvector3d.h:33
QgsVector3D::y
double y() const
Returns Y coordinate.
Definition
qgsvector3d.h:60
QgsVector3D::z
double z() const
Returns Z coordinate.
Definition
qgsvector3d.h:62
QgsVector3D::x
double x() const
Returns X coordinate.
Definition
qgsvector3d.h:58
qgsbox3d.h
Generated on
for QGIS API Documentation by
1.17.0