78 SIP_SKIP QVector<FaceNeighbors> facesNeighborhood()
const;
81 int vertexToFace(
int vertexIndex )
const;
84 QVector<QgsMeshFace> mFaces;
85 QVector<FaceNeighbors> mFacesNeighborhood;
86 QMultiHash<int, int> mVerticesToFace;
87 QList<int> mBoundaries;
110 SIP_SKIP QVector<QgsMeshFace> addedFaces()
const;
117 SIP_SKIP QVector<QgsMeshFace> removedFaces()
const;
120 QList<int> removedFaceIndexes()
const;
124 QVector<QgsMeshVertex> addedVertices()
const;
126 QVector<QgsPoint> addedVertices()
const;
130 QList<int> verticesToRemoveIndexes()
const;
133 QList<int> changedCoordinatesVerticesIndexes()
const;
136 QList<double> newVerticesZValues()
const;
139 QList<QgsPointXY> newVerticesXYValues()
const;
142 QList<QgsPointXY> oldVerticesXYValues()
const;
145 QList<int> nativeFacesIndexesGeometryChanged()
const;
148 bool isEmpty()
const;
151 int mAddedFacesFirstIndex = 0;
177 int addedFaceIndexInMesh(
int internalIndex )
const;
178 int removedFaceIndexInMesh(
int internalIndex )
const;
199 QVector<int> neighborsOfFace(
int faceIndex )
const;
202 QList<int> facesAroundVertex(
int vertexIndex )
const;
208 int firstFaceLinked(
int vertexIndex )
const;
211 bool isVertexOnBoundary(
int vertexIndex )
const;
214 bool isVertexFree(
int vertexIndex )
const;
217 QList<int> freeVerticesIndexes()
const;
247 Changes removeFaces(
const QList<int> &facesIndexes );
252 bool edgeCanBeFlipped(
int vertexIndex1,
int vertexIndex2 )
const;
258 Changes flipEdge(
int vertexIndex1,
int vertexIndex2 );
266 bool delaunayConditionForEdge(
int vertexIndex1,
int vertexIndex2 );
271 bool canBeMerged(
int vertexIndex1,
int vertexIndex2 )
const;
277 Changes merge(
int vertexIndex1,
int vertexIndex2 );
282 bool canBeSplit(
int faceIndex )
const;
288 Changes splitFace(
int faceIndex );
313 Changes removeVertexFillHole(
int vertexIndex );
320 Changes removeVertices(
const QList<int> &vertices );
325 Changes changeZValue(
const QList<int> &verticesIndexes,
const QList<double> &newValues );
330 Changes changeXYValue(
const QList<int> &verticesIndexes,
const QList<QgsPointXY> &newValues );
334 void applyChanges(
const Changes &changes );
337 void reverseChanges(
const Changes &changes );
371 return face.indexOf( vertexIndex );
375 static int vertexPositionInFace(
const QgsMesh &mesh,
int vertexIndex,
int faceIndex );
380 static TopologicalFaces createTopologicalFaces(
381 const QVector<QgsMeshFace> &faces,
382 QVector<int> *globalVertexToFace,
384 bool allowUniqueSharedVertex );
387 QSet<int> concernedFacesBy(
const QList<int> &faceIndexes )
const;
390 void referenceAsFreeVertex(
int vertexIndex );
392 void dereferenceAsFreeVertex(
int vertexIndex );
398 bool eitherSideFacesAndVertices(
int vertexIndex1,
402 int &neighborVertex1InFace1,
403 int &neighborVertex1InFace2,
404 int &neighborVertex2inFace1,
405 int &neighborVertex2inFace2 )
const;
407 bool renumberVertices( QVector<int> &oldToNewIndex )
const;
408 bool renumberFaces( QVector<int> &oldToNewIndex )
const;
412 QVector<int> mVertexToFace;
413 QVector<FaceNeighbors> mFacesNeighborhood;
415 QSet<int> mFreeVertices;
417 int mMaximumVerticesPerFace = 0;