QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgsmultipoint.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmultipoint.h
3  -------------------------------------------------------------------
4 Date : 29 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 QGSMULTIPOINT_H
17 #define QGSMULTIPOINT_H
18 
19 #include "qgis_core.h"
20 #include "qgis_sip.h"
21 #include "qgsgeometrycollection.h"
22 
29 class CORE_EXPORT QgsMultiPoint: public QgsGeometryCollection
30 {
31  public:
32 
37 
38 #ifndef SIP_RUN
39 
45  QgsPoint *pointN( int index );
46 #else
47 
55  SIP_PYOBJECT pointN( int index ) SIP_TYPEHINT( QgsPoint );
56  % MethodCode
57  if ( a0 < 0 || a0 >= sipCpp->numGeometries() )
58  {
59  PyErr_SetString( PyExc_IndexError, QByteArray::number( a0 ) );
60  sipIsErr = 1;
61  }
62  else
63  {
64  return sipConvertFromType( sipCpp->pointN( a0 ), sipType_QgsPoint, NULL );
65  }
66  % End
67 #endif
68 
69 #ifndef SIP_RUN
70 
78  const QgsPoint *pointN( int index ) const;
79 #endif
80 
81  QString geometryType() const override;
82  QgsMultiPoint *clone() const override SIP_FACTORY;
83  QgsMultiPoint *toCurveType() const override SIP_FACTORY;
84  bool fromWkt( const QString &wkt ) override;
85  void clear() override;
86  QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
87  QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
88  json asJsonObject( int precision = 17 ) const override SIP_SKIP;
89  int nCoordinates() const override SIP_HOLDGIL;
90  bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override;
91  bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
92  QgsAbstractGeometry *boundary() const override SIP_FACTORY;
93  int vertexNumberFromVertexId( QgsVertexId id ) const override;
94  double segmentLength( QgsVertexId startVertex ) const override;
95  bool isValid( QString &error SIP_OUT, int flags = 0 ) const override SIP_HOLDGIL;
96 
97 #ifndef SIP_RUN
98  void filterVertices( const std::function< bool( const QgsPoint & ) > &filter ) override;
99 
107  inline const QgsMultiPoint *cast( const QgsAbstractGeometry *geom ) const
108  {
109  if ( geom && QgsWkbTypes::flatType( geom->wkbType() ) == QgsWkbTypes::MultiPoint )
110  return static_cast<const QgsMultiPoint *>( geom );
111  return nullptr;
112  }
113 #endif
114 
116 
117 #ifdef SIP_RUN
118  SIP_PYOBJECT __repr__();
119  % MethodCode
120  QString wkt = sipCpp->asWkt();
121  if ( wkt.length() > 1000 )
122  wkt = wkt.left( 1000 ) + QStringLiteral( "..." );
123  QString str = QStringLiteral( "<QgsMultiPoint: %1>" ).arg( wkt );
124  sipRes = PyUnicode_FromString( str.toUtf8().constData() );
125  % End
126 #endif
127 
128  protected:
129 
130  bool wktOmitChildType() const override;
131 
132 };
133 
134 // clazy:excludeall=qstring-allocations
135 
136 #endif // QGSMULTIPOINT_H
QgsGeometryCollection::insertGeometry
virtual bool insertGeometry(QgsAbstractGeometry *g, int index)
Inserts a geometry before a specified index and takes ownership.
Definition: qgsgeometrycollection.cpp:238
QgsGeometryCollection::asJsonObject
json asJsonObject(int precision=17) const override
Returns a json object representation of the geometry.
Definition: qgsgeometrycollection.cpp:464
QgsGeometryCollection::fromWkt
bool fromWkt(const QString &wkt) override
Sets the geometry from a WKT string.
Definition: qgsgeometrycollection.cpp:362
QgsGeometryCollection::geometryType
QString geometryType() const override SIP_HOLDGIL
Returns a unique string representing the geometry type.
Definition: qgsgeometrycollection.cpp:279
QgsPoint
Point geometry type, with support for z-dimension and m-values.
Definition: qgspoint.h:38
QgsGeometryCollection::nCoordinates
int nCoordinates() const override
Returns the number of nodes contained in the geometry.
Definition: qgsgeometrycollection.cpp:562
SIP_OUT
#define SIP_OUT
Definition: qgis_sip.h:58
QgsWkbTypes::flatType
static Type flatType(Type type) SIP_HOLDGIL
Returns the flat type for a WKB type.
Definition: qgswkbtypes.h:702
QgsGeometryCollection::asGml2
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.
Definition: qgsgeometrycollection.cpp:440
QgsMultiPoint::cast
const QgsMultiPoint * cast(const QgsAbstractGeometry *geom) const
Cast the geom to a QgsLineString.
Definition: qgsmultipoint.h:107
QgsGeometryCollection::toCurveType
QgsGeometryCollection * toCurveType() const override
Returns the geometry converted to the more generic curve type.
Definition: qgsgeometrycollection.cpp:970
QgsGeometryCollection::filterVertices
void filterVertices(const std::function< bool(const QgsPoint &) > &filter) override
Filters the vertices from the geometry in place, removing any which do not return true for the filter...
Definition: qgsgeometrycollection.cpp:940
QgsGeometryCollection::vertexNumberFromVertexId
int vertexNumberFromVertexId(QgsVertexId id) const override
Returns the vertex number corresponding to a vertex id.
Definition: qgsgeometrycollection.cpp:176
SIP_TYPEHINT
#define SIP_TYPEHINT(type)
Definition: qgis_sip.h:218
QgsGeometryCollection::boundary
QgsAbstractGeometry * boundary() const override
Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the...
Definition: qgsgeometrycollection.cpp:159
SIP_FACTORY
#define SIP_FACTORY
Definition: qgis_sip.h:76
QgsGeometryCollection::createEmptyWithSameType
QgsGeometryCollection * createEmptyWithSameType() const override
Creates a new geometry with the same class and same WKB type as the original and transfers ownership.
Definition: qgsgeometrycollection.cpp:111
QgsGeometryCollection::clone
QgsGeometryCollection * clone() const override
Clones the geometry by performing a deep copy.
Definition: qgsgeometrycollection.cpp:118
precision
int precision
Definition: qgswfsgetfeature.cpp:49
QgsGeometryCollection
Geometry collection.
Definition: qgsgeometrycollection.h:36
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
SIP_HOLDGIL
#define SIP_HOLDGIL
Definition: qgis_sip.h:157
QgsAbstractGeometry::wkbType
QgsWkbTypes::Type wkbType() const SIP_HOLDGIL
Returns the WKB type of the geometry.
Definition: qgsabstractgeometry.h:193
QgsAbstractGeometry::AxisOrder
AxisOrder
Axis order for GML generation.
Definition: qgsabstractgeometry.h:133
QgsGeometryCollection::addGeometry
virtual bool addGeometry(QgsAbstractGeometry *g)
Adds a geometry and takes ownership. Returns true in case of success.
Definition: qgsgeometrycollection.cpp:226
qgis_sip.h
SIP_TRANSFER
#define SIP_TRANSFER
Definition: qgis_sip.h:36
QgsGeometryCollection::wktOmitChildType
virtual bool wktOmitChildType() const
Returns whether child type names are omitted from Wkt representations of the collection.
Definition: qgsgeometrycollection.cpp:981
QgsGeometryCollection::asGml3
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.
Definition: qgsgeometrycollection.cpp:452
QgsMultiPoint
Multi point geometry collection.
Definition: qgsmultipoint.h:30
QgsAbstractGeometry
Abstract base class for all geometries.
Definition: qgsabstractgeometry.h:74
QgsGeometryCollection::isValid
bool isValid(QString &error, int flags=0) const override
Checks validity of the geometry, and returns true if the geometry is valid.
Definition: qgsgeometrycollection.cpp:862
QgsWkbTypes::MultiPoint
@ MultiPoint
Definition: qgswkbtypes.h:76
QgsVertexId
Utility class for identifying a unique vertex within a geometry.
Definition: qgsabstractgeometry.h:1059
QgsGeometryCollection::clear
void clear() override
Clears the geometry, ie reset it to a null geometry.
Definition: qgsgeometrycollection.cpp:123
QgsGeometryCollection::segmentLength
double segmentLength(QgsVertexId startVertex) const override
Returns the length of the segment of the geometry which begins at startVertex.
Definition: qgsgeometrycollection.cpp:816
qgsgeometrycollection.h