QGIS API Documentation  3.8.0-Zanzibar (11aff65)
qgsmultipolygon.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmultipolygon.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 QGSMULTIPOLYGON_H
17 #define QGSMULTIPOLYGON_H
18 
19 #include "qgis_core.h"
20 #include "qgis_sip.h"
21 #include "qgsmultisurface.h"
22 
29 class CORE_EXPORT QgsMultiPolygon: public QgsMultiSurface
30 {
31  public:
33  QString geometryType() const override;
34  void clear() override;
35  QgsMultiPolygon *clone() const override SIP_FACTORY;
36  bool fromWkt( const QString &wkt ) override;
37  QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
38  QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
39  json asJsonObject( int precision = 17 ) const override SIP_SKIP;
40  bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override;
41  bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
42 
46  QgsMultiSurface *toCurveType() const override SIP_FACTORY;
47 
48  QgsAbstractGeometry *boundary() const override SIP_FACTORY;
49 #ifndef SIP_RUN
50 
58  inline const QgsMultiPolygon *cast( const QgsAbstractGeometry *geom ) const
59  {
60  if ( geom && QgsWkbTypes::flatType( geom->wkbType() ) == QgsWkbTypes::MultiPolygon )
61  return static_cast<const QgsMultiPolygon *>( geom );
62  return nullptr;
63  }
64 #endif
65 
67 
68 #ifdef SIP_RUN
69  SIP_PYOBJECT __repr__();
70  % MethodCode
71  QString wkt = sipCpp->asWkt();
72  if ( wkt.length() > 1000 )
73  wkt = wkt.left( 1000 ) + QStringLiteral( "..." );
74  QString str = QStringLiteral( "<QgsMultiPolygon: %1>" ).arg( wkt );
75  sipRes = PyUnicode_FromString( str.toUtf8().constData() );
76  % End
77 #endif
78 
79  protected:
80 
81  bool wktOmitChildType() const override;
82 };
83 
84 // clazy:excludeall=qstring-allocations
85 
86 #endif // QGSMULTIPOLYGON_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.
QgsMultiSurface * toCurveType() const override
Returns the geometry converted to the more generic curve type.
int precision
const QgsMultiPolygon * cast(const QgsAbstractGeometry *geom) const
Cast the geom to a QgsMultiPolygonV2.
QgsMultiSurface * createEmptyWithSameType() const override
Creates a new geometry with the same class and same WKB type as the original and transfers ownership...
virtual bool wktOmitChildType() const
Returns whether child type names are omitted from Wkt representations of the collection.
void clear() override
Clears the geometry, ie reset it to a null geometry.
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.
Multi surface geometry collection.
bool addGeometry(QgsAbstractGeometry *g) override
Adds a geometry and takes ownership. Returns true in case of success.
bool insertGeometry(QgsAbstractGeometry *g, int index) override
Inserts a geometry before a specified index and takes ownership.
#define SIP_SKIP
Definition: qgis_sip.h:119
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#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.
nlohmann::json json
Definition: qgsjsonutils.h:27
bool fromWkt(const QString &wkt) override
Sets the geometry from a WKT string.
json asJsonObject(int precision=17) const override
Returns a json object representation of the geometry.
Multi polygon geometry collection.
QString geometryType() const override
Returns a unique string representing the geometry type.
static Type flatType(Type type)
Returns the flat type for a WKB type.
Definition: qgswkbtypes.h:430
QgsMultiSurface * clone() const override
Clones the geometry by performing a deep copy.
QgsAbstractGeometry * boundary() const override
Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the...