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);
105 void calcAspectRatio(
double& llx,
double& lly,
double& urx,
double& ury,
118 void resize(
int w,
int h);
120 int getWidth()
const;
122 int getHeight()
const;
142 void save(
const char* fileName,
te::map::ImageType t,
int quality = 75,
int fg = 0)
const;
144 char* getImage(
te::map::ImageType t, std::size_t& size,
int quality = 75,
int fg = 0)
const;
146 te::color::RGBAColor** getImage(
const int x = 0,
const int y = 0,
const int w = 0,
const int h = 0)
const;
148 void freeImage(
char* img)
const;
158 void drawImage(
int x,
int y,
int w,
int h,
char* src, std::size_t size,
te::map::ImageType t);
162 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);
164 void drawImage(
int x,
int y,
int w,
int h,
te::color::RGBAColor** src,
int sx,
int sy,
int sw,
int sh);
168 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);
170 void drawPixel(
int x,
int y);
174 void drawText(
int x,
int y,
175 const std::string& txt,
177 double anchorX = 0.5,
double anchorY = 0.5,
178 int displacementX = 0,
int displacementY = 0);
181 const std::string& txt,
183 double anchorX = 0.5,
double anchorY = 0.5,
184 int displacementX = 0,
int displacementY = 0);
186 void drawText(
const double& x,
const double& y,
187 const std::string& txt,
189 double anchorX = 0.5,
double anchorY = 0.5,
190 int displacementX = 0,
int displacementY = 0);
193 const std::string& txt,
195 double anchorX = 0.5,
double anchorY = 0.5,
196 int displacementX = 0,
int displacementY = 0);
199 const std::string& txt,
201 double anchorX = 0.5,
double anchorY = 0.5,
202 int displacementX = 0,
int displacementY = 0);
205 const std::string& txt,
207 double anchorX = 0.5,
double anchorY = 0.5,
208 int displacementX = 0,
int displacementY = 0);
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);
242 void setTextJustification(
int justType);
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();
338 void drawText(
const QPoint& p,
339 const std::string& txt,
341 double anchorX = 0.5,
double anchorY = 0.5,
342 int displacementX = 0,
int displacementY = 0);
361 te::gm::Polygon* getTextBoundary(
const QPoint& p,
const std::string& txt,
float angle = 0.0,
362 double anchorX = 0.5,
double anchorY = 0.5,
363 int displacementX = 0,
int displacementY = 0);
374 QPixmap* getPixmap()
const;
385 QImage* getImage()
const;
396 QPaintDevice* getDevice()
const;
404 void setDevice(QPaintDevice* device,
bool takeOwnerShip);
420 void setMatrix(
const QMatrix& matrix);
423 void setRenderHint(QPainter::RenderHint hint,
bool on =
true);
427 QPainter* getPainter();
465 void setLineDashStyle(QPen& pen,
const std::vector<double>& style);
473 void updateAlpha(QImage& img,
const int& opacity);
479 void createPointPatterns();
543 #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.
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.