QGIS API Documentation  3.6.0-Noosa (5873452)
qgsoverlayutils.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsoverlayutils.h
3  ---------------------
4  Date : April 2018
5  Copyright : (C) 2018 by Martin Dobias
6  Email : wonder dot sk at gmail 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 QGSOVERLAYUTILS_H
17 #define QGSOVERLAYUTILS_H
18 
19 #include <QList>
20 #include "qgswkbtypes.h"
21 
22 #define SIP_NO_FILE
23 
25 
26 class QgsFeatureSource;
27 class QgsFeatureSink;
28 class QgsFields;
31 class QgsGeometry;
32 
33 namespace QgsOverlayUtils
34 {
35 
37  enum DifferenceOutput
38  {
39  OutputA,
40  OutputAB,
41  OutputBA,
42  };
43 
44  void difference( const QgsFeatureSource &sourceA, const QgsFeatureSource &sourceB, QgsFeatureSink &sink, QgsProcessingContext &context, QgsProcessingFeedback *feedback, int &count, int totalCount, DifferenceOutput outputAttrs );
45 
46  void intersection( const QgsFeatureSource &sourceA, const QgsFeatureSource &sourceB, QgsFeatureSink &sink, QgsProcessingContext &context, QgsProcessingFeedback *feedback, int &count, int totalCount, const QList<int> &fieldIndicesA, const QList<int> &fieldIndicesB );
47 
49  bool sanitizeIntersectionResult( QgsGeometry &geom, QgsWkbTypes::GeometryType geometryType );
50 
60  void resolveOverlaps( const QgsFeatureSource &source, QgsFeatureSink &sink, QgsProcessingFeedback *feedback );
61 }
62 
64 
65 #endif // QGSOVERLAYUTILS_H
Base class for providing feedback from a processing algorithm.
An interface for objects which accept features via addFeature(s) methods.
Container of fields for a vector layer.
Definition: qgsfields.h:42
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:106
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
Definition: qgswkbtypes.h:138
An interface for objects which provide features via a getFeatures method.
Contains information about the context in which a processing algorithm is executed.