27 #ifndef _BOARD_BOARD_H_ 
   28 #define _BOARD_BOARD_H_ 
   34 #include "BoardConfig.h" 
   52   enum PageSize { BoundingBox = 0,
 
   53                   A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
 
   54                   Letter, Legal, Executive };
 
   56   enum Unit { UPoint, UInche, UCentimeter, UMillimeter };
 
   57   static const double Degree;
 
   59   enum AspectRatioFlag { IgnoreAspectRatio, KeepAspectRatio };
 
  101   void clear( 
const Color & color = Color::Null );
 
  110   inline void clear( 
unsigned char red, 
unsigned char green, 
unsigned char blue );
 
  122   Board rotated( 
double angle, 
const Point & center );
 
  124   Board rotated( 
double angle );
 
  126   Board translated( 
double dx, 
double dy );
 
  128   Board scaled( 
double sx, 
double sy );
 
  130   Board scaled( 
double s );
 
  146   void setUnit( 
double factor, Unit unit );
 
  155   void drawDot( 
double x, 
double y, 
int depth = -1 );
 
  166   void drawLine( 
double x1, 
double y1, 
double x2, 
double y2,
 
  188   void drawArrow( 
double x1, 
double y1, 
double x2, 
double y2, 
int depth = -1 );
 
  211                      double x2, 
double y2,
 
  212                      double x3, 
double y3,
 
  240                      double x2, 
double y2,
 
  241                      double x3, 
double y3,
 
  257                             const Color & color1,
 
  259                             const Color & color2,
 
  261                             const Color & color3,
 
  262                             unsigned char divisions = 3,
 
  281                                    const Color & color1,
 
  282                                    const double x2, 
const double y2,
 
  283                                    const Color & color2,
 
  284                                    const double x3, 
const double y3,
 
  285                                    const Color & color3,
 
  286                                    unsigned char divisions = 3,
 
  302                             const float brightness1,
 
  304                             const float brightness2,
 
  306                             const float brightness3,
 
  307                             unsigned char divisions = 3,
 
  327                                    const float brightness1,
 
  328                                    const double x2, 
const double y2,
 
  329                                    const float brightness2,
 
  330                                    const double x3, 
const double y3,
 
  331                                    const float brightness3,
 
  332                                    unsigned char divisions = 3,
 
  359                       double width, 
double height,
 
  380                       double width, 
double height,
 
  399   void drawCircle( 
double x, 
double y, 
double radius,
 
  410   void fillCircle( 
double x, 
double y, 
double radius,
 
  422                     double xRadius, 
double yRadius,
 
  435                     double xRadius, 
double yRadius,
 
  473   void drawText( 
double x, 
double y, 
const char * text, 
int depth = -1 );
 
  492   void drawText( 
double x, 
double y, 
const std::string & str, 
int depth = -1 );
 
  501   void drawText( 
Point p, 
const std::string & str, 
int depth = -1 );
 
  510   Board & 
setFont( 
const Fonts::Font font, 
double fontSize );
 
  531                            unsigned char alpha = 255 );
 
  545                             float alpha = 1.0f );
 
  569                             unsigned char alpha = 255 );
 
  687                       double scale = 1.0 );
 
  703                       double dx, 
double dy,
 
  704                       double scaleX, 
