|
QGIS API Documentation 3.99.0-Master (2fe06baccd8)
|
Convenience wrapper to simplify the creation of a 3D window ready to be used with QGIS. More...
#include <qgs3dmapcanvas.h>

Signals | |
| void | cameraNavigationSpeedChanged (double speed) |
| Emitted when the camera navigation speed is changed. | |
| void | crossSectionEnabledChanged (bool enabled) |
| Emitted when the cross section mode is enabled or disabled. | |
| void | fpsCountChanged (float fpsCount) |
| Emitted when the FPS count changes (at most every frame). | |
| void | fpsCounterEnabledChanged (bool enabled) |
| Emitted when the FPS counter is enabled or disabeld. | |
| void | mapSettingsChanged () |
| Emitted when the the map setting is changed. | |
| void | savedAsImage (const QString &fileName) |
| Emitted when the 3D map canvas was successfully saved as image. | |
| void | viewed2DExtentFrom3DChanged (QVector< QgsPointXY > extent) |
| Emitted when the viewed 2D extent seen by the 3D camera has changed. | |
Public Member Functions | |
| Qgs3DMapCanvas () | |
| ~Qgs3DMapCanvas () override | |
| Qt3DRender::QFrameGraphNode * | activeFrameGraph () const |
| Returns the node of the active frame graph. | |
| Qt3DRender::QCamera * | camera () const |
| Returns the default camera of the 3D Window. | |
| QgsCameraController * | cameraController () |
Returns access to the view's camera controller. Returns nullptr if the scene has not been initialized yet with setMapSettings(). | |
| QgsRayCastResult | castRay (const QPoint &screenPoint, QgsRayCastContext context) |
| Casts a ray towards the 3d scene and returns information about the intersected 3d entities. | |
| void | clearHighlights () |
| Clears all QgsRubberBand3D highlights. | |
| bool | crossSectionEnabled () const |
Returns true if the cross section mode is enabled or the 3d scene has other clipping planes applied. | |
| void | disableCrossSection () |
| disableCrossSection Disables the cross section mode and removes the scene's clipping planes | |
| void | enableCrossSection (const QgsPointXY &startPoint, const QgsPointXY &endPoint, double tolerance, bool setSideView=true) |
| Enables cross section mode for the 3D map canvas. | |
| QgsWindow3DEngine * | engine () const |
| Returns the 3D engine. | |
| void | highlightFeature (const QgsFeature &feature, QgsMapLayer *layer) |
| Highlights a feature from layer using a QgsRubberBand3D. | |
| Qgs3DMapSettings * | mapSettings () |
| Returns access to the 3D scene configuration. | |
| Qgs3DMapTool * | mapTool () const |
| Returns the active map tool that will receive events from the 3D canvas. | |
| Qt3DRender::QRenderSettings * | renderSettings () const |
| Returns the render settings of the 3D Window. | |
| void | resetView () |
| Resets camera position to the default: looking down at the origin of world coordinates. | |
| void | saveAsImage (const QString &fileName, const QString &fileFormat) |
| Saves the current scene as an image. | |
| Qgs3DMapScene * | scene () |
| Returns access to the 3D scene (root 3D entity). | |
| void | setActiveFrameGraph (Qt3DRender::QFrameGraphNode *activeFrameGraph) |
| Activates the specified activeFrameGraph. | |
| void | setMapSettings (Qgs3DMapSettings *mapSettings) |
| Configure map scene being displayed. Takes ownership. | |
| void | setMapTool (Qgs3DMapTool *tool) |
| Sets the active map tool that will receive events from the 3D canvas. | |
| void | setRootEntity (Qt3DCore::QEntity *root) |
| Sets the specified root entity of the scene. | |
| void | setTemporalController (QgsTemporalController *temporalController) |
| Sets the temporal controller. | |
| void | setViewFrom2DExtent (const QgsRectangle &extent) |
| Resets camera view to show the extent (top view). | |
| void | setViewFromTop (const QgsPointXY ¢er, float distance, float rotation=0) |
| Sets camera position to look down at the given point (in map coordinates) in given distance from plane with zero elevation. | |
| QVector< QgsPointXY > | viewFrustum2DExtent () |
| Calculates the 2D extent viewed by the 3D camera as the vertices of the viewed trapezoid. | |
Protected Member Functions | |
| bool | eventFilter (QObject *watched, QEvent *event) override |
| void | resizeEvent (QResizeEvent *) override |
| Resets the aspect ratio of the 3D window. | |
| void | showEvent (QShowEvent *e) override |
| Manages the display events specified in e. | |
Convenience wrapper to simplify the creation of a 3D window ready to be used with QGIS.
Definition at line 83 of file qgs3dmapcanvas.h.
| Qgs3DMapCanvas::Qgs3DMapCanvas | ( | ) |
Definition at line 44 of file qgs3dmapcanvas.cpp.
|
override |
Definition at line 81 of file qgs3dmapcanvas.cpp.
| Qt3DRender::QFrameGraphNode * Qgs3DMapCanvas::activeFrameGraph | ( | ) | const |
Returns the node of the active frame graph.
Definition at line 113 of file qgs3dmapcanvas.cpp.
| Qt3DRender::QCamera * Qgs3DMapCanvas::camera | ( | ) | const |
Returns the default camera of the 3D Window.
Definition at line 118 of file qgs3dmapcanvas.cpp.
| QgsCameraController * Qgs3DMapCanvas::cameraController | ( | ) |
Returns access to the view's camera controller. Returns nullptr if the scene has not been initialized yet with setMapSettings().
Definition at line 186 of file qgs3dmapcanvas.cpp.
|
signal |
Emitted when the camera navigation speed is changed.
| QgsRayCastResult Qgs3DMapCanvas::castRay | ( | const QPoint & | screenPoint, |
| QgsRayCastContext | context ) |
Casts a ray towards the 3d scene and returns information about the intersected 3d entities.
| screenPoint | The ray starts from the current camera center and goes through this point (in pixel coordinates, originating at top left corner). |
| context | A context object defining parameters for the ray casting. |
Definition at line 191 of file qgs3dmapcanvas.cpp.
| void Qgs3DMapCanvas::clearHighlights | ( | ) |
Clears all QgsRubberBand3D highlights.
Definition at line 465 of file qgs3dmapcanvas.cpp.
| bool Qgs3DMapCanvas::crossSectionEnabled | ( | ) | const |
Returns true if the cross section mode is enabled or the 3d scene has other clipping planes applied.
Definition at line 247 of file qgs3dmapcanvas.cpp.
|
signal |
Emitted when the cross section mode is enabled or disabled.
| void Qgs3DMapCanvas::disableCrossSection | ( | ) |
disableCrossSection Disables the cross section mode and removes the scene's clipping planes
Definition at line 238 of file qgs3dmapcanvas.cpp.
| void Qgs3DMapCanvas::enableCrossSection | ( | const QgsPointXY & | startPoint, |
| const QgsPointXY & | endPoint, | ||
| double | tolerance, | ||
| bool | setSideView = true ) |
Enables cross section mode for the 3D map canvas.
The 3D scene will be clipped by four clipping planes, defined by a cross section line segment from startPoint to endPoint and two parallel segments at distance tolerance to each side.
| startPoint | The start point of the cross section line in 3D map coordinates. |
| endPoint | The end point of the cross section line in 3D map coordinates. |
| tolerance | The distance in meters between the cross section line and the left and right clipping planes. |
| setSideView | When true, the camera will be moved to look at the scene from the right side of the cross section line. |
Definition at line 200 of file qgs3dmapcanvas.cpp.
|
inline |
Returns the 3D engine.
Definition at line 192 of file qgs3dmapcanvas.h.
|
overrideprotected |
Definition at line 331 of file qgs3dmapcanvas.cpp.
|
signal |
Emitted when the FPS count changes (at most every frame).
|
signal |
Emitted when the FPS counter is enabled or disabeld.
| void Qgs3DMapCanvas::highlightFeature | ( | const QgsFeature & | feature, |
| QgsMapLayer * | layer ) |
Highlights a feature from layer using a QgsRubberBand3D.
Definition at line 423 of file qgs3dmapcanvas.cpp.
|
inline |
Returns access to the 3D scene configuration.
Definition at line 91 of file qgs3dmapcanvas.h.
|
signal |
Emitted when the the map setting is changed.
|
inline |
Returns the active map tool that will receive events from the 3D canvas.
If the tool is nullptr, events will be used for camera manipulation.
Definition at line 111 of file qgs3dmapcanvas.h.
| Qt3DRender::QRenderSettings * Qgs3DMapCanvas::renderSettings | ( | ) | const |
Returns the render settings of the 3D Window.
Definition at line 123 of file qgs3dmapcanvas.cpp.
| void Qgs3DMapCanvas::resetView | ( | ) |
Resets camera position to the default: looking down at the origin of world coordinates.
Definition at line 252 of file qgs3dmapcanvas.cpp.
|
overrideprotected |
Resets the aspect ratio of the 3D window.
Definition at line 141 of file qgs3dmapcanvas.cpp.
| void Qgs3DMapCanvas::saveAsImage | ( | const QString & | fileName, |
| const QString & | fileFormat ) |
Saves the current scene as an image.
Definition at line 270 of file qgs3dmapcanvas.cpp.
|
signal |
Emitted when the 3D map canvas was successfully saved as image.
|
inline |
Returns access to the 3D scene (root 3D entity).
Definition at line 94 of file qgs3dmapcanvas.h.
| void Qgs3DMapCanvas::setActiveFrameGraph | ( | Qt3DRender::QFrameGraphNode * | activeFrameGraph | ) |
Activates the specified activeFrameGraph.
Definition at line 108 of file qgs3dmapcanvas.cpp.
| void Qgs3DMapCanvas::setMapSettings | ( | Qgs3DMapSettings * | mapSettings | ) |
Configure map scene being displayed. Takes ownership.
Definition at line 148 of file qgs3dmapcanvas.cpp.
| void Qgs3DMapCanvas::setMapTool | ( | Qgs3DMapTool * | tool | ) |
Sets the active map tool that will receive events from the 3D canvas.
Does not transfer ownership. If the tool is nullptr, events will be used for camera manipulation.
Definition at line 304 of file qgs3dmapcanvas.cpp.
| void Qgs3DMapCanvas::setRootEntity | ( | Qt3DCore::QEntity * | root | ) |
Sets the specified root entity of the scene.
Definition at line 96 of file qgs3dmapcanvas.cpp.
| void Qgs3DMapCanvas::setTemporalController | ( | QgsTemporalController * | temporalController | ) |
Sets the temporal controller.
Definition at line 387 of file qgs3dmapcanvas.cpp.
| void Qgs3DMapCanvas::setViewFrom2DExtent | ( | const QgsRectangle & | extent | ) |
Resets camera view to show the extent (top view).
Definition at line 410 of file qgs3dmapcanvas.cpp.
| void Qgs3DMapCanvas::setViewFromTop | ( | const QgsPointXY & | center, |
| float | distance, | ||
| float | rotation = 0 ) |
Sets camera position to look down at the given point (in map coordinates) in given distance from plane with zero elevation.
Definition at line 260 of file qgs3dmapcanvas.cpp.
|
overrideprotected |
Manages the display events specified in e.
Definition at line 128 of file qgs3dmapcanvas.cpp.
|
signal |
Emitted when the viewed 2D extent seen by the 3D camera has changed.
| QVector< QgsPointXY > Qgs3DMapCanvas::viewFrustum2DExtent | ( | ) |
Calculates the 2D extent viewed by the 3D camera as the vertices of the viewed trapezoid.
Definition at line 418 of file qgs3dmapcanvas.cpp.