mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
931 lines
29 KiB
Plaintext
931 lines
29 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/mesh/qgsmeshlayer.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl 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__();
|
|
%Docstring
|
|
QgsMeshLayer cannot be copied.
|
|
%End
|
|
%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};
|
|
|
|
|
|
QString providerType() const;
|
|
%Docstring
|
|
Returns the provider type for this layer
|
|
%End
|
|
|
|
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 atasets file
|
|
:param defaultReferenceTime: reference time used if not provided in the file
|
|
|
|
:return: whether the dataset is added
|
|
|
|
.. versionadded:: 3.14
|
|
%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 );
|
|
%Docstring
|
|
Sets new renderer settings
|
|
%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 ) 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
|
|
|
|
:param timeRange: the time range
|
|
|
|
:return: dataset index
|
|
|
|
.. note::
|
|
|
|
the returned dataset index depends on the matching method, see :py:func:`~QgsMeshLayer.setTemporalMatchingMethod`
|
|
|
|
|
|
.. versionadded:: 3.14
|
|
%End
|
|
|
|
QgsMeshDatasetIndex activeVectorDatasetAtTime( const QgsDateTimeRange &timeRange ) 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
|
|
|
|
:param timeRange: the time range
|
|
|
|
:return: dataset index
|
|
|
|
.. note::
|
|
|
|
the returned dataset index depends on the matching method, see :py:func:`~QgsMeshLayer.setTemporalMatchingMethod`
|
|
|
|
|
|
.. versionadded:: 3.14
|
|
%End
|
|
|
|
|
|
|
|
QgsMeshDatasetIndex staticScalarDatasetIndex() const;
|
|
%Docstring
|
|
Returns the static scalar dataset index that is rendered if the temporal properties is not active
|
|
|
|
.. versionadded:: 3.14
|
|
%End
|
|
|
|
QgsMeshDatasetIndex staticVectorDatasetIndex() const;
|
|
%Docstring
|
|
Returns the static vector dataset index that is rendered if the temporal properties is not active
|
|
|
|
.. 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:: QGIS 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
|
|
|
|
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.pl again *
|
|
************************************************************************/
|