DGtal  1.2.0
Namespaces | Data Structures | Functions | Variables
LibBoard Namespace Reference

Namespaces

 Fonts
 

Data Structures

class  Board
 Class for EPS, FIG or SVG drawings. More...
 
struct  Path
 A path, according to Postscript and SVG definition. More...
 
struct  Point
 Struct representing a 2D point. More...
 
struct  Rect
 Struct representing a rectangle on the plane. More...
 
struct  ShapeList
 A group of shapes. More...
 
struct  Group
 A group of shapes. A group is basically a ShapeList except that when rendered in either an SVG of a FIG file, it is a true compound element. More...
 
struct  Shape
 Abstract structure for a 2D shape. More...
 
struct  Dot
 A line between two points. More...
 
struct  Line
 A line between two points. More...
 
struct  Arrow
 A line between two points with an arrow at one extremity. More...
 
struct  Polyline
 A polygonal line described by a series of 2D points. More...
 
struct  Rectangle
 A rectangle. More...
 
struct  Image
 Used to draw image in figure. More...
 
struct  Triangle
 A triangle. Basically a Polyline with a convenient constructor. More...
 
struct  QuadraticBezierCurve
 A quadratic Bezier curve having 3 control points. NB. It is also a parabola arc. More...
 
struct  GouraudTriangle
 A triangle with shaded filling according to colors given for each vertex. More...
 
struct  Ellipse
 An ellipse. More...
 
struct  Circle
 A circle. More...
 
struct  Arc
 An arc. More...
 
struct  Text
 A piece of text. More...
 
class  MessageStream
 
struct  Transform
 base class for transforms. More...
 
struct  TransformEPS
 Structure representing a scaling and translation suitable for an EPS output. More...
 
struct  TransformFIG
 Structure representing a scaling and translation suitable for an XFig output. More...
 
struct  TransformSVG
 Structure representing a scaling and translation suitable for an SVG output. More...
 
struct  TransformCairo
 Structure representing a scaling and translation suitable for an Cairo output. More...
 
struct  TransformTikZ
 Structure representing a scaling and translation suitable for an TikZ output. More...
 

Functions

Point operator+ (const Point &a, const Point &b)
 
Point operator- (const Point &a, const Point &b)
 
double operator* (const Point &a, const Point &b)
 
Point operator* (const Point &p, double s)
 
Point operator* (double s, const Point &p)
 
Point operator/ (const Point &p, double s)
 
bool operator== (const Point &a, const Point &b)
 
bool operator!= (const Point &a, const Point &b)
 
Rect operator|| (const Rect &rectA, const Rect &rectB)
 
Rect operator&& (const Rect &rectA, const Rect &rectB)
 
bool shapeGreaterDepth (const Shape *s1, const Shape *s2)
 
void secured_strncpy (char *dst, const char *src, size_t count)
 
void secured_ctime (char *str, const time_t *t, size_t count)
 

Variables

const char * PSFontNames []
 
const char * XFigPostscriptFontnames []
 
MessageStream error
 
MessageStream warning
 
MessageStream notice
 

Function Documentation

◆ operator!=()

bool LibBoard::operator!= ( const Point a,
const Point b 
)
inline

Definition at line 184 of file Point.h.

185 {
186  return ( a.x != b.x ) || ( a.y != b.y ) ;
187 }

◆ operator&&()

Rect LibBoard::operator&& ( const Rect rectA,
const Rect rectB 
)

Computes the intersection of two bounding boxes.

Parameters
rectAA first rectangle.
rectBA second rectangle.
Returns
The intersecting rectangle of two bounding boxes.

Definition at line 37 of file Rect.cpp.

38 {
39  Rect rect;
40  rect.top = ( rectA.top < rectB.top ) ? rectA.top : rectB.top;
41  rect.left = (rectA.left > rectB.left) ? rectA.left : rectB.left;
42  if ( rectA.left + rectA.width < rectB.left + rectB.width )
43  rect.width = rectA.left + rectA.width - rect.left;
44  else
45  rect.width = rectB.left + rectB.width - rect.left;
46  if ( rectA.top - rectA.height > rectB.top - rectB.height )
47  rect.height = rect.top - ( rectA.top - rectA.height );
48  else
49  rect.height = rect.top - ( rectB.top - rectB.height );
50  if ( rect.height < 0 ) rect.height = 0;
51  if ( rect.width < 0 ) rect.width = 0;
52  return rect;
53 }

References LibBoard::Rect::height, LibBoard::Rect::left, LibBoard::Rect::top, and LibBoard::Rect::width.

