24QString QgsWedgeBuffersAlgorithm::name()
 const 
   26  return QStringLiteral( 
"wedgebuffers" );
 
   29QString QgsWedgeBuffersAlgorithm::displayName()
 const 
   31  return QObject::tr( 
"Create wedge buffers" );
 
   34QStringList QgsWedgeBuffersAlgorithm::tags()
 const 
   36  return QObject::tr( 
"arc,segment,circular,circle,slice" ).split( 
',' );
 
   39QString QgsWedgeBuffersAlgorithm::group()
 const 
   41  return QObject::tr( 
"Vector geometry" );
 
   44QString QgsWedgeBuffersAlgorithm::groupId()
 const 
   46  return QStringLiteral( 
"vectorgeometry" );
 
   49QString QgsWedgeBuffersAlgorithm::outputName()
 const 
   51  return QObject::tr( 
"Buffers" );
 
   66QString QgsWedgeBuffersAlgorithm::shortHelpString()
 const 
   68  return QObject::tr( 
"This algorithm creates wedge shaped buffers from input points.\n\n" 
   69                      "The azimuth parameter gives the angle (in degrees) for the middle of the wedge to point. " 
   70                      "The buffer width (in degrees) is specified by the width parameter. Note that the " 
   71                      "wedge will extend to half of the angular width either side of the azimuth direction.\n\n" 
   72                      "The outer radius of the buffer is specified via outer radius, and optionally an " 
   73                      "inner radius can also be specified.\n\n" 
   74                      "The native output from this algorithm are CurvePolygon geometries, but these may " 
   75                      "be automatically segmentized to Polygons depending on the output format." );
 
   78QString QgsWedgeBuffersAlgorithm::shortDescription()
 const 
   80  return QObject::tr( 
"Creates wedge shaped buffers from input points." );
 
   83QList<int> QgsWedgeBuffersAlgorithm::inputLayerTypes()
 const 
   93QgsWedgeBuffersAlgorithm *QgsWedgeBuffersAlgorithm::createInstance()
 const 
   95  return new QgsWedgeBuffersAlgorithm();
 
   98void QgsWedgeBuffersAlgorithm::initParameters( 
const QVariantMap & )
 
  101  azimuth->setIsDynamic( 
true );
 
  103  azimuth->setDynamicLayerParameterName( QStringLiteral( 
"INPUT" ) );
 
  104  addParameter( azimuth.release() );
 
  107  width->setIsDynamic( 
true );
 
  109  width->setDynamicLayerParameterName( QStringLiteral( 
"INPUT" ) );
 
  110  addParameter( width.release() );
 
  113  outerRadius->setIsDynamic( 
true );
 
  115  outerRadius->setDynamicLayerParameterName( QStringLiteral( 
"INPUT" ) );
 
  116  addParameter( outerRadius.release() );
 
  119  innerRadius->setIsDynamic( 
true );
 
  121  innerRadius->setDynamicLayerParameterName( QStringLiteral( 
"INPUT" ) );
 
  122  addParameter( innerRadius.release() );
 
  132  mAzimuth = parameterAsDouble( parameters, QStringLiteral( 
"AZIMUTH" ), context );
 
  134  if ( mDynamicAzimuth )
 
  135    mAzimuthProperty = parameters.value( QStringLiteral( 
"AZIMUTH" ) ).value<
QgsProperty>();
 
  137  mWidth = parameterAsDouble( parameters, QStringLiteral( 
"WIDTH" ), context );
 
  140    mWidthProperty = parameters.value( QStringLiteral( 
"WIDTH" ) ).value<
QgsProperty>();
 
  142  mOuterRadius = parameterAsDouble( parameters, QStringLiteral( 
"OUTER_RADIUS" ), context );
 
  144  if ( mDynamicOuterRadius )
 
  145    mOuterRadiusProperty = parameters.value( QStringLiteral( 
"OUTER_RADIUS" ) ).value<
QgsProperty>();
 
  147  mInnerRadius = parameterAsDouble( parameters, QStringLiteral( 
"INNER_RADIUS" ), context );
 
  149  if ( mDynamicInnerRadius )
 
  150    mInnerRadiusProperty = parameters.value( QStringLiteral( 
"INNER_RADIUS" ) ).value<
QgsProperty>();
 
  160    double azimuth = mAzimuth;
 
  161    if ( mDynamicAzimuth )
 
  162      azimuth = mAzimuthProperty.valueAsDouble( context.
expressionContext(), azimuth );
 
  164    double width = mWidth;
 
  168    double outerRadius = mOuterRadius;
 
  169    if ( mDynamicOuterRadius )
 
  172    double innerRadius = mInnerRadius;
 
  173    if ( mDynamicInnerRadius )
 
  180      auto result = std::make_unique<QgsMultiSurface>();
 
ProcessingSourceType
Processing data source types.
 
@ VectorPoint
Vector point layers.
 
@ VectorPolygon
Vector polygon layers.
 
@ SkipGeometryValidityChecks
Invalid geometry checks should always be skipped. This flag can be useful for algorithms which always...
 
WkbType
The WKB type describes the number of dimensions a geometry has.
 
@ CurvePolygon
CurvePolygon.
 
QFlags< ProcessingFeatureSourceFlag > ProcessingFeatureSourceFlags
Flags which control how QgsProcessingFeatureSource fetches features.
 
@ Double
Double/float values.
 
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.
 
int numGeometries() const
Returns the number of geometries within the collection.
 
A geometry is the spatial representation of a feature.
 
const QgsAbstractGeometry * constGet() const
Returns a non-modifiable (const) reference to the underlying abstract geometry primitive.
 
static QgsGeometry createWedgeBuffer(const QgsPoint ¢er, double azimuth, double angularWidth, double outerRadius, double innerRadius=0)
Creates a wedge shaped buffer from a center point.
 
Qgis::WkbType wkbType() const
Returns type of the geometry as a WKB type (point / linestring / polygon etc.)
 
Multi point geometry collection.
 
QgsPoint * pointN(int index)
Returns the point with the specified index.
 
Point geometry type, with support for z-dimension and m-values.
 
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...
 
Definition for a property.
 
@ Double
Double value (including negative values)
 
@ DoublePositive
Positive double value (including 0)
 
A store for object properties.
 
double valueAsDouble(const QgsExpressionContext &context, double defaultValue=0.0, bool *ok=nullptr) const
Calculates the current value of the property and interprets it as a double.
 
static Qgis::GeometryType geometryType(Qgis::WkbType type)
Returns the geometry type for a WKB type, e.g., both MultiPolygon and CurvePolygon would have a Polyg...
 
static Qgis::WkbType addM(Qgis::WkbType type)
Adds the m dimension to a WKB type and returns the new type.
 
static Qgis::WkbType addZ(Qgis::WkbType type)
Adds the z dimension to a WKB type and returns the new type.
 
static Q_INVOKABLE bool hasZ(Qgis::WkbType type)
Tests whether a WKB type contains the z-dimension.
 
static Q_INVOKABLE bool hasM(Qgis::WkbType type)
Tests whether a WKB type contains m values.
 
static Qgis::WkbType multiType(Qgis::WkbType type)
Returns the multi type for a WKB type.
 
static Q_INVOKABLE bool isMultiType(Qgis::WkbType type)
Returns true if the WKB type is a multi type.
 
QList< QgsFeature > QgsFeatureList