Board  0.9.2
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
LibBoard::Board Class Reference

Class for EPS, FIG or SVG drawings. More...

#include <Board.h>

Inheritance diagram for LibBoard::Board:
LibBoard::ShapeList LibBoard::Shape

Classes

struct  State
 

Public Types

enum  PageSize {
  BoundingBox = 0, A0, A1, A2,
  A3, A4, A5, A6,
  A7, A8, A9, A10,
  Letter, Legal, Executive
}
 
enum  Unit { UPoint, UInche, UCentimeter, UMillimeter }
 
- Public Types inherited from LibBoard::ShapeList
enum  Direction { Top, Right, Bottom, Left }
 
enum  Alignment {
  AlignTop, AlignBottom, AlignCenter, AlignLeft,
  AlignRight
}
 
- Public Types inherited from LibBoard::Shape
enum  LineCap { ButtCap = 0, RoundCap, SquareCap }
 
enum  LineJoin { MiterJoin = 0, RoundJoin, BevelJoin }
 
enum  LineStyle {
  SolidStyle = 0, DashStyle, DotStyle, DashDotStyle,
  DashDotDotStyle, DashDotDotDotStyle
}
 

Public Member Functions

 Board (const Color &backgroundColor=Color::None)
 
 Board (const Board &other)
 
Boardoperator= (const Board &other)
 
Boardoperator<< (const Shape &shape)
 
Boardoperator<< (Unit unit)
 
void clear (const Color &color=Color::None)
 
void clear (unsigned char red, unsigned char green, unsigned char blue)
 
Boardrotate (double angle, const Point &center)
 
Boardrotate (double angle)
 
Boardtranslate (double dx, double dy)
 
Boardscale (double sx, double sy)
 
Boardscale (double s)
 
Board rotated (double angle, const Point &center)
 
Board rotated (double angle)
 
Board translated (double dx, double dy)
 
Board scaled (double sx, double sy)
 
Board scaled (double s)
 
void setUnit (Unit unit)
 
void setUnit (double factor, Unit unit)
 
void drawDot (double x, double y, int depth=-1)
 
void drawLine (double x1, double y1, double x2, double y2, int depth=-1)
 
void drawArrow (double x1, double y1, double x2, double y2, bool filled=true, int depth=-1)
 
void drawTriangle (double x1, double y1, double x2, double y2, double x3, double y3, int depth=-1)
 
void drawTriangle (const Point &p1, const Point &p2, const Point &p3, int depth=-1)
 
void fillTriangle (double x1, double y1, double x2, double y2, double x3, double y3, int depth=-1)
 
void fillGouraudTriangle (const Point &p1, const Color &color1, const Point &p2, const Color &color2, const Point &p3, const Color &color3, unsigned char divisions=3, int depth=-1)
 
void fillGouraudTriangle (const double x1, const double y1, const Color &color1, const double x2, const double y2, const Color &color2, const double x3, const double y3, const Color &color3, unsigned char divisions=3, int depth=-1)
 
void fillGouraudTriangle (const Point &p1, const float brightness1, const Point &p2, const float brightness2, const Point &p3, const float brightness3, unsigned char divisions=3, int depth=-1)
 
void fillGouraudTriangle (const double x1, const double y1, const float brightness1, const double x2, const double y2, const float brightness2, const double x3, const double y3, const float brightness3, unsigned char divisions=3, int depth=-1)
 
void fillTriangle (const Point &p1, const Point &p2, const Point &p3, int depth=-1)
 
void drawRectangle (double left, double top, double width, double height, int depth=-1)
 
void fillRectangle (double left, double top, double width, double height, int depth=-1)
 
void drawCircle (double x, double y, double radius, int depth=-1)
 
void fillCircle (double x, double y, double radius, int depth=-1)
 
void drawEllipse (double x, double y, double xRadius, double yRadius, int depth=-1)
 
void fillEllipse (double x, double y, double xRadius, double yRadius, int depth=-1)
 
void drawPolyline (const std::vector< Point > &points, int depth=-1)
 
void drawClosedPolyline (const std::vector< Point > &points, int depth=-1)
 
void fillPolyline (const std::vector< Point > &points, int depth=-1)
 
void drawText (double x, double y, const char *text, int depth=-1)
 
void drawText (double x, double y, const std::string &str, int depth=-1)
 
BoardsetFont (const Fonts::Font font, double fontSize)
 
BoardsetFontSize (double fontSize)
 
BoardsetPenColorRGBi (unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255)
 
BoardsetPenColorRGBf (float red, float green, float blue, float alpha=1.0f)
 
BoardsetPenColor (const Color &color)
 
BoardsetFillColorRGBi (unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255)
 
BoardsetFillColorRGBf (float red, float green, float blue, float alpha=1.0f)
 
BoardsetFillColor (const Color &color)
 
BoardsetLineWidth (double width)
 
BoardsetLineStyle (Shape::LineStyle style)
 
BoardsetLineCap (Shape::LineCap cap)
 
BoardsetLineJoin (Shape::LineJoin join)
 
void backgroundColor (const Color &color)
 
void drawBoundingBox (int depth=-1)
 
void setClippingRectangle (double x, double y, double width, double height)
 
void setClippingPath (const std::vector< Point > &points)
 
void setClippingPath (const Path &path)
 
void addDuplicates (const Shape &shape, std::size_t times, double dx, double dy, double scale=1.0)
 
