QCAD Application Framework
CAD Application Development and Automation.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RCircle.h
Go to the documentation of this file.
1 #ifndef RCIRCLE_H
2 #define RCIRCLE_H
3 
4 #include "RShape.h"
5 #include "RVector.h"
6 
7 class RBox;
8 
17 class RCircle: public RShape {
18 public:
19  RCircle();
20  RCircle(const RVector& center, const double radius);
21  virtual ~RCircle();
22 
23  virtual RCircle* clone() const {
24  return new RCircle(*this);
25  }
26 
27  virtual void to2D();
28 
29  virtual RBox getBoundingBox() const;
30  virtual double getLength() const;
31 
32  virtual QList<RVector> getEndPoints() const;
33  virtual QList<RVector> getMiddlePoints() const;
34  virtual QList<RVector> getCenterPoints() const;
35  virtual QList<RVector> getPointsWithDistanceToEnd(
36  double distance, RS::From from = RS::FromAny) const;
37 
38  virtual RVector getVectorTo(const RVector& point,
39  bool limited = true) const;
40 
41  RVector getCenter() const;
42  void setCenter(const RVector& vector);
43  double getRadius() const;
44  void setRadius(double radius);
45 
46  double getDiameter() const;
47  void setDiameter(double d);
48  double getCircumference() const;
49  void setCircumference(double c);
50  double getArea() const;
51  void setArea(double a);
52 
53  virtual bool move(const RVector& offset);
54  virtual bool rotate(double rotation, const RVector& center = RDEFAULT_RVECTOR);
55  virtual bool scale(const RVector& scaleFactors, const RVector& center = RDEFAULT_RVECTOR);
56  virtual bool mirror(const RLine& axis);
57  virtual bool flipHorizontal();
58  virtual bool flipVertical();
59 
60 public:
70  double radius;
71 };
72 
76 Q_DECLARE_METATYPE(QSharedPointer<RCircle>)
77 Q_DECLARE_METATYPE(QSharedPointer<RCircle>*)
78 
79 #endif