QCAD
Open Source 2D CAD
RCircleData.h
Go to the documentation of this file.
1 
20 #ifndef RCIRCLEDATA_H
21 #define RCIRCLEDATA_H
22 
23 #include "entity_global.h"
24 
25 #include "RBox.h"
26 #include "RDocument.h"
27 #include "REntity.h"
28 #include "RPoint.h"
29 #include "RVector.h"
30 #include "RCircle.h"
31 
41 
42  friend class RCircleEntity;
43 
44 protected:
46 
47 public:
48  RCircleData();
49  RCircleData(const RCircle& circle);
50  RCircleData(const RVector& center, double radius);
51 
52  virtual RS::EntityType getType() const {
53  return RS::EntityCircle;
54  }
56  return *this;
57  }
58 
59  RVector getCenter() const {
60  return RCircle::getCenter();
61  }
62  double getRadius() const {
63  return RCircle::getRadius();
64  }
65 
66  virtual QList<RRefPoint> getReferencePoints(RS::ProjectionRenderingHint hint = RS::RenderTop) const;
67 
68  virtual bool moveReferencePoint(const RVector& referencePoint, const RVector& targetPoint, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
69 
70  virtual RShape* castToShape() {
71  return this;
72  }
73 
74  virtual QList<QSharedPointer<RShape> > getShapes(const RBox& queryBox = RDEFAULT_RBOX, bool ignoreComplex = false, bool segment = false) const {
75  Q_UNUSED(queryBox)
76  Q_UNUSED(ignoreComplex)
77  Q_UNUSED(segment)
78 
79  return QList<QSharedPointer<RShape> >() <<
80  QSharedPointer<RShape>(new RCircle(*this));
81  }
82 
83 };
84 
88 Q_DECLARE_METATYPE(QSharedPointer<RCircleData>)
89 
90 #endif
RCircleEntity::data
RCircleData data
Definition: RCircleEntity.h:117
REntity.h
RCircleData::getRadius
double getRadius() const
Definition: RCircleData.h:62
RCircleData::castToShape
virtual RShape * castToShape()
Definition: RCircleData.h:70
RBox.h
RCircle::getRadius
double getRadius() const
Definition: RCircle.cpp:110
RCircleEntity
Circle entity.
Definition: RCircleEntity.h:38
REntity::getReferencePoints
virtual QList< RRefPoint > getReferencePoints(RS::ProjectionRenderingHint hint=RS::RenderTop) const
Definition: REntity.h:456
RCircle::RCircle
RCircle()
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RCircle.cpp:30
RVector
Represents a 3d vector (x/y/z).
Definition: RVector.h:46
RS::EntityType
EntityType
Entity types used for property handling / filtering.
Definition: RS.h:125
RObject::document
RDocument * document
Definition: RObject.h:341
RCircleData::getShapes
virtual QList< QSharedPointer< RShape > > getShapes(const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=false, bool segment=false) const
Definition: RCircleData.h:74
RS::EntityCircle
@ EntityCircle
Circle.
Definition: RS.h:150
QCADENTITY_EXPORT
#define QCADENTITY_EXPORT
Definition: entity_global.h:10
RShape
Interface for geometrical shape classes.
Definition: RShape.h:72
RPoint.h
RDocument.h
REntity::moveReferencePoint
virtual bool moveReferencePoint(const RVector &referencePoint, const RVector &targetPoint, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
Moves the given reference point to the given target point or does nothing if this entity has no refer...
Definition: REntity.h:535
RVector.h
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(RMath *)
REntityData
Base class for all entity data classes.
Definition: REntityData.h:67
RCircleData::getCircle
RCircle getCircle()
Definition: RCircleData.h:55
RCircle.h
RDocument
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition: RDocument.h:72
RCircle::getCenter
RVector getCenter() const
Definition: RCircle.cpp:102
RCircleData::getType
virtual RS::EntityType getType() const
Definition: RCircleData.h:52
RS::ProjectionRenderingHint
ProjectionRenderingHint
Sets the current rendering hint for exports.
Definition: RS.h:185
RCircle
Low-level mathematical representation of a circle.
Definition: RCircle.h:40
RDEFAULT_RBOX
#define RDEFAULT_RBOX
Definition: RBox.h:32
RCircleData
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RCircleData.h:40
RS::RenderTop
@ RenderTop
Definition: RS.h:186
RBox
Represents a box e.g.
Definition: RBox.h:43
RCircleData::getCenter
RVector getCenter() const
Definition: RCircleData.h:59
entity_global.h