◆ operator*() [1/3]

double LibBoard::operator* ( const Point a,
const Point b 
)
inline

Definition at line 122 of file Point.h.

123 {
124  return a.x * b.x + a.y * b.y;
125 }

◆ operator*() [2/3]

Point LibBoard::operator* ( const Point p,
double  s 
)
inline

Definition at line 128 of file Point.h.

129 {
130  return Point( p.x * s, p.y * s );
131 }
MyPointD Point
Definition: testClone2.cpp:383

◆ operator*() [3/3]

Point LibBoard::operator* ( double  s,
const Point p 
)
inline

Definition at line 134 of file Point.h.

135 {
136  return Point( s * p.x, s * p.y );
137 }

◆ operator+()

Point LibBoard::operator+ ( const Point a,
const Point b 
)
inline

Definition at line 110 of file Point.h.

111 {
112  return Point( a.x + b.x, a.y + b.y );
113 }

◆ operator-()

Point LibBoard::operator- ( const Point a,
const Point b 
)
inline

Definition at line 116 of file Point.h.

117 {
118  return Point( a.x - b.x, a.y - b.y );
119 }

◆ operator/()

Point LibBoard::operator/ ( const Point p,
double  s 
)
inline

Definition at line 140 of file Point.h.

141 {
142  return Point( p.x / s, p.y / s );
143 }

◆ operator==()

bool LibBoard::operator== ( const Point a,
const Point b 
)
inline

Definition at line 178 of file Point.h.

179 {
180  return ( a.x == b.x ) && ( a.y == b.y ) ;
181 }

◆ operator||()

Rect LibBoard::operator|| ( const Rect rectA,
const Rect rectB 
)

Computes the bounding box of two bounding boxes.

Parameters
rectAA first rectangle.
rectBA second rectangle.
Returns
The smallest rectangle that contains both rectA and rectB.

Definition at line 20 of file Rect.cpp.

21 {
22  Rect rect;
23  rect.top = ( rectA.top > rectB.top ) ? rectA.top : rectB.top;
24  rect.left = (rectA.left < rectB.left) ? rectA.left : rectB.left;
25  if ( rectA.left + rectA.width > rectB.left + rectB.width )
26  rect.width = rectA.left + rectA.width - rect.left;
27  else
28  rect.width = rectB.left + rectB.width - rect.left;
29  if ( rectA.top - rectA.height < rectB.top - rectB.height )
30  rect.height = rect.top - ( rectA.top - rectA.height );
31  else
32  rect.height = rect.top - ( rectB.top - rectB.height );
33  return rect;
34 }

References LibBoard::Rect::height, LibBoard::Rect::left, LibBoard::Rect::top, and LibBoard::Rect::width.

◆ secured_ctime()

void LibBoard::secured_ctime ( char *  str,
const time_t *  t,
size_t  count 
)
inline

◆ secured_strncpy()

void LibBoard::secured_strncpy ( char *  dst,
const char *  src,
size_t  count 
)
inline

◆ shapeGreaterDepth()

bool LibBoard::shapeGreaterDepth ( const Shape s1,
const Shape s2 
)

Compares two shapes according to their depths.

Parameters
s1A pointer to a first shape.
s2A pointer to a second shape.
Returns
TODO

Definition at line 95 of file Shapes.cpp.

96 {
97  return s1->depth() > s2->depth();
98 }

References LibBoard::Shape::depth().

Referenced by LibBoard::ShapeList::addShape(), LibBoard::ShapeList::flushCairo(), LibBoard::ShapeList::flushFIG(), LibBoard::ShapeList::flushPostscript(), LibBoard::ShapeList::flushSVG(), LibBoard::ShapeList::flushTikZ(), LibBoard::ShapeList::operator<<(), LibBoard::Board::saveCairo(), LibBoard::Board::saveEPS(), LibBoard::Board::saveFIG(), LibBoard::Board::saveSVG(), and LibBoard::Board::saveTikZ().

Variable Documentation

◆ error

LibBoard::MessageStream LibBoard::error
extern

◆ notice

LibBoard::MessageStream LibBoard::notice
extern

◆ PSFontNames

const char * LibBoard::PSFontNames

Definition at line 16 of file PSFonts.cpp.

Referenced by LibBoard::Text::flushPostscript(), and LibBoard::Text::flushSVG().

◆ warning

LibBoard::MessageStream LibBoard::warning
extern

◆ XFigPostscriptFontnames

const char* LibBoard::XFigPostscriptFontnames[]
extern