QGIS API Documentation  3.21.0-Master (5b68dc587e)
qgsmeshlayer3drenderer.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmeshlayer3drenderer.h
3  ------------------------
4  Date : January 2019
5  Copyright : (C) 2019 by Peter Petrik
6  Email : zilolv 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 #ifndef QGSMESHLAYER3DRENDERER_H
17 #define QGSMESHLAYER3DRENDERER_H
18 
19 #include "qgis_3d.h"
20 
21 #include "qgs3drendererregistry.h"
22 #include "qgsabstract3drenderer.h"
23 #include "qgsmesh3dsymbol.h"
24 
26 #include "qgsmaplayerref.h"
27 
28 #include <QObject>
29 
30 #define SIP_NO_FILE
31 
32 class QgsMeshLayer;
33 
34 
45 {
46  public:
48 
50  QgsAbstract3DRenderer *createRenderer( QDomElement &elem, const QgsReadWriteContext &context ) override SIP_FACTORY;
51 };
52 
53 
60 {
61  public:
63  explicit QgsMeshLayer3DRenderer( QgsMesh3DSymbol *s SIP_TRANSFER = nullptr );
64 
66  void setLayer( QgsMeshLayer *layer );
68  QgsMeshLayer *layer() const;
69 
71  void setSymbol( QgsMesh3DSymbol *symbol SIP_TRANSFER );
73  const QgsMesh3DSymbol *symbol() const;
74 
75  QString type() const override { return "mesh"; }
76  QgsMeshLayer3DRenderer *clone() const override SIP_FACTORY;
77  Qt3DCore::QEntity *createEntity( const Qgs3DMapSettings &map ) const override SIP_SKIP;
78 
79  void writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const override;
80  void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
81  void resolveReferences( const QgsProject &project ) override;
82 
83 
84  private:
85  QgsMapLayerRef mLayerRef;
86  std::unique_ptr<QgsMesh3DSymbol> mSymbol;
87 
88  private:
89 #ifdef SIP_RUN
91  QgsMeshLayer3DRenderer &operator=( const QgsMeshLayer3DRenderer & );
92 #endif
93 };
94 
95 #endif // QGSMESHLAYER3DRENDERER_H
Base metadata class for 3D renderers.
virtual QgsAbstract3DRenderer * createRenderer(QDomElement &elem, const QgsReadWriteContext &context)=0
Returns new instance of the renderer given the DOM element.
Base class for all renderers that may to participate in 3D view.
Metadata for mesh layer 3D renderer to allow creation of its instances from XML.
3D renderer that renders all mesh triangles of a mesh layer.
QString type() const override
Returns unique identifier of the renderer class (used to identify subclass)
Represents a mesh layer supporting display of data on structured or unstructured meshes.
Definition: qgsmeshlayer.h:97
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:101
The class is used as a container of context for various read/write operations on other objects.
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
Definition: qgsgeos.h:79
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_FACTORY
Definition: qgis_sip.h:76