void addDuplicates (const Shape &shape, std::size_t times, double dx, double dy, double scaleX, double scaleY, double angle=0.0)
 
void save (const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
 
void save (const char *filename, double pageWidth, double pageHeight, double margin=10.0) const
 
void saveEPS (std::ostream &out, PageSize size=Board::BoundingBox, double margin=10.0, const std::string &title=std::string()) const
 
void saveEPS (const char *filename, PageSize size=Board::BoundingBox, double margin=10.0, const std::string &title=std::string()) const
 
void saveEPS (std::ostream &out, double pageWidth, double pageHeight, double margin=10.0, const std::string &title=std::string()) const
 
void saveEPS (const char *filename, double pageWidth, double pageHeight, double margin=10.0, const std::string &title=std::string()) const
 
void saveFIG (const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
 
void saveFIG (std::ostream &out, PageSize size=Board::BoundingBox, double margin=10.0) const
 
void saveFIG (const char *filename, double pageWidth, double pageHeight, double margin=10.0) const
 
void saveFIG (std::ostream &out, double pageWidth, double pageHeight, double margin=10.0) const
 
void saveSVG (const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
 
void saveSVG (std::ostream &out, PageSize size=Board::BoundingBox, double margin=10.0) const
 
void saveSVG (const char *filename, double pageWidth, double pageHeight, double margin=10.0) const
 
void saveSVG (std::ostream &out, double pageWidth, double pageHeight, double margin=10.0) const
 
void saveTikZ (const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
 
void saveTikZ (std::ostream &out, PageSize size=Board::BoundingBox, double margin=10.0) const
 
void saveTikZ (const char *filename, double pageWidth, double pageHeight, double margin=10.0) const
 
void saveTikZ (std::ostream &out, double pageWidth, double pageHeight, double margin=10.0) const
 
- Public Member Functions inherited from LibBoard::ShapeList
 ShapeList (int depth=-1)
 
 ShapeList (const ShapeList &other)
 
ShapeListoperator= (const ShapeList &other)
 
 ShapeList (const Shape &shape, unsigned int times, double dx, double dy, double scale)
 
 ShapeList (const Shape &shape, unsigned int times, double dx, double dy, double scaleX, double scaleY, double angle)
 
const std::string & name () const
 
ShapeListclear ()
 
ShapeListrotate (double angle, const Point &center)
 
ShapeList rotated (double angle, const Point &center)
 
ShapeListrotate (double angle)
 
ShapeList rotated (double angle)
 
ShapeListtranslate (double dx, double dy)
 
ShapeList translated (double dx, double dy)
 
ShapeListscale (double sx, double sy)
 
ShapeListscale (double s)
 
ShapeList scaled (double sx, double sy)
 
ShapeList scaled (double s)
 
void scaleAll (double s)
 
void flushPostscript (std::ostream &stream, const TransformEPS &transform) const
 
void flushFIG (std::ostream &stream, const TransformFIG &transform, std::map< Color, int > &colormap) const
 
void flushSVG (std::ostream &stream, const TransformSVG &transform) const
 
void flushTikZ (std::ostream &stream, const TransformTikZ &transform) const
 
Rect boundingBox () const
 
virtual int minDepth () const
 
virtual int maxDepth () const
 
void shiftDepth (int shift)
 
ShapeListclone () const
 
ShapeListoperator<< (const Shape &shape)
 
ShapeListoperator+= (const Shape &shape)
 
ShapeListappend (const Shape &shape, Direction direction, Alignment alignment)
 
GroupaddTiling (const Shape &shape, Point topLeftCorner, std::size_t columns, std::size_t rows, double spacing=0.0)
 
ShapeListinsert (const Shape &shape, int depth)
 
ShapeListdup (std::size_t copies=1)
 
template<typename T >
T & last (const std::size_t position=0)
 
Shapelast (const std::size_t position=0)
 
Shapetop ()
 
- Public Member Functions inherited from LibBoard::Shape
 Shape (Color penColor, Color fillColor, double lineWidth, LineStyle style, const LineCap cap, const LineJoin join, int depth)
 
virtual ~Shape ()
 
bool filled () const
 
virtual Point center () const
 
ShaperotateDeg (double angle, const Point &center)
 
ShaperotateDeg (double angle)
 
ShapemoveCenter (double x, double y)
 
ShapemoveCenter (Point p)
 
Rect bbox () const
 
Shapeoperator-- ()
 
Shapeoperator++ ()
 
int depth () const
 
virtual void depth (int)
 
const ColorpenColor () const
 
const ColorfillColor () const
 

Static Public Member Functions

static Group makeGrid (Point topLeft, size_t columns, size_t rows, double width, double height, Color penColor, Color fillColor, double lineWidth, const LineStyle style=SolidStyle, const LineCap cap=ButtCap, const LineJoin join=MiterJoin, int depth=-1)
 

Static Public Attributes

static const double Degree = 3.14159265358979323846 / 180.0
 

Protected Attributes

State _state
 
Color _backgroundColor
 
Path _clippingPath
 
- Protected Attributes inherited from LibBoard::ShapeList
std::vector< Shape * > _shapes
 
int _nextDepth
 
- Protected Attributes inherited from LibBoard::Shape
int _depth
 
Color _penColor
 
Color _fillColor
 
double _lineWidth
 
LineStyle _lineStyle
 
LineCap _lineCap
 
LineJoin _lineJoin
 

Additional Inherited Members

- Protected Member Functions inherited from LibBoard::ShapeList
void addShape (const Shape &shape, double scaleFactor)
 
void free ()
 
- Protected Member Functions inherited from LibBoard::Shape
std::string svgProperties (const TransformSVG &transform) const
 
std::string postscriptProperties () const
 
std::string tikzProperties (const TransformTikZ &transform) const
 

Detailed Description

Class for EPS, FIG or SVG drawings.

The Board class.

Version
0.5
Examples:
examples/arithmetic.cpp, examples/arrows.cpp, examples/clipping.cpp, examples/ellipse.cpp, examples/example1.cpp, examples/example2.cpp, examples/example3.cpp, examples/example4.cpp, examples/flag.cpp, examples/graph.cpp, examples/koch.cpp, examples/line_segment.cpp, examples/line_style.cpp, examples/logo.cpp, examples/ruler.cpp, and examples/scale_ellipse.cpp.

Constructor & Destructor Documentation

LibBoard::Board::Board ( const Color backgroundColor = Color::None)

Constructs a new board and sets the background color, if any.

Parameters
backgroundColorA color for the drawing's background.
LibBoard::Board::Board ( const Board other)

Copy constructor.

Parameters
otherThe object to be copied.

Member Function Documentation

void LibBoard::Board::addDuplicates ( const Shape shape,
std::size_t  times,
double  dx,
double  dy,
double  scale = 1.0 
)

Insert duplicates of a shape, n times, starting at its current position and iterating given translations and scalings.

Parameters
shapeThe shape to be duplicated.
timesThe number of duplicates.
dxThe x shift.
dyThe y shift.
scaleA scale factor between each copy.
Examples:
examples/clipping.cpp, examples/logo.cpp, examples/ruler.cpp, and examples/scale_ellipse.cpp.

References LibBoard::Shape::clone(), LibBoard::Shape::scale(), and LibBoard::Shape::translate().

void LibBoard::Board::addDuplicates ( const Shape shape,
std::size_t  times,
double  dx,
double  dy,
double  scaleX,
double  scaleY,
double  angle = 0.0 
)

Insert duplicates of a shape, n times, starting at its current position and iterating a given translation.

Parameters
shapeThe shape to be duplicated.
timesThe number of duplicates.
dxThe x shift.
dyThe y shift.
scaleXAn x scale factor between each copy.
scaleYA y scale factor between each copy.
angleAn angular increment.

References LibBoard::Shape::clone(), LibBoard::Shape::rotate(), LibBoard::Shape::scale(), and LibBoard::Shape::translate().

void LibBoard::Board::backgroundColor ( const Color color)

Changes the background color of the whole drawing.

Parameters
colorA color (may be Color::None).

References _backgroundColor.

void LibBoard::Board::clear ( const Color color = Color::None)

Clears the board with a given background color.

Parameters
colorThe board background color (may be Color::None).
Examples:
examples/arithmetic.cpp, examples/arrows.cpp, examples/ellipse.cpp, examples/example3.cpp, examples/example4.cpp, examples/graph.cpp, examples/koch.cpp, examples/line_style.cpp, and examples/ruler.cpp.

References _backgroundColor.

void LibBoard::Board::clear ( unsigned char  red,
unsigned char  green,
unsigned char  blue 
)
inline

Clears the board and set the background color from an RGB triple.

Parameters
red
green
blue
void LibBoard::Board::drawArrow ( double  x1,
double  y1,
double  x2,
double  y2,
bool  filled = true,
int  depth = -1 
)

Draws a line from (x1,y1) to (x2,y2) with an arrow at (x2,y2).

Parameters
x1First coordinate of the first extremity.
y1Second coordinate of the first extremity.
x2First coordinate of the second extremity.
y2Second coordinate of the second extremity.
filledWhether or not the arrow is filled.
depthDepth of the line.
Examples:
examples/arrows.cpp, examples/example1.cpp, and examples/line_segment.cpp.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::lineCap, LibBoard::Board::State::lineJoin, LibBoard::Board::State::lineStyle, LibBoard::Board::State::lineWidth, and LibBoard::Board::State::penColor.

void LibBoard::Board::drawBoundingBox ( int  depth = -1)
void LibBoard::Board::drawCircle ( double  x,
double  y,
double  radius,
int  depth = -1 
)

Draws a circle.

Parameters
xFirst coordinate of the circle's center.
ySecond coordinate of the circle's center.
radiusRadius of the circle.
depthDepth of the circle.
Examples:
examples/example2.cpp.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::fillColor, LibBoard::Board::State::lineStyle, LibBoard::Board::State::lineWidth, and LibBoard::Board::State::penColor.

void LibBoard::Board::drawClosedPolyline ( const std::vector< Point > &  points,
int  depth = -1 
)
void LibBoard::Board::drawDot ( double  x,
double  y,
int  depth = -1 
)

Draws a dot at coordinates (x,y).

Parameters
xFirst coordinate of the dot.
ySecond coordinate of the dot.
depthDepth of the line.
Examples:
examples/arrows.cpp, and examples/example4.cpp.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::lineWidth, and LibBoard::Board::State::penColor.

void LibBoard::Board::drawEllipse ( double  x,
double  y,
double  xRadius,
double  yRadius,
int  depth = -1 
)

Draws an ellipse.

Parameters
xFirst coordinate of the circle's center.
ySecond coordinate of the circle's center.
radiusRadius of the circle.
depthDepth of the circle.
Examples:
examples/example2.cpp.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::fillColor, LibBoard::Board::State::lineStyle, LibBoard::Board::State::lineWidth, and LibBoard::Board::State::penColor.

void LibBoard::Board::drawLine ( double  x1,
double  y1,
double  x2,
double  y2,
int  depth = -1 
)

Draws a line from (x1,y1) to (x2,y2).

Parameters
x1First coordinate of the first extremity.
y1Second coordinate of the first extremity.
x2First coordinate of the second extremity.
y2Second coordinate of the second extremity.
depthDepth of the line.
Examples:
examples/example2.cpp, examples/line_segment.cpp, and examples/logo.cpp.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::lineCap, LibBoard::Board::State::lineJoin, LibBoard::Board::State::lineStyle, LibBoard::Board::State::lineWidth, and LibBoard::Board::State::penColor.

void LibBoard::Board::drawPolyline ( const std::vector< Point > &  points,
int  depth = -1 
)
void LibBoard::Board::drawRectangle ( double  left,
double  top,
double  width,
double  height,
int  depth = -1 
)

Draws a rectangle.

Parameters
leftFirst coordinate of the upper left corner.
topSecond coordinate of the upper left corner.
widthWidth of the rectangle.
heightHeight of the rectangle.
depthDepth of the rectangle.
Examples:
examples/arithmetic.cpp, examples/example1.cpp, examples/example2.cpp, examples/line_segment.cpp, and examples/line_style.cpp.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::fillColor, LibBoard::Board::State::lineCap, LibBoard::Board::State::lineJoin, LibBoard::Board::State::lineStyle, LibBoard::Board::State::lineWidth, and LibBoard::Board::State::penColor.

void LibBoard::Board::drawText ( double  x,
double  y,
const char *  text,
int  depth = -1 
)

Draws a string of text.

Parameters
xThe first coordinates of the lower left corner.
yThe second coordinates of the lower left corner.
textThe text.
depthThe depth of the text.
Examples:
examples/arithmetic.cpp, examples/arrows.cpp, examples/example2.cpp, and examples/ruler.cpp.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::font, LibBoard::Board::State::fontSize, and LibBoard::Board::State::penColor.

void LibBoard::Board::drawText ( double  x,
double  y,
const std::string &  str,
int  depth = -1 
)

Draws a string of text.

Parameters
xThe first coordinates of the lower left corner.
yThe second coordinates of the lower left corner.
textThe text.
depthThe depth of the text.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::font, LibBoard::Board::State::fontSize, and LibBoard::Board::State::penColor.

void LibBoard::Board::drawTriangle ( double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3,
int  depth = -1 
)

Draws a triangle.

Parameters
x1First coordinate of the first vertex.
y1Second coordinate of the first vertex.
x2First coordinate of the second vertex.
y3Second coordinate of the second vertex.
x3First coordinate of the third vertex.
y3Second coordinate of the third vertex.
depthDepth of the triangle.
Examples:
examples/example2.cpp.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::fillColor, LibBoard::Board::State::lineCap, LibBoard::Board::State::lineJoin, LibBoard::Board::State::lineStyle, LibBoard::Board::State::lineWidth, and LibBoard::Board::State::penColor.

void LibBoard::Board::drawTriangle ( const Point p1,
const Point p2,
const Point p3,
int  depth = -1 
)
void LibBoard::Board::fillCircle ( double  x,
double  y,
double  radius,
int  depth = -1 
)

Draws a circle filled with the current pen color.

Parameters
xFirst coordinate of the circle's center.
ySecond coordinate of the circle's center.
radiusRadius of the circle.
depthDepth of the circle.
Examples:
examples/example1.cpp, examples/example2.cpp, and examples/line_segment.cpp.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::lineStyle, and LibBoard::Board::State::penColor.

void LibBoard::Board::fillEllipse ( double  x,
double  y,
double  xRadius,
double  yRadius,
int  depth = -1 
)

Draws an ellipse filled with the current pen color.

Parameters
xFirst coordinate of the circle's center.
ySecond coordinate of the circle's center.
xRadiusX axis radius of the ellipse.
yRadiusY axis radius of the ellipse.
depthDepth of the circle.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::lineStyle, and LibBoard::Board::State::penColor.

void LibBoard::Board::fillGouraudTriangle ( const Point p1,
const Color color1,
const Point p2,
const Color color2,
const Point p3,
const Color color3,
unsigned char  divisions = 3,
int  depth = -1 
)

Draws a triangle with Gouraud-like shaded colors.

Parameters
p1
color1
p2
color2
p3
color3
divisionsnumber of triangle subdivisions.
depthThe depth of the triangle.
Examples:
examples/example1.cpp, and examples/example3.cpp.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Point::x, and LibBoard::Point::y.

Referenced by fillGouraudTriangle().

void LibBoard::Board::fillGouraudTriangle ( const double  x1,
const double  y1,
const Color color1,
const double  x2,
const double  y2,
const Color color2,
const double  x3,
const double  y3,
const Color color3,
unsigned char  divisions = 3,
int  depth = -1 
)
inline

Draws a triangle with Gouraud-like shaded colors.

Parameters
x1
y1
color1
x2
y2
color2
x3
y3
color3
divisions
depth
void LibBoard::Board::fillGouraudTriangle ( const Point p1,
const float  brightness1,
const Point p2,
const float  brightness2,
const Point p3,
const float  brightness3,
unsigned char  divisions = 3,
int  depth = -1 
)

Draws a triangle with a Gouraud-like shaded color according to the current fill color and a brightness value given for each vertex.

Parameters
p1
brightness1
p2
brightness2
p3
brightness3
divisionsnumber of triangle subdivisions.
depthThe depth of the triangle.

References _state, fillGouraudTriangle(), LibBoard::Board::State::penColor, LibBoard::Point::x, and LibBoard::Point::y.

void LibBoard::Board::fillGouraudTriangle ( const double  x1,
const double  y1,
const float  brightness1,
const double  x2,
const double  y2,
const float  brightness2,
const double  x3,
const double  y3,
const float  brightness3,
unsigned char  divisions = 3,
int  depth = -1 
)
inline

Draws a triangle with a Gouraud-like shaded color according to the current fill color and a brightness value given for each vertex.

Parameters
x1
y1
brightness1
x2
y2
brightness2
x3
y3
brightness3
divisions
depth
void LibBoard::Board::fillPolyline ( const std::vector< Point > &  points,
int  depth = -1 
)
void LibBoard::Board::fillRectangle ( double  left,
double  top,
double  width,
double  height,
int  depth = -1 
)

Draws a rectangle filled with the current pen color.

Parameters
leftFirst coordinate of the upper left corner.
topSecond coordinate of the upper left corner.
widthWidth of the rectangle.
heightHeight of the rectangle.
depthDepth of the rectangle.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::lineCap, LibBoard::Board::State::lineJoin, LibBoard::Board::State::lineStyle, and LibBoard::Board::State::penColor.

void LibBoard::Board::fillTriangle ( double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3,
int  depth = -1 
)

Draws a filled triangle.

Parameters
x1First coordinate of the first vertex.
y1Second coordinate of the first vertex.
x2First coordinate of the second vertex.
y3Second coordinate of the second vertex.
x3First coordinate of the third vertex.
y3Second coordinate of the third vertex.
depthDepth of the triangle.

References LibBoard::ShapeList::_nextDepth, LibBoard::ShapeList::_shapes, _state, LibBoard::Board::State::lineCap, LibBoard::Board::State::lineJoin, LibBoard::Board::State::lineStyle, and LibBoard::Board::State::penColor.

void LibBoard::Board::fillTriangle ( const Point p1,
const Point p2,
const Point p3,
int  depth = -1 
)
Group LibBoard::Board::makeGrid ( Point  topLeft,
size_t  columns,
size_t  rows,
double  width,
double  height,
Color  penColor,
Color  fillColor,
double  lineWidth,
const LineStyle  style = SolidStyle,
const LineCap  cap = ButtCap,
const LineJoin  join = MiterJoin,
int  depth = -1 
)
static

Build a grid with specified number of rows and columns and a given size.

Parameters
topLeftCoordinates of the top left point of the grid.
columns
rows
width
height
penColor
fillColor
lineWidth
style
cap
join
depth
Returns
The gris as a group.

References LibBoard::Line::translate(), LibBoard::Point::x, and LibBoard::Point::y.

Board & LibBoard::Board::operator<< ( const Shape shape)

Add a shape to the board, using the current unit factor.

Parameters
shapeA shape. (Might be a list of shapes, actually!)
Returns
The board itself, as a ShapeList.

References _state, and LibBoard::Board::State::unitFactor.

Board & LibBoard::Board::operator<< ( Unit  unit)

Overloaded operator to set the current unit.

Parameters
unitThe unit to be used in next drawing functions and shape insertions.
Returns
The board itself, as a ShapeList.

References setUnit().

Board & LibBoard::Board::operator= ( const Board other)

The operator =

Parameters
otherThe object to be copied.
Returns
A reference to the left operand.

References LibBoard::ShapeList::_shapes, and LibBoard::ShapeList::free().

Board & LibBoard::Board::rotate ( double  angle,
const Point center 
)
virtual

Rotate the shape around a given center of rotation.

Parameters
angleThe rotation angle in radian.
centerThe center of rotation.
Returns
A reference to the shape itself.

Implements LibBoard::Shape.

References LibBoard::ShapeList::rotate(), and LibBoard::Path::rotate().

Board & LibBoard::Board::rotate ( double  angle)
virtual

Rotate the shape around its center.

Parameters
angleThe rotation angle in radian.
Returns
A reference to the shape itself.

Implements LibBoard::Shape.

References LibBoard::Shape::center(), LibBoard::ShapeList::rotate(), and LibBoard::Path::rotate().

void LibBoard::Board::save ( const char *  filename,
PageSize  size = Board::BoundingBox,
double  margin = 10.0 
) const

Save the drawing in an EPS, XFIG of SVG file depending on the filename extension. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
filenamePath of the file to be created.
sizePage size (Either BoundingBox (default), A4 or Letter).
marginMinimal margin around the figure in the page, in millimeters.
Examples:
examples/arithmetic.cpp.
void LibBoard::Board::save ( const char *  filename,
double  pageWidth,
double  pageHeight,
double  margin = 10.0 
) const

Save the drawing in an EPS, XFIG of SVG file depending on the filename extension. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
filenamePath of the file to be created.
pageWidthWidth of the page in millimeters.
pageHeightHeight of the page in millimeters.
marginMinimal margin around the figure in the page, in millimeters.

References saveEPS(), saveFIG(), saveSVG(), and saveTikZ().

void LibBoard::Board::saveEPS ( std::ostream &  out,
PageSize  size = Board::BoundingBox,
double  margin = 10.0,
const std::string &  title = std::string() 
) const

Writes the drawing in a stream as an EPS file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
outThe output stream.
sizePage size (Either BoundingBox (default), A4 or Letter).
marginMinimal margin around the figure in the page, in millimeters.
titleDocument title (Postscript comment).
Examples:
examples/arrows.cpp, examples/clipping.cpp, examples/ellipse.cpp, examples/example1.cpp, examples/example2.cpp, examples/example3.cpp, examples/example4.cpp, examples/flag.cpp, examples/graph.cpp, examples/koch.cpp, examples/line_style.cpp, examples/logo.cpp, examples/ruler.cpp, and examples/scale_ellipse.cpp.

Referenced by save(), and saveEPS().

void LibBoard::Board::saveEPS ( const char *  filename,
PageSize  size = Board::BoundingBox,
double  margin = 10.0,
const std::string &  title = std::string() 
) const

Saves the drawing in an EPS file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
filenameThe EPS file name.
sizePage size (Either BoundingBox (default), A4 or Letter).
marginMinimal margin around the figure in the page, in millimeters.

References saveEPS().

void LibBoard::Board::saveEPS ( std::ostream &  out,
double  pageWidth,
double  pageHeight,
double  margin = 10.0,
const std::string &  title = std::string() 
) const

Writes the drawing in a stream as an EPS file. The drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
outThe output stream.
sizePage size (Either BoundingBox (default), A4 or Letter).
pageWidthWidth of the page in millimeters.
pageHeightHeight of the page in millimeters.
marginMinimal margin around the figure in the page, in millimeters.

References _backgroundColor, LibBoard::ShapeList::_shapes, LibBoard::Shape::bbox(), LibBoard::ShapeList::boundingBox(), LibBoard::Path::boundingBox(), LibBoard::Polyline::flushPostscript(), LibBoard::Rect::height, LibBoard::Rect::left, LibBoard::Rect::top, and LibBoard::Rect::width.

void LibBoard::Board::saveEPS ( const char *  filename,
double  pageWidth,
double  pageHeight,
double  margin = 10.0,
const std::string &  title = std::string() 
) const

Saves the drawing in an EPS file. The drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
filenameThe EPS file name.
sizePage size (Either BoundingBox (default), A4 or Letter).
pageWidthWidth of the page in millimeters.
pageHeightHeight of the page in millimeters.
marginMinimal margin around the figure in the page, in millimeters.

References saveEPS().

void LibBoard::Board::saveFIG ( const char *  filename,
PageSize  size = Board::BoundingBox,
double  margin = 10.0 
) const

Saves the drawing in an XFig file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
filenameThe name of the FIG file.
sizePage size (Either BoundingBox (default), A4 or Letter).
marginMinimal margin around the figure in the page, in millimeters.
Examples:
examples/arrows.cpp, examples/ellipse.cpp, examples/example1.cpp, examples/example2.cpp, examples/example3.cpp, examples/example4.cpp, examples/graph.cpp, examples/koch.cpp, examples/line_style.cpp, examples/logo.cpp, examples/ruler.cpp, and examples/scale_ellipse.cpp.

Referenced by save(), and saveFIG().

void LibBoard::Board::saveFIG ( std::ostream &  out,
PageSize  size = Board::BoundingBox,
double  margin = 10.0 
) const

Saves the drawing in a stream as an XFig file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
outThe output stream.
sizePage size (Either BoundingBox (default), A4 or Letter).
marginMinimal margin around the figure in the page, in millimeters.

References saveFIG().

void LibBoard::Board::saveFIG ( const char *  filename,
double  pageWidth,
double  pageHeight,
double  margin = 10.0 
) const

Saves the drawing in an XFig file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
filenameThe XFig file name.
sizePage size (Either BoundingBox (default), A4 or Letter).
pageWidthWidth of the page in millimeters.
pageHeightHeight of the page in millimeters.
marginMinimal margin around the figure in the page, in millimeters.

References saveFIG().

void LibBoard::Board::saveFIG ( std::ostream &  out,
double  pageWidth,
double  pageHeight,
double  margin = 10.0 
) const

Saves the drawing in a stream as an XFig file. The drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
outThe output stream.
sizePage size (Either BoundingBox (default), A4 or Letter).
pageWidthWidth of the page in millimeters.
pageHeightHeight of the page in millimeters.
marginMinimal margin around the figure in the page, in millimeters.

References _backgroundColor, LibBoard::ShapeList::_shapes, LibBoard::Shape::bbox(), LibBoard::ShapeList::boundingBox(), and LibBoard::Rectangle::flushFIG().

void LibBoard::Board::saveSVG ( const char *  filename,
PageSize  size = Board::BoundingBox,
double  margin = 10.0 
) const

Save the drawing in an SVG file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
filenameThe name of the file.
sizePage size (Either BoundingBox (default), A4 or Letter).
marginMinimal margin around the figure in the page, in millimeters.
Examples:
examples/arrows.cpp, examples/clipping.cpp, examples/ellipse.cpp, examples/example1.cpp, examples/example2.cpp, examples/example3.cpp, examples/example4.cpp, examples/flag.cpp, examples/graph.cpp, examples/koch.cpp, examples/line_segment.cpp, examples/line_style.cpp, examples/logo.cpp, examples/ruler.cpp, and examples/scale_ellipse.cpp.

Referenced by save(), and saveSVG().

void LibBoard::Board::saveSVG ( std::ostream &  out,
PageSize  size = Board::BoundingBox,
double  margin = 10.0 
) const

Saves the drawing in a stream as an SVG file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
outThe output stream.
sizePage size (Either BoundingBox (default), A4 or Letter).
marginMinimal margin around the figure in the page, in millimeters.

References saveSVG().

void LibBoard::Board::saveSVG ( const char *  filename,
double  pageWidth,
double  pageHeight,
double  margin = 10.0 
) const

Saves the drawing in an SVG file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
filenameThe SVG file name.
sizePage size (Either BoundingBox (default), A4 or Letter).
pageWidthWidth of the page in millimeters.
pageHeightHeight of the page in millimeters.
marginMinimal margin around the figure in the page, in millimeters.

References saveSVG().

void LibBoard::Board::saveSVG ( std::ostream &  out,
double  pageWidth,
double  pageHeight,
double  margin = 10.0 
) const

Saves the drawing in a stream as an SVG file. The drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
outThe output stream.
sizePage size (Either BoundingBox (default), A4 or Letter).
pageWidthWidth of the page in millimeters.
pageHeightHeight of the page in millimeters.
marginMinimal margin around the figure in the page, in millimeters.

References _backgroundColor, LibBoard::ShapeList::_shapes, LibBoard::Shape::bbox(), LibBoard::ShapeList::boundingBox(), LibBoard::Path::boundingBox(), LibBoard::Rectangle::flushSVG(), LibBoard::Rect::height, and LibBoard::Rect::width.

void LibBoard::Board::saveTikZ ( const char *  filename,
PageSize  size = Board::BoundingBox,
double  margin = 10.0 
) const

Save the drawing in an TikZ file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
filenameThe name of the file.
sizePage size (Either BoundingBox (default), A4 or Letter).
marginMinimal margin around the figure in the page, in millimeters.
Examples:
examples/flag.cpp.

Referenced by save(), and saveTikZ().

void LibBoard::Board::saveTikZ ( std::ostream &  out,
PageSize  size = Board::BoundingBox,
double  margin = 10.0 
) const

Save the drawing in a stream as TikZ file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
outThe output stream.
sizePage size (Either BoundingBox (default), A4 or Letter).
marginMinimal margin around the figure in the page, in millimeters.

References saveTikZ().

void LibBoard::Board::saveTikZ ( const char *  filename,
double  pageWidth,
double  pageHeight,
double  margin = 10.0 
) const

Save the drawing in an TikZ file. When a size is given (not BoundingBox), the drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
filenameThe name of the file.
sizePage size (Either BoundingBox (default), A4 or Letter).
pageWidthWidth of the page in millimeters.
pageHeightHeight of the page in millimeters.
marginMinimal margin around the figure in the page, in millimeters.

References saveTikZ().

void LibBoard::Board::saveTikZ ( std::ostream &  out,
double  pageWidth,
double  pageHeight,
double  margin = 10.0 
) const

Save the drawing in a stream as a TikZ file. The drawing is scaled (up or down) so that it fits within the dimension while keeping its aspect ratio.

Parameters
outThe output stream.
sizePage size (Either BoundingBox (default), A4 or Letter).
pageWidthWidth of the page in millimeters.
pageHeightHeight of the page in millimeters.
marginMinimal margin around the figure in the page, in millimeters.

References _backgroundColor, LibBoard::ShapeList::_shapes, LibBoard::ShapeList::boundingBox(), LibBoard::Path::boundingBox(), and LibBoard::Rectangle::flushTikZ().

Board & LibBoard::Board::scale ( double  sx,
double  sy 
)
virtual

Scale the shape along the x an y axis.

Parameters
sxThe scaling factor along the x axis.
syThe scaling factor along the y axis.
Returns
The shape itself.

Implements LibBoard::Shape.

Examples:
examples/arrows.cpp, examples/clipping.cpp, examples/example1.cpp, examples/example3.cpp, examples/example4.cpp, and examples/logo.cpp.

References LibBoard::Path::center(), LibBoard::Shape::center(), LibBoard::ShapeList::scale(), LibBoard::Path::scale(), LibBoard::Path::translate(), LibBoard::Point::x, and LibBoard::Point::y.

Board & LibBoard::Board::scale ( double  s)
virtual

Scale the shape along both axis.

Parameters
sThe scaling factor along both axis.
Returns
The shape itself.

Implements LibBoard::Shape.

References LibBoard::Path::center(), LibBoard::Shape::center(), LibBoard::ShapeList::scale(), LibBoard::Path::scale(), LibBoard::Path::translate(), LibBoard::Point::x, and LibBoard::Point::y.

void LibBoard::Board::setClippingPath ( const std::vector< Point > &  points)

Define a clipping path for the whole drawing.

Parameters
pointsA path.

References _state.

void LibBoard::Board::setClippingPath ( const Path path)

Define a clipping path for the whole drawing.

Parameters
pointsA path.

References _state, and LibBoard::Path::pop_back().

void LibBoard::Board::setClippingRectangle ( double  x,
double  y,
double  width,
double  height 
)

Define a clipping rectangle for the whole drawing.

Parameters
x
y
width
height
Examples:
examples/flag.cpp.

References _state.

Board & LibBoard::Board::setFillColor ( const Color color)

Changes the current fill color.

In order to use no fill color, one may set this color to Color::None.

Parameters
colorThe fill color.
Returns
The board itself.
Examples:
examples/example2.cpp, and examples/line_style.cpp.

References _state, and LibBoard::Board::State::fillColor.

Board & LibBoard::Board::setFillColorRGBf ( float  red,
float  green,
float  blue,
float  alpha = 1.0f 
)

Changes the current fill color.

Parameters
redRed component.
greenGreen component.
blueBlue component.
alphaThe opacity.
Returns
The board itself.
Examples:
examples/example2.cpp.

References _state, and LibBoard::Board::State::fillColor.

Board & LibBoard::Board::setFillColorRGBi ( unsigned char  red,
unsigned char  green,
unsigned char  blue,
unsigned char  alpha = 255 
)

Changes the current fill color.

Parameters
redRed component.
greenGreen component.
blueBlue component.
alphaThe opacity.
Returns
The board itself.
Examples:
examples/example2.cpp.

References _state, and LibBoard::Board::State::fillColor.

Board & LibBoard::Board::setFont ( const Fonts::Font  font,
double  fontSize 
)

Changes the current font and font size.

Parameters
fontThe name of the font.
fontSizeThe new font size. (The unit is 1pt = 1/72 in).
Returns
The board itself.
Examples:
examples/arrows.cpp, and examples/example2.cpp.

References _state, LibBoard::Board::State::font, and LibBoard::Board::State::fontSize.

Board & LibBoard::Board::setFontSize ( double  fontSize)

Changes the font size.

Parameters
fontSizeThe new font size. (The unit is 1pt = 1/72 in).
Returns
The board itself.

References _state, and LibBoard::Board::State::fontSize.

Board& LibBoard::Board::setLineCap ( Shape::LineCap  cap)
inline

Set the line cap style.

Parameters
capThe cap-style which can be Shape::ButtCap, Shape::RoundCap or Shape::SquareCap.
Returns
The board itself.
Examples:
examples/logo.cpp.
Board& LibBoard::Board::setLineJoin ( Shape::LineJoin  join)
inline

Set the line joine style.

Parameters
capThe join-style which can be Shape::MiterJoin, Shape::RoundJoin or Shape::BevelJoin.
Returns
The board itself.
Examples:
examples/example2.cpp, and examples/logo.cpp.
Board& LibBoard::Board::setLineStyle ( Shape::LineStyle  style)

Changes the current line style.

Parameters
styleThe new line style.
Returns
The board itself.
Examples:
examples/arrows.cpp, examples/line_style.cpp, and examples/logo.cpp.
Board & LibBoard::Board::setLineWidth ( double  width)

Changes the current line thickness (1/72 inche unit).

Parameters
widthThe new line thickness.
Returns
The board itself.
Examples:
examples/arithmetic.cpp, examples/arrows.cpp, examples/example1.cpp, examples/example2.cpp, examples/line_segment.cpp, examples/line_style.cpp, examples/logo.cpp, examples/ruler.cpp, and examples/scale_ellipse.cpp.

References _state, and LibBoard::Board::State::lineWidth.

Board & LibBoard::Board::setPenColor ( const Color color)

Changes the current pen color.

In order to use no pen, one may set the pen color to Color::None.

Parameters
colorThe pen color.
Returns
The board itself.
Examples:
examples/arithmetic.cpp, and examples/example2.cpp.

References _state, and LibBoard::Board::State::penColor.

Board & LibBoard::Board::setPenColorRGBf ( float  red,
float  green,
float  blue,
float  alpha = 1.0f 
)

Changes the current pen color.

Parameters
redRed
green
blue
alpha
Returns
The board itself.
Examples:
examples/arrows.cpp, and examples/example4.cpp.

References _state, and LibBoard::Board::State::penColor.

Board & LibBoard::Board::setPenColorRGBi ( unsigned char  red,
unsigned char  green,
unsigned char  blue,
unsigned char  alpha = 255 
)

Changes the current pen color.

Parameters
redRed component.
greenGreen component.
blueBlue component.
Returns
The board itself.
Examples:
examples/arithmetic.cpp, examples/arrows.cpp, examples/example1.cpp, examples/example2.cpp, examples/example3.cpp, examples/line_segment.cpp, and examples/logo.cpp.

References _state, and LibBoard::Board::State::penColor.

void LibBoard::Board::setUnit ( Unit  unit)

Set the unit used by the drawSomething methods.

Parameters
unitThe unit to be used in { PT, IN, CM, MM }.
Examples:
examples/arrows.cpp.

References _state, and LibBoard::Board::State::unitFactor.

Referenced by operator<<().

void LibBoard::Board::setUnit ( double  factor,
Unit  unit 
)

Set the unit used by the drawSomething methods.

Parameters
factorThe factor of the unit.
unitThe unit to be used in { PT, IN, CM, MM }.

References _state, and LibBoard::Board::State::unitFactor.

Board & LibBoard::Board::translate ( double  dx,
double  dy 
)
virtual

Translate the shape by a given offset.

Parameters
dxThe x offset.
dyThe y offset.
Returns
A reference to the shape itself.

Implements LibBoard::Shape.

References LibBoard::ShapeList::translate(), and LibBoard::Path::translate().

Member Data Documentation

Color LibBoard::Board::_backgroundColor
protected

The color of the background.

Referenced by backgroundColor(), clear(), saveEPS(), saveFIG(), saveSVG(), and saveTikZ().

State LibBoard::Board::_state
protected

The documentation for this class was generated from the following files: