Skip to content

Commit e9d0dc1

Browse files
committedSep 26, 2017
Qgs-ify axis aligned bounding box. Qgs-ification finished!
1 parent 894db92 commit e9d0dc1

23 files changed

+179
-583
lines changed
 

‎src/3d/CMakeLists.txt

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# sources
33

44
SET(QGIS_3D_SRCS
5-
5+
qgsaabb.cpp
66
qgs3dmapscene.cpp
77
qgs3dmapsettings.cpp
88
qgs3dutils.cpp
@@ -73,8 +73,7 @@ QT5_ADD_RESOURCES(QGIS_3D_RCC_SRCS shaders.qrc)
7373
# install headers
7474

7575
SET(QGIS_3D_HDRS
76-
aabb.h
77-
76+
qgsaabb.h
7877
qgs3dmapscene.h
7978
qgs3dmapsettings.h
8079
qgs3dutils.h
@@ -213,14 +212,3 @@ IF (APPLE AND QGIS_MACAPP_INSTALL_DEV)
213212
INSTALL(CODE "EXECUTE_PROCESS(COMMAND install_name_tool -id \"${QGIS_MACAPP_DEV_PREFIX}/qgis_3d.framework/Versions/${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}/qgis_3d\" \"$ENV{DESTDIR}${QGIS_MACAPP_DEV_PREFIX}/qgis_3d.framework/qgis_3d\")")
214213
INSTALL(CODE "EXECUTE_PROCESS(COMMAND install_name_tool -change \"${CMAKE_INSTALL_NAME_DIR}/qgis_core.framework/Versions/${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}/qgis_core\" \"${QGIS_MACAPP_DEV_PREFIX}/qgis_core.framework/Versions/${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}/qgis_core\" \"$ENV{DESTDIR}${QGIS_MACAPP_DEV_PREFIX}/qgis_3d.framework/qgis_3d\")")
215214
ENDIF (APPLE AND QGIS_MACAPP_INSTALL_DEV)
216-
217-
218-
#############################################################
219-
# qgis 3d test executable (temporary)
220-
221-
add_executable(qgis3d
222-
testapp/main.cpp
223-
testapp/sidepanel.cpp
224-
testapp/window3d.cpp
225-
)
226-
target_link_libraries(qgis3d qgis_3d)

‎src/3d/aabb.h

Lines changed: 0 additions & 126 deletions
This file was deleted.

‎src/3d/chunks/qgschunkboundsentity_p.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include <Qt3DRender/QGeometryRenderer>
77
#include <Qt3DExtras/QPhongMaterial>
88

9-
#include "aabb.h"
9+
#include "qgsaabb.h"
1010

1111

1212
///@cond PRIVATE
@@ -77,7 +77,7 @@ class AABBMesh : public Qt3DRender::QGeometryRenderer
7777
public:
7878
AABBMesh( Qt3DCore::QNode *parent = nullptr );
7979

80-
void setBoxes( const QList<AABB> &bboxes );
80+
void setBoxes( const QList<QgsAABB> &bboxes );
8181

8282
private:
8383
LineMeshGeometry *_lineMeshGeo;
@@ -97,10 +97,10 @@ AABBMesh::AABBMesh( Qt3DCore::QNode *parent )
9797
setGeometry( _lineMeshGeo );
9898
}
9999

100-
void AABBMesh::setBoxes( const QList<AABB> &bboxes )
100+
void AABBMesh::setBoxes( const QList<QgsAABB> &bboxes )
101101
{
102102
QList<QVector3D> vertices;
103-
Q_FOREACH ( const AABB &bbox, bboxes )
103+
Q_FOREACH ( const QgsAABB &bbox, bboxes )
104104
vertices << bbox.verticesForLines();
105105
_lineMeshGeo->setVertices( vertices );
106106
setVertexCount( _lineMeshGeo->vertexCount() );
@@ -121,7 +121,7 @@ QgsChunkBoundsEntity::QgsChunkBoundsEntity( Qt3DCore::QNode *parent )
121121
addComponent( bboxesMaterial );
122122
}
123123

124-
void QgsChunkBoundsEntity::setBoxes( const QList<AABB> &bboxes )
124+
void QgsChunkBoundsEntity::setBoxes( const QList<QgsAABB> &bboxes )
125125
{
126126
aabbMesh->setBoxes( bboxes );
127127
}

‎src/3d/chunks/qgschunkboundsentity_p.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
#include <Qt3DCore/QEntity>
1616

17-
class AABB;
17+
class QgsAABB;
1818
class AABBMesh;
1919

2020

@@ -29,7 +29,7 @@ class QgsChunkBoundsEntity : public Qt3DCore::QEntity
2929
QgsChunkBoundsEntity( Qt3DCore::QNode *parent = nullptr );
3030

3131
//! Sets a list of bounding boxes to be rendered by the entity
32-
void setBoxes( const QList<AABB> &bboxes );
32+
void setBoxes( const QList<QgsAABB> &bboxes );
3333

3434
private:
3535
AABBMesh *aabbMesh;

‎src/3d/chunks/qgschunkedentity_p.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ static float screenSpaceError( QgsChunkNode *node, const SceneState &state )
4444
return sse;
4545
}
4646