double scaleY,
 
  705                       double angle = 0.0 );
 
  717   void save( 
const char * filename, PageSize size = Board::BoundingBox, 
double margin = 0.0, Unit unit = UMillimeter ) 
const;
 
  730   void save(
const char * filename, 
double pageWidth, 
double pageHeight, 
double margin = 0.0, Unit unit = UMillimeter ) 
const;
 
  742   void saveEPS( std::ostream & out, PageSize size = Board::BoundingBox, 
double margin = 0.0, Unit unit = UMillimeter, 
const std::string & title = std::string() ) 
const ;
 
  754   void saveEPS( 
const char * filename, PageSize size = Board::BoundingBox, 
double margin = 0.0, Unit unit = UMillimeter, 
const std::string & title = std::string() ) 
const ;
 
  768   void saveEPS( std::ostream & out, 
double pageWidth, 
double pageHeight, 
double margin = 0.0, Unit unit = UMillimeter, 
const std::string & title = std::string() ) 
const ;
 
  781   void saveEPS( 
const char * filename, 
double pageWidth, 
double pageHeight, 
double margin = 0.0, Unit unit = UMillimeter, 
const std::string & title = std::string()  ) 
const ;
 
  792   void saveFIG( 
const char * filename, PageSize size = Board::BoundingBox, 
double margin = 0.0, Unit unit = UMillimeter ) 
const;
 
  803   void saveFIG( std::ostream & out, PageSize size = Board::BoundingBox, 
double margin = 0.0, Unit unit = UMillimeter ) 
const;
 
  816   void saveFIG( 
const char * filename, 
double pageWidth, 
double pageHeight, 
double margin = 0.0, Unit unit = UMillimeter ) 
const ;
 
  829   void saveFIG( std::ostream & out, 
double pageWidth, 
double pageHeight, 
double margin = 0.0, Unit unit = UMillimeter ) 
const ;
 
  840   void saveSVG( 
const char * filename, PageSize size = Board::BoundingBox, 
double margin = 0.0, Unit unit = UMillimeter ) 
const;
 
  851   void saveSVG( std::ostream & out, PageSize size = Board::BoundingBox, 
double margin = 0.0, Unit unit = UMillimeter ) 
const;
 
  864   void saveSVG( 
const char * filename, 
double pageWidth, 
double pageHeight, 
double margin = 0.0, Unit unit = UMillimeter ) 
const ;
 
  877   void saveSVG( std::ostream & out, 
double pageWidth, 
double pageHeight, 
double margin = 0.0, Unit unit = UMillimeter) 
const ;
 
  887   void saveTikZ( 
const char * filename, PageSize size = Board::BoundingBox, 
double margin = 0.0 ) 
const;
 
  897   void saveTikZ( std::ostream & out, PageSize size = Board::BoundingBox, 
double margin = 0.0 ) 
const;
 
  909   void saveTikZ( 
const char * filename, 
double pageWidth, 
double pageHeight, 
double margin = 0.0 ) 
const ;
 
  921   void saveTikZ( std::ostream & out, 
double pageWidth, 
double pageHeight, 
double margin = 0.0 ) 
const ;
 
  943                         size_t columns, 
size_t rows,
 
  944                         double width, 
double height,
 
  948                         const LineStyle style = SolidStyle,
 
  949                         const LineCap cap = ButtCap,
 
  950                         const LineJoin join = MiterJoin,
 
  968   static double toMillimeter( 
double x, Unit unit);
 
  992 #include "board/Board.ih" 
void drawRectangle(double left, double top, double width, double height, int depth=-1)
Definition: Board.cpp:383
 
Abstract structure for a 2D shape. 
Definition: Shapes.h:62
 
Board & setLineWidth(double width)
Definition: Board.cpp:271
 
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=0.0, Unit unit=UMillimeter) const 
Definition: Board.cpp:1045
 
Board & operator<<(const Shape &shape)
Definition: Board.cpp:115
 
Board & rotate(double angle, const Point ¢er)
Definition: Board.cpp:133
 
void drawArrow(double x1, double y1, double x2, double y2, int depth=-1)
Definition: Board.cpp:343
 
Board & setFillColorRGBi(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255)
Definition: Board.cpp:247
 
Structure representing an RGB triple. 
Definition: Color.h:39
 
void drawText(double x, double y, const char *text, int depth=-1)
Definition: Board.cpp:657
 
Class for EPS, FIG or SVG drawings. 
Definition: Board.h:48
 
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)
Definition: Board.cpp:1205
 
void fillEllipse(double x, double y, double xRadius, double yRadius, int depth=-1)
Definition: Board.cpp:477
 
double fontSize
Definition: Board.h:983
 
void saveTikZ(const char *filename, PageSize size=Board::BoundingBox, double margin=0.0) const 
Definition: Board.cpp:1157
 
void drawTriangle(double x1, double y1, double x2, double y2, double x3, double y3, int depth=-1)
Definition: Board.cpp:534
 
void saveFIG(const char *filename, PageSize size=Board::BoundingBox, double margin=0.0, Unit unit=UMillimeter) const 
Definition: Board.cpp:923
 
Board & setLineJoin(Shape::LineJoin join)
 
Shape::LineJoin lineJoin
Definition: Board.h:981
 
void setClippingPath(const std::vector< Point > &points)
Definition: Board.cpp:728
 
void save(const char *filename, PageSize size=Board::BoundingBox, double margin=0.0, Unit unit=UMillimeter) const 
Definition: Board.cpp:1296
 
Board & operator=(const Board &other)
Definition: Board.cpp:99
 
