111 bool faceCanBeAdded( const
QgsMeshFace &face ) const;
121 bool faceCanBeAddedWithNewVertices( const QList<
int> &verticesIndex, const QList<
QgsMeshVertex> &newVertices ) const;
SIP_SKIP
127 bool isFaceGeometricallyCompatible( const
QgsMeshFace &face ) const;
149 bool edgeCanBeFlipped(
int vertexIndex1,
int vertexIndex2 ) const;
152 void flipEdge(
int vertexIndex1,
int vertexIndex2 );
157 bool canBeMerged(
int vertexIndex1,
int vertexIndex2 ) const;
160 void merge(
int vertexIndex1,
int vertexIndex2 );
165 bool faceCanBeSplit(
int faceIndex ) const;
171 int splitFaces( const QList<
int> &faceIndexes );
191 int addPointsAsVertices( const QVector<
QgsPoint> &point,
double tolerance );
198 QgsMeshEditingError removeVerticesWithoutFillHoles( const QList<
int> &verticesToRemoveIndexes );
207 QList<
int> removeVerticesFillHoles( const QList<
int> &verticesToRemoveIndexes );
212 void changeZValues( const QList<
int> &verticesIndexes, const QList<
double> &newValues );
225 bool canBeTransformed( const QList<
int> &facesToCheck, const std::function<const
QgsMeshVertex(
int )> &transformFunction ) const;
SIP_SKIP
232 void changeXYValues( const QList<
int> &verticesIndexes, const QList<
QgsPointXY> &newValues );
239 void changeCoordinates( const QList<
int> &verticesIndexes, const QList<
QgsPoint> &newCoordinates );
253 bool isModified() const;
262 bool reindex(
bool renumbering );
267 QList<
int> freeVerticesIndexes() const;
270 bool isVertexOnBoundary(
int vertexIndex ) const;
273 bool isVertexFree(
int vertexIndex ) const;
297 bool edgeIsClose(
QgsPointXY point,
double tolerance,
int &faceIndex,
int &edgePosition );
300 int validFacesCount() const;
303 int validVerticesCount() const;
306 int maximumVerticesPerFace() const;
314 void addVertexWithDelaunayRefinement( const
QgsMeshVertex &vertex, const
double tolerance );
324 int mMaximumVerticesPerFace = 0;
326 int mValidVerticesCount = 0;
327 int mValidFacesCount = 0;
331 bool isFaceGeometricallyCompatible( const QList<
int> &vertexIndex, const QList<
QgsMeshVertex> &vertices ) const;
334 QUndoStack *mUndoStack =
nullptr;
341 void applyEdit( Edit &edit );
342 void reverseEdit( Edit &edit );
344 void applyAddVertex( Edit &edit,
const QgsMeshVertex &vertex,
double tolerance );
345 bool applyRemoveVertexFillHole( Edit &edit,
int vertexIndex );
346 void applyRemoveVerticesWithoutFillHole( QgsMeshEditor::Edit &edit,
const QList<int> &verticesIndexes );
348 void applyRemoveFaces( Edit &edit,
const QList<int> &faceToRemoveIndex );
349 void applyChangeZValue( Edit &edit,
const QList<int> &verticesIndexes,
const QList<double> &newValues );
350 void applyChangeXYValue( Edit &edit,
const QList<int> &verticesIndexes,
const QList<QgsPointXY> &newValues );
351 void applyFlipEdge( Edit &edit,
int vertexIndex1,
int vertexIndex2 );
352 void applyMerge( Edit &edit,
int vertexIndex1,
int vertexIndex2 );
353 void applySplit( QgsMeshEditor::Edit &edit,
int faceIndex );
360 friend class TestQgsMeshEditor;
367 friend class QgsMeshLayerUndoCommandSetZValue;