QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
qgsmaptopixelgeometrysimplifier.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsmaptopixelgeometrysimplifier.h
3
---------------------
4
begin : December 2013
5
copyright : (C) 2013 by Alvaro Huarte
6
email : http://wiki.osgeo.org/wiki/Alvaro_Huarte
7
8
***************************************************************************
9
* *
10
* This program is free software; you can redistribute it and/or modify *
11
* it under the terms of the GNU General Public License as published by *
12
* the Free Software Foundation; either version 2 of the License, or *
13
* (at your option) any later version. *
14
* *
15
***************************************************************************/
16
17
#ifndef QGSMAPTOPIXELGEOMETRYSIMPLIFIER_H
18
#define QGSMAPTOPIXELGEOMETRYSIMPLIFIER_H
19
20
#include <memory>
21
22
#include "
qgis.h
"
23
#include "qgis_core.h"
24
#include "
qgis_sip.h
"
25
#include "
qgsgeometrysimplifier.h
"
26
27
#include <QPolygonF>
28
29
class
QgsAbstractGeometry
;
30
class
QgsWkbPtr
;
31
class
QgsConstWkbPtr
;
32
33
41
class
CORE_EXPORT
QgsMapToPixelSimplifier
:
public
QgsAbstractGeometrySimplifier
42
{
43
public
:
45
QgsMapToPixelSimplifier
(
int
simplifyFlags
,
double
tolerance,
Qgis::VectorSimplificationAlgorithm
simplifyAlgorithm
=
Qgis::VectorSimplificationAlgorithm::Distance
);
46
48
enum
SimplifyFlag
49
{
50
NoFlags
= 0,
51
SimplifyGeometry
= 1,
52
SimplifyEnvelope
= 2,
53
};
54
55
private
:
57
static
std::unique_ptr<QgsAbstractGeometry> simplifyGeometry(
58
int
simplifyFlags,
Qgis::VectorSimplificationAlgorithm
simplifyAlgorithm,
const
QgsAbstractGeometry
&geometry,
double
map2pixelTol,
bool
isaLinearRing
59
);
60
61
protected
:
63
int
mSimplifyFlags
;
64
66
Qgis::VectorSimplificationAlgorithm
mSimplifyAlgorithm
=
Qgis::VectorSimplificationAlgorithm::Distance
;
67
69
double
mTolerance
;
70
72
static
float
calculateLengthSquared2D
(
double
x1,
double
y1,
double
x2,
double
y2 );
73
75
static
bool
equalSnapToGrid
(
double
x1,
double
y1,
double
x2,
double
y2,
double
gridOriginX,
double
gridOriginY,
float
gridInverseSizeXY );
76
77
public
:
79
int
simplifyFlags
()
const
{
return
mSimplifyFlags
; }
81
void
setSimplifyFlags
(
int
simplifyFlags
) {
mSimplifyFlags
=
simplifyFlags
; }
82
84
Qgis::VectorSimplificationAlgorithm
simplifyAlgorithm
()
const
{
return
mSimplifyAlgorithm
; }
86
void
setSimplifyAlgorithm
(
Qgis::VectorSimplificationAlgorithm
simplifyAlgorithm
) {
mSimplifyAlgorithm
=
simplifyAlgorithm
; }
87
88
QgsGeometry
simplify
(
const
QgsGeometry
&geometry )
const override
;
89
QgsAbstractGeometry
*
simplify
(
const
QgsAbstractGeometry
*geometry )
const
override
SIP_FACTORY
;
90
92
void
setTolerance
(
double
value ) {
mTolerance
= value; }
93
94
// MapToPixel simplification helper methods
95
public
:
97
static
bool
isGeneralizableByMapBoundingBox(
const
QgsRectangle
&envelope,
double
map2pixelTol );
98
100
inline
bool
isGeneralizableByMapBoundingBox
(
const
QgsRectangle
&envelope )
const
{
return
isGeneralizableByMapBoundingBox
( envelope,
mTolerance
); }
101
};
102
103
#endif
// QGSMAPTOPIXELGEOMETRYSIMPLIFIER_H
Qgis::VectorSimplificationAlgorithm
VectorSimplificationAlgorithm
Simplification algorithms for vector features.
Definition
qgis.h:3238
Qgis::VectorSimplificationAlgorithm::Distance
@ Distance
The simplification uses the distance between points to remove duplicate points.
Definition
qgis.h:3239
QgsAbstractGeometrySimplifier
Abstract base class for simplifying geometries using a specific algorithm.
Definition
qgsgeometrysimplifier.h:35
QgsAbstractGeometrySimplifier::simplify
virtual QgsGeometry simplify(const QgsGeometry &geometry) const =0
Returns a simplified version the specified geometry.
QgsAbstractGeometry
Abstract base class for all geometries.
Definition
qgsabstractgeometry.h:82
QgsConstWkbPtr
A const WKB pointer.
Definition
qgswkbptr.h:211
QgsGeometry
A geometry is the spatial representation of a feature.
Definition
qgsgeometry.h:267
QgsMapToPixelSimplifier::isGeneralizableByMapBoundingBox
bool isGeneralizableByMapBoundingBox(const QgsRectangle &envelope) const
Returns whether the envelope can be replaced by its BBOX when is applied the specified map2pixel cont...
Definition
qgsmaptopixelgeometrysimplifier.h:100
QgsMapToPixelSimplifier::mTolerance
double mTolerance
Distance tolerance for the simplification.
Definition
qgsmaptopixelgeometrysimplifier.h:69
QgsMapToPixelSimplifier::calculateLengthSquared2D
static float calculateLengthSquared2D(double x1, double y1, double x2, double y2)
Returns the squared 2D-distance of the vector defined by the two points specified.
Definition
qgsmaptopixelgeometrysimplifier.cpp:38
QgsMapToPixelSimplifier::simplifyFlags
int simplifyFlags() const
Gets the simplification hints of the vector layer managed.
Definition
qgsmaptopixelgeometrysimplifier.h:79
QgsMapToPixelSimplifier::setSimplifyFlags
void setSimplifyFlags(int simplifyFlags)
Sets the simplification hints of the vector layer managed.
Definition
qgsmaptopixelgeometrysimplifier.h:81
QgsMapToPixelSimplifier::setTolerance
void setTolerance(double value)
Sets the tolerance of the vector layer managed.
Definition
qgsmaptopixelgeometrysimplifier.h:92
QgsMapToPixelSimplifier::setSimplifyAlgorithm
void setSimplifyAlgorithm(Qgis::VectorSimplificationAlgorithm simplifyAlgorithm)
Sets the local simplification algorithm of the vector layer managed.
Definition
qgsmaptopixelgeometrysimplifier.h:86
QgsMapToPixelSimplifier::mSimplifyAlgorithm
Qgis::VectorSimplificationAlgorithm mSimplifyAlgorithm
Current algorithm.
Definition
qgsmaptopixelgeometrysimplifier.h:66
QgsMapToPixelSimplifier::SimplifyFlag
SimplifyFlag
Applicable simplification flags.
Definition
qgsmaptopixelgeometrysimplifier.h:49
QgsMapToPixelSimplifier::NoFlags
@ NoFlags
No simplification can be applied.
Definition
qgsmaptopixelgeometrysimplifier.h:50
QgsMapToPixelSimplifier::SimplifyEnvelope
@ SimplifyEnvelope
The geometries can be fully simplified by its BoundingBox.
Definition
qgsmaptopixelgeometrysimplifier.h:52
QgsMapToPixelSimplifier::SimplifyGeometry
@ SimplifyGeometry
The geometries can be simplified using the current map2pixel context state.
Definition
qgsmaptopixelgeometrysimplifier.h:51
QgsMapToPixelSimplifier::mSimplifyFlags
int mSimplifyFlags
Current simplification flags.
Definition
qgsmaptopixelgeometrysimplifier.h:63
QgsMapToPixelSimplifier::equalSnapToGrid
static bool equalSnapToGrid(double x1, double y1, double x2, double y2, double gridOriginX, double gridOriginY, float gridInverseSizeXY)
Returns whether the points belong to the same grid.
Definition
qgsmaptopixelgeometrysimplifier.cpp:46
QgsMapToPixelSimplifier::simplifyAlgorithm
Qgis::VectorSimplificationAlgorithm simplifyAlgorithm() const
Gets the local simplification algorithm of the vector layer managed.
Definition
qgsmaptopixelgeometrysimplifier.h:84
QgsMapToPixelSimplifier::QgsMapToPixelSimplifier
QgsMapToPixelSimplifier(int simplifyFlags, double tolerance, Qgis::VectorSimplificationAlgorithm simplifyAlgorithm=Qgis::VectorSimplificationAlgorithm::Distance)
Constructor.
Definition
qgsmaptopixelgeometrysimplifier.cpp:29
QgsRectangle
A rectangle specified with double values.
Definition
qgsrectangle.h:47
QgsWkbPtr
WKB pointer handler.
Definition
qgswkbptr.h:47
qgis.h
qgis_sip.h
SIP_FACTORY
#define SIP_FACTORY
Definition
qgis_sip.h:83
qgsgeometrysimplifier.h
Generated on
for QGIS API Documentation by
1.17.0