47-
QgsChunkedEntity::QgsChunkedEntity( const AABB &rootBbox, float rootError, float tau, int maxLevel, QgsChunkLoaderFactory *loaderFactory, Qt3DCore::QNode *parent )
47+
QgsChunkedEntity::QgsChunkedEntity( const QgsAABB &rootBbox, float rootError, float tau, int maxLevel, QgsChunkLoaderFactory *loaderFactory, Qt3DCore::QNode *parent )
4848
: Qt3DCore::QEntity( parent )
4949
, needsUpdate( false )
5050
, tau( tau )
@@ -142,7 +142,7 @@ void QgsChunkedEntity::update( const SceneState &state )
142142

143143
if ( bboxesEntity )
144144
{
145-
QList<AABB> bboxes;
145+
QList<QgsAABB> bboxes;
146146
Q_FOREACH ( QgsChunkNode *n, activeNodes )
147147
bboxes << n->bbox;
148148
bboxesEntity->setBoxes( bboxes );

‎src/3d/chunks/qgschunkedentity_p.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
#include <Qt3DCore/QEntity>
1616

17-
class AABB;
17+
class QgsAABB;
1818
class QgsChunkNode;
1919
class QgsChunkList;
2020
class QgsChunkQueueJob;
@@ -51,7 +51,7 @@ class QgsChunkedEntity : public Qt3DCore::QEntity
5151
Q_OBJECT
5252
public:
5353
//! Constructs a chunked entity
54-
QgsChunkedEntity( const AABB &rootBbox, float rootError, float tau, int maxLevel, QgsChunkLoaderFactory *loaderFactory, Qt3DCore::QNode *parent = nullptr );
54+
QgsChunkedEntity( const QgsAABB &rootBbox, float rootError, float tau, int maxLevel, QgsChunkLoaderFactory *loaderFactory, Qt3DCore::QNode *parent = nullptr );
5555
~QgsChunkedEntity();
5656

5757
//! Called when e.g. camera changes and entity may need updated

‎src/3d/chunks/qgschunknode_p.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
///@cond PRIVATE
99

10-
QgsChunkNode::QgsChunkNode( int x, int y, int z, const AABB &bbox, float error, QgsChunkNode *parent )
10+
QgsChunkNode::QgsChunkNode( int x, int y, int z, const QgsAABB &bbox, float error, QgsChunkNode *parent )
1111
: bbox( bbox )
1212
, error( error )
1313
, x( x )
@@ -62,16 +62,16 @@ void QgsChunkNode::ensureAllChildrenExist()
6262
float ymax = bbox.yMax;
6363

6464
if ( !children[0] )
65-
children[0] = new QgsChunkNode( x * 2 + 0, y * 2 + 1, z + 1, AABB( bbox.xMin, ymin, bbox.zMin, xc, ymax, zc ), childError, this );
65+
children[0] = new QgsChunkNode( x * 2 + 0, y * 2 + 1, z + 1, QgsAABB( bbox.xMin, ymin, bbox.zMin, xc, ymax, zc ), childError, this );
6666

6767
if ( !children[1] )
68-
children[1] = new QgsChunkNode( x * 2 + 0, y * 2 + 0, z + 1, AABB( bbox.xMin, ymin, zc, xc, ymax, bbox.zMax ), childError, this );
68+
children[1] = new QgsChunkNode( x * 2 + 0, y * 2 + 0, z + 1, QgsAABB( bbox.xMin, ymin, zc, xc, ymax, bbox.zMax ), childError, this );
6969

7070
if ( !children[2] )
71-
children[2] = new QgsChunkNode( x * 2 + 1, y * 2 + 1, z + 1, AABB( xc, ymin, bbox.zMin, bbox.xMax, ymax, zc ), childError, this );
71+
children[2] = new QgsChunkNode( x * 2 + 1, y * 2 + 1, z + 1, QgsAABB( xc, ymin, bbox.zMin, bbox.xMax, ymax, zc ), childError, this );
7272

7373
if ( !children[3] )
74-
children[3] = new QgsChunkNode( x * 2 + 1, y * 2 + 0, z + 1, AABB( xc, ymin, zc, bbox.xMax, ymax, bbox.zMax ), childError, this );
74+
children[3] = new QgsChunkNode( x * 2 + 1, y * 2 + 0, z + 1, QgsAABB( xc, ymin, zc, bbox.xMax, ymax, bbox.zMax ), childError, this );
7575
}
7676

