57 Bezier(
const std::vector<Point> & points,
const std::vector<Point> &
controls,
69 Bezier(
const std::vector<Point> & points,
const std::vector<Point> &
controls,
121 Bezier(
double x0,
double y0,
double xc0,
double yc0,
double x1,
double y1,
double xc1,
double yc1,
139 Bezier(
double x0,
double y0,
double xc0,
double yc0,
double x1,
double y1,
double xc1,
double yc1,
147 const std::string &
name()
const override;
252 void flushFIG(std::ostream & stream,
const TransformFIG & transform, std::map<Color, int> & colormap)
const override;
395 static const std::string _name;
@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
LineStyle
Definition Style.h:47
LineCap
Definition Style.h:35
LineWidthFlag
Definition Style.h:57
LineJoin
Definition Style.h:41
A Bezier curve described by two series of 2D points (curve points and control points).
Definition Bezier.h:42
const Path & controls() const
The series of control points points defining the curve, as a path.
Definition Bezier.h:409
const Path & path() const
The series of points defining the curve, as a path.
Definition Bezier.h:404
Bezier(Bezier &&)=default
const std::string & name() const override
Definition Bezier.cpp:107
void flushPostscript(std::ostream &stream, const TransformEPS &transform) const override
Definition Bezier.cpp:473
std::vector< Point > pathThroughLocalExtremums() const
A path through local extremums.
Definition Bezier.cpp:269
Bezier operator+(const Bezier &other) const
Concatenate two Bezier curves.
Definition Bezier.cpp:386
~Bezier() override=default
Rect boundingBox(LineWidthFlag) const override
Return the bounding box of the curve.
Definition Bezier.cpp:617
Point eval(Path::size_type interval, double t) const
Get a point of the curve given its interval between two curve points and a position in [0....
Definition Bezier.cpp:463
Bezier * clone() const override
Return a copy of the curve.
Definition Bezier.cpp:205
Bezier & operator=(const Bezier &)=default
Bezier scaled(double sx, double sy) const
Definition Bezier.cpp:184
Bezier & scale(double sx, double sy) override
Definition Bezier.cpp:148
Bezier & operator+=(const Bezier &other)
Add points and crontrol points of another curve.
Definition Bezier.cpp:354
Bezier rotated(double angle, const Point ¢er) const
Rotated copy of the curve.
Definition Bezier.cpp:119
void flushSVG(std::ostream &stream, const TransformSVG &transform) const override
Definition Bezier.cpp:546
Path _controls
Definition Bezier.h:399
Bezier(const Bezier &)=default
static Bezier smoothedPolyline(const std::vector< Point > &path, double roundness, const Style &style=Style::defaultStyle())
Build a Bezier curve as a 'rounded' version of a Polyline.
Definition Bezier.cpp:391
Bezier & operator=(Bezier &&)=default
Bezier translated(double dx, double dy) const
Definition Bezier.cpp:143
void scaleAll(double s) override
Definition Bezier.cpp:194
void flushFIG(std::ostream &stream, const TransformFIG &transform, std::map< Color, int > &colormap) const override
Definition Bezier.cpp:537
Bezier & translate(double dx, double dy) override
Definition Bezier.cpp:136
static Bezier interpolation(const Point &a, const Point &b, const Point &c, const Point &d, const Style &style=Style::defaultStyle())
Bezier interpolation passing through 4 points.
Definition Bezier.cpp:447
virtual void accept(ShapeVisitor &visitor) override
Accepts a visitor object.
Definition Bezier.cpp:587
void flushTikZ(std::ostream &stream, const TransformTikZ &transform) const override
Definition Bezier.cpp:579
Bezier resized(double w, double h, LineWidthFlag lineWidthFlag) const
Definition Bezier.cpp:200
Path discretizedPath() const
A sequence of properly spaced points approximating the curve.
Definition Bezier.cpp:327
Bezier & rotate(double angle, const Point ¢er) override
Rotate the Bezier curve.
Definition Bezier.cpp:112
Path _path
Definition Bezier.h:398
A ConstShapeVisitor may visit const shapes of a composite shape tree in back-to-front order.
Definition ShapeVisitor.h:79
A path, according to Postscript and SVG definition.
Definition Path.h:45
std::vector< Point >::size_type size_type
Definition Path.h:47
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
Abstract structure for a 2D shape.
Definition ShapeWithStyle.h:38
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
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 Style & defaultStyle()
defaultStyle
Definition Style.h:269
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