46 void setInputLine(
const QgsPoint &pt1,
const QgsPoint &pt2,
double tolerance,
bool newVertexOnIntersection );
49 void setTolerance(
double tolerance );
52 void setAddVertexOnIntersection(
bool addVertex );
55 void setDefaultZValue(
double defaultZValue );
62 void setInterpolateZValueOnMesh(
bool interpolateZValueOnMesh );
67 bool mNewVertexOnIntersection =
false;
68 double mTolerance = 1e-8;
69 double mDefaultZValue = 0;
70 bool mInterpolateZValueOnMesh =
false;
74 virtual void finish();
78 QList<int> mRemovedFaces;
79 QList<int> mHoleOnLeft;
80 QList<int> mNeighborOnLeft;
81 QList<int> mHoleOnRight;
82 QList<int> mNeighborOnRight;
83 QList<int> mNewVerticesIndexesOnLine;
84 bool mEndOnPoint2 =
false;
85 int mPoint2VertexIndex = -1;
86 int mCurrentSnappedVertex = -1;
89 bool mFirstPointChecked =
false;
90 bool mSecondPointChecked =
false;
92 void interpolateZValueOnMesh(
QgsPoint &point )
const;
93 void interpolateZValueOnMesh(
int faceIndex,
QgsPoint &point )
const;
97 bool buildForcedElements();
99 bool edgeIntersection(
int vertex1,
101 int &closestSnappedVertex,
105 bool searchIntersectionEdgeFromSnappedVertex(
106 int &intersectionFaceIndex,
107 int &previousSnappedVertex,
108 int ¤tSnappedVertexIndex,
111 QSet<int> &treatedFaces );
116 bool triangulateHoles(
const QList<int> &holeOnLeft,
117 const QList<int> &neighborOnLeft,
119 QList<std::array<int, 2> > &newFacesOnLine,
120 std::array<int, 2> &extremeFaces );
122 bool finishForcingLine();
124 friend class TestQgsMeshEditor;