mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			1002 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1002 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/core/mesh/qgsmeshlayer.h                                         *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | 
						|
 ************************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class QgsMeshLayer : QgsMapLayer, QgsAbstractProfileSource
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
 | 
						|
Represents a mesh layer supporting display of data on structured or unstructured meshes
 | 
						|
 | 
						|
The :py:class:`QgsMeshLayer` is instantiated by specifying the name of a data provider,
 | 
						|
such as mdal, and url defining the specific data set to connect to.
 | 
						|
The vector layer constructor in turn instantiates a :py:class:`QgsMeshDataProvider` subclass
 | 
						|
corresponding to the provider type, and passes it the url. The data provider
 | 
						|
connects to the data source.
 | 
						|
 | 
						|
The :py:class:`QgsMeshLayer` provides a common interface to the different data types. It does not
 | 
						|
yet support editing transactions.
 | 
						|
 | 
						|
The main data providers supported by QGIS are listed below.
 | 
						|
 | 
						|
Mesh data providers
 | 
						|
-------------------
 | 
						|
 | 
						|
Memory data providerType (mesh_memory)
 | 
						|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | 
						|
 | 
						|
The memory data provider is used to construct in memory data, for example scratch
 | 
						|
data. There is no inherent persistent storage of the data. The data source uri is constructed.
 | 
						|
Data can be populated by setMesh(const QString &vertices, const QString &faces), where
 | 
						|
vertices and faces is comma separated coordinates and connections for mesh.
 | 
						|
E.g. to create mesh with one quad and one triangle
 | 
						|
 | 
						|
.. code-block:: python
 | 
						|
 | 
						|
      uri = "1.0, 2.0 \n" \
 | 
						|
          "2.0, 2.0 \n" \
 | 
						|
          "3.0, 2.0 \n" \
 | 
						|
          "2.0, 3.0 \n" \
 | 
						|
          "1.0, 3.0 \n" \
 | 
						|
          "---" \
 | 
						|
          "0, 1, 3, 4 \n" \
 | 
						|
          "1, 2, 3 \n"
 | 
						|
 | 
						|
      scratchLayer = QgsMeshLayer(uri, "My Scratch layer", "mesh_memory")
 | 
						|
 | 
						|
MDAL data provider (mdal)
 | 
						|
^^^^^^^^^^^^^^^^^^^^^^^^^
 | 
						|
 | 
						|
Accesses data using the MDAL drivers (https://github.com/lutraconsulting/MDAL). The url
 | 
						|
is the MDAL connection string. QGIS must be built with MDAL support to allow this provider.
 | 
						|
 | 
						|
.. code-block:: python
 | 
						|
 | 
						|
         uri = "test/land.2dm"
 | 
						|
         scratchLayer = QgsMeshLayer(uri, "My Scratch Layer",  "mdal")
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   The API is considered EXPERIMENTAL and can be changed without a notice
 | 
						|
 | 
						|
.. versionadded:: 3.2
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgsmeshlayer.h"
 | 
						|
%End
 | 
						|
  public:
 | 
						|
 | 
						|
    struct LayerOptions
 | 
						|
    {
 | 
						|
 | 
						|
      explicit LayerOptions( const QgsCoordinateTransformContext &transformContext = QgsCoordinateTransformContext( ) );
 | 
						|
%Docstring
 | 
						|
Constructor for LayerOptions with optional ``transformContext``.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   transformContext argument was added in QGIS 3.8
 | 
						|
%End
 | 
						|
 | 
						|
      QgsCoordinateTransformContext transformContext;
 | 
						|
 | 
						|
      bool loadDefaultStyle;
 | 
						|
 | 
						|
      bool skipCrsValidation;
 | 
						|
    };
 | 
						|
 | 
						|
    explicit QgsMeshLayer( const QString &path = QString(), const QString &baseName = QString(), const QString &providerLib = QStringLiteral( "mesh_memory" ),
 | 
						|
                           const QgsMeshLayer::LayerOptions &options = QgsMeshLayer::LayerOptions() );
 | 
						|
%Docstring
 | 
						|
Constructor - creates a mesh layer
 | 
						|
 | 
						|
The QgsMeshLayer is constructed by instantiating a data provider.  The provider
 | 
						|
interprets the supplied path (url) of the data source to connect to and access the
 | 
						|
data.
 | 
						|
 | 
						|
:param path: The path or url of the parameter.  Typically this encodes
 | 
						|
             parameters used by the data provider as url query items.
 | 
						|
:param baseName: The name used to represent the layer in the legend
 | 
						|
:param providerLib: The name of the data provider, e.g., "mesh_memory", "mdal"
 | 
						|
:param options: general mesh layer options
 | 
						|
%End
 | 
						|
 | 
						|
    ~QgsMeshLayer();
 | 
						|
 | 
						|
 | 
						|
    SIP_PYOBJECT __repr__();
 | 
						|
%MethodCode
 | 
						|
    QString str = QStringLiteral( "<QgsMeshLayer: '%1' (%2)>" ).arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : QStringLiteral( "Invalid" ) );
 | 
						|
    sipRes = PyUnicode_FromString( str.toUtf8().constData() );
 | 
						|
