QGIS API Documentation 3.29.0-Master (8c80f25a4f)
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#include "qgsgeometry.h"
22#define SIP_NO_FILE
23
25
27class QgsFeatureSink;
28class QgsFields;
31
32namespace QgsOverlayUtils
33{
34
36 enum DifferenceOutput
37 {
38 OutputA,
39 OutputAB,
40 OutputBA,
41 };
42
43
49 enum SanitizeFlag
50 {
51 DontPromotePointGeometryToMultiPoint = 1 << 0,
52 };
53
59 Q_DECLARE_FLAGS( SanitizeFlags, SanitizeFlag )
60
61
62 void difference( const QgsFeatureSource &sourceA, const QgsFeatureSource &sourceB, QgsFeatureSink &sink, QgsProcessingContext &context, QgsProcessingFeedback *feedback, long &count, long totalCount, DifferenceOutput outputAttrs, const QgsGeometryParameters &parameters = QgsGeometryParameters(),
63 SanitizeFlags flags = SanitizeFlags() );
64
65 void intersection( const QgsFeatureSource &sourceA, const QgsFeatureSource &sourceB, QgsFeatureSink &sink, QgsProcessingContext &context, QgsProcessingFeedback *feedback, long &count, long totalCount, const QList<int> &fieldIndicesA, const QList<int> &fieldIndicesB, const QgsGeometryParameters &parameters = QgsGeometryParameters() );
66
68 bool sanitizeIntersectionResult( QgsGeometry &geom, QgsWkbTypes::GeometryType geometryType, SanitizeFlags flags = SanitizeFlags() );
69
80 void resolveOverlaps( const QgsFeatureSource &source, QgsFeatureSink &sink, QgsProcessingFeedback *feedback, const QgsGeometryParameters &parameters = QgsGeometryParameters(), SanitizeFlags flags = SanitizeFlags() );
81}
82
83Q_DECLARE_OPERATORS_FOR_FLAGS( QgsOverlayUtils::SanitizeFlags )
84
85
86
87#endif // QGSOVERLAYUTILS_H
An interface for objects which accept features via addFeature(s) methods.
An interface for objects which provide features via a getFeatures method.
Container of fields for a vector layer.
Definition: qgsfields.h:45
Encapsulates parameters under which a geometry operation is performed.
Definition: qgsgeometry.h:111
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:164
Contains information about the context in which a processing algorithm is executed.
Base class for providing feedback from a processing algorithm.
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
Definition: qgswkbtypes.h:141
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.