27 #include "../../../geometry/Polygon.h"
28 #include "../../../geometry/LinearRing.h"
29 #include "../../../geometry/Point.h"
30 #include "../../../maptools/CanvasConfigurer.h"
31 #include "../../../se/Rule.h"
32 #include "../../../se/Symbolizer.h"
33 #include "../canvas/Canvas.h"
48 if(symb->
getType() ==
"PolygonSymbolizer")
53 ring->
setPoint(1, size.width() - offset, offset);
54 ring->
setPoint(2, size.width() - offset, size.height() - offset);
55 ring->
setPoint(3, offset, size.height() - offset);
60 else if(symb->
getType() ==
"LineSymbolizer")
63 line->
setPoint(0, offset, size.height() * 0.5);
64 line->
setPoint(1, size.width() - offset, size.height() * 0.5);
67 else if(symb->
getType() ==
"PointSymbolizer")
69 geom =
new te::gm::Point(size.width() * 0.5, size.height() * 0.5);
71 else if(symb->
getType() ==
"RasterSymbolizer")
73 QIcon raster = QIcon::fromTheme(
"raster-symbolizer");
74 return raster.pixmap(size);
77 QPixmap result =
build(symb, geom, size);
87 result.fill(Qt::transparent);
90 QPainter painter(&result);
91 for(std::size_t i = 0; i < symbs.size(); ++i)
93 QPixmap pix = build(symbs[i], size);
94 painter.drawPixmap(0, 0, pix);
111 if(symb->
getType() ==
"RasterSymbolizer")
115 assert(!size.isEmpty());
119 canvas.
setWindow(0.0, 0.0, size.width(), size.height());
129 return *canvas.getPixmap();
134 QPixmap result(size);
135 result.fill(Qt::transparent);
138 QPainter painter(&result);
139 for(std::size_t i = 0; i < symbs.size(); ++i)
141 QPixmap pix = build(symbs[i], geom, size);
142 painter.drawPixmap(0, 0, pix);
This class represents a symbol.
A Symbolizer describes how a feature is to appear on a map.
Static class used to generate preview of Symbology elements.
A LinearRing is a LineString that is both closed and simple.
LineString is a curve with linear interpolation between points.
A point with x and y coordinate values.
void setPoint(std::size_t i, const double &x, const double &y)
It sets the value of the specified point.
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
const std::vector< Symbolizer * > & getSymbolizers() const
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
A Rule is used to attach property/scale conditions to and group the individual symbols used for rende...
#define TE_TRANSPARENT
For an RGBA color this is the value of the alpha-channel for totally transparent. ...
A helper class for 32-bit RGBA (Red-Green-Blue-Alpha channel) color.
virtual const std::string & getType() const =0
It returns the symbolizer type.
void setRingN(std::size_t i, Curve *r)
It sets the informed position ring to the new one.