116 const std::string &
name()
const override;
185 void flushFIG(std::ostream & stream,
const TransformFIG & transform, std::map<Color, int> & colormap)
const override;
250 static const std::string _name;
262Arrow::Arrow(
double x1,
double y1,
double x2,
double y2,
ExtremityType type,
Color penColor,
Color fillColor,
double lineWidth,
const LineStyle style,
const LineCap cap,
const LineJoin join)
263 :
Line(x1, y1, x2, y2, penColor, lineWidth, style, cap, join), _type(type)
274 :
Line(x1, y1, x2, y2, style), _type(type)
284 Color penColor,
Color fillColor,
double lineWidth,
286 :
Line(p1, p2, penColor, lineWidth, style, cap, join), _type(type)
296 :
Line(p1, p2, style), _type(type)
@copyright This source code is part of the Board project, a C++ library whose purpose is to allow sim...
Structure representing an RGB triple.
Definition Color.h:43
static const Color Null
Definition Color.h:155
LineStyle
Definition Style.h:47
LineCap
Definition Style.h:35
LineWidthFlag
Definition Style.h:57
LineJoin
Definition Style.h:41
A line between two points with an arrow at one extremity.
Definition Arrow.h:38
Arrow * clone() const override
Definition Arrow.cpp:95
Arrow & operator=(const Arrow &)=default
Arrow translated(double dx, double dy) const
Definition Arrow.cpp:66
const std::string & name() const override
Definition Arrow.cpp:51
void flushFIG(std::ostream &stream, const TransformFIG &transform, std::map< Color, int > &colormap) const override
Definition Arrow.cpp:154
Arrow(double x1, double y1, double x2, double y2, ExtremityType type=ExtremityType::Plain, Color penColor=Style::defaultPenColor(), Color fillColor=Style::defaultFillColor(), double lineWidth=Style::defaultLineWidth(), const LineStyle lineStyle=Style::defaultLineStyle(), const LineCap cap=Style::defaultLineCap(), const LineJoin join=Style::defaultLineJoin())
Definition Arrow.h:262
ExtremityType
The ExtremityType enum.
Definition Arrow.h:44
Arrow(const Arrow &)=default
ExtremityType type() const
The extremity type of the arrow.
Definition Arrow.h:305
void flushTikZ(std::ostream &stream, const TransformTikZ &transform) const override
Definition Arrow.cpp:237
Arrow resized(double w, double h, LineWidthFlag lineWidthFlag) const
Definition Arrow.cpp:81
Rect boundingBox(LineWidthFlag) const override
Definition Arrow.cpp:86
~Arrow() override=default
virtual void accept(ShapeVisitor &visitor) override
Accepts a visitor object.
Definition Arrow.cpp:245
Path extremity() const
Definition Arrow.cpp:100
Arrow rotated(double angle, const Point ¢er) const
Definition Arrow.cpp:56
Arrow & operator=(Arrow &&)=default
Arrow scaled(double sx, double sy) const
Definition Arrow.cpp:71
void flushPostscript(std::ostream &stream, const TransformEPS &transform) const override
Definition Arrow.cpp:112
void flushSVG(std::ostream &stream, const TransformSVG &transform) const override
Definition Arrow.cpp:197
A ConstShapeVisitor may visit const shapes of a composite shape tree in back-to-front order.
Definition ShapeVisitor.h:79
A line between two points.
Definition Line.h:38
A path, according to Postscript and SVG definition.
Definition Path.h:45
Struct representing a 2D point.
Definition Point.h:42
Struct representing a rectangle on the plane.
Definition Rect.h:40
A ShapeVisitor visits all shapes in a composite shape tree in back-to-front order.
Definition ShapeVisitor.h:54
Style _style
Definition ShapeWithStyle.h:122
const Color & penColor() const
Definition ShapeWithStyle.h:143
Style style() const
Definition ShapeWithStyle.h:215
double lineWidth() const
Definition ShapeWithStyle.h:165
const Color & fillColor() const
Definition ShapeWithStyle.h:154
LineStyle lineStyle() const
Definition ShapeWithStyle.h:176
Abstract structure for a 2D shape.
Definition Shape.h:64
virtual Point center(LineWidthFlag lineWidthFlag=IgnoreLineWidth) const
Definition Shape.cpp:59
Color fillColor
Definition Style.h:71
Color penColor
Definition Style.h:70
static const Color & defaultPenColor()
defaultPenColor
Definition Style.h:279
static const Color & defaultFillColor()
defaultFillColor
Definition Style.h:284
static const double & defaultLineWidth()
defaultLineWidth
Definition Style.h:274
static const LineStyle & defaultLineStyle()
defaultLineStyle
Definition Style.h:289
static const LineCap & defaultLineCap()
defaultLineCap
Definition Style.h:294
static const LineJoin & defaultLineJoin()
defaultLineJoin
Definition Style.h:299