<pre style='margin:0'>
Zhenfu Shi (i0ntempest) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/792756f28a205eb09c3faa54f1b39543b129cb57">https://github.com/macports/macports-ports/commit/792756f28a205eb09c3faa54f1b39543b129cb57</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 792756f28a2 qgis3: update to 3_42_3
</span>792756f28a2 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 792756f28a205eb09c3faa54f1b39543b129cb57
</span>Author: i0ntempest <i0ntempest@i0ntempest.com>
AuthorDate: Thu Jun 5 01:57:17 2025 +1000
<span style='display:block; white-space:pre;color:#404040;'> qgis3: update to 3_42_3
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/72531
</span>---
gis/qgis3/Portfile | 13 +-
gis/qgis3/files/patch-62113.diff | 1233 ++++++++++++++++++++++++++++++++++++++
2 files changed, 1241 insertions(+), 5 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gis/qgis3/Portfile b/gis/qgis3/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 415e1fc839c..0c7c2c69d2e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gis/qgis3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gis/qgis3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -25,14 +25,17 @@ subport ${name-ltr} {}
</span>
if {${subport} eq ${name}} {
# Latest version
<span style='display:block; white-space:pre;background:#ffe0e0;'>- github.setup qgis QGIS 3_42_2 final-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ github.setup qgis QGIS 3_42_3 final-
</span> github.tarball_from archive
<span style='display:block; white-space:pre;background:#ffe0e0;'>- revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ revision 0
</span> set app_name QGIS3
<span style='display:block; white-space:pre;background:#ffe0e0;'>- checksums rmd160 15591b7b2ea1bf360141bbbb5ec394f176f22b54 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 ff276fd3e666ce804b984fd40f5c69966c7936fb210b0af7c93bf52fbfc134ff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 213901707
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums rmd160 c4287abd0ffd6e50db7f2f2ac4367eb3a8ba854e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 588f3ce1caf0910d4e3a774d096733290d46a3afbb055d5d0dae1cc075e0763c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 218571335
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/72531
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-62113.diff
</span> } else {
# LTR version
github.setup qgis QGIS 3_40_6 final-
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gis/qgis3/files/patch-62113.diff b/gis/qgis3/files/patch-62113.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4b220aed6d1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gis/qgis3/files/patch-62113.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,1233 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/core/auto_additions/qgstopologicalmesh.py b/python/PyQt6/core/auto_additions/qgstopologicalmesh.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 000000000000..511ad018d07a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/core/auto_additions/qgstopologicalmesh.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# The following has been generated automatically from src/core/mesh/qgstopologicalmesh.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.createTopologicalMesh = staticmethod(QgsTopologicalMesh.createTopologicalMesh)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.counterClockwiseFaces = staticmethod(QgsTopologicalMesh.counterClockwiseFaces)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.checkTopology = staticmethod(QgsTopologicalMesh.checkTopology)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.vertexPositionInFace = staticmethod(QgsTopologicalMesh.vertexPositionInFace)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.__group__ = ['mesh']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++except (NameError, AttributeError):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.TopologicalFaces.__group__ = ['mesh']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++except (NameError, AttributeError):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.Changes.__group__ = ['mesh']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++except (NameError, AttributeError):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/core/auto_generated/mesh/qgstopologicalmesh.sip.in b/python/PyQt6/core/auto_generated/mesh/qgstopologicalmesh.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 000000000000..00540aa0488a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/core/auto_generated/mesh/qgstopologicalmesh.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,378 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/************************************************************************
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This file has been generated automatically from *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * src/core/mesh/qgstopologicalmesh.h *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Do not edit manually ! Edit header and run scripts/sipify.py again *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ************************************************************************/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsTopologicalMesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Wraps a :py:class:`QgsMesh` to ensure the consistency of the mesh during
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++editing and helps to access elements from other elements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++A topological face must:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++- be convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++- be oriented counter-clockwise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++- not share a unique vertex with another face
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.. versionadded:: 3.22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%TypeHeaderCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "qgstopologicalmesh.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ typedef QVector<int> FaceNeighbors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ class TopologicalFaces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Contains independent faces and topological information about these
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++faces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This class supports unique shared vertices between faces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.. versionadded:: 3.22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%TypeHeaderCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "qgstopologicalmesh.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void clear();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Clears all data contained in the instance.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int vertexToFace( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns a face linked to the vertices with index ``vertexIndex``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ class Changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Contains topological differences between two states of a topological
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++mesh, only accessible from the QgsTopologicalMesh class.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.. versionadded:: 3.22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%TypeHeaderCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "qgstopologicalmesh.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> removedFaceIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the indexes of the faces that are removed with this changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QVector<QgsPoint> addedVertices() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the added vertices with this changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> verticesToRemoveIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the indexes of vertices to remove
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> changedCoordinatesVerticesIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the indexes of vertices that have changed coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<double> newVerticesZValues() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the new Z values of vertices that have changed their coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<QgsPointXY> newVerticesXYValues() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the new (X,Y) values of vertices that have changed their
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<QgsPointXY> oldVerticesXYValues() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the old (X,Y) values of vertices that have changed their
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> nativeFacesIndexesGeometryChanged() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns a list of the native face indexes that have a geometry changed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool isEmpty() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns whether changes are empty, that there is nothing to change
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ protected:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void clearChanges();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Clears all changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static QgsTopologicalMesh createTopologicalMesh( QgsMesh *mesh, int maxVerticesPerFace, QgsMeshEditingError &error );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Creates a topologicaly consistent mesh with ``mesh``, this static method
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++modifies ``mesh`` to be topological consistent and return a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh instance that contains and handles this mesh (does
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++not take ownership).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QVector<int> neighborsOfFace( int faceIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the indexes of neighbor faces of the face with index
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++``faceIndex``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> facesAroundVertex( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the indexes of faces that are around the vertex with index
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++``vertexIndex``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsMesh *mesh() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns a pointer to the wrapped mesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int firstFaceLinked( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the index of the first face linked, returns -1 if it is a free
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++vertex or out of range index
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool isVertexOnBoundary( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns whether the vertex is on a boundary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool isVertexFree( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns whether the vertex is a free vertex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> freeVerticesIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns a list of vertices are not linked to any faces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsMeshEditingError facesCanBeAdded( const TopologicalFaces &topologicalFaces ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns whether the faces can be added to the mesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes addFaces( const TopologicalFaces &topologicFaces );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Adds faces ``topologicFaces`` to the topologic mesh. The method returns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++a instance of the class QgsTopologicalMesh.Change that can be used to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reverse or reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsMeshEditingError facesCanBeRemoved( const QList<int> &facesIndexes );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns whether faces with index in ``faceIndexes`` can be removed The
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++method an error object with type :py:class:`QgsMeshEditingError`.NoError
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if the faces can be removed, otherwise returns the corresponding error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes removeFaces( const QList<int> &facesIndexes );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Removes faces with index in ``faceIndexes``. The method returns a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++instance of the class QgsTopologicalMesh.Change that can be used to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reverse or reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool edgeCanBeFlipped( int vertexIndex1, int vertexIndex2 ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns ``True`` if the edge can be flipped (only available for edge
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++shared by two faces with 3 vertices)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes flipEdge( int vertexIndex1, int vertexIndex2 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Flips edge (``vertexIndex1``, ``vertexIndex2``) The method returns a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++instance of the class QgsTopologicalMesh.Change that can be used to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reverse or reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool delaunayConditionForEdge( int vertexIndex1, int vertexIndex2 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Check if Delaunay condition holds for given edge returns ``True`` if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++delaunay condition holds ``False`` otherwise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.. versionadded:: 3.42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool canBeMerged( int vertexIndex1, int vertexIndex2 ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns ``True`` if faces separated by vertices with indexes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++``vertexIndex1`` and ``vertexIndex2`` can be merged
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes merge( int vertexIndex1, int vertexIndex2 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Merges faces separated by vertices with indexes ``vertexIndex1`` and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++``vertexIndex2`` The method returns a instance of the class
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.Change that can be used to reverse or reapply the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool canBeSplit( int faceIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns ``True`` if face with index ``faceIndex`` can be split
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes splitFace( int faceIndex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Splits face with index ``faceIndex`` The method returns a instance of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the class QgsTopologicalMesh.Change that can be used to reverse or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes addVertexInFace( int faceIndex, const QgsMeshVertex &vertex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Adds a ``vertex`` in the face with index ``faceIndex``. The including
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++face is removed and new faces surrounding the added vertex are added.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The method returns a instance of the class QgsTopologicalMesh.Change
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++that can be used to reverse or reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes insertVertexInFacesEdge( int faceIndex, int position, const QgsMeshVertex &vertex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Inserts a ``vertex`` in the edge of face with index ``faceIndex`` at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++``position`` . The faces that are on each side of the edge are removed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++and replaced by new faces constructed by a triangulation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes addFreeVertex( const QgsMeshVertex &vertex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Adds a free ``vertex`` in the face, that is a vertex that is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++included or linked with any faces. The method returns a instance of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsTopologicalMesh.Change that can be used to reverse or reapply
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes removeVertexFillHole( int vertexIndex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Removes the vertex with index ``vertexIndex``. If the vertex in linked
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++with faces, the operation leads also to remove the faces. In this case,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the hole is filled by a triangulation. The method returns a instance of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the class QgsTopologicalMesh.Change that can be used to reverse or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes removeVertices( const QList<int> &vertices );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Removes all the vertices with index in the list ``vertices`` If vertices
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++in linked with faces, the operation leads also to remove the faces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++without filling holes. The method returns a instance of the class
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.Change that can be used to reverse or reapply the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes changeZValue( const QList<int> &verticesIndexes, const QList<double> &newValues );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Changes the Z values of the vertices with indexes in ``vertices``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++indexes with the values in ``newValues``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes changeXYValue( const QList<int> &verticesIndexes, const QList<QgsPointXY> &newValues );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Changes the (X,Y) values of the vertices with indexes in ``vertices``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++indexes with the values in ``newValues``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void applyChanges( const Changes &changes );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Applies the changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void reverseChanges( const Changes &changes );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Reverses the changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static QgsMeshEditingError counterClockwiseFaces( QgsMeshFace &face, QgsMesh *mesh );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Checks the topology of the face and sets it counter clockwise if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++necessary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void reindex();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Reindexes faces and vertices, after this operation, the topological mesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++can't be edited anymore and only the method mesh can be used to access
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++to the raw mesh.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool renumber();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Renumbers the indexes of vertices and faces using the Reverse CutHill
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++McKee Algorithm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsMeshEditingError checkConsistency() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Checks the consistency of the topological mesh and return ``False`` if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++there is a consistency issue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static QgsMeshEditingError checkTopology( const QgsMesh &mesh, int maxVerticesPerFace );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Checks the topology of the mesh ``mesh``, if error occurs, this mesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++can't be edited
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static int vertexPositionInFace( int vertexIndex, const QgsMeshFace &face );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns vertex position in face
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static int vertexPositionInFace( const QgsMesh &mesh, int vertexIndex, int faceIndex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns vertex position in face
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/************************************************************************
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This file has been generated automatically from *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * src/core/mesh/qgstopologicalmesh.h *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Do not edit manually ! Edit header and run scripts/sipify.py again *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ************************************************************************/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/core/core_auto.sip b/python/PyQt6/core/core_auto.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8952f376f955..bf8174fcfa0e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/PyQt6/core/core_auto.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/core/core_auto.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -500,6 +500,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshtimesettings.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshtracerenderer.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshcalculator.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Include auto_generated/mesh/qgstopologicalmesh.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshadvancedediting.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshforcebypolylines.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshlayerlabeling.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/gui/auto_generated/layertree/qgslayertreeembeddedconfigwidget.sip.in b/python/PyQt6/gui/auto_generated/layertree/qgslayertreeembeddedconfigwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0fae81a01021..22e9ce496af6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/PyQt6/gui/auto_generated/layertree/qgslayertreeembeddedconfigwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/gui/auto_generated/layertree/qgslayertreeembeddedconfigwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,7 +9,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsLayerTreeEmbeddedConfigWidget : QWidget, protected Ui::QgsLayerTreeEmbeddedConfigWidgetBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsLayerTreeEmbeddedConfigWidget : QWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A widget to configure layer tree embedded widgets for a particular map
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/gui/auto_generated/providers/qgsabstractdbsourceselect.sip.in b/python/PyQt6/gui/auto_generated/providers/qgsabstractdbsourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 26bcbb8d25d5..bf1751941c89 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/PyQt6/gui/auto_generated/providers/qgsabstractdbsourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/gui/auto_generated/providers/qgsabstractdbsourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,7 +10,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsAbstractDbSourceSelect : QgsAbstractDataSourceWidget, protected Ui::QgsDbSourceSelectBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsAbstractDbSourceSelect : QgsAbstractDataSourceWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Base class for database source widget selectors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/gui/auto_generated/qgsowssourceselect.sip.in b/python/PyQt6/gui/auto_generated/qgsowssourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c743067a32be..f0bcc01d28cc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/PyQt6/gui/auto_generated/qgsowssourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/gui/auto_generated/qgsowssourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,7 +11,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsOWSSourceSelect : QgsAbstractDataSourceWidget, protected Ui::QgsOWSSourceSelectBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsOWSSourceSelect : QgsAbstractDataSourceWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Dialog to create connections and add layers WCS etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/gui/auto_generated/qgsrichtexteditor.sip.in b/python/PyQt6/gui/auto_generated/qgsrichtexteditor.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c8c446bd5143..74ba66573748 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/PyQt6/gui/auto_generated/qgsrichtexteditor.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/gui/auto_generated/qgsrichtexteditor.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,7 +10,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsRichTextEditor : QWidget, protected Ui::QgsRichTextEditorBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsRichTextEditor : QWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A widget for editing rich text documents, with support for user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/gui/auto_generated/qgstablewidgetbase.sip.in b/python/PyQt6/gui/auto_generated/qgstablewidgetbase.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cfe22b44f798..8a7b74e22702 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/PyQt6/gui/auto_generated/qgstablewidgetbase.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/gui/auto_generated/qgstablewidgetbase.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8,7 +8,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsTableWidgetBase : QWidget, protected Ui::QgsTableWidgetUiBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsTableWidgetBase : QWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Base widget allowing editing a collection, using a table.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/gui/auto_generated/qgstextformatwidget.sip.in b/python/PyQt6/gui/auto_generated/qgstextformatwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e096113d20cb..1e4705a0971b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/PyQt6/gui/auto_generated/qgstextformatwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/gui/auto_generated/qgstextformatwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12,7 +12,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsTextFormatWidget : QWidget, QgsExpressionContextGenerator, protected Ui::QgsTextFormatWidgetBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsTextFormatWidget : QWidget, QgsExpressionContextGenerator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A widget for customizing text formatting settings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/gui/auto_generated/raster/qgscolorrampshaderwidget.sip.in b/python/PyQt6/gui/auto_generated/raster/qgscolorrampshaderwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a5655a492b8e..da18ab554d20 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/PyQt6/gui/auto_generated/raster/qgscolorrampshaderwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/gui/auto_generated/raster/qgscolorrampshaderwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,7 +11,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsColorRampShaderWidget : QWidget, protected Ui::QgsColorRampShaderWidgetBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsColorRampShaderWidget : QWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A widget for configuring numeric ranges associated with a color ramp.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/PyQt6/gui/auto_generated/symbology/qgs25drendererwidget.sip.in b/python/PyQt6/gui/auto_generated/symbology/qgs25drendererwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 23a673ee4d01..45593f99d2c5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/PyQt6/gui/auto_generated/symbology/qgs25drendererwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/gui/auto_generated/symbology/qgs25drendererwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8,7 +8,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class Qgs25DRendererWidget : QgsRendererWidget, protected Ui::Qgs25DRendererWidgetBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class Qgs25DRendererWidget : QgsRendererWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A widget for configuring a Qgs25DRenderer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/core/auto_additions/qgstopologicalmesh.py b/python/core/auto_additions/qgstopologicalmesh.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 000000000000..511ad018d07a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/core/auto_additions/qgstopologicalmesh.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# The following has been generated automatically from src/core/mesh/qgstopologicalmesh.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.createTopologicalMesh = staticmethod(QgsTopologicalMesh.createTopologicalMesh)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.counterClockwiseFaces = staticmethod(QgsTopologicalMesh.counterClockwiseFaces)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.checkTopology = staticmethod(QgsTopologicalMesh.checkTopology)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.vertexPositionInFace = staticmethod(QgsTopologicalMesh.vertexPositionInFace)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.__group__ = ['mesh']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++except (NameError, AttributeError):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.TopologicalFaces.__group__ = ['mesh']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++except (NameError, AttributeError):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsTopologicalMesh.Changes.__group__ = ['mesh']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++except (NameError, AttributeError):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/core/auto_generated/mesh/qgstopologicalmesh.sip.in b/python/core/auto_generated/mesh/qgstopologicalmesh.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 000000000000..00540aa0488a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/core/auto_generated/mesh/qgstopologicalmesh.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,378 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/************************************************************************
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This file has been generated automatically from *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * src/core/mesh/qgstopologicalmesh.h *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Do not edit manually ! Edit header and run scripts/sipify.py again *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ************************************************************************/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsTopologicalMesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Wraps a :py:class:`QgsMesh` to ensure the consistency of the mesh during
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++editing and helps to access elements from other elements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++A topological face must:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++- be convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++- be oriented counter-clockwise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++- not share a unique vertex with another face
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.. versionadded:: 3.22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%TypeHeaderCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "qgstopologicalmesh.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ typedef QVector<int> FaceNeighbors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ class TopologicalFaces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Contains independent faces and topological information about these
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++faces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This class supports unique shared vertices between faces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.. versionadded:: 3.22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%TypeHeaderCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "qgstopologicalmesh.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void clear();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Clears all data contained in the instance.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int vertexToFace( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns a face linked to the vertices with index ``vertexIndex``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ class Changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Contains topological differences between two states of a topological
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++mesh, only accessible from the QgsTopologicalMesh class.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.. versionadded:: 3.22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%TypeHeaderCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "qgstopologicalmesh.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> removedFaceIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the indexes of the faces that are removed with this changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QVector<QgsPoint> addedVertices() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the added vertices with this changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> verticesToRemoveIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the indexes of vertices to remove
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> changedCoordinatesVerticesIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the indexes of vertices that have changed coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<double> newVerticesZValues() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the new Z values of vertices that have changed their coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<QgsPointXY> newVerticesXYValues() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the new (X,Y) values of vertices that have changed their
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<QgsPointXY> oldVerticesXYValues() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the old (X,Y) values of vertices that have changed their
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> nativeFacesIndexesGeometryChanged() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns a list of the native face indexes that have a geometry changed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool isEmpty() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns whether changes are empty, that there is nothing to change
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ protected:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void clearChanges();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Clears all changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static QgsTopologicalMesh createTopologicalMesh( QgsMesh *mesh, int maxVerticesPerFace, QgsMeshEditingError &error );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Creates a topologicaly consistent mesh with ``mesh``, this static method
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++modifies ``mesh`` to be topological consistent and return a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh instance that contains and handles this mesh (does
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++not take ownership).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QVector<int> neighborsOfFace( int faceIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the indexes of neighbor faces of the face with index
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++``faceIndex``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> facesAroundVertex( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the indexes of faces that are around the vertex with index
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++``vertexIndex``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsMesh *mesh() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns a pointer to the wrapped mesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int firstFaceLinked( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns the index of the first face linked, returns -1 if it is a free
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++vertex or out of range index
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool isVertexOnBoundary( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns whether the vertex is on a boundary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool isVertexFree( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns whether the vertex is a free vertex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<int> freeVerticesIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns a list of vertices are not linked to any faces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsMeshEditingError facesCanBeAdded( const TopologicalFaces &topologicalFaces ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns whether the faces can be added to the mesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes addFaces( const TopologicalFaces &topologicFaces );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Adds faces ``topologicFaces`` to the topologic mesh. The method returns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++a instance of the class QgsTopologicalMesh.Change that can be used to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reverse or reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsMeshEditingError facesCanBeRemoved( const QList<int> &facesIndexes );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns whether faces with index in ``faceIndexes`` can be removed The
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++method an error object with type :py:class:`QgsMeshEditingError`.NoError
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if the faces can be removed, otherwise returns the corresponding error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes removeFaces( const QList<int> &facesIndexes );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Removes faces with index in ``faceIndexes``. The method returns a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++instance of the class QgsTopologicalMesh.Change that can be used to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reverse or reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool edgeCanBeFlipped( int vertexIndex1, int vertexIndex2 ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns ``True`` if the edge can be flipped (only available for edge
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++shared by two faces with 3 vertices)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes flipEdge( int vertexIndex1, int vertexIndex2 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Flips edge (``vertexIndex1``, ``vertexIndex2``) The method returns a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++instance of the class QgsTopologicalMesh.Change that can be used to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reverse or reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool delaunayConditionForEdge( int vertexIndex1, int vertexIndex2 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Check if Delaunay condition holds for given edge returns ``True`` if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++delaunay condition holds ``False`` otherwise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.. versionadded:: 3.42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool canBeMerged( int vertexIndex1, int vertexIndex2 ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns ``True`` if faces separated by vertices with indexes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++``vertexIndex1`` and ``vertexIndex2`` can be merged
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes merge( int vertexIndex1, int vertexIndex2 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Merges faces separated by vertices with indexes ``vertexIndex1`` and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++``vertexIndex2`` The method returns a instance of the class
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.Change that can be used to reverse or reapply the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool canBeSplit( int faceIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns ``True`` if face with index ``faceIndex`` can be split
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes splitFace( int faceIndex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Splits face with index ``faceIndex`` The method returns a instance of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the class QgsTopologicalMesh.Change that can be used to reverse or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes addVertexInFace( int faceIndex, const QgsMeshVertex &vertex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Adds a ``vertex`` in the face with index ``faceIndex``. The including
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++face is removed and new faces surrounding the added vertex are added.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The method returns a instance of the class QgsTopologicalMesh.Change
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++that can be used to reverse or reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes insertVertexInFacesEdge( int faceIndex, int position, const QgsMeshVertex &vertex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Inserts a ``vertex`` in the edge of face with index ``faceIndex`` at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++``position`` . The faces that are on each side of the edge are removed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++and replaced by new faces constructed by a triangulation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes addFreeVertex( const QgsMeshVertex &vertex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Adds a free ``vertex`` in the face, that is a vertex that is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++included or linked with any faces. The method returns a instance of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsTopologicalMesh.Change that can be used to reverse or reapply
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes removeVertexFillHole( int vertexIndex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Removes the vertex with index ``vertexIndex``. If the vertex in linked
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++with faces, the operation leads also to remove the faces. In this case,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the hole is filled by a triangulation. The method returns a instance of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the class QgsTopologicalMesh.Change that can be used to reverse or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reapply the operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes removeVertices( const QList<int> &vertices );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Removes all the vertices with index in the list ``vertices`` If vertices
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++in linked with faces, the operation leads also to remove the faces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++without filling holes. The method returns a instance of the class
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.Change that can be used to reverse or reapply the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++operation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes changeZValue( const QList<int> &verticesIndexes, const QList<double> &newValues );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Changes the Z values of the vertices with indexes in ``vertices``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++indexes with the values in ``newValues``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Changes changeXYValue( const QList<int> &verticesIndexes, const QList<QgsPointXY> &newValues );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Changes the (X,Y) values of the vertices with indexes in ``vertices``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++indexes with the values in ``newValues``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void applyChanges( const Changes &changes );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Applies the changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void reverseChanges( const Changes &changes );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Reverses the changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static QgsMeshEditingError counterClockwiseFaces( QgsMeshFace &face, QgsMesh *mesh );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Checks the topology of the face and sets it counter clockwise if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++necessary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void reindex();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Reindexes faces and vertices, after this operation, the topological mesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++can't be edited anymore and only the method mesh can be used to access
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++to the raw mesh.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool renumber();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Renumbers the indexes of vertices and faces using the Reverse CutHill
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++McKee Algorithm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QgsMeshEditingError checkConsistency() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Checks the consistency of the topological mesh and return ``False`` if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++there is a consistency issue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static QgsMeshEditingError checkTopology( const QgsMesh &mesh, int maxVerticesPerFace );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Checks the topology of the mesh ``mesh``, if error occurs, this mesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++can't be edited
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static int vertexPositionInFace( int vertexIndex, const QgsMeshFace &face );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns vertex position in face
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static int vertexPositionInFace( const QgsMesh &mesh, int vertexIndex, int faceIndex );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Docstring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Returns vertex position in face
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/************************************************************************
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This file has been generated automatically from *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * src/core/mesh/qgstopologicalmesh.h *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Do not edit manually ! Edit header and run scripts/sipify.py again *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ************************************************************************/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/core/core_auto.sip b/python/core/core_auto.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8952f376f955..bf8174fcfa0e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/core/core_auto.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/core/core_auto.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -500,6 +500,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshtimesettings.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshtracerenderer.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshcalculator.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%Include auto_generated/mesh/qgstopologicalmesh.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshadvancedediting.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshforcebypolylines.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Include auto_generated/mesh/qgsmeshlayerlabeling.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/gui/auto_generated/layertree/qgslayertreeembeddedconfigwidget.sip.in b/python/gui/auto_generated/layertree/qgslayertreeembeddedconfigwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0fae81a01021..22e9ce496af6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/gui/auto_generated/layertree/qgslayertreeembeddedconfigwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/gui/auto_generated/layertree/qgslayertreeembeddedconfigwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,7 +9,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsLayerTreeEmbeddedConfigWidget : QWidget, protected Ui::QgsLayerTreeEmbeddedConfigWidgetBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsLayerTreeEmbeddedConfigWidget : QWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A widget to configure layer tree embedded widgets for a particular map
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/gui/auto_generated/providers/qgsabstractdbsourceselect.sip.in b/python/gui/auto_generated/providers/qgsabstractdbsourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 26bcbb8d25d5..bf1751941c89 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/gui/auto_generated/providers/qgsabstractdbsourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/gui/auto_generated/providers/qgsabstractdbsourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,7 +10,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsAbstractDbSourceSelect : QgsAbstractDataSourceWidget, protected Ui::QgsDbSourceSelectBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsAbstractDbSourceSelect : QgsAbstractDataSourceWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Base class for database source widget selectors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/gui/auto_generated/qgsowssourceselect.sip.in b/python/gui/auto_generated/qgsowssourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c743067a32be..f0bcc01d28cc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/gui/auto_generated/qgsowssourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/gui/auto_generated/qgsowssourceselect.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,7 +11,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsOWSSourceSelect : QgsAbstractDataSourceWidget, protected Ui::QgsOWSSourceSelectBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsOWSSourceSelect : QgsAbstractDataSourceWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Dialog to create connections and add layers WCS etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/gui/auto_generated/qgsrichtexteditor.sip.in b/python/gui/auto_generated/qgsrichtexteditor.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c8c446bd5143..74ba66573748 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/gui/auto_generated/qgsrichtexteditor.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/gui/auto_generated/qgsrichtexteditor.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,7 +10,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsRichTextEditor : QWidget, protected Ui::QgsRichTextEditorBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsRichTextEditor : QWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A widget for editing rich text documents, with support for user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/gui/auto_generated/qgstablewidgetbase.sip.in b/python/gui/auto_generated/qgstablewidgetbase.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cfe22b44f798..8a7b74e22702 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/gui/auto_generated/qgstablewidgetbase.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/gui/auto_generated/qgstablewidgetbase.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8,7 +8,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsTableWidgetBase : QWidget, protected Ui::QgsTableWidgetUiBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsTableWidgetBase : QWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Base widget allowing editing a collection, using a table.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/gui/auto_generated/qgstextformatwidget.sip.in b/python/gui/auto_generated/qgstextformatwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f00f53f49ce5..857293034853 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/gui/auto_generated/qgstextformatwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/gui/auto_generated/qgstextformatwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12,7 +12,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsTextFormatWidget : QWidget, QgsExpressionContextGenerator, protected Ui::QgsTextFormatWidgetBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsTextFormatWidget : QWidget, QgsExpressionContextGenerator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A widget for customizing text formatting settings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/gui/auto_generated/raster/qgscolorrampshaderwidget.sip.in b/python/gui/auto_generated/raster/qgscolorrampshaderwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a5655a492b8e..da18ab554d20 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/gui/auto_generated/raster/qgscolorrampshaderwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/gui/auto_generated/raster/qgscolorrampshaderwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,7 +11,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class QgsColorRampShaderWidget : QWidget, protected Ui::QgsColorRampShaderWidgetBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class QgsColorRampShaderWidget : QWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A widget for configuring numeric ranges associated with a color ramp.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/gui/auto_generated/symbology/qgs25drendererwidget.sip.in b/python/gui/auto_generated/symbology/qgs25drendererwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 23a673ee4d01..45593f99d2c5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/gui/auto_generated/symbology/qgs25drendererwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/gui/auto_generated/symbology/qgs25drendererwidget.sip.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8,7 +8,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class Qgs25DRendererWidget : QgsRendererWidget, protected Ui::Qgs25DRendererWidgetBase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class Qgs25DRendererWidget : QgsRendererWidget
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %Docstring(signature="appended")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A widget for configuring a Qgs25DRenderer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/scripts/sipify.py b/scripts/sipify.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 50546e686870..24e3148171c2 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- scripts/sipify.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ scripts/sipify.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1732,6 +1732,10 @@ def cpp_to_python_signature(cpp_function: str) -> str:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while not re.match(r"^#endif", CONTEXT.current_line):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CONTEXT.current_line = read_line()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ using_match = re.match(r"(\s*)using\s+(.*?)\s*=\s*(.*);", CONTEXT.current_line)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if using_match:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CONTEXT.current_line = f"{using_match.group(1)}typedef {using_match.group(3)} {using_match.group(2)};"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Do not process SIP code %XXXCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if CONTEXT.sip_run and re.match(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ r"^ *[/]*% *(VirtualErrorHandler|MappedType|Type(?:Header)?Code|Module(?:Header)?Code|Convert(?:From|To)(?:Type|SubClass)Code|MethodCode|Docstring)(.*)?$",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2072,7 +2076,8 @@ def cpp_to_python_signature(cpp_function: str) -> str:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Inheritance
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if class_pattern_match.group("domain"):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m = class_pattern_match.group("domain")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- m = re.sub(r"public +(\w+, *)*(Ui::\w+,? *)+", "", m)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ dbg_info(f"class: {CONTEXT.classname[-1]} domain is {m}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ m = re.sub(r"(?:(?:,\s*)?public|(?:,\s*)?protected|,)\s+Ui::\w+\s*", "", m)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m = re.sub(r"public +", "", m)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m = re.sub(r"[,:]?\s*private +\w+(::\w+)?", "", m)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/core/mesh/qgstopologicalmesh.h b/src/core/mesh/qgstopologicalmesh.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7c6430b67808..8b487e3471f3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/core/mesh/qgstopologicalmesh.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/core/mesh/qgstopologicalmesh.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,8 +26,6 @@ template CORE_EXPORT QList<int> SIP_SKIP;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template CORE_EXPORT QVector<QVector<int>> SIP_SKIP;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-SIP_NO_FILE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class QgsMeshEditingError;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class QgsMeshVertexCirculator;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,11 +34,11 @@ class QgsMeshVertexCirculator;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * \brief Wraps a QgsMesh to ensure the consistency of the mesh during editing and helps to access elements from other elements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * A topological face need to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * A topological face must:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * - be convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * - counter clock wise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * - not share an unique vertex with another face
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * - be oriented counter-clockwise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * - not share a unique vertex with another face
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * \since QGIS 3.22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -55,7 +53,7 @@ class CORE_EXPORT QgsTopologicalMesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * \brief Contains independent faces and topological information about these faces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * This class supports unique shared vertex between faces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This class supports unique shared vertices between faces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * \since QGIS 3.22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -63,14 +61,21 @@ class CORE_EXPORT QgsTopologicalMesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- //! Returns faces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- QVector<QgsMeshFace> meshFaces() const {return mFaces;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Returns faces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * \note Not available in Python bindings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SIP_SKIP QVector<QgsMeshFace> meshFaces() const {return mFaces;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //! Clears all data contained in the instance.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void clear();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- //! Returns the face neighborhood of the faces, indexing is local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- QVector<FaceNeighbors> facesNeighborhood() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Returns the face neighborhood of the faces, indexing is local.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * \note Not available in Python bindings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SIP_SKIP QVector<FaceNeighbors> facesNeighborhood() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //! Returns a face linked to the vertices with index \a vertexIndex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int vertexToFace( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,17 +102,29 @@ class CORE_EXPORT QgsTopologicalMesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- //! Returns the face that are added with this changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- QVector<QgsMeshFace> addedFaces() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Returns the face that are added with this changes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * \note Not available in Python bindings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SIP_SKIP QVector<QgsMeshFace> addedFaces() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- //! Returns the faces that are removed with this changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- QVector<QgsMeshFace> removedFaces() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Returns the faces that are removed with this changes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * \note Not available in Python bindings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SIP_SKIP QVector<QgsMeshFace> removedFaces() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //! Returns the indexes of the faces that are removed with this changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QList<int> removedFaceIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //! Returns the added vertices with this changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef SIP_RUN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QVector<QgsMeshVertex> addedVertices() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QVector<QgsPoint> addedVertices() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //! Returns the indexes of vertices to remove
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QList<int> verticesToRemoveIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -169,8 +186,12 @@ class CORE_EXPORT QgsTopologicalMesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static QgsTopologicalMesh createTopologicalMesh( QgsMesh *mesh, int maxVerticesPerFace, QgsMeshEditingError &error );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- //! Creates new topological faces that are not yet included in the mesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- static TopologicalFaces createNewTopologicalFaces( const QVector<QgsMeshFace> &faces, bool uniqueSharedVertexAllowed, QgsMeshEditingError &error );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Creates new topological faces that are not yet included in the mesh.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * \note Not available in Python bindings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SIP_SKIP static TopologicalFaces createNewTopologicalFaces( const QVector<QgsMeshFace> &faces, bool uniqueSharedVertexAllowed, QgsMeshEditingError &error );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //----------- access element methods
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -195,8 +216,12 @@ class CORE_EXPORT QgsTopologicalMesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //! Returns a list of vertices are not linked to any faces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QList<int> freeVerticesIndexes() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- //! Returns a vertex circulator linked to this mesh around the vertex with index \a vertexIndex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- QgsMeshVertexCirculator vertexCirculator( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Returns a vertex circulator linked to this mesh around the vertex with index \a vertexIndex.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * \note Not available in Python bindings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SIP_SKIP QgsMeshVertexCirculator vertexCirculator( int vertexIndex ) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //----------- editing methods
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -318,9 +343,10 @@ class CORE_EXPORT QgsTopologicalMesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Checks the topology of the \a vertices as they are contained in a face and returns indication on direction.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * If the face is clockwise, \a clockwise is TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * \note Not available in Python bindings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * \since QGIS 3.30
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- static QgsMeshEditingError checkTopologyOfVerticesAsFace( const QVector<QgsMeshVertex> &vertices, bool &clockwise );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SIP_SKIP static QgsMeshEditingError checkTopologyOfVerticesAsFace( const QVector<QgsMeshVertex> &vertices, bool &clockwise );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Reindexes faces and vertices, after this operation, the topological
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -394,11 +420,15 @@ class CORE_EXPORT QgsTopologicalMesh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef SIP_RUN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * \ingroup core
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * \brief Convenient class that turn around a vertex and provide information about faces and vertices
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * \note Not available in Python bindings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * \since QGIS 3.22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class CORE_EXPORT QgsMeshVertexCirculator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -466,5 +496,6 @@ class CORE_EXPORT QgsMeshVertexCirculator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int positionInCurrentFace() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif // QGSTOPOLOGICALMESH_H
</span></pre><pre style='margin:0'>
</pre>