7777
int QgsChunkNode::level() const
@@ -241,7 +241,7 @@ void QgsChunkNode::setUpdated()
241241
state = QgsChunkNode::Loaded;
242242
}
243243

244-
void QgsChunkNode::setExactBbox( const AABB &box )
244+
void QgsChunkNode::setExactBbox( const QgsAABB &box )
245245
{
246246
bbox = box;
247247

‎src/3d/chunks/qgschunknode_p.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// version without notice, or even be removed.
1313
//
1414

15-
#include "aabb.h"
15+
#include "qgsaabb.h"
1616

1717
#include <QTime>
1818

@@ -44,7 +44,7 @@ class QgsChunkNode
4444
{
4545
public:
4646
//! constructs a skeleton chunk
47-
QgsChunkNode( int x, int y, int z, const AABB &bbox, float error, QgsChunkNode *parent = nullptr );
47+
QgsChunkNode( int x, int y, int z, const QgsAABB &bbox, float error, QgsChunkNode *parent = nullptr );
4848

4949
~QgsChunkNode();
5050

@@ -98,9 +98,9 @@ class QgsChunkNode
9898
void setUpdated();
9999

100100
//! called when bounding box
101-
void setExactBbox( const AABB &box );
101+
void setExactBbox( const QgsAABB &box );
102102

103-
AABB bbox; //!< Bounding box in world coordinates
103+
QgsAABB bbox; //!< Bounding box in world coordinates
104104
float error; //!< Error of the node in world coordinates
105105

106106
int x, y, z; //!< Chunk coordinates (for use with a tiling scheme)

‎src/3d/qgs3dmapscene.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#include <QTimer>
1414

15-
#include "aabb.h"
15+
#include "qgsaabb.h"
1616
#include "qgs3dmapsettings.h"
1717
#include "qgs3dutils.h"
1818
#include "qgsabstract3drenderer.h"
@@ -203,7 +203,7 @@ void Qgs3DMapScene::onCameraChanged()
203203
{
204204
// project each corner of bbox to camera coordinates
205205
// and determine closest and farthest point.
206-
AABB bbox = node->bbox;
206+
QgsAABB bbox = node->bbox;
207207
for ( int i = 0; i < 8; ++i )
208208
{
209209
QVector4D p( ( ( i >> 0 ) & 1 ) ? bbox.xMin : bbox.xMax,

‎src/3d/qgs3dutils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ static inline uint outcode( const QVector4D &v )
203203
//! should be equivalent to https://searchcode.com/codesearch/view/35195518/
204204
//! qt3d /src/threed/painting/qglpainter.cpp
205205
//! bool QGLPainter::isCullable(const QBox3D& box) const
206-
bool Qgs3DUtils::isCullable( const AABB &bbox, const QMatrix4x4 &viewProjectionMatrix )
206+
bool Qgs3DUtils::isCullable( const QgsAABB &bbox, const QMatrix4x4 &viewProjectionMatrix )
207207
{
208208
uint out = 0xff;
209209

‎src/3d/qgs3dutils.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class QgsLineString;
55
class QgsPolygonV2;
66

77
#include "qgs3dmapsettings.h"
8-
#include "aabb.h"
8+
#include "qgsaabb.h"
99

1010
//! how to handle altitude of vector features
1111
enum AltitudeClamping
@@ -67,7 +67,7 @@ class _3D_EXPORT Qgs3DUtils
6767
Returns true if bbox is completely outside the current viewing volume.
6868
This is used to perform object culling checks.
6969
*/
70-
static bool isCullable( const AABB &bbox, const QMatrix4x4 &viewProjectionMatrix );
70+
static bool isCullable( const QgsAABB &bbox, const QMatrix4x4 &viewProjectionMatrix );
7171
};
7272

7373
#endif // QGS3DUTILS_H

‎src/3d/qgsaabb.cpp

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
#include "qgsaabb.h"
2+
3+
QgsAABB::QgsAABB()
4+
: xMin( 0 ), yMin( 0 ), zMin( 0 ), xMax( 0 ), yMax( 0 ), zMax( 0 )
5+
{
6+
}
7+
8+
QgsAABB::QgsAABB( float xMin, float yMin, float zMin, float xMax, float yMax, float zMax )
9+
: xMin( xMin ), yMin( yMin ), zMin( zMin ), xMax( xMax ), yMax( yMax ), zMax( zMax )
10+
{
11+
// normalize coords
12+
if ( this->xMax < this->xMin )
13+
qSwap( this->xMin, this->xMax );
14+
if ( this->yMax < this->yMin )
15+
qSwap( this->yMin, this->yMax );
16+
if ( this->zMax < this->zMin )
17+
qSwap( this->zMin, this->zMax );
18+
}
19+
20+
bool QgsAABB::intersects( const QgsAABB &other ) const
21+
{
22+
return xMin < other.xMax && other.xMin < xMax &&
23+
yMin < other.yMax && other.yMin < yMax &&
24+
zMin < other.zMax && other.zMin < zMax;
25+
}
26+
27+
bool QgsAABB::intersects( float x, float y, float z ) const
28+
{
29+
return xMin <= x && xMax >= x &&
30+
yMin <= y && yMax >= y &&
31+
zMin <= z && zMax >= z;
32+
}
33+
34+
35+
float QgsAABB::distanceFromPoint( float x, float y, float z ) const
36+
{
37+
float dx = qMax( xMin - x, qMax( 0.f, x - xMax ) );
38+
float dy = qMax( yMin - y, qMax( 0.f, y - yMax ) );
39+
float dz = qMax( zMin - z, qMax( 0.f, z - zMax ) );
40+
return sqrt( dx * dx + dy * dy + dz * dz );
41+
}
42+
43+
float QgsAABB::distanceFromPoint( const QVector3D &v ) const
44+
{
45+
return distanceFromPoint( v.x(), v.y(), v.z() );
46+
}
47+
48+
QList<QVector3D> QgsAABB::verticesForLines() const
49+
{
50+
QList<QVector3D> vertices;
51+
for ( int i = 0; i < 2; ++i )
52+
{
53+
float x = i ? xMax : xMin;
54+
for ( int j = 0; j < 2; ++j )
55+
{
56+
float y = j ? yMax : yMin;
57+
for ( int k = 0; k < 2; ++k )
58+
{
59+
float z = k ? zMax : zMin;
60+
if ( i == 0 )
61+
{
62+
vertices.append( QVector3D( xMin, y, z ) );
63+
vertices.append( QVector3D( xMax, y, z ) );
64+
}
65+
if ( j == 0 )
66+
{
67+
vertices.append( QVector3D( x, yMin, z ) );
68+
vertices.append( QVector3D( x, yMax, z ) );
69+
}
70+
if ( k == 0 )
71+
{
72+
vertices.append( QVector3D( x, y, zMin ) );
73+
vertices.append( QVector3D( x, y, zMax ) );
74+
}
75+
}
76+
}
77+
}
78+
return vertices;
79+
}

‎src/3d/qgsaabb.h

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#ifndef QGSAABB_H
2+
#define QGSAABB_H
3+
4+
#include "qgis_3d.h"
5+
6+
#include <math.h>
7+
#include <QList>
8+
#include <QVector3D>
9+
10+
/** \ingroup 3d
11+
* Axis-aligned bounding box - in world coords.
12+
* \since QGIS 3.0
13+
*/
14+
class _3D_EXPORT QgsAABB
15+
{
16+
public:
17+
//! Constructs bounding box with null coordinates
18+
QgsAABB();
19+
20+
//! Constructs bounding box
21+
QgsAABB( float xMin, float yMin, float zMin, float xMax, float yMax, float zMax );
22+
23+
//! Returns box width in X axis
24+
float xExtent() const { return xMax - xMin; }
25+
//! Returns box width in Y axis
26+
float yExtent() const { return yMax - yMin; }
27+
//! Returns box width in Z axis
28+
float zExtent() const { return zMax - zMin; }
29+
30+
//! Returns center in X axis
31+
float xCenter() const { return ( xMax + xMin ) / 2; }
32+
//! Returns center in Y axis
33+
float yCenter() const { return ( yMax + yMin ) / 2; }
34+
//! Returns center in Z axis
35+
float zCenter() const { return ( zMax + zMin ) / 2; }
36+
37+
//! Returns coordinates of the center of the box
38+
QVector3D center() const { return QVector3D( xCenter(), yCenter(), zCenter() ); }
39+
//! Returns corner of the box with minimal coordinates
40+
QVector3D minimum() const { return QVector3D( xMin, yMin, zMin ); }
41+
//! Returns corner of the box with maximal coordinates
42+
QVector3D maximum() const { return QVector3D( xMax, yMax, zMax ); }
43+
44+
//! Determines whether the box intersects some other axis aligned box
45+
bool intersects( const QgsAABB &other ) const;
46+
47+
//! Determines whether given coordinate is inside the box
48+
bool intersects( float x, float y, float z ) const;
49+
50+
//! Returns shortest distance from the box to a point
51+
float distanceFromPoint( float x, float y, float z ) const;
52+
53+
//! Returns shortest distance from the box to a point
54+
float distanceFromPoint( const QVector3D &v ) const;
55+
56+
//! Returns a list of pairs of vertices (useful for display of bounding boxes)
57+
QList<QVector3D> verticesForLines() const;
58+
59+
float xMin, yMin, zMin;
60+
float xMax, yMax, zMax;
61+
};
62+
63+
#endif // QGSAABB_H

‎src/3d/terrain/qgsdemterraintileloader_p.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ Qt3DCore::QEntity *QgsDemTerrainTileLoader::createEntity( Qt3DCore::QEntity *par
7979
transform->setScale3D( QVector3D( side, map.terrainVerticalScale(), side ) );
8080
transform->setTranslation( QVector3D( x0 + half, 0, - ( y0 + half ) ) );
8181

82-
node->setExactBbox( AABB( x0, zMin * map.terrainVerticalScale(), -y0, x0 + side, zMax * map.terrainVerticalScale(), -( y0 + side ) ) );
82+
node->setExactBbox( QgsAABB( x0, zMin * map.terrainVerticalScale(), -y0, x0 + side, zMax * map.terrainVerticalScale(), -( y0 + side ) ) );
8383

8484
entity->setEnabled( false );
8585
entity->setParent( parent );

‎src/3d/terrain/qgsflatterraingenerator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Qt3DCore::QEntity *FlatTerrainChunkLoader::createEntity( Qt3DCore::QEntity *pare
6161
entity->addComponent( transform );
6262

6363
// set up transform according to the extent covered by the quad geometry
64-
AABB bbox = node->bbox;
64+
QgsAABB bbox = node->bbox;
6565
double side = bbox.xMax - bbox.xMin;
6666
double half = side / 2;
6767

‎src/3d/terrain/qgsterrainentity_p.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include "qgsterrainentity_p.h"
22

3-
#include "aabb.h"
3+
#include "qgsaabb.h"
44
#include "qgs3dmapsettings.h"
55
#include "qgschunknode_p.h"
66
#include "qgsterraingenerator.h"

‎src/3d/terrain/qgsterraingenerator.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
#include "qgsterraingenerator.h"
22

3-
#include "aabb.h"
3+
#include "qgsaabb.h"
44
#include "qgs3dmapsettings.h"
55

66

7-
AABB QgsTerrainGenerator::rootChunkBbox( const Qgs3DMapSettings &map ) const
7+
QgsAABB QgsTerrainGenerator::rootChunkBbox( const Qgs3DMapSettings &map ) const
88
{
99
QgsRectangle te = extent();
1010
QgsCoordinateTransform terrainToMapTransform( crs(), map.crs );
1111
te = terrainToMapTransform.transformBoundingBox( te );
1212

1313
float hMin, hMax;
1414
rootChunkHeightRange( hMin, hMax );
15-
return AABB( te.xMinimum() - map.originX, hMin * map.terrainVerticalScale(), -te.yMaximum() + map.originY,
16-
te.xMaximum() - map.originX, hMax * map.terrainVerticalScale(), -te.yMinimum() + map.originY );
15+
return QgsAABB( te.xMinimum() - map.originX, hMin * map.terrainVerticalScale(), -te.yMaximum() + map.originY,
16+
te.xMaximum() - map.originX, hMax * map.terrainVerticalScale(), -te.yMinimum() + map.originY );
1717
}
1818

1919
float QgsTerrainGenerator::rootChunkError( const Qgs3DMapSettings &map ) const

‎src/3d/terrain/qgsterraingenerator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include "qgstilingscheme.h"
55
#include "qgschunkloader_p.h"
66

7-
class AABB;
7+
class QgsAABB;
88
class Qgs3DMapSettings;
99
class QgsRectangle;
1010
class QgsTerrainEntity;
@@ -48,7 +48,7 @@ class QgsTerrainGenerator : public QgsChunkLoaderFactory
4848
virtual QgsRectangle extent() const = 0;
4949

5050
//! Returns bounding box of the root chunk
51-
virtual AABB rootChunkBbox( const Qgs3DMapSettings &map ) const;
51+
virtual QgsAABB rootChunkBbox( const Qgs3DMapSettings &map ) const;
5252

5353
//! Returns error of the root chunk in world coordinates
5454
virtual float rootChunkError( const Qgs3DMapSettings &map ) const;

‎src/3d/testapp/main.cpp

Lines changed: 0 additions & 271 deletions
This file was deleted.

‎src/3d/testapp/sidepanel.cpp

Lines changed: 0 additions & 27 deletions
This file was deleted.

‎src/3d/testapp/sidepanel.h

Lines changed: 0 additions & 19 deletions
This file was deleted.

‎src/3d/testapp/window3d.cpp

Lines changed: 0 additions & 50 deletions
This file was deleted.

‎src/3d/testapp/window3d.h

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)
Please sign in to comment.