16 #ifndef QGS3DMAPSCENE_H 
   17 #define QGS3DMAPSCENE_H 
   21 #include <Qt3DCore/QEntity> 
   30   class QRenderSettings;
 
   43   class QForwardRenderer;
 
   52 class QgsTerrainEntity;
 
   53 class QgsChunkedEntity;
 
   85     int terrainPendingJobsCount() 
const;
 
   91     int totalPendingJobsCount() 
const;
 
  112     float worldSpaceError( 
float epsilon, 
float distance );
 
  145     void updateTemporal();
 
  148     void onCameraChanged();
 
  149     void onFrameTriggered( 
float dt );
 
  150     void createTerrain();
 
  151     void onLayerRenderer3DChanged();
 
  152     void onLayersChanged();
 
  153     void createTerrainDeferred();
 
  154     void onBackgroundColorChanged();
 
  155     void onLayerEntityPickedObject( Qt3DRender::QPickEvent *pickEvent, 
QgsFeatureId fid );
 
  157     void updateCameraLens();
 
  158     void onRenderersChanged();
 
  159     void onSkyboxSettingsChanged();
 
  160     void onShadowSettingsChanged();
 
  161     void onEyeDomeShadingSettingsChanged();
 
  162     void onDebugShadowMapSettingsChanged();
 
  163     void onDebugDepthMapSettingsChanged();
 
  164     void onCameraMovementSpeedChanged();
 
  169     void addCameraViewCenterEntity( Qt3DRender::QCamera *camera );
 
  171     void updateSceneState();
 
  173     bool updateCameraNearFarPlanes();
 
  174     void finalizeNewEntity( Qt3DCore::QEntity *newEntity );
 
  175     int maximumTextureSize() 
const;
 
  181     Qt3DLogic::QFrameAction *mFrameAction = 
nullptr;
 
  183     QgsTerrainEntity *mTerrain = 
nullptr;
 
  184     QList<QgsChunkedEntity *> mChunkEntities;
 
  186     Qt3DCore::QEntity *mEntityCameraViewCenter = 
nullptr;
 
  188     QMap<QgsMapLayer *, Qt3DCore::QEntity *> mLayerEntities;
 
  189     QMap<const QgsAbstract3DRenderer *, Qt3DCore::QEntity *> mRenderersEntities;
 
  190     bool mTerrainUpdateScheduled = 
false;
 
  193     QList<Qgs3DMapScenePickHandler *> mPickHandlers;
 
  195     QList<Qt3DCore::QEntity *> mLightEntities;
 
  197     QList<Qt3DCore::QEntity *> mLightOriginEntities;
 
  198     QList<QgsMapLayer *> mModelVectorLayers;
 
Manages the various settings the user can choose from when exporting a 3D scene 3.
void terrainPendingJobsCountChanged()
Emitted when the number of terrain's pending jobs changes.
void fpsCountChanged(float fpsCount)
Emitted when the FPS count changes.
SceneState
Enumeration of possible states of the 3D scene.
@ Ready
The scene is fully loaded/updated.
@ Updating
The scene is still being loaded/updated.
void totalPendingJobsCountChanged()
Emitted when the total number of pending jobs changes.
void fpsCounterEnabledChanged(bool fpsCounterEnabled)
Emitted when the FPS counter is activated or deactivated.
QgsCameraController * cameraController()
Returns camera controller.
void sceneStateChanged()
Emitted when the scene's state has changed.
SceneState sceneState() const
Returns the current state of the scene.
void terrainEntityChanged()
Emitted when the current terrain entity is replaced by a new one.
QgsTerrainEntity * terrainEntity()
Returns terrain entity (may be temporarily nullptr)
Base class for all renderers that may to participate in 3D view.
Base class for all map layer types.
Base class for all skybox types.
Contains the configuration of a skybox entity.
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features