67 QVector<QgsMeshFace>
meshFaces()
const {
return mFaces;}
73 QVector<FaceNeighbors> facesNeighborhood()
const;
76 int vertexToFace(
int vertexIndex )
const;
79 QVector<QgsMeshFace> mFaces;
80 QVector<FaceNeighbors> mFacesNeighborhood;
81 QMultiHash<int, int> mVerticesToFace;
82 QList<int> mBoundaries;
101 QVector<QgsMeshFace> addedFaces()
const;
104 QVector<QgsMeshFace> removedFaces()
const;
107 QList<int> removedFaceIndexes()
const;
110 QVector<QgsMeshVertex> addedVertices()
const;
113 QList<int> verticesToRemoveIndexes()
const;
116 QList<int> changedCoordinatesVerticesIndexes()
const;
119 QList<double> newVerticesZValues()
const;
122 QList<QgsPointXY> newVerticesXYValues()
const;
125 QList<QgsPointXY> oldVerticesXYValues()
const;
128 QList<int> nativeFacesIndexesGeometryChanged()
const;
131 bool isEmpty()
const;
134 int mAddedFacesFirstIndex = 0;
160 int addedFaceIndexInMesh(
int internalIndex )
const;
161 int removedFaceIndexInMesh(
int internalIndex )
const;
178 QVector<int> neighborsOfFace(
int faceIndex )
const;
181 QList<int> facesAroundVertex(
int vertexIndex )
const;
187 int firstFaceLinked(
int vertexIndex )
const;
190 bool isVertexOnBoundary(
int vertexIndex )
const;
193 bool isVertexFree(
int vertexIndex )
const;
196 QList<int> freeVerticesIndexes()
const;
222 Changes removeFaces(
const QList<int> &facesIndexes );
227 bool edgeCanBeFlipped(
int vertexIndex1,
int vertexIndex2 )
const;
233 Changes flipEdge(
int vertexIndex1,
int vertexIndex2 );
238 bool canBeMerged(
int vertexIndex1,
int vertexIndex2 )
const;
244 Changes merge(
int vertexIndex1,
int vertexIndex2 );
249 bool canBeSplit(
int faceIndex )
const;
255 Changes splitFace(
int faceIndex );
280 Changes removeVertexFillHole(
int vertexIndex );
287 Changes removeVertices(
const QList<int> &vertices );
292 Changes changeZValue(
const QList<int> &verticesIndexes,
const QList<double> &newValues );
297 Changes changeXYValue(
const QList<int> &verticesIndexes,
const QList<QgsPointXY> &newValues );
301 void applyChanges(
const Changes &changes );
304 void reverseChanges(
const Changes &changes );
315 static QgsMeshEditingError checkTopologyOfVerticesAsFace(
const QVector<QgsMeshVertex> &vertices,
bool &clockwise );
338 const QVector<QgsMeshFace> &faces,
339 QVector<int> *globalVertexToFace,
341 bool allowUniqueSharedVertex );
344 QSet<int> concernedFacesBy(
const QList<int> &faceIndexes )
const;
347 void referenceAsFreeVertex(
int vertexIndex );
349 void dereferenceAsFreeVertex(
int vertexIndex );
355 bool eitherSideFacesAndVertices(
int vertexIndex1,
359 int &neighborVertex1InFace1,
360 int &neighborVertex1InFace2,
361 int &neighborVertex2inFace1,
362 int &neighborVertex2inFace2 )
const;
364 bool renumberVertices( QVector<int> &oldToNewIndex )
const;
365 bool renumberFaces( QVector<int> &oldToNewIndex )
const;
369 QVector<int> mVertexToFace;
370 QVector<FaceNeighbors> mFacesNeighborhood;
372 QSet<int> mFreeVertices;
374 int mMaximumVerticesPerFace = 0;