16 #ifndef QGS3DSCENEEXPORTER_H 
   17 #define QGS3DSCENEEXPORTER_H 
   19 #include <Qt3DCore/QEntity> 
   20 #include <Qt3DRender/QAttribute> 
   21 #include <Qt3DExtras/QPlaneGeometry> 
   22 #include <Qt3DRender/QSceneLoader> 
   23 #include <Qt3DRender/QMesh> 
   31 class QgsTerrainTileEntity;
 
   32 class QgsTerrainEntity;
 
   38 class QgsTerrainTextureGenerator;
 
   71     bool parseVectorLayerEntity( Qt3DCore::QEntity *entity, 
QgsVectorLayer *layer );
 
   74     void parseTerrain( QgsTerrainEntity *terrain, 
const  QString &layer );
 
   77     void save( 
const QString &sceneName, 
const QString &sceneFolderPath );
 
  106     float scale()
 const { 
return mScale; }
 
  110     QVector<Qgs3DExportObject *> processInstancedPointGeometry( Qt3DCore::QEntity *entity, 
const QString &objectNamePrefix );
 
  112     QVector<Qgs3DExportObject *> processSceneLoaderGeometries( Qt3DRender::QSceneLoader *sceneLoader, 
const QString &objectNamePrefix );
 
  114     Qgs3DExportObject *processGeometryRenderer( Qt3DRender::QGeometryRenderer *mesh, 
const QString &objectNamePrefix, 
float sceneScale = 1.0f, QVector3D sceneTranslation = QVector3D( 0.0f, 0.0f, 0.0f ) );
 
  116     void processEntityMaterial( Qt3DCore::QEntity *entity, 
Qgs3DExportObject *
object );
 
  118     QVector<Qgs3DExportObject *> processLines( Qt3DCore::QEntity *entity, 
const QString &objectNamePrefix );
 
  120     Qgs3DExportObject *processPoints( Qt3DCore::QEntity *entity, 
const QString &objectNamePrefix );
 
  123     QgsTerrainTileEntity *getFlatTerrainEntity( QgsTerrainEntity *terrain, QgsChunkNode *node );
 
  125     QgsTerrainTileEntity *getDemTerrainEntity( QgsTerrainEntity *terrain, QgsChunkNode *node );
 
  127     QgsTerrainTileEntity *getMeshTerrainEntity( QgsTerrainEntity *terrain, QgsChunkNode *node );
 
  130     void parseDemTile( QgsTerrainTileEntity *tileEntity, 
const QString &layerName );
 
  132     void parseFlatTile( QgsTerrainTileEntity *tileEntity, 
const QString &layerName );
 
  134     void parseMeshTile( QgsTerrainTileEntity *meshEntity, 
const QString &layerName );
 
  136     QString getObjectName( 
const QString &name );
 
  138     QMap<QString, int> usedObjectNamesCounter;
 
  139     QVector<Qgs3DExportObject *> mObjects;
 
  141     bool mSmoothEdges = 
false;
 
  142     int mTerrainResolution = 128;
 
  143     bool mExportNormals = 
true;
 
  144     bool mExportTextures = 
false;
 
  145     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.