-
-
Notifications
You must be signed in to change notification settings - Fork 3k
/
qgslinestring.sip.in
350 lines (213 loc) · 10.1 KB
/
qgslinestring.sip.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/geometry/qgslinestring.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
class QgsLineString: QgsCurve
{
%Docstring
Line string geometry type, with support for z-dimension and m-values.
.. versionadded:: 2.10
%End
%TypeHeaderCode
#include "qgslinestring.h"
%End
public:
QgsLineString();
QgsLineString( const QVector<QgsPoint> &points );
%Docstring
Construct a linestring from a vector of points.
Z and M type will be set based on the type of the first point
in the vector.
.. versionadded:: 3.0
%End
QgsLineString( const QVector<double> &x, const QVector<double> &y,
const QVector<double> &z = QVector<double>(),
const QVector<double> &m = QVector<double>(), bool is25DType = false );
%Docstring
Construct a linestring from arrays of coordinates. If the z or m
arrays are non-empty then the resultant linestring will have
z and m types accordingly.
This constructor is more efficient then calling setPoints()
or repeatedly calling addVertex()
If the \z vector is filled, then the geometry type will either
be a LineStringZ(M) or LineString25D depending on the ``is25DType``
argument. If ``is25DType`` is true (and the ``m`` vector is unfilled) then
the created Linestring will be a LineString25D type. Otherwise, the
LineString will be LineStringZ (or LineStringZM) type.
.. versionadded:: 3.0
%End
QgsLineString( const QgsPoint &p1, const QgsPoint &p2 );
%Docstring
Constructs a linestring with a single segment from ``p1`` to ``p2``.
.. versionadded:: 3.2
%End
QgsLineString( const QVector<QgsPointXY> &points );
%Docstring
Construct a linestring from list of points.
This constructor is more efficient then calling setPoints()
or repeatedly calling addVertex()
.. versionadded:: 3.0
%End
explicit QgsLineString( const QgsLineSegment2D &segment );
%Docstring
Construct a linestring from a single 2d line segment.
.. versionadded:: 3.2
%End
virtual bool equals( const QgsCurve &other ) const;
QgsPoint pointN( int i ) const;
%Docstring
Returns the specified point from inside the line string.
:param i: index of point, starting at 0 for the first point
%End
virtual double xAt( int index ) const;
virtual double yAt( int index ) const;
double zAt( int index ) const;
%Docstring
Returns the z-coordinate of the specified node in the line string.
:param index: index of node, where the first node in the line is 0
:return: z-coordinate of node, or ``nan`` if index is out of bounds or the line
does not have a z dimension
.. seealso:: :py:func:`setZAt`
%End
double mAt( int index ) const;
%Docstring
Returns the m value of the specified node in the line string.
:param index: index of node, where the first node in the line is 0
:return: m value of node, or ``nan`` if index is out of bounds or the line
does not have m values
.. seealso:: :py:func:`setMAt`
%End
void setXAt( int index, double x );
%Docstring
Sets the x-coordinate of the specified node in the line string.
:param index: index of node, where the first node in the line is 0. Corresponding
node must already exist in line string.
:param x: x-coordinate of node
.. seealso:: :py:func:`xAt`
%End
void setYAt( int index, double y );
%Docstring
Sets the y-coordinate of the specified node in the line string.
:param index: index of node, where the first node in the line is 0. Corresponding
node must already exist in line string.
:param y: y-coordinate of node
.. seealso:: :py:func:`yAt`
%End
void setZAt( int index, double z );
%Docstring
Sets the z-coordinate of the specified node in the line string.
:param index: index of node, where the first node in the line is 0. Corresponding
node must already exist in line string, and the line string must have z-dimension.
:param z: z-coordinate of node
.. seealso:: :py:func:`zAt`
%End
void setMAt( int index, double m );
%Docstring
Sets the m value of the specified node in the line string.
:param index: index of node, where the first node in the line is 0. Corresponding
node must already exist in line string, and the line string must have m values.
:param m: m value of node
.. seealso:: :py:func:`mAt`
%End
void setPoints( const QgsPointSequence &points );
%Docstring
Resets the line string to match the specified list of points. The line string will
inherit the dimensionality of the first point in the list.
:param points: new points for line string. If empty, line string will be cleared.
%End
void append( const QgsLineString *line );
%Docstring
Appends the contents of another line string to the end of this line string.
:param line: line to append. Ownership is not transferred.
%End
void addVertex( const QgsPoint &pt );
%Docstring
Adds a new vertex to the end of the line string.
:param pt: vertex to add
%End
void close();
%Docstring
Closes the line string by appending the first point to the end of the line, if it is not already closed.
%End
virtual QgsCompoundCurve *toCurveType() const /Factory/;
%Docstring
Returns the geometry converted to the more generic curve type :py:class:`QgsCompoundCurve`
:return: the converted geometry. Caller takes ownership*
%End
void extend( double startDistance, double endDistance );
%Docstring
Extends the line geometry by extrapolating out the start or end of the line
by a specified distance. Lines are extended using the bearing of the first or last
segment in the line.
.. versionadded:: 3.0
%End
virtual QString geometryType() const;
virtual int dimension() const;
virtual QgsLineString *clone() const /Factory/;
virtual void clear();
virtual bool isEmpty() const;
virtual QgsLineString *snappedToGrid( double hSpacing, double vSpacing, double dSpacing = 0, double mSpacing = 0 ) const /Factory/;
virtual bool removeDuplicateNodes( double epsilon = 4 * DBL_EPSILON, bool useZValues = false );
virtual QPolygonF asQPolygonF() const;
virtual bool fromWkb( QgsConstWkbPtr &wkb );
virtual bool fromWkt( const QString &wkt );
virtual QByteArray asWkb() const;
virtual QString asWkt( int precision = 17 ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;
virtual QString asJson( int precision = 17 ) const;
virtual double length() const;
virtual QgsPoint startPoint() const;
virtual QgsPoint endPoint() const;
virtual QgsLineString *curveToLine( double tolerance = M_PI_2 / 90, SegmentationToleranceType toleranceType = MaximumAngle ) const /Factory/;
%Docstring
Returns a new line string geometry corresponding to a segmentized approximation
of the curve.
:param tolerance: segmentation tolerance
:param toleranceType: maximum segmentation angle or maximum difference between approximation and curve*
%End
virtual int numPoints() const;
virtual int nCoordinates() const;
virtual void points( QgsPointSequence &pt /Out/ ) const;
virtual void draw( QPainter &p ) const;
virtual void transform( const QgsCoordinateTransform &ct, QgsCoordinateTransform::TransformDirection d = QgsCoordinateTransform::ForwardTransform, bool transformZ = false ) throw( QgsCsException );
virtual void transform( const QTransform &t, double zTranslate = 0.0, double zScale = 1.0, double mTranslate = 0.0, double mScale = 1.0 );
virtual void addToPainterPath( QPainterPath &path ) const;
virtual void drawAsPolygon( QPainter &p ) const;
virtual bool insertVertex( QgsVertexId position, const QgsPoint &vertex );
virtual bool moveVertex( QgsVertexId position, const QgsPoint &newPos );
virtual bool deleteVertex( QgsVertexId position );
virtual QgsLineString *reversed() const /Factory/;
virtual QgsPoint *interpolatePoint( double distance ) const /Factory/;
virtual QgsLineString *curveSubstring( double startDistance, double endDistance ) const /Factory/;
virtual double closestSegment( const QgsPoint &pt, QgsPoint &segmentPt /Out/, QgsVertexId &vertexAfter /Out/, int *leftOf /Out/ = 0, double epsilon = 4 * DBL_EPSILON ) const;
virtual bool pointAt( int node, QgsPoint &point, QgsVertexId::VertexType &type ) const;
virtual QgsPoint centroid() const;
virtual void sumUpArea( double &sum /Out/ ) const;
virtual double vertexAngle( QgsVertexId vertex ) const;
virtual double segmentLength( QgsVertexId startVertex ) const;
virtual bool addZValue( double zValue = 0 );
virtual bool addMValue( double mValue = 0 );
virtual bool dropZValue();
virtual bool dropMValue();
virtual void swapXy();
virtual bool convertTo( QgsWkbTypes::Type type );
virtual QgsLineString *createEmptyWithSameType() const /Factory/;
SIP_PYOBJECT __repr__();
%MethodCode
QString str = QStringLiteral( "<QgsLineString: %1>" ).arg( sipCpp->asWkt() );
sipRes = PyUnicode_FromString( str.toUtf8().data() );
%End
protected:
virtual QgsRectangle calculateBoundingBox() const;
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/geometry/qgslinestring.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/