%End
 | 
						|
 | 
						|
    virtual QgsMeshDataProvider *dataProvider();
 | 
						|
 | 
						|
    virtual QgsMeshLayer *clone() const /Factory/;
 | 
						|
 | 
						|
    virtual QgsRectangle extent() const;
 | 
						|
 | 
						|
    virtual QgsMapLayerRenderer *createMapRenderer( QgsRenderContext &rendererContext ) /Factory/;
 | 
						|
 | 
						|
    virtual QgsAbstractProfileGenerator *createProfileGenerator( const QgsProfileRequest &request ) /Factory/;
 | 
						|
 | 
						|
     virtual bool readSymbology( const QDomNode &node, QString &errorMessage,
 | 
						|
                        QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories );
 | 
						|
     virtual bool writeSymbology( QDomNode &node, QDomDocument &doc, QString &errorMessage,
 | 
						|
                         const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) const;
 | 
						|
    virtual bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context, StyleCategories categories = AllStyleCategories ) const;
 | 
						|
 | 
						|
    virtual bool readStyle( const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories = AllStyleCategories );
 | 
						|
 | 
						|
    virtual QString encodedSource( const QString &source, const QgsReadWriteContext &context ) const;
 | 
						|
 | 
						|
    virtual QString decodedSource( const QString &source, const QString &provider, const QgsReadWriteContext &context ) const;
 | 
						|
 | 
						|
    virtual bool readXml( const QDomNode &layer_node, QgsReadWriteContext &context );
 | 
						|
 | 
						|
    virtual bool writeXml( QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context ) const;
 | 
						|
 | 
						|
    virtual QgsMapLayerTemporalProperties *temporalProperties();
 | 
						|
 | 
						|
    virtual QgsMapLayerElevationProperties *elevationProperties();
 | 
						|
 | 
						|
    virtual void reload();
 | 
						|
 | 
						|
    virtual QStringList subLayers() const;
 | 
						|
 | 
						|
    virtual QString htmlMetadata() const;
 | 
						|
 | 
						|
    virtual bool isEditable() const;
 | 
						|
 | 
						|
    virtual bool supportsEditing() const;
 | 
						|
 | 
						|
    virtual QString loadDefaultStyle( bool &resultFlag /Out/ ) ${SIP_FINAL};
 | 
						|
 | 
						|
 | 
						|
    bool addDatasets( const QString &path, const QDateTime &defaultReferenceTime = QDateTime() );
 | 
						|
%Docstring
 | 
						|
Adds datasets to the mesh from file with ``path``. Use the the time ``defaultReferenceTime`` as reference time is not provided in the file
 | 
						|
 | 
						|
:param path: the path to the datasets file
 | 
						|
:param defaultReferenceTime: reference time used if not provided in the file
 | 
						|
 | 
						|
:return: whether the dataset is added
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    bool removeDatasets( const QString &name );
 | 
						|
%Docstring
 | 
						|
Removes datasets from the mesh with given ``name``.
 | 
						|
 | 
						|
:param name: name of dataset group to remove
 | 
						|
 | 
						|
:return: whether the dataset is removed
 | 
						|
 | 
						|
.. versionadded:: 3.42
 | 
						|
%End
 | 
						|
 | 
						|
    bool addDatasets( QgsMeshDatasetGroup *datasetGroup /Transfer/ );
 | 
						|
%Docstring
 | 
						|
Adds extra datasets to the mesh. Take ownership.
 | 
						|
 | 
						|
:param datasetGroup: the extra dataset group
 | 
						|
 | 
						|
:return: whether the dataset is effectively added
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    bool saveDataset( const QString &path, int datasetGroupIndex, QString driver );
 | 
						|
%Docstring
 | 
						|
Saves datasets group on file with the specified ``driver``
 | 
						|
 | 
						|
:param path: the path of the file
 | 
						|
