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);
 
   91           void setWindow(
const double& llx, 
const double& lly,
 
   92                          const double& urx, 
const double& ury);
 
   94           void calcAspectRatio(
double& llx, 
double& lly, 
double& urx, 
double& ury, 
 
  107           void resize(
int w, 
int h);
 
  109           int getWidth() 
const;
 
  111           int getHeight() 
const;
 
  129           void save(
const char* fileName, 
te::map::ImageType t, 
int quality = 75, 
int fg = 0) 
const;
 
  135           void freeImage(
char* img) 
const;
 
  145           void drawImage(
int x, 
int y, 
int w, 
int h, 
char* src, std::size_t size, 
te::map::ImageType t);
 
  149           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);
 
  151           void drawImage(
int x, 
int y, 
int w, 
int h, 
te::color::RGBAColor** src, 
int sx, 
int sy, 
int sw, 
int sh);
 
  155           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);
 
  157           void drawPixel(
int x, 
int y);
 
  161           void drawText(
int x, 
int y,
 
  162                         const std::string& txt,
 
  168                         const std::string& txt,
 
  173           void drawText(
const double& x, 
const double& y,
 
  174                         const std::string& txt,
 
  182                                            const std::string& txt,
 
  188                                            const std::string& txt,
 
  194                                            const std::string& txt,
 
  201           void setTextOpacity(
int opacity);
 
  203           void setFontFamily(
const std::string& family);
 
  205           void setTextPointSize(
double psize);
 
  211           void setTextStretch(std::size_t stretch);
 
  213           void setTextUnderline(
bool b);
 
  215           void setTextOverline(
bool b);
 
  217           void setTextStrikeOut(
bool b);
 
  221           void setTextDecorationWidth(
int width);
 
  225           void setTextContourEnabled(
bool b);
 
  227           void setTextContourOpacity(
int opacity);
 
  229           void setTextContourWidth(
int width);
 
  233           void setTextMultiLineSpacing(
int spacing);
 
  237           void setPointWidth(
int w);
 
  243           void setPointPatternRotation(
const double& angle);
 
  245           void setPointPatternOpacity(
int opacity);
 
  253           void setLinePatternRotation(
const double& angle);
 
  255           void setLinePatternOpacity(
int opacity);
 
  259           void setLineDashStyle(
const std::vector<double>& style);
 
  265           void setLineWidth(
int w);
 
  275           void setPolygonPatternWidth(
int w);
 
  277           void setPolygonPatternRotation(
const double& angle);
 
  279           void setPolygonPatternOpacity(
int opacity);
 
  285           void setPolygonContourWidth(
int w);
 
  287           void setPolygonContourPatternRotation(
const double& angle);
 
  289           void setPolygonContourPatternOpacity(
int opacity);
 
  293           void setPolygonContourDashStyle(
const std::vector<double>& style);
 
  301           void setNormalMode();
 
  323           void drawText(
const QPoint& p,
 
  324                         const std::string& txt,
 
  344           te::gm::Polygon* getTextBoundary(
const QPoint& p, 
const std::string& txt, 
float angle = 0.0,
 
  357           QPixmap* getPixmap() 
const; 
 
  379           QPaintDevice* getDevice() 
const; 
 
  387           void setDevice(QPaintDevice* device, 
bool takeOwnerShip);
 
  403           void setMatrix(
const QMatrix& matrix);
 
  406           void setRenderHint(QPainter::RenderHint hint, 
bool on = 
true);
 
  446           void setLineDashStyle(QPen& pen, 
const std::vector<double>& style);
 
  454           void updateAlpha(QImage& img, 
const int& opacity);
 
  460           void createPointPatterns();
 
  521 #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. 
 
A helper class for 32-bit RGBA (Red-Green-Blue-Alpha channel) color. 
 
It is a collection of other geometric objects.