26 #ifndef __TERRALIB_MAPTOOLS_INTERNAL_CANVAS_H    27 #define __TERRALIB_MAPTOOLS_INTERNAL_CANVAS_H    30 #include "../annotationtext/Enums.h"    31 #include "../color/RGBAColor.h"    36 #include <boost/noncopyable.hpp>    45     class GeometryCollection;
    47     class MultiLineString;
    92     class Canvas : 
public boost::noncopyable
   124         virtual void setWindow(
const double& llx, 
const double& lly,
   125                                const double& urx, 
const double& ury) = 0;
   139         virtual void calcAspectRatio(
double& llx, 
double& lly, 
double& urx, 
double& ury, 
   175         virtual void clear() = 0;
   183         virtual void resize(
int w, 
int h) = 0;
   190         virtual int getWidth() 
const = 0;
   197         virtual int getHeight() 
const = 0;
   284         virtual void save(
const char* fileName, 
ImageType t, 
int quality = 75, 
int fg = 0) 
const = 0;
   298         virtual char* getImage(
ImageType t, std::size_t& size, 
int quality = 75, 
int fg = 0) 
const = 0;
   307         virtual te::color::RGBAColor** getImage(
const int x = 0, 
const int y = 0, 
const int w = 0, 
const int h = 0) 
const = 0;
   314         virtual void freeImage(
char* img) 
const = 0;
   323         virtual void drawImage(
char* src, std::size_t size, 
ImageType t) = 0;
   343         virtual void drawImage(
int x, 
int y, 
char* src, std::size_t size, 
ImageType t) = 0;
   367         virtual void drawImage(
int x, 
int y, 
int w, 
int h, 
char* src, std::size_t size, 
ImageType t) = 0;
   380         virtual void drawImage(
int x, 
int y, 
int w, 
int h, 
te::color::RGBAColor** src, 
int srcw, 
int srch) = 0;
   397         virtual void drawImage(
int x, 
int y, 
int w, 
int h, 
char* src, std::size_t size, 
ImageType t, 
int sx, 
int sy, 
int sw, 
int sh) = 0;
   412         virtual void drawImage(
int x, 
int y, 
int w, 
int h, 
te::color::RGBAColor** src, 
int sx, 
int sy, 
int sw, 
int sh) = 0;
   440         virtual 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) = 0;
   455         virtual void drawPixel(
int x, 
int y) = 0;
   492         virtual void drawText(
int x, 
int y,
   493                               const std::string& txt,
   510                               const std::string& txt,
   527         virtual void drawText(
const double& x, 
const double& y,
   528                               const std::string& txt,
   558                                                  const std::string& txt,
   579                                                  const std::string& txt,
   600         virtual te::gm::Polygon* getTextBoundary(
const double& x, 
const double& y,
   601                                                  const std::string& txt,
   625         virtual void setTextOpacity(
int opacity) = 0;
   632         virtual void setFontFamily(
const std::string& family) = 0;
   639         virtual void setTextPointSize(
double size) = 0;
   660         virtual void setTextStretch(std::size_t stretch) = 0;
   667         virtual void setTextUnderline(
bool b) = 0;
   674         virtual void setTextOverline(
bool b) = 0;
   681         virtual void setTextStrikeOut(
bool b) = 0;
   695         virtual void setTextDecorationWidth(
int width) = 0;
   709         virtual void setTextContourEnabled(
bool b) = 0;
   716         virtual void setTextContourOpacity(
int opacity) = 0;
   723         virtual void setTextContourWidth(
int width) = 0;
   737         virtual void setTextMultiLineSpacing(
int spacing) = 0;
   754         virtual void setPointWidth(
int w) = 0;
   774         virtual void setPointPattern(
char* pattern, std::size_t size, 
ImageType t) = 0;
   781         virtual void setPointPatternRotation(
const double& angle) = 0;
   788         virtual void setPointPatternOpacity(
int opacity) = 0;
   817         virtual void setLinePattern(
char* pattern, std::size_t size, 
ImageType t) = 0;
   824         virtual void setLinePatternRotation(
const double& angle) = 0;
   831         virtual void setLinePatternOpacity(
int opacity) = 0;
   838         virtual void setLineWidth(
int w) = 0;
   855         virtual void setLineDashStyle(
const std::vector<double>& style) = 0;
   903         virtual void setPolygonFillPattern(
char* pattern, std::size_t size, 
ImageType t) = 0;
   910         virtual void setPolygonPatternWidth(
int w) = 0;
   917         virtual void setPolygonPatternRotation(
const double& angle) = 0;
   924         virtual void setPolygonPatternOpacity(
int opacity) = 0;
   935         virtual void setPolygonContourPattern(
te::color::RGBAColor** pattern, 
int ncols, 
int nrows) = 0;
   944         virtual void setPolygonContourPattern(
char* pattern, std::size_t size, 
ImageType t) = 0;
   951         virtual void setPolygonContourWidth(
int w) = 0;
   958         virtual void setPolygonContourPatternRotation(
const double& angle) = 0;
   965         virtual void setPolygonContourPatternOpacity(
int opacity) = 0;
   972         virtual void setPolygonContourDashStyle(
LineDashStyle style) = 0;
   982         virtual void setPolygonContourDashStyle(
const std::vector<double>& style) = 0;
   989         virtual void setPolygonContourCapStyle(
LineCapStyle style) = 0;
   996         virtual void setPolygonContourJoinStyle(
LineJoinStyle style) = 0;
  1001         virtual void setEraseMode() = 0;
  1006         virtual void setNormalMode() = 0;
  1014 #endif  // __TERRALIB_MAPTOOLS_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. 
 
Several enumerations related to Annotation Text. 
 
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. 
 
virtual ~Canvas()
Virtual destructor.