Go to the documentation of this file.
26 #ifndef BOARD_BEZIER_H
27 #define BOARD_BEZIER_H
54 Bezier(
const std::vector<Point> & points,
const std::vector<Point> & controls,
66 Bezier(
const std::vector<Point> & points,
const std::vector<Point> & controls,
115 Bezier(
double x0,
double y0,
double xc0,
double yc0,
double x1,
double y1,
double xc1,
double yc1,
132 Bezier(
double x0,
double y0,
double xc0,
double yc0,
double x1,
double y1,
double xc1,
double yc1,
133 const Style & style);
140 const std::string &
name()
const override;
161 Bezier rotated(
double angle)
const;
237 Bezier resized(
double w,
double h, LineWidthFlag lineWidthFlag)
const;
241 void flushFIG(std::ostream & stream,
const TransformFIG & transform, std::map<Color, int> & colormap)
const override;
293 inline const Path & path()
const;
295 inline const Path & controls()
const;
297 Path discretizedPath()
const;
298 std::vector<Point> pathThroughLocalExtremums()
const;
312 ~
Bezier()
override =
default;
317 Point eval(Path::size_type interval,
double t)
const;
326 const Path & Bezier::path()
const
331 const Path & Bezier::controls()
const
static const Color & defaultPenColor()
defaultPenColor
Definition: Style.h:281
void scaleAll(double s) override
Definition: Bezier.cpp:194
@copyright This source code is part of the Board project, a C++ library whose purpose is to allow sim...
static const double & defaultLineWidth()
defaultLineWidth
Definition: Style.h:276
Bezier & rotate(double angle, const Point ¢er) override
Rotate the Bezier curve.
Definition: Bezier.cpp:112
Bezier translated(double dx, double dy) const
Definition: Bezier.cpp:143
void flushSVG(std::ostream &stream, const TransformSVG &transform) const override
Definition: Bezier.cpp:546
Struct representing a rectangle on the plane.
Definition: Rect.h:39
const std::string & name() const override
Definition: Bezier.cpp:107
static const Color & defaultFillColor()
defaultFillColor
Definition: Style.h:286
virtual void accept(ShapeVisitor &visitor) override
Accepts a visitor object.
Definition: Bezier.cpp:587
Bezier * clone() const override
Definition: Bezier.cpp:205
Struct representing a 2D point.
Definition: Point.h:42
Bezier & translate(double dx, double dy) override
Definition: Bezier.cpp:136
A cubice polygonal line described by a series of 2D points.
Definition: Bezier.h:40
static const LineCap & defaultLineCap()
defaultLineCap
Definition: Style.h:296
Abstract structure for a 2D shape.
Definition: Shape.h:63
Rect boundingBox(LineWidthFlag) const override
Definition: Bezier.cpp:617
A ConstShapeVisitor may visit const shapes of a composite shape tree in back-to-front order.
Definition: ShapeVisitor.h:78
static const std::string _name
Definition: Bezier.h:315
Bezier resized(double w, double h, LineWidthFlag lineWidthFlag) const
Definition: Bezier.cpp:200
A path, according to Postscript and SVG definition.
Definition: Path.h:45
Bezier scaled(double sx, double sy) const
Definition: Bezier.cpp:184
void flushTikZ(std::ostream &stream, const TransformTikZ &transform) const override
Definition: Bezier.cpp:579
virtual Point center(LineWidthFlag lineWidthFlag=IgnoreLineWidth) const
Definition: Shape.cpp:59
Bezier & scale(double sx, double sy) override
Definition: Bezier.cpp:148
static const LineJoin & defaultLineJoin()
defaultLineJoin
Definition: Style.h:301
static const LineStyle & defaultLineStyle()
defaultLineStyle
Definition: Style.h:291
Bezier(const std::vector< Point > &points, const std::vector< Point > &controls, 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())
A cubic bezier curve.
Definition: Bezier.cpp:66
void flushFIG(std::ostream &stream, const TransformFIG &transform, std::map< Color, int > &colormap) const override
Definition: Bezier.cpp:537
static const Style & defaultStyle()
defaultStyle
Definition: Style.h:271
A ShapeVisitor visits all shapes in a composite shape tree in back-to-front order.
Definition: ShapeVisitor.h:53
void flushPostscript(std::ostream &stream, const TransformEPS &transform) const override
Definition: Bezier.cpp:473
Structure representing an RGB triple.
Definition: Color.h:43
Abstract structure for a 2D shape.
Definition: ShapeWithStyle.h:38