Board  0.9.2
Public Member Functions | Protected Attributes | List of all members
LibBoard::Polyline Struct Reference

A polygonal line described by a series of 2D points. More...

#include <Shapes.h>

Inheritance diagram for LibBoard::Polyline:
LibBoard::Shape LibBoard::GouraudTriangle LibBoard::Rectangle LibBoard::Triangle

Public Member Functions

 Polyline (const std::vector< Point > &points, bool closed, Color penColor, Color fillColor, double lineWidth, const LineStyle lineStyle=SolidStyle, const LineCap cap=ButtCap, const LineJoin join=MiterJoin, int depth=-1)
 
 Polyline (const Path &path, Color penColor, Color fillColor, double lineWidth, const LineStyle lineStyle=SolidStyle, const LineCap cap=ButtCap, const LineJoin join=MiterJoin, int depth=-1)
 
 Polyline (bool closed, Color penColor, Color fillColor, double lineWidth, const LineStyle lineStyle=SolidStyle, const LineCap cap=ButtCap, const LineJoin join=MiterJoin, int depth=-1)
 
const std::string & name () const
 
Point center () const
 
Polyline & operator<< (const Point &p)
 
Point & operator[] (const std::size_t n)
 
const Point & operator[] (const std::size_t n) const
 
Polyline & rotate (double angle, const Point &center)
 
Polyline rotated (double angle, const Point &center) const
 
Polyline & rotate (double angle)
 
Polyline rotated (double angle) const
 
Polyline & translate (double dx, double dy)
 
Polyline translated (double dx, double dy) const
 
Polyline & scale (double sx, double sy)
 
Polyline & scale (double s)
 
Polyline scaled (double sx, double sy) const
 
Polyline scaled (double s) const
 
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
 
Polyline * clone () const
 
std::size_t vertexCount () const
 
- 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
 
Shape & rotateDeg (double angle, const Point &center)
 
Shape & rotateDeg (double angle)
 
Shape & moveCenter (double x, double y)
 
Shape & moveCenter (Point p)
 
Rect bbox () const
 
Shape & operator-- ()
 
Shape & operator++ ()
 
int depth () const
 
virtual void depth (int)
 
virtual void shiftDepth (int shift)
 
const Color & penColor () const
 
const Color & fillColor () const
 

Protected Attributes

Path _path
 
- Protected Attributes inherited from LibBoard::Shape
int _depth
 
Color _penColor
 
Color _fillColor
 
double _lineWidth
 
LineStyle _lineStyle
 
LineCap _lineCap
 
LineJoin _lineJoin
 

Additional Inherited Members

- 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
}
 
- 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

A polygonal line described by a series of 2D points.

The polyline structure.

Member Function Documentation

Rect LibBoard::Polyline::boundingBox ( ) const
virtual

Compute the bounding box of the figure.

Returns
The rectangle of the bounding box.

Implements LibBoard::Shape.

References LibBoard::Path::boundingBox().

Referenced by LibBoard::Image::boundingBox(), and LibBoard::Image::flushFIG().

Point LibBoard::Polyline::center ( ) const
virtual

Returns the center of the shape.

Returns
The center of the shape, i.e. the center of its bounding box.

Reimplemented from LibBoard::Shape.

Reimplemented in LibBoard::GouraudTriangle.

References LibBoard::Path::center().

Referenced by LibBoard::Image::center(), LibBoard::Image::flushPostscript(), LibBoard::Image::rotate(), rotate(), rotated(), LibBoard::Rectangle::rotated(), and LibBoard::Image::scale().

Polyline * LibBoard::Polyline::clone ( ) const
virtual

Return a copy of the shape.

Returns
A copy of the shape.

Implements LibBoard::Shape.

Reimplemented in LibBoard::GouraudTriangle, LibBoard::Triangle, and LibBoard::Rectangle.

void LibBoard::Polyline::flushFIG ( std::ostream &  stream,
const TransformFIG &  transform,
std::map< Color, int > &  colormap 
) const
virtual

Write the FIG code of the shape in a stream according to a transform.

Parameters
streamThe output stream.
transformA 2D transform to be applied.

Implements LibBoard::Shape.

Reimplemented in LibBoard::GouraudTriangle, and LibBoard::Rectangle.

References LibBoard::Shape::_depth, LibBoard::Shape::_fillColor, LibBoard::Shape::_lineCap, LibBoard::Shape::_lineJoin, LibBoard::Shape::_lineStyle, LibBoard::Shape::_lineWidth, LibBoard::Shape::_penColor, and LibBoard::Shape::filled().

Referenced by LibBoard::Rectangle::flushFIG(), and LibBoard::GouraudTriangle::flushFIG().

void LibBoard::Polyline::flushPostscript ( std::ostream &  stream,
const TransformEPS &  transform 
) const
virtual

Write the EPS code of the shape in a stream according to a transform.

