16#ifndef QGS3DSCENEEXPORTER_H
17#define QGS3DSCENEEXPORTER_H
19#include <Qt3DCore/QEntity>
20#include <Qt3DExtras/QPlaneGeometry>
21#include <Qt3DRender/QSceneLoader>
22#include <Qt3DRender/QMesh>
30class QgsTerrainTileEntity;
31class QgsTerrainEntity;
37class QgsTerrainTextureGenerator;
72 bool parseVectorLayerEntity( Qt3DCore::QEntity *entity,
QgsVectorLayer *layer );
75 void parseTerrain( QgsTerrainEntity *terrain,
const QString &layer );
78 void save(
const QString &sceneName,
const QString &sceneFolderPath );
107 float scale()
const {
return mScale; }
111 QVector<Qgs3DExportObject *> processInstancedPointGeometry( Qt3DCore::QEntity *entity,
const QString &objectNamePrefix );
113 QVector<Qgs3DExportObject *> processSceneLoaderGeometries( Qt3DRender::QSceneLoader *sceneLoader,
const QString &objectNamePrefix );
115 Qgs3DExportObject *processGeometryRenderer( Qt3DRender::QGeometryRenderer *mesh,
const QString &objectNamePrefix,
float sceneScale = 1.0f, QVector3D sceneTranslation = QVector3D( 0.0f, 0.0f, 0.0f ) );
117 void processEntityMaterial( Qt3DCore::QEntity *entity,
Qgs3DExportObject *
object );
119 QVector<Qgs3DExportObject *> processLines( Qt3DCore::QEntity *entity,
const QString &objectNamePrefix );
121 Qgs3DExportObject *processPoints( Qt3DCore::QEntity *entity,
const QString &objectNamePrefix );
124 QgsTerrainTileEntity *getFlatTerrainEntity( QgsTerrainEntity *terrain, QgsChunkNode *node );
126 QgsTerrainTileEntity *getDemTerrainEntity( QgsTerrainEntity *terrain, QgsChunkNode *node );
128 QgsTerrainTileEntity *getMeshTerrainEntity( QgsTerrainEntity *terrain, QgsChunkNode *node );
131 void parseDemTile( QgsTerrainTileEntity *tileEntity,
const QString &layerName );
133 void parseFlatTile( QgsTerrainTileEntity *tileEntity,
const QString &layerName );
135 void parseMeshTile( QgsTerrainTileEntity *meshEntity,
const QString &layerName );
137 QString getObjectName(
const QString &name );
139 QMap<QString, int> usedObjectNamesCounter;
140 QVector<Qgs3DExportObject *> mObjects;
142 bool mSmoothEdges =
false;
143 int mTerrainResolution = 128;
144 bool mExportNormals =
true;
145 bool mExportTextures =
false;
146 int mTerrainTextureResolution = 512;
Manages the data of each object of the scene (positions, normals, texture coordinates ....
Entity that handles the exporting of 3D scene.
bool exportTextures() const
Returns whether the textures will be exported.
int terrainResolution() const
Returns the terrain resolution.
void setExportTextures(bool exportTextures)
Sets whether the textures will be exported.
~Qgs3DSceneExporter()
Destructor.
void setTerrainResolution(int resolution)
Sets the terrain resolution.
bool smoothEdges() const
Returns whether the triangles will look smooth.
Qgs3DSceneExporter()
Constructor.
void setTerrainTextureResolution(int resolution)
Sets the terrain texture resolution.
bool exportNormals() const
Returns whether the normals will be exported.
float scale() const
Returns the scale of the exported 3D model.
void setScale(float scale)
Sets the scale of the exported 3D model.
void setExportNormals(bool exportNormals)
Sets whether the normals will be exported.
void setSmoothEdges(bool smoothEdges)
Sets whether the triangles will look smooth.
int terrainTextureResolution() const
Returns the terrain resolution.
Represents a vector layer which manages a vector based data sets.