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.