29 #ifndef CDPL_VIS_CAIRORENDERER2D_HPP
30 #define CDPL_VIS_CAIRORENDERER2D_HPP
90 void drawLine(
double x1,
double y1,
double x2,
double y2);
98 void drawText(
double x,
double y,
const std::string& txt);
100 void drawEllipse(
double x,
double y,
double width,
double height);
109 void fillPath()
const;
110 void strokePath()
const;
112 typedef std::vector<Pen> PenStack;
113 typedef std::vector<Brush> BrushStack;
114 typedef std::vector<Font> FontStack;
118 BrushStack brushStack;
Definition of class CDPL::Vis::Brush.
Definition of class CDPL::Vis::CairoPointer.
struct _cairo cairo_t
Definition: CairoPointer.hpp:35
Definition of class CDPL::Vis::Font.
Definition of class CDPL::Vis::Pen.
Definition of class CDPL::Vis::Renderer2D.
Definition of the preprocessor macro CDPL_VIS_API.
#define CDPL_VIS_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Specifies the fill pattern and fill color of shapes.
Definition: Brush.hpp:50
Implements the Vis::Renderer2D interface on top of the Cairo 2D Graphics Library.
Definition: CairoRenderer2D.hpp:57
void transform(const Math::Matrix3D &xform)
Right-multiplies the current affine transformation matrix by xform.
~CairoRenderer2D()
Destructor.
void drawPoint(double x, double y)
Draws a point at the position (x, y).
void restoreState()
Restores the last renderer state saved by a call to saveState().
void drawPath(const Path2D &path)
Draws the given path.
void drawPolyline(const Math::Vector2DArray &points)
Draws the polyline defined by points.
void drawLine(double x1, double y1, double x2, double y2)
Draws a line segment from (x1, y1) to (x2, y2).
void setPen(const Pen &pen)
Sets the pen to be used in subsequent drawing operations.
void drawPolygon(const Math::Vector2DArray &points)
Draws the polygon defined by points.
void drawLineSegments(const Math::Vector2DArray &points)
Draws the sequence of disjoint line segments defined by points.
void setFont(const Font &font)
Sets the font to be used in subsequent text drawing operations.
void drawRectangle(double x1, double y1, double x2, double y2)
Draws an axis aligned rectangle of the specified width and height whose upper-left corner is located ...
void setBrush(const Brush &brush)
Sets the brush to be used in subsequent drawing operations.
void setClipPath(const Path2D &path)
Enables clipping and establishes a new clip region.
void drawText(double x, double y, const std::string &txt)
Draws the specified text at the position (x, y).
void setTransform(const Math::Matrix3D &xform)
Sets the applied affine transformation matrix to xform.
void clearClipPath()
Disables any currently active clipping region.
void saveState()
Saves the current renderer state.
CairoRenderer2D(const CairoPointer< cairo_t > &cairo_ctxt)
Constructs a CairoRenderer2D instance that operates on the Cairo drawing context specified by cairo_c...
void drawEllipse(double x, double y, double width, double height)
Draws an axis-aligned ellipse with the given width and height around the center position (x,...
Specifies a font for drawing text.
Definition: Font.hpp:54
Provides a container for painting operations, enabling arbitrary graphical shapes to be constructed a...
Definition: Path2D.hpp:78
Specifies how to draw lines and outlines of shapes.
Definition: Pen.hpp:53
Interface providing methods for low level 2D drawing operations.
Definition: Renderer2D.hpp:86
VectorArray< Vector2D > Vector2DArray
Array storing vectors of type Math::Vector2D.
Definition: VectorArray.hpp:82
CMatrix< double, 3, 3 > Matrix3D
Bounded 3×3 matrix holding floating-point values of type double.
Definition: Matrix.hpp:3504
The namespace of the Chemical Data Processing Library.