16#ifndef QGSVIRTUALPOINTCLOUDENTITY_P_H
17#define QGSVIRTUALPOINTCLOUDENTITY_P_H
39class QgsChunkBoundsEntity;
41class QgsVirtualPointCloudProvider;
56class QgsVirtualPointCloudEntity :
public Qgs3DMapSceneEntity
61 QgsVirtualPointCloudEntity(
62 Qgs3DMapSettings *map,
63 QgsPointCloudLayer *layer,
64 const QgsCoordinateTransform &coordinateTransform,
65 QgsPointCloud3DSymbol *symbol,
67 bool showBoundingBoxes,
74 ~QgsVirtualPointCloudEntity()
override;
77 void handleSceneUpdate(
const SceneContext &sceneContext )
override;
79 QgsRange<float> getNearFarPlaneRange(
const QMatrix4x4 &viewMatrix )
const override;
81 int pendingJobsCount()
const override;
83 bool needsUpdate()
const override;
87 void createChunkedEntityForSubIndex(
int i );
90 void setRenderSubIndexAsBbox(
int i,
bool asBbox );
93 void subIndexNeedsLoading(
int i );
97 void updateBboxEntity();
100 QList<QgsChunkedEntity *> chunkedEntities()
const;
103 QgsVirtualPointCloudProvider *provider()
const;
105 QgsPointCloudLayer *mLayer =
nullptr;
106 QMap<int, QgsChunkedEntity *> mChunkedEntitiesMap;
107 QgsChunkBoundsEntity *mBboxesEntity =
nullptr;
108 QgsPointCloudLayerChunkedEntity *mOverviewEntity =
nullptr;
109 QList<QgsBox3D> mBboxes;
110 QgsCoordinateTransform mCoordinateTransform;
111 std::unique_ptr<QgsPointCloud3DSymbol> mSymbol;
112 double mZValueScale = 1.0;
113 double mZValueOffset = 0;
114 int mPointBudget = 1000000;
115 float mMaximumScreenSpaceError = -1.;
116 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.