Parameters
streamThe output stream.
transformA 2D transform to be applied.

Implements LibBoard::Shape.

Reimplemented in LibBoard::GouraudTriangle.

References LibBoard::Shape::_fillColor, LibBoard::Shape::_penColor, LibBoard::Shape::filled(), and LibBoard::Shape::postscriptProperties().

Referenced by LibBoard::GouraudTriangle::flushPostscript(), and LibBoard::Board::saveEPS().

void LibBoard::Polyline::flushSVG ( std::ostream &  stream,
const TransformSVG &  transform 
) const
virtual

Write the SVG code of the shape in a stream according to a transform.

Parameters
streamThe output stream.
transformA 2D transform to be applied.

Implements LibBoard::Shape.

Reimplemented in LibBoard::GouraudTriangle, and LibBoard::Rectangle.

References LibBoard::Shape::svgProperties().

Referenced by LibBoard::Rectangle::flushSVG(), and LibBoard::GouraudTriangle::flushSVG().

void LibBoard::Polyline::flushTikZ ( std::ostream &  stream,
const TransformTikZ &  transform 
) const
virtual

Write the TikZ code of the shape in a stream according to a transform.

Parameters
streamThe output stream.
transformA 2D transform to be applied.

Implements LibBoard::Shape.

Reimplemented in LibBoard::GouraudTriangle, and LibBoard::Rectangle.

References LibBoard::Shape::tikzProperties().

Referenced by LibBoard::Rectangle::flushTikZ().

const std::string & LibBoard::Polyline::name ( ) const
virtual

Returns the generic name of the shape (e.g., Circle, Rectangle, etc.)

Returns

Reimplemented from LibBoard::Shape.

Reimplemented in LibBoard::GouraudTriangle, LibBoard::Triangle, and LibBoard::Rectangle.

Polyline & LibBoard::Polyline::operator<< ( const Point &  p)

Add a point to the polyline.

Parameters
p
Returns
Point& LibBoard::Polyline::operator[] ( const std::size_t  n)
inline

Returns the n-th point of the polyline.

Parameters
i
Returns
const Point& LibBoard::Polyline::operator[] ( const std::size_t  n) const
inline

Returns the n-th point of the polyline.

Parameters
i
Returns
Polyline & LibBoard::Polyline::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.

Reimplemented in LibBoard::GouraudTriangle.

References LibBoard::Path::rotate().

Referenced by LibBoard::Image::rotate(), rotated(), and LibBoard::Rectangle::rotated().

Polyline & LibBoard::Polyline::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.

Reimplemented in LibBoard::GouraudTriangle.

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

Polyline LibBoard::Polyline::rotated ( double  angle,
const Point &  center 
) const
Parameters
angle
center
Returns

References rotate().

Polyline LibBoard::Polyline::rotated ( double  angle) const
Parameters
angle
Returns

References center(), and rotate().

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

Scale the polyline, given two scaling factors.

Parameters
sxScaling factor along the x axis.
syScaling factor along the y axis.
Returns
A reference to the polyline itself, once scaled.

Implements LibBoard::Shape.

References LibBoard::Path::scale().

Referenced by LibBoard::Image::scale(), scale(), scaled(), LibBoard::Rectangle::scaled(), LibBoard::Triangle::scaled(), and LibBoard::GouraudTriangle::scaled().

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

Scale the polyline, given a scaling factor.

Parameters
sScaling factor.
Returns
A reference to the polyline itself, once scaled.

Implements LibBoard::Shape.

References scale().

void LibBoard::Polyline::scaleAll ( double  s)
virtual

Scales all the values (positions, dimensions, etc.) associated with the shape.

Parameters
sThe scaling factor.

Implements LibBoard::Shape.

Reimplemented in LibBoard::GouraudTriangle, and LibBoard::Rectangle.

References LibBoard::Path::scaleAll().

Polyline LibBoard::Polyline::scaled ( double  sx,
double  sy 
) const

Returns a scaled copy of the line.

Parameters
sxThe scaling factor along the x axis.
syThe scaling factor along the y axis.
Returns
A scaled copy of the line.

References scale().

Polyline LibBoard::Polyline::scaled ( double  s) const

Returns a scaled copy of the line.

Parameters
sThe scaling factor.
Returns
A scaled copy of the line.

References scale().

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

Translate the polyline by a given offset.

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

Implements LibBoard::Shape.

References LibBoard::Path::translate().

Referenced by LibBoard::Image::translate(), translated(), LibBoard::Rectangle::translated(), LibBoard::Triangle::translated(), and LibBoard::GouraudTriangle::translated().

Polyline LibBoard::Polyline::translated ( double  dx,
double  dy 
) const

Returns a translated copy of the polyline.

Parameters
dxShift of the first coordinate.
dyShift of the second coordinate.
Returns
A copy of the polyline, translated.

References translate().


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