QGIS API Documentation  3.2.0-Bonn (bc43194)
qgsmulticurve.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmulticurve.h
3  -------------------------------------------------------------------
4 Date : 28 Oct 2014
5 Copyright : (C) 2014 by Marco Hugentobler
6 email : 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 QGSMULTICURVEV2_H
17 #define QGSMULTICURVEV2_H
18 
19 #include "qgis_core.h"
20 #include "qgis.h"
21 #include "qgsgeometrycollection.h"
22 
29 class CORE_EXPORT QgsMultiCurve: public QgsGeometryCollection
30 {
31  public:
32  QgsMultiCurve();
33  QString geometryType() const override;
34  QgsMultiCurve *clone() const override SIP_FACTORY;
35  void clear() override;
36  QgsMultiCurve *toCurveType() const override SIP_FACTORY;
37  bool fromWkt( const QString &wkt ) override;
38  QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
39  QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
40  QString asJson( int precision = 17 ) const override;
41  bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override;
42  bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
43 
48  QgsMultiCurve *reversed() const SIP_FACTORY;
49 
50  QgsAbstractGeometry *boundary() const override SIP_FACTORY;
51 
52 #ifndef SIP_RUN
53 
61  inline const QgsMultiCurve *cast( const QgsAbstractGeometry *geom ) const
62  {
63  if ( !geom )
64  return nullptr;
65 
66  QgsWkbTypes::Type flatType = QgsWkbTypes::flatType( geom->wkbType() );
67  if ( flatType == QgsWkbTypes::MultiCurve
68  || flatType == QgsWkbTypes::MultiLineString )
69  return static_cast<const QgsMultiCurve *>( geom );
70  return nullptr;
71  }
72 #endif
73 
75 
76 #ifdef SIP_RUN
77  SIP_PYOBJECT __repr__();
78  % MethodCode
79  QString str = QStringLiteral( "<QgsMulitCurve: %1>" ).arg( sipCpp->asWkt() );
80  sipRes = PyUnicode_FromString( str.toUtf8().data() );
81  % End
82 #endif
83 
84 };
85 
86 // clazy:excludeall=qstring-allocations
87 
88 #endif // QGSMULTICURVEV2_H
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.
void clear() override
Clears the geometry, ie reset it to a null geometry.
bool fromWkt(const QString &wkt) override
Sets the geometry from a WKT string.
QgsAbstractGeometry * boundary() const override
Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the...
QString asJson(int precision=17) const override
Returns a GeoJSON representation of the geometry.
virtual bool insertGeometry(QgsAbstractGeometry *g, int index)
Inserts a geometry before a specified index and takes ownership.
Type
The WKB type describes the number of dimensions a geometry has.
Definition: qgswkbtypes.h:67
Geometry collection.
QgsGeometryCollection * createEmptyWithSameType() const override
Creates a new geometry with the same class and same WKB type as the original and transfers ownership...
#define SIP_TRANSFER
Definition: qgis_sip.h:36
Multi curve geometry collection.
Definition: qgsmulticurve.h:29
QString geometryType() const override
Returns a unique string representing the geometry type.
#define SIP_FACTORY
Definition: qgis_sip.h:69
Abstract base class for all geometries.
QgsWkbTypes::Type wkbType() const
Returns the WKB type of the geometry.
AxisOrder
Axis order for GML generation.
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.
QgsGeometryCollection * toCurveType() const override
Returns the geometry converted to the more generic curve type.
const QgsMultiCurve * cast(const QgsAbstractGeometry *geom) const
Cast the geom to a QgsMultiCurve.
Definition: qgsmulticurve.h:61
QgsGeometryCollection * clone() const override
Clones the geometry by performing a deep copy.
static Type flatType(Type type)
Returns the flat type for a WKB type.
Definition: qgswkbtypes.h:427
virtual bool addGeometry(QgsAbstractGeometry *g)
Adds a geometry and takes ownership. Returns true in case of success.