17#ifndef QGSMAPTOPIXELGEOMETRYSIMPLIFIER_H
18#define QGSMAPTOPIXELGEOMETRYSIMPLIFIER_H
47 SnappedToGridGlobal = 3,
63 static std::unique_ptr<QgsAbstractGeometry> simplifyGeometry(
int simplifyFlags, SimplifyAlgorithm simplifyAlgorithm,
const QgsAbstractGeometry &geometry,
double map2pixelTol,
bool isaLinearRing );
76 static float calculateLengthSquared2D(
double x1,
double y1,
double x2,
double y2 );
79 static bool equalSnapToGrid(
double x1,
double y1,
double x2,
double y2,
double gridOriginX,
double gridOriginY,
float gridInverseSizeXY );
102 static bool isGeneralizableByMapBoundingBox(
const QgsRectangle &envelope,
double map2pixelTol );
107 return isGeneralizableByMapBoundingBox( envelope, mTolerance );
Abstract base class for simplify geometries using a specific algorithm.
virtual QgsGeometry simplify(const QgsGeometry &geometry) const =0
Returns a simplified version the specified geometry.
Abstract base class for all geometries.
A geometry is the spatial representation of a feature.
Implementation of GeometrySimplifier using the "MapToPixel" algorithm.
bool isGeneralizableByMapBoundingBox(const QgsRectangle &envelope) const
Returns whether the envelope can be replaced by its BBOX when is applied the specified map2pixel cont...
double mTolerance
Distance tolerance for the simplification.
SimplifyAlgorithm
Types of simplification algorithms that can be used.
int simplifyFlags() const
Gets the simplification hints of the vector layer managed.
void setSimplifyAlgorithm(SimplifyAlgorithm simplifyAlgorithm)
Sets the local simplification algorithm of the vector layer managed.
void setSimplifyFlags(int simplifyFlags)
Sets the simplification hints of the vector layer managed.
void setTolerance(double value)
Sets the tolerance of the vector layer managed.
SimplifyAlgorithm simplifyAlgorithm() const
Gets the local simplification algorithm of the vector layer managed.
SimplifyFlag
Applicable simplification flags.
int mSimplifyFlags
Current simplification flags.
SimplifyAlgorithm mSimplifyAlgorithm
Current algorithm.
A rectangle specified with double values.