Go to the documentation of this file.
112 const std::string &
name()
const override;
170 Arrow resized(
double w,
double h, LineWidthFlag lineWidthFlag)
const;
181 void flushFIG(std::ostream & stream,
const TransformFIG & transform, std::map<Color, int> & colormap)
const override;
231 Path extremity()
const;
237 ~
Arrow()
override =
default;
242 static const std::string _name;
255 Arrow::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)
256 :
Line(x1, y1, x2, y2, penColor, lineWidth, style, cap, join), _type(type)
259 if (fillColor == Color::Null) {
260 _style.fillColor = penColor;
262 _style.fillColor = fillColor;
267 :
Line(x1, y1, x2, y2, style), _type(type)
269 if (style.fillColor == Color::Null) {
270 _style.fillColor = style.penColor;
272 _style.fillColor = style.fillColor;
277 Color penColor,
Color fillColor,
double lineWidth,
278 const LineStyle style,
const LineCap cap,
const LineJoin join)
279 :
Line(p1, p2, penColor, lineWidth, style, cap, join), _type(type)
281 if (fillColor == Color::Null) {
282 _style.fillColor = penColor;
284 _style.fillColor = fillColor;
289 :
Line(p1, p2, style), _type(type)
291 if (style.fillColor == Color::Null) {
292 _style.fillColor = style.penColor;
294 _style.fillColor = style.fillColor;
static const Color & defaultPenColor()
defaultPenColor
Definition: Style.h:281
Arrow translated(double dx, double dy) const
Definition: Arrow.cpp:66
Arrow(double x1, double y1, double x2, double y2, ExtremityType type=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:255
static const double & defaultLineWidth()
defaultLineWidth
Definition: Style.h:276
Rect boundingBox(LineWidthFlag) const override
Definition: Arrow.cpp:86
A line between two points with an arrow at one extremity.
Definition: Arrow.h:38
void flushTikZ(std::ostream &stream, const TransformTikZ &transform) const override
Definition: Arrow.cpp:237
const std::string & name() const override
Definition: Arrow.cpp:51
Struct representing a rectangle on the plane.
Definition: Rect.h:39
ExtremityType
Definition: Arrow.h:40
@ Closed
Definition: Arrow.h:43
static const Color & defaultFillColor()
defaultFillColor
Definition: Style.h:286
void flushFIG(std::ostream &stream, const TransformFIG &transform, std::map< Color, int > &colormap) const override
Definition: Arrow.cpp:154
@ Plain
Definition: Arrow.h:44
Struct representing a 2D point.
Definition: Point.h:42
@copyright This source code is part of the Board project, a C++ library whose purpose is to allow sim...
void flushSVG(std::ostream &stream, const TransformSVG &transform) const override
Definition: Arrow.cpp:197
A line between two points.
Definition: Line.h:38
Arrow rotated(double angle, const Point ¢er) const
Definition: Arrow.cpp:56
static const LineCap & defaultLineCap()
defaultLineCap
Definition: Style.h:296
Abstract structure for a 2D shape.
Definition: Shape.h:63
A ConstShapeVisitor may visit const shapes of a composite shape tree in back-to-front order.
Definition: ShapeVisitor.h:78
Arrow * clone() const override
Definition: Arrow.cpp:95
A path, according to Postscript and SVG definition.
Definition: Path.h:45
Arrow scaled(double sx, double sy) const
Definition: Arrow.cpp:71
@ Stick
Definition: Arrow.h:42
virtual void accept(ShapeVisitor &visitor) override
Accepts a visitor object.
Definition: Arrow.cpp:245
virtual Point center(LineWidthFlag lineWidthFlag=IgnoreLineWidth) const
Definition: Shape.cpp:59
static const LineJoin & defaultLineJoin()
defaultLineJoin
Definition: Style.h:301
void flushPostscript(std::ostream &stream, const TransformEPS &transform) const override
Definition: Arrow.cpp:112
static const LineStyle & defaultLineStyle()
defaultLineStyle
Definition: Style.h:291
Arrow resized(double w, double h, LineWidthFlag lineWidthFlag) const
Definition: Arrow.cpp:81
A ShapeVisitor visits all shapes in a composite shape tree in back-to-front order.
Definition: ShapeVisitor.h:53
Structure representing an RGB triple.
Definition: Color.h:43