16#ifndef QGSVIRTUALPOINTCLOUDENTITY_P_H
17#define QGSVIRTUALPOINTCLOUDENTITY_P_H
39class QgsChunkBoundsEntity;
41class QgsVirtualPointCloudProvider;
56class QgsVirtualPointCloudEntity :
public Qgs3DMapSceneEntity
61 QgsVirtualPointCloudEntity( Qgs3DMapSettings *map, QgsPointCloudLayer *layer,
const QgsCoordinateTransform &coordinateTransform, QgsPointCloud3DSymbol *symbol,
float maxScreenError,
bool showBoundingBoxes,
double zValueScale,
double zValueOffset,
int pointBudget );
64 ~QgsVirtualPointCloudEntity()
override;
67 void handleSceneUpdate(
const SceneContext &sceneContext )
override;
69 QgsRange<float> getNearFarPlaneRange(
const QMatrix4x4 &viewMatrix )
const override;
71 int pendingJobsCount()
const override;
73 bool needsUpdate()
const override;
77 void createChunkedEntityForSubIndex(
int i );
80 void setRenderSubIndexAsBbox(
int i,
bool asBbox );
83 void subIndexNeedsLoading(
int i );
87 void updateBboxEntity();
90 QList<QgsChunkedEntity *> chunkedEntities()
const;
93 QgsVirtualPointCloudProvider *provider()
const;
95 QgsPointCloudLayer *mLayer =
nullptr;
96 QMap<int, QgsChunkedEntity *> mChunkedEntitiesMap;
97 QgsChunkBoundsEntity *mBboxesEntity =
nullptr;
98 QgsPointCloudLayerChunkedEntity *mOverviewEntity =
nullptr;
99 QList<QgsBox3D> mBboxes;
100 QgsCoordinateTransform mCoordinateTransform;
101 std::unique_ptr<QgsPointCloud3DSymbol> mSymbol;
102 double mZValueScale = 1.0;
103 double mZValueOffset = 0;
104 int mPointBudget = 1000000;
105 float mMaximumScreenSpaceError = -1.;
106 bool mShowBoundingBoxes =
false;
Axis-aligned bounding box - in world coords.
3D symbol that draws point cloud geometries as 3D objects.
Represents a map layer supporting display of point clouds.