QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgscesiumutils.h
Go to the documentation of this file.
1/***************************************************************************
2 qgscesiumutils.h
3 --------------------
4 begin : July 2023
5 copyright : (C) 2023 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ******************************************************************
8 ***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
19#ifndef QGSCESIUMUTILS_H
20#define QGSCESIUMUTILS_H
21
22#include "qgis_core.h"
23#include "qgsbox3d.h"
24#include "qgsvector3d.h"
25#include "qgis_sip.h"
26#include "nlohmann/json_fwd.hpp"
27
28#ifndef SIP_RUN
29using namespace nlohmann;
30#endif
31
32class QgsSphere;
34class QgsMatrix4x4;
35
43class CORE_EXPORT QgsCesiumUtils
44{
45 public:
46
47#ifndef SIP_RUN
48
54 static QgsBox3D parseRegion( const json &region );
55#endif
56
60 static QgsBox3D parseRegion( const QVariantList &region );
61
62#ifndef SIP_RUN
63
69 static QgsOrientedBox3D parseBox( const json &box );
70#endif
71
75 static QgsOrientedBox3D parseBox( const QVariantList &box );
76
77#ifndef SIP_RUN
78
84 static QgsSphere parseSphere( const json &sphere );
85#endif
86
90 static QgsSphere parseSphere( const QVariantList &sphere );
91
95 static QgsSphere transformSphere( const QgsSphere &sphere, const QgsMatrix4x4 &transform );
96
101 {
103 QByteArray gltf;
104
107 };
108
113 static B3DMContents extractGltfFromB3dm( const QByteArray &tileContent );
114
119 {
121 QByteArray gltf;
122
125 };
126
133 static TileContents extractGltfFromTileContent( const QByteArray &tileContent );
134
135};
136
137#endif // QGSCESIUMUTILS_H
A 3-dimensional box composed of x, y, z coordinates.
Definition: qgsbox3d.h:43
Contains utilities for working with Cesium data.
A simple 4x4 matrix implementation useful for transformation in 3D space.
Definition: qgsmatrix4x4.h:40
Represents a oriented (rotated) box in 3 dimensions.
A spherical geometry object.
Definition: qgssphere.h:41
Class for storage of 3D vectors similar to QVector3D, with the difference that it uses double precisi...
Definition: qgsvector3d.h:31
Encapsulates the contents of a B3DM file.
QByteArray gltf
GLTF binary content.
QgsVector3D rtcCenter
Optional RTC center.
Encapsulates the contents of a 3D tile.
QgsVector3D rtcCenter
Optional RTC center.
QByteArray gltf
GLTF binary content.