QGIS API Documentation 3.41.0-Master (45a0abf3bec)
Loading...
Searching...
No Matches
qgsabstract3dengine.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsabstract3dengine.cpp
3 --------------------------------------
4 Date : July 2018
5 Copyright : (C) 2018 by Martin Dobias
6 Email : wonder dot sk at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#include "qgsabstract3dengine.h"
17#include "moc_qgsabstract3dengine.cpp"
18
19#include "qgsframegraph.h"
20
21#include <Qt3DRender/QRenderCapture>
22#include <Qt3DRender/QRenderSettings>
23
25 : QObject( parent )
26{
27
28}
29
31{
32 Qt3DRender::QRenderCaptureReply *captureReply;
33 captureReply = mFrameGraph->renderCapture()->requestCapture();
34
35 connect( captureReply, &Qt3DRender::QRenderCaptureReply::completed, this, [ = ]
36 {
37 emit imageCaptured( captureReply->image() );
38 captureReply->deleteLater();
39 } );
40}
41
43{
44 Qt3DRender::QRenderCaptureReply *captureReply;
45 captureReply = mFrameGraph->depthRenderCapture()->requestCapture();
46
47 connect( captureReply, &Qt3DRender::QRenderCaptureReply::completed, this, [ = ]
48 {
49 emit depthBufferCaptured( captureReply->image() );
50 captureReply->deleteLater();
51 } );
52}
53
58
63
65{
66 if ( mFrameGraph )
67 {
68 qDebug() << "FrameGraph:\n" << mFrameGraph->dumpFrameGraph();
69 qDebug() << "SceneGraph:\n" << mFrameGraph->dumpSceneGraph();
70 }
71}
72
74{
75 if ( mFrameGraph )
76 {
78 }
79 return QString();
80}
81
83{
84 if ( mFrameGraph )
85 {
87 }
88 return QString();
89}
void requestCaptureImage()
Starts a request for an image rendered by the engine.
void requestDepthBufferCapture()
Starts a request for an image containing the depth buffer data of the engine.
void imageCaptured(const QImage &image)
Emitted after a call to requestCaptureImage() to return the captured image.
bool renderCaptureEnabled() const
Returns whether it will be possible to render to an image.
void depthBufferCaptured(const QImage &image)
Emitted after a call to requestDepthBufferCapture() to return the captured depth buffer.
QString dumpFrameGraph() const
Dump frame graph as string.
void setRenderCaptureEnabled(bool enabled)
Sets whether it will be possible to render to an image.
QgsAbstract3DEngine(QObject *parent=nullptr)
Constructor for QgsAbstract3DEngine with the specified parent object.
QgsFrameGraph * mFrameGraph
QString dumpSceneGraph() const
Dump scene graph as string.
void dumpFrameGraphToConsole() const
Dump the current frame graph and scene graph to the console.
bool renderCaptureEnabled() const
Returns whether it will be possible to render to an image.
QString dumpFrameGraph() const
Dumps frame graph as string.
void setRenderCaptureEnabled(bool enabled)
Sets whether it will be possible to render to an image.
Qt3DRender::QRenderCapture * depthRenderCapture()
Returns the render capture object used to take an image of the depth buffer of the scene.
QString dumpSceneGraph() const
Dumps scene graph as string.
Qt3DRender::QRenderCapture * renderCapture()
Returns the render capture object used to take an image of the scene.