23 QString QgsDensifyGeometriesByCountAlgorithm::name()
const
25 return QStringLiteral(
"densifygeometries" );
28 QString QgsDensifyGeometriesByCountAlgorithm::displayName()
const
30 return QObject::tr(
"Densify by count" );
33 QStringList QgsDensifyGeometriesByCountAlgorithm::tags()
const
35 return QObject::tr(
"add,vertex,vertices,points,nodes" ).split(
',' );
38 QString QgsDensifyGeometriesByCountAlgorithm::group()
const
40 return QObject::tr(
"Vector geometry" );
43 QString QgsDensifyGeometriesByCountAlgorithm::groupId()
const
45 return QStringLiteral(
"vectorgeometry" );
48 QString QgsDensifyGeometriesByCountAlgorithm::shortHelpString()
const
50 return QObject::tr(
"This algorithm takes a polygon or line layer "
51 "and generates a new one in which the geometries "
52 "have a larger number of vertices than the "
53 "original one.\n\n If the geometries have z or m values "
54 "present then these will be linearly interpolated "
55 "at the added nodes.\n\n The number of new vertices to "
56 "add to each feature geometry is specified "
57 "as an input parameter." );
60 QString QgsDensifyGeometriesByCountAlgorithm::shortDescription()
const
62 return QObject::tr(
"Creates a densified version of geometries." );
65 QgsDensifyGeometriesByCountAlgorithm *QgsDensifyGeometriesByCountAlgorithm::createInstance()
const
67 return new QgsDensifyGeometriesByCountAlgorithm;
71 QList<int> QgsDensifyGeometriesByCountAlgorithm::inputLayerTypes()
const
76 void QgsDensifyGeometriesByCountAlgorithm::initParameters(
const QVariantMap &configuration )
78 Q_UNUSED( configuration )
79 std::unique_ptr<QgsProcessingParameterNumber> verticesCnt = std::make_unique<QgsProcessingParameterNumber>( QStringLiteral(
"VERTICES" ),
80 QObject::tr(
"Number of vertices to add" ),
82 1,
false, 1, 10000000 );
83 verticesCnt->setIsDynamic(
true );
85 verticesCnt->setDynamicLayerParameterName( QStringLiteral(
"INPUT" ) );
86 addParameter( verticesCnt.release() );
89 QString QgsDensifyGeometriesByCountAlgorithm::outputName()
const
91 return QObject::tr(
"Densified" );
97 mVerticesCnt = parameterAsInt( parameters, QStringLiteral(
"VERTICES" ), context );
100 if ( mDynamicVerticesCnt )
101 mVerticesCntProperty = parameters.value( QStringLiteral(
"VERTICES" ) ).value<
QgsProperty >();
115 int verticesCnt = mVerticesCnt;
116 if ( mDynamicVerticesCnt )
117 verticesCnt = mVerticesCntProperty.valueAsInt( context.
expressionContext(), verticesCnt );
119 if ( verticesCnt > 0 )
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
bool hasGeometry() const
Returns true if the feature has an associated geometry.
void setGeometry(const QgsGeometry &geometry)
Set the feature's geometry.
QgsGeometry densifyByCount(int extraNodesPerSegment) const
Returns a copy of the geometry which has been densified by adding the specified number of extra nodes...
Contains information about the context in which a processing algorithm is executed.
QgsExpressionContext & expressionContext()
Returns the expression context.
Base class for providing feedback from a processing algorithm.
static bool isDynamic(const QVariantMap ¶meters, const QString &name)
Returns true if the parameter with matching name is a dynamic parameter, and must be evaluated once f...
@ TypeVectorLine
Vector line layers.
@ TypeVectorPolygon
Vector polygon layers.
Definition for a property.
@ IntegerPositive
Positive integer values (including 0)
A store for object properties.
QList< QgsFeature > QgsFeatureList