The Point structure. @copyright This source code is part of the Board project, a C++ library whose pu...
 
Classes ShapeList and Group. 
 
A group of shapes. A group is basically a ShapeList except that when rendered in either an SVG of a F...
Definition: ShapeList.h:304
 
void fillTriangle(double x1, double y1, double x2, double y2, double x3, double y3, int depth=-1)
Definition: Board.cpp:573
 
void fillRectangle(double left, double top, double width, double height, int depth=-1)
Definition: Board.cpp:411
 
A path, according to Postscript and SVG definition. 
Definition: Path.h:41
 
void saveEPS(std::ostream &out, PageSize size=Board::BoundingBox, double margin=0.0, Unit unit=UMillimeter, const std::string &title=std::string()) const 
Definition: Board.cpp:797
 
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)
Definition: Board.cpp:611
 
Color penColor() const 
penColor 
Definition: Board.cpp:1232
 
Struct representing a 2D point. 
Definition: Point.h:39
 
Shape::LineCap lineCap
Definition: Board.h:980
 
Shape::LineStyle lineStyle
Definition: Board.h:979
 
Board & setFillColorRGBf(float red, float green, float blue, float alpha=1.0f)
Definition: Board.cpp:257
 
@copyright This source code is part of the Board project, a C++ library whose purpose is to allow sim...
 
void clear(const Color &color=Color::Null)
Definition: Board.cpp:126
 
void backgroundColor(const Color &color)
Definition: Board.cpp:293
 
Color _backgroundColor
Definition: Board.h:987
 
Board & setLineStyle(Shape::LineStyle style)
 
Board & setPenColorRGBf(float red, float green, float blue, float alpha=1.0f)
Definition: Board.cpp:230
 
A group of shapes. 
Definition: ShapeList.h:45
 
void drawCircle(double x, double y, double radius, int depth=-1)
Definition: Board.cpp:441
 
void setClippingRectangle(double x, double y, double width, double height)
Definition: Board.cpp:712
 
Board & setFontSize(double fontSize)
Definition: Board.cpp:286
 
Board & setFillColor(const Color &color)
Definition: Board.cpp:264
 
void fillCircle(double x, double y, double radius, int depth=-1)
Definition: Board.cpp:452
 
void addDuplicates(const Shape &shape, std::size_t times, double dx, double dy, double scale=1.0)
Definition: Board.cpp:751
 
Board(const Color &backgroundColor=Color::Null)
Definition: Board.cpp:86
 
void drawLine(double x1, double y1, double x2, double y2, int depth=-1)
Definition: Board.cpp:308
 
void drawEllipse(double x, double y, double xRadius, double yRadius, int depth=-1)
Definition: Board.cpp:462
 
void fillPolyline(const std::vector< Point > &points, int depth=-1)
Definition: Board.cpp:521
 
@copyright This source code is part of the Board project, a C++ library whose purpose is to allow sim...
 
Color fillColor() const 
fillColor 
Definition: Board.cpp:1237
 
double lineWidth
Definition: Board.h:978
 
void drawDot(double x, double y, int depth=-1)
Definition: Board.cpp:299
 
@copyright This source code is part of the Board project, a C++ library whose purpose is to allow sim...
 
Color penColor
Definition: Board.h:976
 
Board & setFont(const Fonts::Font font, double fontSize)
Definition: Board.cpp:278
 
Board & scale(double sx, double sy)
Definition: Board.cpp:157
 
Fonts::Font font
Definition: Board.h:982
 
Color fillColor
Definition: Board.h:977
 
State _state
Definition: Board.h:986
 
Board & translate(double dx, double dy)
Definition: Board.cpp:149
 
Board & setPenColorRGBi(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255)
Definition: Board.cpp:220
 
Board & setLineCap(Shape::LineCap cap)
 
Shape & top()
Definition: ShapeList.cpp:593
 
virtual Point center(LineWidthFlag lineWidthFlag=IgnoreLineWidth) const 
Definition: Shapes.cpp:101
 
void drawClosedPolyline(const std::vector< Point > &points, int depth=-1)
Definition: Board.cpp:508
 
Board & setPenColor(const Color &color)
Definition: Board.cpp:240
 
Struct representing a rectangle on the plane. 
Definition: Rect.h:38
 
void drawBoundingBox(LineWidthFlag lineWidthFlag, int depth=-1)
Definition: Board.cpp:694
 
void drawPolyline(const std::vector< Point > &points, int depth=-1)
Definition: Board.cpp:492