QGIS API Documentation  3.6.0-Noosa (5873452)
qgsfeature3dhandler_p.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsfeature3dhandler_p.h
3  --------------------------------------
4  Date : January 2019
5  Copyright : (C) 2019 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 #ifndef QGSFEATURE3DHANDLER_P_H
17 #define QGSFEATURE3DHANDLER_P_H
18 
20 
21 //
22 // W A R N I N G
23 // -------------
24 //
25 // This file is not part of the QGIS API. It exists purely as an
26 // implementation detail. This header file may change from version to
27 // version without notice, or even be removed.
28 //
29 
30 #include <Qt3DCore/QEntity>
31 
32 class QgsFeature;
33 
34 
35 #include "qgsexpressioncontext.h"
36 
37 class Qgs3DMapSettings;
38 
39 
44 class Qgs3DRenderContext
45 {
46  public:
47  Qgs3DRenderContext( const Qgs3DMapSettings &map ) : mMap( map ) {}
48 
49  const Qgs3DMapSettings &map() const { return mMap; }
50 
56  void setExpressionContext( const QgsExpressionContext &context ) { mExpressionContext = context; }
57 
63  QgsExpressionContext &expressionContext() { return mExpressionContext; }
64 
71  const QgsExpressionContext &expressionContext() const { return mExpressionContext; } SIP_SKIP
72 
73  private:
74  const Qgs3DMapSettings &mMap;
76  QgsExpressionContext mExpressionContext;
77 
78 };
79 
80 
85 class QgsFeature3DHandler
86 {
87  public:
88  virtual ~QgsFeature3DHandler() = default;
89 
94  virtual bool prepare( const Qgs3DRenderContext &context, QSet<QString> &attributeNames ) = 0;
95 
100  virtual void processFeature( QgsFeature &feature, const Qgs3DRenderContext &context ) = 0;
101 
106  virtual void finalize( Qt3DCore::QEntity *parent, const Qgs3DRenderContext &context ) = 0;
107 };
108 
109 
110 class Qgs3DMapSettings;
111 class QgsVectorLayer;
112 
113 namespace Qgs3DSymbolImpl
114 {
116  Qt3DCore::QEntity *entityFromHandler( QgsFeature3DHandler *handler, const Qgs3DMapSettings &map, QgsVectorLayer *layer );
117 }
118 
119 
121 
122 #endif // QGSFEATURE3DHANDLER_P_H
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition: qgsfeature.h:55
3 Definition of the world
#define SIP_SKIP
Definition: qgis_sip.h:119
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Represents a vector layer which manages a vector based data sets.