QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
framegraph
qgsabstractrenderview.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsabstractrenderview.cpp
3
--------------------------------------
4
Date : June 2024
5
Copyright : (C) 2024 by Benoit De Mezzo
6
Email : benoit dot de dot mezzo at oslandia 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 "
qgsabstractrenderview.h
"
17
18
#include <Qt3DRender/QNoDraw>
19
#include <Qt3DRender/qsubtreeenabler.h>
20
21
QgsAbstractRenderView::QgsAbstractRenderView
(
const
QString &viewName )
22
{
23
mViewName
= viewName;
24
// in order to avoid a render pass on the render view, we add a NoDraw node
25
// which is disabled when the enabler is enabled, and vice versa
26
using namespace
Qt3DRender
;
27
mRoot
=
new
QNoDraw;
28
mRoot
->setEnabled(
false
);
29
mRoot
->setObjectName( viewName +
"::NoDraw"
);
30
mRendererEnabler
=
new
QSubtreeEnabler(
mRoot
);
31
mRendererEnabler
->setEnablement( QSubtreeEnabler::Persistent );
32
mRendererEnabler
->setObjectName( viewName +
"::SubtreeEnabler"
);
33
}
34
35
QgsAbstractRenderView::~QgsAbstractRenderView
()
36
{
37
// if mRoot is still defined and not attached to a parent we have the responsibility to delete it
38
if
( !
mRoot
.isNull() &&
mRoot
->parent() ==
nullptr
)
39
{
40
delete
mRoot
.data();
41
mRoot
.clear();
42
}
43
}
44
45
void
QgsAbstractRenderView::updateWindowResize
(
int
,
int
)
46
{
47
// noop
48
}
49
50
QPointer<Qt3DRender::QFrameGraphNode>
QgsAbstractRenderView::topGraphNode
()
const
51
{
52
return
mRoot
;
53
}
54
55
void
QgsAbstractRenderView::setEnabled
(
bool
enable )
56
{
57
mRoot
->setEnabled( !enable );
58
mRendererEnabler
->setEnabled( enable );
59
}
60
61
bool
QgsAbstractRenderView::isEnabled
()
const
62
{
63
return
!
mRoot
->isEnabled() &&
mRendererEnabler
->isEnabled();
64
}
QgsAbstractRenderView::~QgsAbstractRenderView
virtual ~QgsAbstractRenderView()
Default destructor.
Definition
qgsabstractrenderview.cpp:35
QgsAbstractRenderView::mRoot
QPointer< Qt3DRender::QFrameGraphNode > mRoot
Definition
qgsabstractrenderview.h:77
QgsAbstractRenderView::mRendererEnabler
Qt3DRender::QSubtreeEnabler * mRendererEnabler
Definition
qgsabstractrenderview.h:78
QgsAbstractRenderView::topGraphNode
QPointer< Qt3DRender::QFrameGraphNode > topGraphNode() const
Returns the top node of this render view branch. Will be used to register the render view.
Definition
qgsabstractrenderview.cpp:50
QgsAbstractRenderView::mViewName
QString mViewName
Definition
qgsabstractrenderview.h:76
QgsAbstractRenderView::setEnabled
virtual void setEnabled(bool enable)
Enable or disable via enable the render view sub tree.
Definition
qgsabstractrenderview.cpp:55
QgsAbstractRenderView::isEnabled
virtual bool isEnabled() const
Returns true if render view is enabled.
Definition
qgsabstractrenderview.cpp:61
QgsAbstractRenderView::updateWindowResize
virtual void updateWindowResize(int width, int height)
Called when 3D window is resized.
Definition
qgsabstractrenderview.cpp:45
QgsAbstractRenderView::QgsAbstractRenderView
QgsAbstractRenderView(const QString &viewName)
Constructor for QgsAbstractRenderView with the specified parent object.
Definition
qgsabstractrenderview.cpp:21
Qt3DRender
Definition
qgs3d.h:45
qgsabstractrenderview.h
Generated on
for QGIS API Documentation by
1.17.0