QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
qgsmultilinestring.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmultilinestring.h
3 -------------------------------------------------------------------
4Date : 28 Oct 2014
5Copyright : (C) 2014 by Marco Hugentobler
6email : marco.hugentobler at sourcepole dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSMULTILINESTRING_H
17#define QGSMULTILINESTRING_H
18
19#include "qgis_core.h"
20#include "qgis_sip.h"
21#include "qgsmulticurve.h"
22
23class QgsLineString;
24
31class CORE_EXPORT QgsMultiLineString: public QgsMultiCurve
32{
33 public:
34
39
40
41#ifndef SIP_RUN
42
48 QgsLineString *lineStringN( int index );
49#else
50
58 SIP_PYOBJECT lineStringN( int index ) SIP_TYPEHINT( QgsLineString );
59 % MethodCode
60 if ( a0 < 0 || a0 >= sipCpp->numGeometries() )
61 {
62 PyErr_SetString( PyExc_IndexError, QByteArray::number( a0 ) );
63 sipIsErr = 1;
64 }
65 else
66 {
67 return sipConvertFromType( sipCpp->lineStringN( a0 ), sipType_QgsLineString, NULL );
68 }
69 % End
70#endif
71
72#ifndef SIP_RUN
73
81 const QgsLineString *lineStringN( int index ) const;
82#endif
83
84 QString geometryType() const override SIP_HOLDGIL;
85 QgsMultiLineString *clone() const override SIP_FACTORY;
86 void clear() override;
87 bool fromWkt( const QString &wkt ) override;
88 QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
89 QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
90 json asJsonObject( int precision = 17 ) const override SIP_SKIP;
92 bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
93
98 QgsMultiCurve *toCurveType() const override SIP_FACTORY;
99
100#ifndef SIP_RUN
101
109 inline static const QgsMultiLineString *cast( const QgsAbstractGeometry *geom )
110 {
112 return static_cast<const QgsMultiLineString *>( geom );
113 return nullptr;
114 }
115#endif
116
118
119#ifdef SIP_RUN
120 SIP_PYOBJECT __repr__();
121 % MethodCode
122 QString wkt = sipCpp->asWkt();
123 if ( wkt.length() > 1000 )
124 wkt = wkt.left( 1000 ) + QStringLiteral( "..." );
125 QString str = QStringLiteral( "<QgsMultiLineString: %1>" ).arg( wkt );
126 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
127 % End
128#endif
129
130 protected:
131
132 bool wktOmitChildType() const override;
133};
134
135// clazy:excludeall=qstring-allocations
136
137#endif // QGSMULTILINESTRING_H
Abstract base class for all geometries.
AxisOrder
Axis order for GML generation.
QgsWkbTypes::Type wkbType() const SIP_HOLDGIL
Returns the WKB type of the geometry.
virtual bool wktOmitChildType() const
Returns whether child type names are omitted from Wkt representations of the collection.
Line string geometry type, with support for z-dimension and m-values.
Definition: qgslinestring.h:45
Multi curve geometry collection.
Definition: qgsmulticurve.h:30
QString geometryType() const override SIP_HOLDGIL
Returns a unique string representing the geometry type.
json asJsonObject(int precision=17) const override
Returns a json object representation of the geometry.
QgsMultiCurve * toCurveType() const override
Returns the geometry converted to the more generic curve type.
QDomElement asGml2(QDomDocument &doc, int precision=17, const QString &ns="gml", QgsAbstractGeometry::AxisOrder axisOrder=QgsAbstractGeometry::AxisOrder::XY) const override
Returns a GML2 representation of the geometry.
bool insertGeometry(QgsAbstractGeometry *g, int index) override
Inserts a geometry before a specified index and takes ownership.
QDomElement asGml3(QDomDocument &doc, int precision=17, const QString &ns="gml", QgsAbstractGeometry::AxisOrder axisOrder=QgsAbstractGeometry::AxisOrder::XY) const override
Returns a GML3 representation of the geometry.
QgsMultiCurve * createEmptyWithSameType() const override
Creates a new geometry with the same class and same WKB type as the original and transfers ownership.
bool addGeometry(QgsAbstractGeometry *g) override
Adds a geometry and takes ownership. Returns true in case of success.
bool fromWkt(const QString &wkt) override
Sets the geometry from a WKT string.
QgsMultiCurve * clone() const override
Clones the geometry by performing a deep copy.
void clear() override
Clears the geometry, ie reset it to a null geometry.
Multi line string geometry collection.
static const QgsMultiLineString * cast(const QgsAbstractGeometry *geom)
Cast the geom to a QgsMultiLineString.
static Type flatType(Type type) SIP_HOLDGIL
Returns the flat type for a WKB type.
Definition: qgswkbtypes.h:732
#define str(x)
Definition: qgis.cpp:37
#define SIP_TYPEHINT(type)
Definition: qgis_sip.h:227
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_HOLDGIL
Definition: qgis_sip.h:166
#define SIP_FACTORY
Definition: qgis_sip.h:76
int precision