QGIS API Documentation
4.3.0-Master (52aa6503bed)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
analysis
processing
qgsalgorithmforcerhr.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsalgorithmforcerhr.cpp
3
---------------------
4
begin : November 2018
5
copyright : (C) 2018 by Nyall Dawson
6
email : nyall dot dawson at gmail dot com
7
***************************************************************************/
8
9
/***************************************************************************
10
* *
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* *
16
***************************************************************************/
17
18
#include "
qgsalgorithmforcerhr.h
"
19
20
#include "
qgscurvepolygon.h
"
21
#include "
qgsgeometrycollection.h
"
22
#include "
qgsvectorlayer.h
"
23
24
#include <QString>
25
26
using namespace
Qt::StringLiterals;
27
29
30
QString QgsForceRHRAlgorithm::name()
const
31
{
32
return
u
"forcerhr"
_s;
33
}
34
35
QString QgsForceRHRAlgorithm::displayName()
const
36
{
37
return
QObject::tr(
"Force right-hand-rule"
);
38
}
39
40
QStringList QgsForceRHRAlgorithm::tags()
const
41
{
42
return
QObject::tr(
"clockwise,counter,orientation,ring,repair,invalid,geometry,make,valid"
).split(
','
);
43
}
44
45
QString QgsForceRHRAlgorithm::group()
const
46
{
47
return
QObject::tr(
"Vector geometry"
);
48
}
49
50
QString QgsForceRHRAlgorithm::groupId()
const
51
{
52
return
u
"vectorgeometry"
_s;
53
}
54
55
Qgis::ProcessingFeatureSourceFlags
QgsForceRHRAlgorithm::sourceFlags()
const
56
{
57
return
Qgis::ProcessingFeatureSourceFlag::SkipGeometryValidityChecks
;
58
}
59
60
QString QgsForceRHRAlgorithm::outputName()
const
61
{
62
return
QObject::tr(
"Reoriented"
);
63
}
64
65
QString QgsForceRHRAlgorithm::shortHelpString()
const
66
{
67
return
QObject::tr(
68
"This algorithm forces polygon geometries to respect the Right-Hand-Rule, in which the area that is bounded by a polygon "
69
"is to the right of the boundary. In particular, the exterior ring is oriented in a clockwise direction and the interior "
70
"rings in a counter-clockwise direction.\n\n"
71
"Due to the inconsistency in the definition of the Right-Hand-Rule in some contexts, it is recommended to use the "
72
"explicit \"Force polygons clockwise\" processing algorithm instead."
73
);
74
}
75
76
QString QgsForceRHRAlgorithm::shortDescription()
const
77
{
78
return
QObject::tr(
"Forces polygon geometries to respect the Right-Hand-Rule."
);
79
}
80
81
QList<int> QgsForceRHRAlgorithm::inputLayerTypes()
const
82
{
83
return
QList<int>() <<
static_cast<
int
>
(
Qgis::ProcessingSourceType::VectorPolygon
);
84
}
85
86
QgsForceRHRAlgorithm *QgsForceRHRAlgorithm::createInstance()
const
87
{
88
return
new
QgsForceRHRAlgorithm();
89
}
90
91
QgsFeatureList
QgsForceRHRAlgorithm::processFeature(
const
QgsFeature
&feature,
QgsProcessingContext
&,
QgsProcessingFeedback
* )
92
{
93
QGS_MARK_ALGORITHM_SOURCE
94
95
if
( !feature.
hasGeometry
() )
96
return
QgsFeatureList
() << feature;
97
98
QgsFeature
outputFeature = feature;
99
outputFeature.
setGeometry
( feature.
geometry
().
forceRHR
() );
100
101
return
QgsFeatureList
() << outputFeature;
102
}
103
Qgis::ProcessingSourceType::VectorPolygon
@ VectorPolygon
Vector polygon layers.
Definition
qgis.h:3774
Qgis::ProcessingFeatureSourceFlag::SkipGeometryValidityChecks
@ SkipGeometryValidityChecks
Invalid geometry checks should always be skipped. This flag can be useful for algorithms which always...
Definition
qgis.h:3974
Qgis::ProcessingFeatureSourceFlags
QFlags< ProcessingFeatureSourceFlag > ProcessingFeatureSourceFlags
Flags which control how QgsProcessingFeatureSource fetches features.
Definition
qgis.h:3985
QgsFeature
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition
qgsfeature.h:60
QgsFeature::geometry
QgsGeometry geometry
Definition
qgsfeature.h:66
QgsFeature::hasGeometry
bool hasGeometry() const
Returns true if the feature has an associated geometry.
Definition
qgsfeature.cpp:233
QgsFeature::setGeometry
void setGeometry(const QgsGeometry &geometry)
Set the feature's geometry.
Definition
qgsfeature.cpp:170
QgsGeometry::forceRHR
QgsGeometry forceRHR() const
Forces geometries to respect the Right-Hand-Rule, in which the area that is bounded by a polygon is t...
Definition
qgsgeometry.cpp:3786
QgsProcessingContext
Contains information about the context in which a processing algorithm is executed.
Definition
qgsprocessingcontext.h:45
QgsProcessingFeedback
Base class for providing feedback from a processing algorithm.
Definition
qgsprocessingfeedback.h:40
qgsalgorithmforcerhr.h
qgscurvepolygon.h
QgsFeatureList
QList< QgsFeature > QgsFeatureList
Definition
qgsfeature.h:1289
qgsgeometrycollection.h
qgsvectorlayer.h
Generated on
for QGIS API Documentation by
1.17.0