Go to the documentation of this file.
26 #ifndef BOARD_ELLIPSE_H
27 #define BOARD_ELLIPSE_H
48 inline Ellipse(
double x,
double y,
double xRadius,
double yRadius,
61 const std::string &
name()
const override;
63 Point center(LineWidthFlag lineWidthFlag = IgnoreLineWidth)
const override;
65 inline double xRadius()
const;
66 inline double yRadius()
const;
67 inline double angle()
const;
166 Ellipse resized(
double w,
double h, LineWidthFlag lineWidthFlag)
const;
170 void flushFIG(std::ostream & stream,
const TransformFIG & transform, std::map<Color, int> & colormap)
const override;
239 Path sampledPath(
int n, SamplingStart start = SamplingFromRight)
const;
248 static const std::string _name;
249 bool isACircle()
const;
256 bool _isCreatedAsCircle;
259 Ellipse circle(
double x,
double y,
double radius,
269 Ellipse::Ellipse(
double x,
double y,
double xRadius,
double yRadius,
Color penColor,
Color fillColor,
double lineWidth, LineStyle lineStyle)
270 :
ShapeWithStyle(penColor, fillColor, lineWidth, lineStyle, ButtCap, MiterJoin),
271 _center(x, y), _xRadius(xRadius), _yRadius(yRadius), _angle(0.0), _isCreatedAsCircle(false)
273 while (_angle > M_PI_2) {
276 while (_angle < -M_PI_2) {
281 Ellipse::Ellipse(Point center,
double xRadius,
double yRadius, Color penColor, Color fillColor,
double lineWidth,
const LineStyle lineStyle)
282 : ShapeWithStyle(penColor, fillColor, lineWidth, lineStyle, ButtCap, MiterJoin),
283 _center(center), _xRadius(xRadius), _yRadius(yRadius), _angle(0.0), _isCreatedAsCircle(false)
285 while (_angle > M_PI_2) {
288 while (_angle < -M_PI_2) {
293 double Ellipse::xRadius()
const
298 double Ellipse::yRadius()
const
303 double Ellipse::angle()
const
static const Color & defaultPenColor()
defaultPenColor
Definition: Style.h:281
Ellipse * clone() const override
Definition: Ellipse.cpp:175
double perimeter() const
Definition: Ellipse.cpp:185
@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
Rect boundingBox(LineWidthFlag) const override
Definition: Ellipse.cpp:346
Struct representing a rectangle on the plane.
Definition: Rect.h:39
Path sampledPath(int n, SamplingStart start=SamplingFromRight) const
Definition: Ellipse.cpp:198
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: Ellipse.cpp:276
void flushTikZ(std::ostream &stream, const TransformTikZ &transform) const override
Definition: Ellipse.cpp:308
Struct representing a 2D point.
Definition: Point.h:42
void flushSVG(std::ostream &stream, const TransformSVG &transform) const override
Definition: Ellipse.cpp:298
Ellipse resized(double w, double h, LineWidthFlag lineWidthFlag) const
Definition: Ellipse.cpp:170
virtual void accept(ShapeVisitor &visitor) override
Accepts a visitor object.
Definition: Ellipse.cpp:316
Abstract structure for a 2D shape.
Definition: Shape.h:63
Point center(LineWidthFlag lineWidthFlag=IgnoreLineWidth) const override
Definition: Ellipse.cpp:55
void setCircleFlag()
Definition: Ellipse.cpp:180
Ellipse & rotate(double angle, const Point ¢er) override
Definition: Ellipse.cpp:60
A ConstShapeVisitor may visit const shapes of a composite shape tree in back-to-front order.
Definition: ShapeVisitor.h:78
const std::string & name() const override
Definition: Ellipse.cpp:50
A path, according to Postscript and SVG definition.
Definition: Path.h:45
Ellipse scaled(double sx, double sy) const
Definition: Ellipse.cpp:153
Ellipse & translate(double dx, double dy) override
Definition: Ellipse.cpp:87
An ellipse.
Definition: Ellipse.h:38
Ellipse translated(double dx, double dy) const
Definition: Ellipse.cpp:93
static const LineStyle & defaultLineStyle()
defaultLineStyle
Definition: Style.h:291
void scaleAll(double s) override
Definition: Ellipse.cpp:163
Ellipse & scale(double sx, double sy) override
Definition: Ellipse.cpp:98
Ellipse rotated(double angle, const Point ¢er) const
Definition: Ellipse.cpp:72
void flushPostscript(std::ostream &stream, const TransformEPS &transform) const override
Definition: Ellipse.cpp:242
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
Abstract structure for a 2D shape.
Definition: ShapeWithStyle.h:38