26 #ifndef __TERRALIB_QT_WIDGETS_INTERNAL_CANVAS_H
27 #define __TERRALIB_QT_WIDGETS_INTERNAL_CANVAS_H
30 #include "../../../maptools/Canvas.h"
31 #include "../Config.h"
70 Canvas(
int w,
int h,
int devType = QInternal::Pixmap);
79 Canvas(QPaintDevice* device);
100 void setWindow(
const double& llx,
const double& lly,
101 const double& urx,
const double& ury);
103 void calcAspectRatio(
double& llx,
double& lly,
double& urx,
double& ury,
116 void resize(
int w,
int h);
118 int getWidth()
const;
120 int getHeight()
const;
140 void save(
const char* fileName,
te::map::ImageType t,
int quality = 75,
int fg = 0)
const;
142 char* getImage(
te::map::ImageType t, std::size_t& size,
int quality = 75,
int fg = 0)
const;
144 te::color::RGBAColor** getImage(
const int x = 0,
const int y = 0,
const int w = 0,
const int h = 0)
const;
146 void freeImage(
char* img)
const;
156 void drawImage(
int x,
int y,
int w,
int h,
char* src, std::size_t size,
te::map::ImageType t);
160 void drawImage(
int x,
int y,
int w,
int h,
char* src, std::size_t size,
te::map::ImageType t,
int sx,
int sy,
int sw,
int sh);
162 void drawImage(
int x,
int y,
int w,
int h,
te::color::RGBAColor** src,
int sx,
int sy,
int sw,
int sh);
166 void drawImage(
int x,
int y,
int w,
int h,
te::rst::Raster* src,
int sx,
int sy,
int sw,
int sh,
int opacity =
TE_OPAQUE);
168 void drawPixel(
int x,
int y);
172 void drawText(
int x,
int y,
173 const std::string& txt,
179 const std::string& txt,
184 void drawText(
const double& x,
const double& y,
185 const std::string& txt,
193 const std::string& txt,
199 const std::string& txt,
205 const std::string& txt,
212 void setTextOpacity(
int opacity);
214 void setFontFamily(
const std::string& family);
216 void setTextPointSize(
double psize);
222 void setTextStretch(std::size_t stretch);
224 void setTextUnderline(
bool b);
226 void setTextOverline(
bool b);
228 void setTextStrikeOut(
bool b);
232 void setTextDecorationWidth(
int width);
236 void setTextContourEnabled(
bool b);
238 void setTextContourOpacity(
int opacity);
240 void setTextContourWidth(
int width);
244 void setTextMultiLineSpacing(
int spacing);
248 void setPointWidth(
int w);
254 void setPointPatternRotation(
const double& angle);
256 void setPointPatternOpacity(
int opacity);
264 void setLinePatternRotation(
const double& angle);
266 void setLinePatternOpacity(
int opacity);
270 void setLineDashStyle(
const std::vector<double>& style);
276 void setLineWidth(
int w);
280 void setPolygonFillColor(
const QBrush& color);
288 void setPolygonPatternWidth(
int w);
290 void setPolygonPatternRotation(
const double& angle);
292 void setPolygonPatternOpacity(
int opacity);
298 void setPolygonContourWidth(
int w);
300 void setPolygonContourPatternRotation(
const double& angle);
302 void setPolygonContourPatternOpacity(
int opacity);
306 void setPolygonContourDashStyle(
const std::vector<double>& style);
314 void setNormalMode();
336 void drawText(
const QPoint& p,
337 const std::string& txt,
357 te::gm::Polygon* getTextBoundary(
const QPoint& p,
const std::string& txt,
float angle = 0.0,
370 QPixmap* getPixmap()
const;
381 QImage* getImage()
const;
392 QPaintDevice* getDevice()
const;
400 void setDevice(QPaintDevice* device,
bool takeOwnerShip);
416 void setMatrix(
const QMatrix& matrix);
419 void setRenderHint(QPainter::RenderHint hint,
bool on =
true);
423 QPainter* getPainter();
461 void setLineDashStyle(QPen& pen,
const std::vector<double>& style);
469 void updateAlpha(QImage& img,
const int& opacity);
475 void createPointPatterns();
539 #endif // __TERRALIB_QT_WIDGETS_INTERNAL_CANVAS_H
ImageType
This enum specifies the possible input and output image formats supported by the canvas API...
MultiPolygon is a MultiSurface whose elements are Polygons.
FontWeight
Font weight for drawing text.
LineJustification
Line justification for drawing multi line text.
FontStyle
Font style for drawing text.
A Text may contain 1 or more Text Elements.
AlignType
This enum contains values to control the alignment of components (like Canvas and MapDisplay)...
LineCapStyle
This enum encodes enumerated values telling how line strings should be capped (at the two ends of the...
MultiPoint is a GeometryCollection whose elements are restricted to points.
LineString is a curve with linear interpolation between points.
HorizontalAlignment
Horizontal alignment for drawing text.
A point with x and y coordinate values.
An Envelope defines a 2D rectangular region.
An abstract class for raster data strucutures.
#define TE_OPAQUE
For an RGBA color this is the value of the alpha-channel for totally opaque.
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
MultiLineString is a MultiCurve whose elements are LineStrings.
A canvas is an abstraction of a drawing area.
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
LineDashStyle
This enum encodes enumerated values telling how lines should be drawn. e.g. as a plain line or dash l...
LineJoinStyle
This enum encodes enumerated values telling how line strings should be joined (between line segments)...
VerticalAlignment
Vertical alignment for drawing text.
MultiSurface is a class that represents a 2-dimensional GeometryCollection whose elements are surface...
A helper class for 32-bit RGBA (Red-Green-Blue-Alpha channel) color.
It is a collection of other geometric objects.