18#ifndef QGSPOINTCLOUDLAYER_H 
   19#define QGSPOINTCLOUDLAYER_H 
   60        : transformContext( transformContext )
 
   69      bool loadDefaultStyle = 
true;
 
   82      bool skipCrsValidation = 
false;
 
   87      bool skipIndexGeneration = 
false;
 
   93      bool skipStatisticsCalculation = 
false;
 
  104      Calculating = 1 << 0, 
 
  107    Q_ENUM( PointCloudStatisticsCalculationState )
 
  113                                 const QString &baseName = QString(),
 
  114                                 const QString &providerLib = QStringLiteral( 
"pointcloud" ),
 
  125    SIP_PYOBJECT __repr__();
 
  127    QString 
str = QStringLiteral( 
"<QgsPointCloudLayer: '%1' (%2)>" ).arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : QStringLiteral( 
"Invalid" ) );
 
  128    sipRes = PyUnicode_FromString( 
str.toUtf8().constData() );
 
  142    bool writeXml( QDomNode &layerNode, QDomDocument &doc, const 
QgsReadWriteContext &context ) const override;
 
  144    bool readSymbology( const QDomNode &node, QString &errorMessage,
 
  146    bool readStyle( const QDomNode &node, QString &errorMessage, 
QgsReadWriteContext &context, StyleCategories categories = AllStyleCategories ) 
FINAL;
 
  148    bool writeSymbology( QDomNode &node, QDomDocument &doc, QString &errorMessage, const 
QgsReadWriteContext &context,
 
  149                         StyleCategories categories = AllStyleCategories ) const override;
 
  150    bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage, const 
QgsReadWriteContext &context, StyleCategories categories = AllStyleCategories ) const 
FINAL;
 
  154    QString encodedSource( const QString &source, const 
QgsReadWriteContext &context ) const override;
 
  155    QString decodedSource( const QString &source, const QString &dataProvider, const 
QgsReadWriteContext &context ) const override;
 
  156    QString loadDefaultStyle( 
bool &resultFlag 
SIP_OUT ) 
FINAL;
 
  157    QString htmlMetadata() const override;
 
  168    qint64 pointCount() const;
 
  201    bool setSubsetString( const QString &subset );
 
  209    QString subsetString() const;
 
  217    void setSync3DRendererTo2DRenderer( 
bool sync );
 
  225    bool sync3DRendererTo2DRenderer() const;
 
  233    bool convertRenderer3DFromRenderer2D();
 
  272    void setDataSourcePrivate( 
const QString &dataSource, 
const QString &baseName, 
const QString &provider, 
const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) 
override;
 
  276    bool isReadOnly()
 const override {
return true;}
 
  278    void calculateStatistics();
 
  280    void resetRenderer();
 
  282    void loadIndexesForRenderContext( 
QgsRenderContext &rendererContext ) 
const;
 
  288    std::unique_ptr<QgsPointCloudDataProvider> mDataProvider;
 
  290    std::unique_ptr<QgsPointCloudRenderer> mRenderer;
 
  294    LayerOptions mLayerOptions;
 
  296    bool mSync3DRendererTo2DRenderer = 
true;
 
  298    PointCloudStatisticsCalculationState mStatisticsCalculationState = PointCloudStatisticsCalculationState::NotStarted;
 
  299    long mStatsCalculationTask = 0;
 
  301    friend class TestQgsVirtualPointCloudProvider;
 
Base class for point cloud 3D renderers.
 
Abstract base class for objects which generate elevation profiles.
 
Interface for classes which can generate elevation profiles.
 
Contains information about the context in which a coordinate transform is executed.
 
Base class for storage of map layer elevation properties.
 
Base class for utility classes that encapsulate information necessary for rendering of map layers.
 
Base class for all map layer types.
 
virtual QgsMapLayer * clone() const =0
Returns a new instance equivalent to this one except for the id which is still unique.
 
Collection of point cloud attributes.
 
Base class for providing data for QgsPointCloudLayer.
 
PointCloudIndexGenerationState
Point cloud index state.
 
Point cloud layer specific subclass of QgsMapLayerElevationProperties.
 
Implementation of threaded rendering for point cloud layers.
 
Represents a map layer supporting display of point clouds.
 
PointCloudStatisticsCalculationState
Point cloud statistics calculation task.
 
void raiseError(const QString &msg)
Signals an error related to this point cloud layer.
 
PointCloudStatisticsCalculationState statisticsCalculationState() const
Returns the status of point cloud statistics calculation.
 
QgsPointCloudLayer(const QgsPointCloudLayer &rhs)=delete
QgsPointCloudLayer cannot be copied.
 
void statisticsCalculationStateChanged(QgsPointCloudLayer::PointCloudStatisticsCalculationState state)
Emitted when statistics calculation state has changed.
 
void subsetStringChanged()
Emitted when the layer's subset string has changed.
 
QgsPointCloudLayer & operator=(QgsPointCloudLayer const &rhs)=delete
QgsPointCloudLayer cannot be copied.
 
Abstract base class for 2d point cloud renderers.
 
Class used to store statistics of a point cloud dataset.
 
Encapsulates properties and constraints relating to fetching elevation profiles from different source...
 
The class is used as a container of context for various read/write operations on other objects.
 
A rectangle specified with double values.
 
Contains information about the context of a rendering operation.
 
Setting options for creating vector data providers.
 
Setting options for loading point cloud layers.
 
LayerOptions(const QgsCoordinateTransformContext &transformContext=QgsCoordinateTransformContext())
Constructor for LayerOptions with optional transformContext.
 
QgsCoordinateTransformContext transformContext
Coordinate transform context.