QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgssinglegeometrycheck.h
Go to the documentation of this file.
1/***************************************************************************
2 qgssinglegeometrycheck.h
3 --------------------------------------
4Date : 6.9.2018
5Copyright : (C) 2018 by Matthias Kuhn
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 QGSSINGLEGEOMETRYCHECK_H
17#define QGSSINGLEGEOMETRYCHECK_H
18
19#include <QList>
20#include <QCoreApplication>
21
22#include "qgsgeometry.h"
23#include "qgsgeometrycheck.h"
25
26#include "qgis_analysis.h"
27
28class QgsFeature;
30
39class ANALYSIS_EXPORT QgsSingleGeometryCheckError
40{
41 public:
42
46 QgsSingleGeometryCheckError( const QgsSingleGeometryCheck *check, const QgsGeometry &geometry, const QgsGeometry &errorLocation, const QgsVertexId &vertexId = QgsVertexId() )
47 : mCheck( check )
48 , mGeometry( geometry )
49 , mErrorLocation( errorLocation )
50 , mVertexId( vertexId )
51 {}
52
53 virtual ~QgsSingleGeometryCheckError() = default;
54
59 virtual void update( const QgsSingleGeometryCheckError *other );
60
66 virtual bool isEqual( const QgsSingleGeometryCheckError *other ) const;
67
71 virtual bool handleChanges( const QList<QgsGeometryCheck::Change> &changes ) SIP_SKIP;
72
76 virtual QString description() const;
77
83 const QgsSingleGeometryCheck *check() const;
84
90 QgsGeometry errorLocation() const;
91
97 QgsVertexId vertexId() const;
98
99 protected:
100 const QgsSingleGeometryCheck *mCheck = nullptr;
104};
105
116{
117 public:
118
123
127 QgsSingleGeometryCheckError *singleError() const;
128
129 bool handleChanges( const QgsGeometryCheck::Changes &changes ) override SIP_SKIP;
130
131 private:
132#ifdef SIP_RUN
134#endif
135
136 QgsSingleGeometryCheckError *mError = nullptr;
137};
138
149class ANALYSIS_EXPORT QgsSingleGeometryCheck : public QgsGeometryCheck
150{
151 public:
152
157 const QVariantMap &configuration )
158 : QgsGeometryCheck( context, configuration )
159 {}
160
161 void collectErrors( const QMap<QString, QgsFeaturePool *> &featurePools,
162 QList<QgsGeometryCheckError *> &errors,
163 QStringList &messages,
164 QgsFeedback *feedback = nullptr,
166
175 virtual QList<QgsSingleGeometryCheckError *> processGeometry( const QgsGeometry &geometry ) const = 0;
176
177 private:
178
184 QgsGeometryCheckErrorSingle *convertToGeometryCheckError( QgsSingleGeometryCheckError *singleGeometryCheckError, const QgsGeometryCheckerUtils::LayerFeature &layerFeature ) const;
185
186};
187
188#endif // QGSSINGLEGEOMETRYCHECK_H
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:44
Base configuration for geometry checks.
Wraps a QgsSingleGeometryError into a standard QgsGeometryCheckError.
This represents an error reported by a geometry check.
This class implements a geometry check.
QMap< QString, QMap< QgsFeatureId, QList< QgsGeometryCheck::Change > > > Changes
A collection of changes.
A layer feature combination to uniquely identify and access a feature in a set of layers.
Contains utilities required for geometry checks.
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:162
An error from a QgsSingleGeometryCheck.
virtual ~QgsSingleGeometryCheckError()=default
QgsSingleGeometryCheckError(const QgsSingleGeometryCheck *check, const QgsGeometry &geometry, const QgsGeometry &errorLocation, const QgsVertexId &vertexId=QgsVertexId())
Creates a new single geometry check error.
Base class for geometry checks for a single geometry without any context of the layer or other layers...
QgsSingleGeometryCheck(const QgsGeometryCheckContext *context, const QVariantMap &configuration)
Creates a new single geometry check.
#define SIP_SKIP
Definition: qgis_sip.h:126
#define FINAL
Definition: qgis_sip.h:242
A list of layers and feature ids for each of these layers.
Utility class for identifying a unique vertex within a geometry.
Definition: qgsvertexid.h:30