<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/37590fe2b74a2b58ec1ed2de3294c376024ca2f7">https://github.com/macports/macports-ports/commit/37590fe2b74a2b58ec1ed2de3294c376024ca2f7</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 37590fe2b74a2b58ec1ed2de3294c376024ca2f7
</span>Author: Nicklas Larsson <n_larsson@yahoo.com>
AuthorDate: Tue Jun 10 09:54:22 2025 +0200
<span style='display:block; white-space:pre;color:#404040;'> qgis3-ltr: update to 3.40.7
</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/72502
</span>---
gis/qgis3/Portfile | 13 +-
gis/qgis3/files/patch-62113-ltr.diff | 1296 ++++++++++++++++++++++++++++++++++
2 files changed, 1304 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 0c7c2c69d2e..86ed40ac34c 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;'>@@ -38,15 +38,18 @@ if {${subport} eq ${name}} {
</span> patchfiles-append patch-62113.diff
} else {
# LTR version
<span style='display:block; white-space:pre;background:#ffe0e0;'>- github.setup qgis QGIS 3_40_6 final-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ github.setup qgis QGIS 3_40_7 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-LTR
description {*}${description} (LTR)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- checksums rmd160 ab561452299d1e5d745f59fecfe5d11acdcd4a30 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 47a3fdb84fbd02146601e452a100e7882e4374e1119fd9163259c38b272b4597 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 211816798
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums rmd160 cdac10f0fcb07c7340fd39739608e3de570dfd90 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 957c8eae7455d7c852a857a9cf3437d85d51bb0a2a2ddac345cc1d24280e0292 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 211900653
</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/72502
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-62113-ltr.diff
</span> }
version [string map {_ .} ${github.version}]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gis/qgis3/files/patch-62113-ltr.diff b/gis/qgis3/files/patch-62113-ltr.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3fb37f3a681
</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-ltr.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,1296 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Patches from upstream:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/qgis/QGIS/commit/a220015fc0d390d5f1565c7e84eb7d9adc347100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/qgis/QGIS/commit/24519cfea9e33bf6d09f361ef8bdcfeba0eab0eb
</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;'>+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..d9047a90a51e
</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,16 @@
</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.__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..eff071f629f7
</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,360 @@
</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;'>++Class that wraps a :py:class:`QgsMesh` to ensure the consistency of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++mesh during editing and help to access to 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;'>++Class that contains independent faces an topological information about
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++this 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;'>++Class that contains topological differences between two states of a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++topological 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 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;'>++};
</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 5dbf9ad9794b..98e597602472 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;'>+@@ -494,6 +494,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 c6e85dd358b3..c09daf96f49a 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;'>+ The :py:class:`QgsAbstractDbSourceSelect` class is a base class for
</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 8533ab005713..81a6a8ecbfa7 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 to edit 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 1bda32779f1f..3e3696869aa0 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 441438a8ae0c..705b4743f59b 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;'>+ It has 2 ways how to use it. For raster layers, raster data provider and
</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 e22c86198ca1..2d4a4a988d1a 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %TypeHeaderCode
</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..d9047a90a51e
</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,16 @@
</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.__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..eff071f629f7
</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,360 @@
</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;'>++Class that wraps a :py:class:`QgsMesh` to ensure the consistency of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++mesh during editing and help to access to 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;'>++Class that contains independent faces an topological information about
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++this 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;'>++Class that contains topological differences between two states of a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++topological 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 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;'>++};
</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 5dbf9ad9794b..98e597602472 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;'>+@@ -494,6 +494,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 c6e85dd358b3..c09daf96f49a 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;'>+ The :py:class:`QgsAbstractDbSourceSelect` class is a base class for
</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 8533ab005713..81a6a8ecbfa7 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 to edit 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 eaeb35659082..ae455b22a28c 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 441438a8ae0c..705b4743f59b 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;'>+ It has 2 ways how to use it. For raster layers, raster data provider and
</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 e22c86198ca1..2d4a4a988d1a 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %TypeHeaderCode
</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 aa68b0be526d..20e2e5af2cb4 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;'>+@@ -1676,6 +1676,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;'>+@@ -1995,7 +1999,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 6b91e48b2267..c8a3d2dc1445 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 Class that wraps a QgsMesh to ensure the consistency of the mesh during editing and help to access to 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 Class that contains independent faces an topological information about this 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;'>+@@ -310,9 +335,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;'>+@@ -377,11 +403,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;'>+@@ -449,5 +479,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><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;'>+diff --git a/python/PyQt6/core/class_map.yaml b/python/PyQt6/core/class_map.yaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f6c819dbe921..55981a833c1f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/PyQt6/core/class_map.yaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/PyQt6/core/class_map.yaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17940,6 +17940,42 @@ QgsTolerance.toleranceInProjectUnits: src/core/qgstolerance.h#L66
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTolerance.vertexSearchRadius: src/core/qgstolerance.h#L42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTolerance.vertexSearchRadius: src/core/qgstolerance.h#L49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTolerance: src/core/qgstolerance.h#L32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.Changes.clearChanges: src/core/mesh/qgstopologicalmesh.h#L174
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.Changes.isEmpty: src/core/mesh/qgstopologicalmesh.h#L148
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.Changes: src/core/mesh/qgstopologicalmesh.h#L101
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.TopologicalFaces.clear: src/core/mesh/qgstopologicalmesh.h#L71
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.TopologicalFaces.vertexToFace: src/core/mesh/qgstopologicalmesh.h#L81
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.TopologicalFaces: src/core/mesh/qgstopologicalmesh.h#L60
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.addFaces: src/core/mesh/qgstopologicalmesh.h#L235
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.addFreeVertex: src/core/mesh/qgstopologicalmesh.h#L298
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.addVertexInFace: src/core/mesh/qgstopologicalmesh.h#L286
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.applyChanges: src/core/mesh/qgstopologicalmesh.h#L326
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.canBeMerged: src/core/mesh/qgstopologicalmesh.h#L263
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.canBeSplit: src/core/mesh/qgstopologicalmesh.h#L274
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.changeXYValue: src/core/mesh/qgstopologicalmesh.h#L322
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.changeZValue: src/core/mesh/qgstopologicalmesh.h#L317
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.checkConsistency: src/core/mesh/qgstopologicalmesh.h#L355
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.checkTopology: src/core/mesh/qgstopologicalmesh.h#L358
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.counterClockwiseFaces: src/core/mesh/qgstopologicalmesh.h#L332
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.createTopologicalMesh: src/core/mesh/qgstopologicalmesh.h#L187
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.edgeCanBeFlipped: src/core/mesh/qgstopologicalmesh.h#L252
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.facesCanBeAdded: src/core/mesh/qgstopologicalmesh.h#L229
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.facesCanBeRemoved: src/core/mesh/qgstopologicalmesh.h#L241
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.firstFaceLinked: src/core/mesh/qgstopologicalmesh.h#L208
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.flipEdge: src/core/mesh/qgstopologicalmesh.h#L258
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.insertVertexInFacesEdge: src/core/mesh/qgstopologicalmesh.h#L292
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.isVertexFree: src/core/mesh/qgstopologicalmesh.h#L214
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.isVertexOnBoundary: src/core/mesh/qgstopologicalmesh.h#L211
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.merge: src/core/mesh/qgstopologicalmesh.h#L269
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.mesh: src/core/mesh/qgstopologicalmesh.h#L205
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.reindex: src/core/mesh/qgstopologicalmesh.h#L347
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.removeFaces: src/core/mesh/qgstopologicalmesh.h#L247
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.removeVertexFillHole: src/core/mesh/qgstopologicalmesh.h#L305
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.removeVertices: src/core/mesh/qgstopologicalmesh.h#L312
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.renumber: src/core/mesh/qgstopologicalmesh.h#L352
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.reverseChanges: src/core/mesh/qgstopologicalmesh.h#L329
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.splitFace: src/core/mesh/qgstopologicalmesh.h#L280
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh: src/core/mesh/qgstopologicalmesh.h#L45
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTopologyPreservingSimplifier.simplify: src/core/qgsgeometrysimplifier.h#L80
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTopologyPreservingSimplifier.simplify: src/core/qgsgeometrysimplifier.h#L81
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTopologyPreservingSimplifier: src/core/qgsgeometrysimplifier.h#L70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/python/core/class_map.yaml b/python/core/class_map.yaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 720ea9b6def8..10b70750a98f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/core/class_map.yaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/core/class_map.yaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17940,6 +17940,42 @@ QgsTolerance.toleranceInProjectUnits: src/core/qgstolerance.h#L66
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTolerance.vertexSearchRadius: src/core/qgstolerance.h#L42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTolerance.vertexSearchRadius: src/core/qgstolerance.h#L49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTolerance: src/core/qgstolerance.h#L32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.Changes.clearChanges: src/core/mesh/qgstopologicalmesh.h#L174
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.Changes.isEmpty: src/core/mesh/qgstopologicalmesh.h#L148
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.Changes: src/core/mesh/qgstopologicalmesh.h#L101
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.TopologicalFaces.clear: src/core/mesh/qgstopologicalmesh.h#L71
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.TopologicalFaces.vertexToFace: src/core/mesh/qgstopologicalmesh.h#L81
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.TopologicalFaces: src/core/mesh/qgstopologicalmesh.h#L60
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.addFaces: src/core/mesh/qgstopologicalmesh.h#L235
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.addFreeVertex: src/core/mesh/qgstopologicalmesh.h#L298
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.addVertexInFace: src/core/mesh/qgstopologicalmesh.h#L286
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.applyChanges: src/core/mesh/qgstopologicalmesh.h#L326
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.canBeMerged: src/core/mesh/qgstopologicalmesh.h#L263
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.canBeSplit: src/core/mesh/qgstopologicalmesh.h#L274
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.changeXYValue: src/core/mesh/qgstopologicalmesh.h#L322
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.changeZValue: src/core/mesh/qgstopologicalmesh.h#L317
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.checkConsistency: src/core/mesh/qgstopologicalmesh.h#L355
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.checkTopology: src/core/mesh/qgstopologicalmesh.h#L358
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.counterClockwiseFaces: src/core/mesh/qgstopologicalmesh.h#L332
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.createTopologicalMesh: src/core/mesh/qgstopologicalmesh.h#L187
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.edgeCanBeFlipped: src/core/mesh/qgstopologicalmesh.h#L252
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.facesCanBeAdded: src/core/mesh/qgstopologicalmesh.h#L229
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.facesCanBeRemoved: src/core/mesh/qgstopologicalmesh.h#L241
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.firstFaceLinked: src/core/mesh/qgstopologicalmesh.h#L208
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.flipEdge: src/core/mesh/qgstopologicalmesh.h#L258
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.insertVertexInFacesEdge: src/core/mesh/qgstopologicalmesh.h#L292
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.isVertexFree: src/core/mesh/qgstopologicalmesh.h#L214
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.isVertexOnBoundary: src/core/mesh/qgstopologicalmesh.h#L211
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.merge: src/core/mesh/qgstopologicalmesh.h#L269
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.mesh: src/core/mesh/qgstopologicalmesh.h#L205
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.reindex: src/core/mesh/qgstopologicalmesh.h#L347
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.removeFaces: src/core/mesh/qgstopologicalmesh.h#L247
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.removeVertexFillHole: src/core/mesh/qgstopologicalmesh.h#L305
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.removeVertices: src/core/mesh/qgstopologicalmesh.h#L312
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.renumber: src/core/mesh/qgstopologicalmesh.h#L352
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.reverseChanges: src/core/mesh/qgstopologicalmesh.h#L329
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh.splitFace: src/core/mesh/qgstopologicalmesh.h#L280
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QgsTopologicalMesh: src/core/mesh/qgstopologicalmesh.h#L45
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTopologyPreservingSimplifier.simplify: src/core/qgsgeometrysimplifier.h#L80
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTopologyPreservingSimplifier.simplify: src/core/qgsgeometrysimplifier.h#L81
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QgsTopologyPreservingSimplifier: src/core/qgsgeometrysimplifier.h#L70
</span></pre><pre style='margin:0'>
</pre>