16 #ifndef QGS3DMAPSCENE_H 17 #define QGS3DMAPSCENE_H 21 #include <Qt3DCore/QEntity> 27 class QRenderSettings;
40 class QForwardRenderer;
49 class QgsTerrainEntity;
50 class QgsChunkedEntity;
74 int terrainPendingJobsCount()
const;
80 int totalPendingJobsCount()
const;
101 float worldSpaceError(
float epsilon,
float distance );
105 void terrainEntityChanged();
107 void terrainPendingJobsCountChanged();
113 void totalPendingJobsCountChanged();
115 void sceneStateChanged();
118 void onCameraChanged();
119 void onFrameTriggered(
float dt );
120 void createTerrain();
121 void onLayerRenderer3DChanged();
122 void onLayersChanged();
123 void createTerrainDeferred();
124 void onBackgroundColorChanged();
125 void onLayerEntityPickedObject( Qt3DRender::QPickEvent *pickEvent,
QgsFeatureId fid );
127 void updateCameraLens();
128 void onRenderersChanged();
132 void addCameraViewCenterEntity( Qt3DRender::QCamera *camera );
134 void updateSceneState();
136 bool updateCameraNearFarPlanes();
137 void finalizeNewEntity( Qt3DCore::QEntity *newEntity );
143 Qt3DLogic::QFrameAction *mFrameAction =
nullptr;
145 QgsTerrainEntity *mTerrain =
nullptr;
146 QList<QgsChunkedEntity *> mChunkEntities;
148 Qt3DCore::QEntity *mEntityCameraViewCenter =
nullptr;
150 QMap<QgsMapLayer *, Qt3DCore::QEntity *> mLayerEntities;
151 QMap<const QgsAbstract3DRenderer *, Qt3DCore::QEntity *> mRenderersEntities;
152 bool mTerrainUpdateScheduled =
false;
155 QList<Qgs3DMapScenePickHandler *> mPickHandlers;
157 QList<Qt3DCore::QEntity *> mLightEntities;
160 #endif // QGS3DMAPSCENE_H 3 Abstract base class for handlers that process pick events from a 3D map scene.
Base class for all map layer types.
Base class for all renderers that may to participate in 3D view.
SceneState
Enumeration of possible states of the 3D scene.
QgsTerrainEntity * terrainEntity()
Returns terrain entity (may be temporarily nullptr)
3 Definition of the world
SceneState sceneState() const
Returns the current state of the scene.
3 Base class for 3D engine implementation.
3 Object that controls camera movement based on user input
The scene is fully loaded/updated.
3 Entity that encapsulates our 3D scene - contains all other entities (such as terrain) as children...
The scene is still being loaded/updated.
QgsCameraController * cameraController()
Returns camera controller.