/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/analysis/mesh/qgsmeshtriangulation.h                             *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/






class QgsMeshTriangulation : QObject
{
%Docstring(signature="appended")
Class that handles mesh creation with Delaunay constrained triangulation

.. versionadded:: 3.16
%End

%TypeHeaderCode
#include "qgsmeshtriangulation.h"
%End
  public:
    QgsMeshTriangulation();
    ~QgsMeshTriangulation();

    bool addVertices( QgsFeatureIterator &vertexFeatureIterator, int valueAttribute, const QgsCoordinateTransform &transform, QgsFeedback *feedback = 0, long featureCount = 1 );
%Docstring
Adds vertices to the triangulation from a feature iterator, return
``True`` if successful.

:param vertexFeatureIterator: the feature iterator of vertices to insert
:param valueAttribute: the index of the attribute that represents the
                       value of vertices, if -1 uses Z coordinate of
                       vertices
:param transform: the coordinates transform used to transform
                  coordinates
:param feedback: feedback argument may be specified to allow
                 cancellation and progress reports
:param featureCount: the count of feature to allow progress report of
                     the feedback
%End

    bool addBreakLines( QgsFeatureIterator &lineFeatureIterator, int valueAttribute, const QgsCoordinateTransform &transformContext, QgsFeedback *feedback = 0, long featureCount = 1 );
%Docstring
Adds break lines from a vector layer, return ``True`` if successful.

:param lineFeatureIterator: the feature iterator of break lines to
                            insert
:param valueAttribute: the index of the attribute that represents the
                       value of vertices, if -1 uses Z coordinate of
                       vertices
:param transformContext: the coordinates transform context used to
                         transform coordinates
:param feedback: feedback argument may be specified to allow
                 cancellation and progress reports
:param featureCount: the count of feature to allow progress report of
                     the feedback

.. warning::

   if the feature iterator contains only point geometries, the vertices will be added only without treating them as breaklines
%End

    int addVertex( const QgsPoint &vertex );
%Docstring
Adds a new vertex in the triangulation and returns the index of the new
vertex

.. versionadded:: 3.22
%End

    QgsMesh triangulatedMesh( QgsFeedback *feedback = 0 ) const;
%Docstring
Returns the triangulated mesh
%End

    void setCrs( const QgsCoordinateReferenceSystem &crs );
%Docstring
Sets the coordinate reference system used for the triangulation
%End

  private:
    QgsMeshTriangulation( const QgsMeshTriangulation &rhs );
};


class QgsMeshZValueDatasetGroup : QgsMeshDatasetGroup
{
%Docstring(signature="appended")
Convenient class that can be used to obtain a datasetgroup on vertices
that represents the Z value of the mesh vertices

.. versionadded:: 3.16
%End

%TypeHeaderCode
#include "qgsmeshtriangulation.h"
%End
  public:
    QgsMeshZValueDatasetGroup( const QString &datasetGroupName, const QgsMesh &mesh );
%Docstring
Constructor

:param datasetGroupName: the name of the dataset group
:param mesh: the mesh used to create the Z value dataset
%End

    virtual void initialize();

    virtual QgsMeshDatasetMetadata datasetMetadata( int datasetIndex ) const;

    virtual int datasetCount() const;

    virtual QgsMeshDataset *dataset( int index ) const;

    virtual QgsMeshDatasetGroup::Type type() const;
    virtual QDomElement writeXml( QDomDocument &doc, const QgsReadWriteContext &context ) const;


  private:
    QgsMeshZValueDatasetGroup( const QgsMeshZValueDatasetGroup &rhs );
};


class QgsMeshEditingDelaunayTriangulation : QgsMeshAdvancedEditing
{
%Docstring(signature="appended")
Class that can be used with :py:func:`QgsMeshEditor.advancedEdit()` to
add triangle faces to a mesh created by a Delaunay triangulation on
provided existing vertex.

.. versionadded:: 3.22
%End

%TypeHeaderCode
#include "qgsmeshtriangulation.h"
%End
  public:
    QgsMeshEditingDelaunayTriangulation();

    virtual QString text() const;


};

/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/analysis/mesh/qgsmeshtriangulation.h                             *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/
