16#ifndef QGSFEATURE3DHANDLER_P_H
17#define QGSFEATURE3DHANDLER_P_H
53class QgsFeature3DHandler
56 virtual ~QgsFeature3DHandler() =
default;
62 virtual bool prepare(
const Qgs3DRenderContext &context, QSet<QString> &attributeNames,
const QgsBox3D &chunkExtent ) = 0;
68 virtual void processFeature(
const QgsFeature &feature,
const Qgs3DRenderContext &context ) = 0;
74 virtual void finalize( Qt3DCore::QEntity *parent,
const Qgs3DRenderContext &context ) = 0;
80 float zMinimum()
const {
return mZMin; }
86 float zMaximum()
const {
return mZMax; }
91 int featureCount()
const {
return mFeatureCount; }
98 void setHighlightingEnabled(
bool enable ) { mHighlightingEnabled = enable; }
104 bool highlightingEnabled()
const {
return mHighlightingEnabled; }
108 void updateZRangeFromPositions(
const QVector<QVector3D> &positions );
114 bool clipGeometryIfTooLarge( QgsGeometry &geom )
const;
117 float mZMin = std::numeric_limits<float>::max();
118 float mZMax = std::numeric_limits<float>::lowest();
119 int mFeatureCount = 0;
120 bool mHighlightingEnabled =
false;
126 QgsVector3D mChunkOrigin;
129 QgsBox3D mChunkExtent;
133 static constexpr double MAX_GEOM_BBOX_SIZE = 1e6;
Rendering context for preparation of 3D entities.
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.