:param datasetGroupIndex: the index of the dataset group
 | 
						|
:param driver: the driver to used for saving
 | 
						|
 | 
						|
:return: false if succeeds
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    void updateTriangularMesh( const QgsCoordinateTransform &transform = QgsCoordinateTransform() );
 | 
						|
%Docstring
 | 
						|
Gets native mesh and updates (creates if it doesn't exist) the base triangular mesh
 | 
						|
 | 
						|
:param transform: Transformation from layer CRS to destination (e.g. map) CRS. With invalid transform, it keeps the native mesh CRS
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
    QgsMeshRendererSettings rendererSettings() const;
 | 
						|
%Docstring
 | 
						|
Returns renderer settings
 | 
						|
%End
 | 
						|
 | 
						|
    void setRendererSettings( const QgsMeshRendererSettings &settings, const bool repaint = true );
 | 
						|
%Docstring
 | 
						|
Sets new renderer settings
 | 
						|
 | 
						|
:param settings:
 | 
						|
:param repaint: should the update of renderer settings trigger repaint and emit rendererChanged signal
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshTimeSettings timeSettings() const;
 | 
						|
%Docstring
 | 
						|
Returns time format settings
 | 
						|
 | 
						|
.. versionadded:: 3.8
 | 
						|
%End
 | 
						|
 | 
						|
    void setTimeSettings( const QgsMeshTimeSettings &settings );
 | 
						|
%Docstring
 | 
						|
Sets time format settings
 | 
						|
 | 
						|
.. versionadded:: 3.8
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    QString formatTime( double hours );
 | 
						|
%Docstring
 | 
						|
Returns (date) time in hours formatted to human readable form
 | 
						|
 | 
						|
:param hours: time in double in hours
 | 
						|
 | 
						|
:return: formatted time string
 | 
						|
 | 
						|
.. versionadded:: 3.8
 | 
						|
%End
 | 
						|
 | 
						|
    int datasetGroupCount() const;
 | 
						|
%Docstring
 | 
						|
Returns the dataset groups count handle by the layer
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    int extraDatasetGroupCount() const;
 | 
						|
%Docstring
 | 
						|
Returns the extra dataset groups count handle by the layer
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    QList<int> datasetGroupsIndexes() const;
 | 
						|
%Docstring
 | 
						|
Returns the list of indexes of dataset groups handled by the layer
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes can be different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    QList<int> enabledDatasetGroupsIndexes() const;
 | 
						|
%Docstring
 | 
						|
Returns the list of indexes of enables dataset groups handled by the layer
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes can be different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.16.3
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetGroupMetadata datasetGroupMetadata( const QgsMeshDatasetIndex &index ) const;
 | 
						|
%Docstring
 | 
						|
Returns the dataset groups metadata
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes can be different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    int datasetCount( const QgsMeshDatasetIndex &index ) const;
 | 
						|
%Docstring
 | 
						|
Returns the dataset count in the dataset groups
 | 
						|
 | 
						|
:param index: index of the dataset in the group
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes can be different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetMetadata datasetMetadata( const QgsMeshDatasetIndex &index ) const;
 | 
						|
%Docstring
 | 
						|
Returns the dataset metadata
 | 
						|
 | 
						|
:param index: index of the dataset
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes can be different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetValue datasetValue( const QgsMeshDatasetIndex &index, int valueIndex ) const;
 | 
						|
%Docstring
 | 
						|
Returns  vector/scalar value associated with the index from the dataset
 | 
						|
To read multiple continuous values, use :py:func:`~QgsMeshLayer.datasetValues`
 | 
						|
 | 
						|
See :py:func:`QgsMeshDatasetMetadata.isVector()` or :py:func:`QgsMeshDataBlock.type()`
 | 
						|
to check if the returned value is vector or scalar
 | 
						|
 | 
						|
Returns invalid value for DataOnVolumes
 | 
						|
 | 
						|
:param index: index of the dataset
 | 
						|
:param valueIndex: index of the value
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes can be different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDataBlock datasetValues( const QgsMeshDatasetIndex &index, int valueIndex, int count ) const;
 | 
						|
%Docstring
 | 
						|
Returns N vector/scalar values from the index from the dataset
 | 
						|
 | 
						|
See :py:func:`QgsMeshDatasetMetadata.isVector()` or :py:func:`QgsMeshDataBlock.type()`
 | 
						|
to check if the returned value is vector or scalar
 | 
						|
 | 
						|
Returns invalid block for DataOnVolumes. Use :py:func:`QgsMeshLayerUtils.datasetValues()` if you
 | 
						|
need block for any type of data type
 | 
						|
 | 
						|
:param index: index of the dataset
 | 
						|
:param valueIndex: index of the value
 | 
						|
:param count: number of values to return
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes can be different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMesh3DDataBlock dataset3dValues( const QgsMeshDatasetIndex &index, int faceIndex, int count ) const;
 | 
						|
%Docstring
 | 
						|
Returns N vector/scalar values from the face index from the dataset for 3d stacked meshes
 | 
						|
 | 
						|
See :py:func:`QgsMeshDatasetMetadata.isVector()` to check if the returned value is vector or scalar
 | 
						|
 | 
						|
returns invalid block for DataOnFaces and DataOnVertices.
 | 
						|
 | 
						|
:param index: index of the dataset
 | 
						|
:param faceIndex: index of the face
 | 
						|
:param count: number of values to return
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes can be different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    bool isFaceActive( const QgsMeshDatasetIndex &index, int faceIndex ) const;
 | 
						|
%Docstring
 | 
						|
Returns N vector/scalar values from the face index from the dataset for 3d stacked meshes
 | 
						|
 | 
						|
See :py:func:`QgsMeshDatasetMetadata.isVector()` to check if the returned value is vector or scalar
 | 
						|
 | 
						|
returns invalid block for DataOnFaces and DataOnVertices.
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDataBlock areFacesActive( const QgsMeshDatasetIndex &index, int faceIndex, int count ) const;
 | 
						|
%Docstring
 | 
						|
Returns whether the faces are active for particular dataset
 | 
						|
 | 
						|
:param index: index of the dataset
 | 
						|
:param faceIndex: index of the face
 | 
						|
:param count: number of values to return
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes are different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetValue datasetValue( const QgsMeshDatasetIndex &index, const QgsPointXY &point, double searchRadius = 0 ) const;
 | 
						|
%Docstring
 | 
						|
Interpolates the value on the given point from given dataset.
 | 
						|
For 3D datasets, it uses :py:func:`~QgsMeshLayer.dataset3dValue`, \n
 | 
						|
For 1D datasets, it uses :py:func:`~QgsMeshLayer.dataset1dValue` with ``searchRadius``
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   It uses previously cached and indexed triangular mesh
 | 
						|
   and so if the layer has not been rendered previously
 | 
						|
   (e.g. when used in a script) it returns NaN value
 | 
						|
 | 
						|
.. seealso:: :py:func:`updateTriangularMesh`
 | 
						|
 | 
						|
:param index: dataset index specifying group and dataset to extract value from
 | 
						|
:param point: point to query in map coordinates
 | 
						|
:param searchRadius: the radius of the search area in map unit
 | 
						|
 | 
						|
:return: interpolated value at the point. Returns NaN values for values
 | 
						|
         outside the mesh layer, nodata values and in case triangular mesh was not
 | 
						|
         previously used for rendering
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes are different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.4
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMesh3DDataBlock dataset3dValue( const QgsMeshDatasetIndex &index, const QgsPointXY &point ) const;
 | 
						|
%Docstring
 | 
						|
Returns the 3d values of stacked 3d mesh defined by the given point
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   It uses previously cached and indexed triangular mesh
 | 
						|
   and so if the layer has not been rendered previously
 | 
						|
   (e.g. when used in a script) it returns NaN value
 | 
						|
 | 
						|
.. seealso:: :py:func:`updateTriangularMesh`
 | 
						|
 | 
						|
:param index: dataset index specifying group and dataset to extract value from
 | 
						|
:param point: point to query in map coordinates
 | 
						|
 | 
						|
:return: all 3d stacked values that belong to face defined by given point. Returns invalid block
 | 
						|
         for point outside the mesh layer or in case triangular mesh was not
 | 
						|
         previously used for rendering or for datasets that do not have type DataOnVolumes
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes are different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.12
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetValue dataset1dValue( const QgsMeshDatasetIndex &index, const QgsPointXY &point, double searchRadius ) const;
 | 
						|
%Docstring
 | 
						|
Returns the value of 1D mesh dataset defined on edge that are in the search area defined by point ans searchRadius
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   It uses previously cached and indexed triangular mesh
 | 
						|
   and so if the layer has not been rendered previously
 | 
						|
   (e.g. when used in a script) it returns NaN value
 | 
						|
 | 
						|
.. seealso:: :py:func:`updateTriangularMesh`
 | 
						|
 | 
						|
:param index: dataset index specifying group and dataset to extract value from
 | 
						|
:param point: the center point of the search area
 | 
						|
:param searchRadius: the radius of the searc area in map unit
 | 
						|
 | 
						|
:return: interpolated value at the projected point. Returns NaN values for values
 | 
						|
         outside the mesh layer and in case triangular mesh was not previously used for rendering
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes are different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetIndex datasetIndexAtTime( const QgsDateTimeRange &timeRange, int datasetGroupIndex ) const;
 | 
						|
%Docstring
 | 
						|
Returns dataset index from datasets group depending on the time range.
 | 
						|
If the temporal properties is not active, returns invalid dataset index. This method is used for rendering mesh layer.
 | 
						|
 | 
						|
:param timeRange: the time range
 | 
						|
:param datasetGroupIndex: the index of the dataset group
 | 
						|
 | 
						|
:return: dataset index
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   the returned dataset index depends on the matching method, see :py:func:`~QgsMeshLayer.setTemporalMatchingMethod`
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes are different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetIndex datasetIndexAtRelativeTime( const QgsInterval &relativeTime, int datasetGroupIndex ) const;
 | 
						|
%Docstring
 | 
						|
Returns dataset index from datasets group depending on the relative time from the layer reference time.
 | 
						|
Dataset index is valid even the temporal properties is inactive. This method is used for calculation on mesh layer.
 | 
						|
 | 
						|
:param relativeTime: the relative from the mesh layer reference time
 | 
						|
:param datasetGroupIndex: the index of the dataset group
 | 
						|
 | 
						|
:return: dataset index
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   the returned dataset index depends on the matching method, see :py:func:`~QgsMeshLayer.setTemporalMatchingMethod`
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes are different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    QList<QgsMeshDatasetIndex> datasetIndexInRelativeTimeInterval( const QgsInterval &startRelativeTime, const QgsInterval &endRelativeTime, int datasetGroupIndex ) const;
 | 
						|
%Docstring
 | 
						|
Returns a list of dataset indexes from datasets group that are in a interval time from the layer reference time.
 | 
						|
Dataset index is valid even the temporal properties is inactive. This method is used for calculation on mesh layer.
 | 
						|
 | 
						|
:param startRelativeTime: the start time of the relative interval from the reference time.
 | 
						|
:param endRelativeTime: the end time of the relative interval from the reference time.
 | 
						|
:param datasetGroupIndex: the index of the dataset group
 | 
						|
 | 
						|
:return: dataset index
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   indexes are used to distinguish all the dataset groups handled by the layer (from dataprovider, extra dataset group,...)
 | 
						|
   In the layer scope, those indexes are different from the data provider indexes.
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetIndex activeScalarDatasetAtTime( const QgsDateTimeRange &timeRange, int group = -1 ) const;
 | 
						|
%Docstring
 | 
						|
Returns dataset index from active scalar group depending on the time range.
 | 
						|
If the temporal properties is not active, return the static dataset
 | 
						|
 | 
						|
Since QGIS 3.38, the ``group`` argument can be used to specify a fixed group
 | 
						|
to use. If this is not specified, then the active group from the layer's renderer will be used.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   the returned dataset index depends on the matching method, see :py:func:`~QgsMeshLayer.setTemporalMatchingMethod`
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetIndex activeVectorDatasetAtTime( const QgsDateTimeRange &timeRange, int group = -1 ) const;
 | 
						|
%Docstring
 | 
						|
Returns dataset index from active vector group depending on the time range
 | 
						|
If the temporal properties is not active, return the static dataset
 | 
						|
 | 
						|
Since QGIS 3.38, the ``group`` argument can be used to specify a fixed group
 | 
						|
to use. If this is not specified, then the active group from the layer's renderer will be used.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   the returned dataset index depends on the matching method, see :py:func:`~QgsMeshLayer.setTemporalMatchingMethod`
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    QgsMeshDatasetIndex staticScalarDatasetIndex( int group = -1 ) const;
 | 
						|
%Docstring
 | 
						|
Returns the static scalar dataset index that is rendered if the temporal properties is not active.
 | 
						|
 | 
						|
Since QGIS 3.38, the ``group`` argument can be used to specify a fixed group
 | 
						|
to use. If this is not specified, then the active group from the layer's renderer will be used.
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetIndex staticVectorDatasetIndex( int group = -1 ) const;
 | 
						|
%Docstring
 | 
						|
Returns the static vector dataset index that is rendered if the temporal properties is not active.
 | 
						|
 | 
						|
Since QGIS 3.38, the ``group`` argument can be used to specify a fixed group
 | 
						|
to use. If this is not specified, then the active group from the layer's renderer will be used.
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    void setReferenceTime( const QDateTime &referenceTime );
 | 
						|
%Docstring
 | 
						|
Sets the reference time of the layer
 | 
						|
 | 
						|
:param referenceTime: the reference time
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    void setTemporalMatchingMethod( const QgsMeshDataProviderTemporalCapabilities::MatchingTemporalDatasetMethod &matchingMethod );
 | 
						|
%Docstring
 | 
						|
Sets the method used to match the temporal dataset from a requested time, see :py:func:`~QgsMeshLayer.activeVectorDatasetAtTime`
 | 
						|
 | 
						|
:param matchingMethod: the matching method
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    QgsPointXY snapOnElement( QgsMesh::ElementType elementType, const QgsPointXY &point, double searchRadius );
 | 
						|
%Docstring
 | 
						|
Returns the position of the snapped point on the mesh element closest to ``point`` intersecting with
 | 
						|
the searching area defined by ``point`` and ``searchRadius``
 | 
						|
 | 
						|
For vertex, the snapped position is the vertex position
 | 
						|
For edge, the snapped position is the projected point on the edge, extremity of edge if outside the edge
 | 
						|
For face, the snapped position is the centroid of the face
 | 
						|
The returned position is in map coordinates.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   It uses previously cached and indexed triangular mesh
 | 
						|
   and so if the layer has not been rendered previously
 | 
						|
   (e.g. when used in a script) it returns empty :py:class:`QgsPointXY`
 | 
						|
 | 
						|
.. seealso:: :py:func:`updateTriangularMesh`
 | 
						|
 | 
						|
:param elementType: the type of element to snap
 | 
						|
:param point: the center of the search area in map coordinates
 | 
						|
:param searchRadius: the radius of the search area in map units
 | 
						|
 | 
						|
:return: the position of the snapped point on the closest element, empty :py:class:`QgsPointXY` if no element of type ``elementType``
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    QList<int> selectVerticesByExpression( QgsExpression expression );
 | 
						|
%Docstring
 | 
						|
Returns a list of vertex indexes that meet the condition defined by ``expression`` with the context ``expressionContext``
 | 
						|
 | 
						|
To express the relation with a vertex, the expression can be defined with function returning value
 | 
						|
linked to the current vertex, like " $vertex_z ", "$vertex_as_point"
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    QList<int> selectFacesByExpression( QgsExpression expression );
 | 
						|
%Docstring
 | 
						|
Returns a list of faces indexes that meet the condition defined by ``expression`` with the context ``expressionContext``
 | 
						|
 | 
						|
To express the relation with a face, the expression can be defined with function returning value
 | 
						|
linked to the current face, like " $face_area "
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetGroupTreeItem *datasetGroupTreeRootItem() const;
 | 
						|
%Docstring
 | 
						|
Returns the root items of the dataset group tree item
 | 
						|
 | 
						|
:return: the root item
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    void setDatasetGroupTreeRootItem( QgsMeshDatasetGroupTreeItem *rootItem );
 | 
						|
%Docstring
 | 
						|
Sets the root items of the dataset group tree item.
 | 
						|
Changes active dataset groups if those one are not enabled anymore :
 | 
						|
 | 
						|
- new active scalar dataset group is the first root item enabled child
 | 
						|
- new active vector dataset group is none
 | 
						|
 | 
						|
Doesn't take ownership of the pointed item, the root item is cloned.
 | 
						|
 | 
						|
:param rootItem: the new root item
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    void resetDatasetGroupTreeItem();
 | 
						|
%Docstring
 | 
						|
Reset the dataset group tree item to default from provider
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    QgsInterval firstValidTimeStep() const;
 | 
						|
%Docstring
 | 
						|
Returns the first valid time step of the dataset groups, invalid QgInterval if no time step is present
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    QgsInterval datasetRelativeTime( const QgsMeshDatasetIndex &index );
 | 
						|
%Docstring
 | 
						|
Returns the relative time of the dataset from the reference time of its group
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
    qint64 datasetRelativeTimeInMilliseconds( const QgsMeshDatasetIndex &index );
 | 
						|
%Docstring
 | 
						|
Returns the relative time (in milliseconds) of the dataset from the reference time of its group
 | 
						|
 | 
						|
.. versionadded:: 3.16
 | 
						|
%End
 | 
						|
 | 
						|
 bool startFrameEditing( const QgsCoordinateTransform &transform );
 | 
						|
%Docstring
 | 
						|
Starts editing of the mesh frame. Coordinate ``transform`` used to initialize the triangular mesh if needed.
 | 
						|
This operation will disconnect the mesh layer from the data provider and removes all existing dataset group
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
 | 
						|
.. deprecated:: 3.28
 | 
						|
 | 
						|
   Use the version with :py:class:`QgsMeshEditingError` instead.
 | 
						|
%End
 | 
						|
 | 
						|
    bool startFrameEditing( const QgsCoordinateTransform &transform, QgsMeshEditingError &error /Out/, bool fixErrors );
 | 
						|
%Docstring
 | 
						|
Starts editing of the mesh frame. Coordinate ``transform`` used to initialize the triangular mesh if needed.
 | 
						|
This operation will disconnect the mesh layer from the data provider and removes all existing dataset group.
 | 
						|
Returns ``False`` if starting fails and the ``error`` that is the reason (No error, if the mesh is not editable or already in edit mode).
 | 
						|
 | 
						|
If ``fixErrors`` is set to ``True``, errors will be attempted to be fixed.
 | 
						|
In that case returns ``False`` if there is an error that could not be fixed and the remaining ``error``.
 | 
						|
 | 
						|
.. versionadded:: 3.28
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
    bool commitFrameEditing( const QgsCoordinateTransform &transform, bool continueEditing = true );
 | 
						|
%Docstring
 | 
						|
Commits editing of the mesh frame,
 | 
						|
Rebuilds the triangular mesh and its spatial index with ``transform``,
 | 
						|
Continue editing with the same mesh editor if ``continueEditing`` is True
 | 
						|
 | 
						|
:return: ``True`` if the commit succeeds
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    bool rollBackFrameEditing( const QgsCoordinateTransform &transform, bool continueEditing = true );
 | 
						|
%Docstring
 | 
						|
Rolls Back editing of the mesh frame.
 | 
						|
Reload mesh from file, rebuilds the triangular mesh and its spatial index with ``transform``,
 | 
						|
Continue editing with the same mesh editor if ``continueEditing`` is ``True``
 | 
						|
 | 
						|
:return: ``True`` if the rollback succeeds
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    void stopFrameEditing( const QgsCoordinateTransform &transform );
 | 
						|
%Docstring
 | 
						|
Stops editing of the mesh, re-indexes the faces and vertices,
 | 
						|
rebuilds the triangular mesh and its spatial index with ``transform``,
 | 
						|
clean the undostack
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    bool reindex( const QgsCoordinateTransform &transform, bool renumber );
 | 
						|
%Docstring
 | 
						|
Re-indexes the faces and vertices, and renumber the indexes if ``renumber`` is ``True``.
 | 
						|
rebuilds the triangular mesh and its spatial index with ``transform``,
 | 
						|
clean the undostack
 | 
						|
 | 
						|
Returns ``False`` if the operation fails
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshEditor *meshEditor();
 | 
						|
%Docstring
 | 
						|
Returns a pointer to the mesh editor own by the mesh layer
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    virtual bool isModified() const;
 | 
						|
 | 
						|
%Docstring
 | 
						|
Returns whether the mesh frame has been modified since the last save
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    bool contains( const QgsMesh::ElementType &type ) const;
 | 
						|
%Docstring
 | 
						|
Returns whether the mesh contains at mesh elements of given type
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    int meshVertexCount() const;
 | 
						|
%Docstring
 | 
						|
Returns the vertices count of the mesh frame
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   during mesh editing, some vertices can be void and are not included in this returned value
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    int meshFaceCount() const;
 | 
						|
%Docstring
 | 
						|
Returns the faces count of the mesh frame
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   during mesh editing, some faces can be void and are not included in this returned value
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    int meshEdgeCount() const;
 | 
						|
%Docstring
 | 
						|
Returns the edges count of the mesh frame
 | 
						|
 | 
						|
.. versionadded:: 3.22
 | 
						|
%End
 | 
						|
 | 
						|
    bool labelsEnabled() const;
 | 
						|
%Docstring
 | 
						|
Returns whether the layer contains labels which are enabled and should be drawn.
 | 
						|
 | 
						|
:return: ``True`` if layer contains enabled labels
 | 
						|
 | 
						|
.. seealso:: :py:func:`setLabelsEnabled`
 | 
						|
 | 
						|
.. seealso:: :py:func:`labeling`
 | 
						|
 | 
						|
.. versionadded:: 3.36
 | 
						|
%End
 | 
						|
 | 
						|
    void setLabelsEnabled( bool enabled );
 | 
						|
%Docstring
 | 
						|
Sets whether labels should be ``enabled`` for the layer.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   Labels will only be rendered if :py:func:`~QgsMeshLayer.labelsEnabled` is ``True`` and a labeling
 | 
						|
   object is returned by :py:func:`~QgsMeshLayer.labeling`.
 | 
						|
 | 
						|
.. seealso:: :py:func:`labelsEnabled`
 | 
						|
 | 
						|
.. seealso:: :py:func:`labeling`
 | 
						|
 | 
						|
.. versionadded:: 3.36
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
    QgsAbstractMeshLayerLabeling *labeling();
 | 
						|
%Docstring
 | 
						|
Access to labeling configuration. May be ``None`` if labeling is not used.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   Labels will only be rendered if :py:func:`~QgsMeshLayer.labelsEnabled` returns ``True``.
 | 
						|
 | 
						|
.. seealso:: :py:func:`labelsEnabled`
 | 
						|
 | 
						|
.. versionadded:: 3.36
 | 
						|
%End
 | 
						|
 | 
						|
    void setLabeling( QgsAbstractMeshLayerLabeling *labeling /Transfer/ );
 | 
						|
%Docstring
 | 
						|
Sets labeling configuration. Takes ownership of the object.
 | 
						|
 | 
						|
.. versionadded:: 3.36
 | 
						|
%End
 | 
						|
 | 
						|
    bool minimumMaximumActiveScalarDataset( const QgsRectangle &extent, const QgsMeshDatasetIndex &datasetIndex, double &min /Out/, double &max /Out/ );
 | 
						|
%Docstring
 | 
						|
Extracts minimum and maximum value for active scalar dataset on mesh faces.
 | 
						|
 | 
						|
:param extent: extent in which intersecting faces are searched for
 | 
						|
:param datasetIndex: index for which dataset the values should be extracted
 | 
						|
 | 
						|
:return: - ``True`` if values were extracted
 | 
						|
         - min: minimal value
 | 
						|
         - max: maximal value
 | 
						|
 | 
						|
.. versionadded:: 3.42
 | 
						|
%End
 | 
						|
 | 
						|
    QgsMeshDatasetIndex activeScalarDatasetIndex( QgsRenderContext &rendererContext );
 | 
						|
%Docstring
 | 
						|
Returns current active scalar dataset index for current renderer context.
 | 
						|
 | 
						|
.. versionadded:: 3.42
 | 
						|
%End
 | 
						|
 | 
						|
    bool datasetsPathUnique( const QString &path );
 | 
						|
%Docstring
 | 
						|
Checks whether that datasets path is already added to this mesh layer. Return ``True`` if the
 | 
						|
dataset path is not already added.
 | 
						|
 | 
						|
:param path: the path to the datasets file
 | 
						|
 | 
						|
:return: whether the datasets path is unique
 | 
						|
 | 
						|
.. versionadded:: 3.42
 | 
						|
%End
 | 
						|
 | 
						|
  public slots:
 | 
						|
 | 
						|
    virtual void setTransformContext( const QgsCoordinateTransformContext &transformContext );
 | 
						|
 | 
						|
%Docstring
 | 
						|
Sets the coordinate transform context to ``transformContext``.
 | 
						|
 | 
						|
.. versionadded:: 3.8
 | 
						|
%End
 | 
						|
 | 
						|
  signals:
 | 
						|
 | 
						|
    void activeScalarDatasetGroupChanged( int index );
 | 
						|
%Docstring
 | 
						|
Emitted when active scalar group dataset is changed
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    void activeVectorDatasetGroupChanged( int index );
 | 
						|
%Docstring
 | 
						|
Emitted when active vector group dataset is changed
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
    void timeSettingsChanged();
 | 
						|
%Docstring
 | 
						|
Emitted when time format is changed
 | 
						|
 | 
						|
.. versionadded:: 3.8
 | 
						|
%End
 | 
						|
 | 
						|
    void reloaded();
 | 
						|
%Docstring
 | 
						|
Emitted when the mesh layer is reloaded, see :py:func:`~QgsMeshLayer.reload`
 | 
						|
 | 
						|
.. versionadded:: 3.28
 | 
						|
%End
 | 
						|
 | 
						|
  private: // Private methods
 | 
						|
    QgsMeshLayer( const QgsMeshLayer &rhs );
 | 
						|
};
 | 
						|
 | 
						|
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/core/mesh/qgsmeshlayer.h                                         *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | 
						|
 ************************************************************************/
 |