16#ifndef QGSFEATURE3DHANDLER_P_H
17#define QGSFEATURE3DHANDLER_P_H
30#include <Qt3DCore/QEntity>
45class QgsFeature3DHandler
48 virtual ~QgsFeature3DHandler() =
default;
54 virtual bool prepare(
const Qgs3DRenderContext &context, QSet<QString> &attributeNames,
const QgsBox3D &chunkExtent ) = 0;
60 virtual void processFeature(
const QgsFeature &feature,
const Qgs3DRenderContext &context ) = 0;
66 virtual void finalize( Qt3DCore::QEntity *parent,
const Qgs3DRenderContext &context ) = 0;
72 float zMinimum()
const {
return mZMin; }
78 float zMaximum()
const {
return mZMax; }
83 int featureCount()
const {
return mFeatureCount; }
90 void setHighlightingEnabled(
bool enable ) { mHighlightingEnabled = enable; }
96 bool highlightingEnabled()
const {
return mHighlightingEnabled; }
100 void updateZRangeFromPositions(
const QVector<QVector3D> &positions );
106 bool clipGeometryIfTooLarge( QgsGeometry &geom )
const;
109 float mZMin = std::numeric_limits<float>::max();
110 float mZMax = std::numeric_limits<float>::lowest();
111 int mFeatureCount = 0;
112 bool mHighlightingEnabled =
false;
118 QgsVector3D mChunkOrigin;
121 QgsBox3D mChunkExtent;
125 static constexpr double MAX_GEOM_BBOX_SIZE = 1e6;
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
A geometry is the spatial representation of a feature.