26 #ifndef __TERRALIB_MAPTOOLS_INTERNAL_CANVAS_H    27 #define __TERRALIB_MAPTOOLS_INTERNAL_CANVAS_H    30 #include "../color/RGBAColor.h"    31 #include "../se/Font.h"    36 #include <boost/noncopyable.hpp>    50     class GeometryCollection;
    52     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;
   494         virtual void drawText(
int x, 
int y,
   495                               const std::string& txt,
   497                               double anchorX = 0.5, 
double anchorY = 0.5,
   498                               int displacementX = 0, 
int displacementY = 0) = 0;
   514                               const std::string& txt,
   516                               double anchorX = 0.5, 
double anchorY = 0.5,
   517                               int displacementX = 0, 
int displacementY = 0) = 0;
   533         virtual void drawText(
const double& x, 
const double& y,
   534                               const std::string& txt,
   536                               double anchorX = 0.5, 
double anchorY = 0.5,
   537                               int displacementX = 0, 
int displacementY = 0) = 0;
   558                                                  const std::string& txt,
   560                                                  double anchorX = 0.5, 
double anchorY = 0.5,
   561                                                  int displacementX = 0, 
int displacementY = 0) = 0;
   581                                                  const std::string& txt,
   583                                                  double anchorX = 0.5, 
double anchorY = 0.5,
   584                                                  int displacementX = 0, 
int displacementY = 0) = 0;
   604         virtual te::gm::Polygon* getTextBoundary(
const double& x, 
const double& y,
   605                                                  const std::string& txt,
   607                                                  double anchorX = 0.5, 
double anchorY = 0.5,
   608                                                  int displacementX = 0, 
int displacementY = 0) = 0;
   629         virtual void setTextOpacity(
int opacity) = 0;
   636         virtual void setFontFamily(
const std::string& family) = 0;
   643         virtual void setTextPointSize(
double size) = 0;
   664         virtual void setTextStretch(std::size_t stretch) = 0;
   671         virtual void setTextUnderline(
bool b) = 0;
   678         virtual void setTextOverline(
bool b) = 0;
   685         virtual void setTextStrikeOut(
bool b) = 0;
   699         virtual void setTextDecorationWidth(
int width) = 0;
   713         virtual void setTextContourEnabled(
bool b) = 0;
   720         virtual void setTextContourOpacity(
int opacity) = 0;
   727         virtual void setTextContourWidth(
int width) = 0;
   734         virtual void setTextJustification(
int justType) = 0;
   741         virtual void setTextMultiLineSpacing(
int spacing) = 0;
   758         virtual void setPointWidth(
int w) = 0;
   778         virtual void setPointPattern(
char* pattern, std::size_t size, 
ImageType t) = 0;
   785         virtual void setPointPatternRotation(
const double& angle) = 0;
   792         virtual void setPointPatternOpacity(
int opacity) = 0;
   821         virtual void setLinePattern(
char* pattern, std::size_t size, 
ImageType t) = 0;
   828         virtual void setLinePatternRotation(
const double& angle) = 0;
   835         virtual void setLinePatternOpacity(
int opacity) = 0;
   842         virtual void setLineWidth(
int w) = 0;
   859         virtual void setLineDashStyle(
const std::vector<double>& style) = 0;
   907         virtual void setPolygonFillPattern(
char* pattern, std::size_t size, 
ImageType t) = 0;
   914         virtual void setPolygonPatternWidth(
int w) = 0;
   921         virtual void setPolygonPatternRotation(
const double& angle) = 0;
   928         virtual void setPolygonPatternOpacity(
int opacity) = 0;
   939         virtual void setPolygonContourPattern(
te::color::RGBAColor** pattern, 
int ncols, 
int nrows) = 0;
   948         virtual void setPolygonContourPattern(
char* pattern, std::size_t size, 
ImageType t) = 0;
   955         virtual void setPolygonContourWidth(
int w) = 0;
   962         virtual void setPolygonContourPatternRotation(
const double& angle) = 0;
   969         virtual void setPolygonContourPatternOpacity(
int opacity) = 0;
   976         virtual void setPolygonContourDashStyle(
LineDashStyle style) = 0;
   986         virtual void setPolygonContourDashStyle(
const std::vector<double>& style) = 0;
   993         virtual void setPolygonContourCapStyle(
LineCapStyle style) = 0;
  1000         virtual void setPolygonContourJoinStyle(
LineJoinStyle style) = 0;
  1005         virtual void setEraseMode() = 0;
  1010         virtual void setNormalMode() = 0;
  1018 #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. 
 
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. 
 
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. 
 
FontStyleType
It defines the style to use for a font. 
 
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)...
 
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. 
 
FontWeightType
It gives the amount of weight or boldness to use for a font. 
 
It is a collection of other geometric objects. 
 
virtual ~Canvas()
Virtual destructor.