26#ifndef BOARD_ELLIPSE_H
27#define BOARD_ELLIPSE_H
63 const std::string &
name()
const override;
69 inline double angle()
const;
172 void flushFIG(std::ostream & stream,
const TransformFIG & transform, std::map<Color, int> & colormap)
const override;
250 static const std::string _name;
251 bool isACircle()
const;
252 inline void normaliseAngle();
276 _center(x, y), _xRadius(xRadius), _yRadius(yRadius), _angle(0.0), _isCreatedAsCircle(false)
283 _center(center), _xRadius(xRadius), _yRadius(yRadius), _angle(0.0), _isCreatedAsCircle(false)
290 _center(center), _xRadius(xRadius), _yRadius(yRadius), _angle(0.0), _isCreatedAsCircle(false)
295inline void Ellipse::normaliseAngle()
@copyright This source code is part of the Board project, a C++ library whose purpose is to allow sim...
#define M_PI_2
Definition Shape.h:50
#define M_PI
Definition Shape.h:46
Structure representing an RGB triple.
Definition Color.h:43
Ellipse circle(double x, double y, double radius, Color penColor=Style::defaultPenColor(), Color fillColor=Style::defaultFillColor(), double lineWidth=Style::defaultLineWidth(), const LineStyle lineStyle=Style::defaultLineStyle())
Definition Ellipse.cpp:371
LineStyle
Definition Style.h:47
@ ButtCap
Definition Style.h:36
LineWidthFlag
Definition Style.h:57
@ IgnoreLineWidth
Definition Style.h:58
@ MiterJoin
Definition Style.h:42
A ConstShapeVisitor may visit const shapes of a composite shape tree in back-to-front order.
Definition ShapeVisitor.h:79
An ellipse.
Definition Ellipse.h:38
double perimeter() const
Definition Ellipse.cpp:185
Ellipse(double x, double y, double xRadius, double yRadius, Color penColor=Style::defaultPenColor(), Color fillColor=Style::defaultFillColor(), double lineWidth=Style::defaultLineWidth(), LineStyle lineStyle=Style::defaultLineStyle())
Definition Ellipse.h:274
void scaleAll(double s) override
Definition Ellipse.cpp:163
Point _center
Definition Ellipse.h:255
Ellipse & rotate(double angle, const Point ¢er) override
Definition Ellipse.cpp:60
Ellipse(Ellipse &&)=default
Ellipse resized(double w, double h, LineWidthFlag lineWidthFlag) const
Definition Ellipse.cpp:170
double _xRadius
Definition Ellipse.h:256
Path sampledPath(int n, SamplingStart start=SamplingFromRight) const
Definition Ellipse.cpp:198
Ellipse(const Ellipse &)=default
double angle() const
Definition Ellipse.h:315
Ellipse & operator=(Ellipse &&)=default
Point center(LineWidthFlag lineWidthFlag=IgnoreLineWidth) const override
Definition Ellipse.cpp:55
double yRadius() const
Definition Ellipse.h:310
virtual void accept(ShapeVisitor &visitor) override
Accepts a visitor object.
Definition Ellipse.cpp:316
const std::string & name() const override
Definition Ellipse.cpp:50
~Ellipse() override=default
Ellipse & translate(double dx, double dy) override
Definition Ellipse.cpp:87
void flushPostscript(std::ostream &stream, const TransformEPS &transform) const override
Definition Ellipse.cpp:242
void flushFIG(std::ostream &stream, const TransformFIG &transform, std::map< Color, int > &colormap) const override
Definition Ellipse.cpp:276
void setCircleFlag()
Definition Ellipse.cpp:180
SamplingStart
Definition Ellipse.h:41
@ SamplingFromBottom
Definition Ellipse.h:45
@ SamplingFromRight
Definition Ellipse.h:42
@ SamplingFromLeft
Definition Ellipse.h:44
@ SamplingFromTop
Definition Ellipse.h:43
double xRadius() const
Definition Ellipse.h:305
double _yRadius
Definition Ellipse.h:257
void flushTikZ(std::ostream &stream, const TransformTikZ &transform) const override
Definition Ellipse.cpp:308
bool _isCreatedAsCircle
Definition Ellipse.h:259
Ellipse & operator=(const Ellipse &)=default
Ellipse scaled(double sx, double sy) const
Definition Ellipse.cpp:153
void flushSVG(std::ostream &stream, const TransformSVG &transform) const override
Definition Ellipse.cpp:298
Rect boundingBox(LineWidthFlag) const override
Definition Ellipse.cpp:346
Ellipse rotated(double angle, const Point ¢er) const
Definition Ellipse.cpp:72
Ellipse & scale(double sx, double sy) override
Definition Ellipse.cpp:98
Ellipse * clone() const override
Definition Ellipse.cpp:175
Ellipse translated(double dx, double dy) const
Definition Ellipse.cpp:93
double _angle
Definition Ellipse.h:258
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
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
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