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