QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RLineEntity.h
Go to the documentation of this file.
1 
20 #ifndef RLINEENTITY_H
21 #define RLINEENTITY_H
22 
23 #include "entity_global.h"
24 
25 #include "REntity.h"
26 #include "RLineData.h"
27 
28 class RDocument;
29 class RExporter;
30 
39 
40 public:
51 
58 
61 
62 public:
63  RLineEntity(RDocument* document, const RLineData& data,
64  RObject::Id objectId = RObject::INVALID_ID);
65  virtual ~RLineEntity();
66 
67  static void init();
68 
69  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
71  }
72 
73  virtual RLineEntity* clone() const {
74  return new RLineEntity(*this);
75  }
76 
77  virtual RS::EntityType getType() const {
78  return RS::EntityLine;
79  }
80 
81  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
82  RTransaction* transaction=NULL);
83  QPair<QVariant, RPropertyAttributes> getProperty(
84  RPropertyTypeId& propertyTypeId,
85  bool humanReadable = false, bool noAttributes = false);
86 
87  virtual void exportEntity(RExporter& e, bool preview=false, bool forceSelected=false) const;
88 
89  virtual RLineData& getData() {
90  return data;
91  }
92 
93  virtual const RLineData& getData() const {
94  return data;
95  }
96 
97  void setShape(const RLine& l);
98 
99  void setStartPoint(const RVector& p) {
100  data.setStartPoint(p);
101  }
102 
104  return data.getStartPoint();
105  }
106 
107  void setEndPoint(const RVector& p) {
108  data.setEndPoint(p);
109  }
110 
112  return data.getEndPoint();
113  }
114 
115  double getAngle() const {
116  return data.getAngle();
117  }
118 
119  double getDirection1() const {
120  return data.getDirection1();
121  }
122 
123  double getDirection2() const {
124  return data.getDirection2();
125  }
126 
127  bool reverse() {
128  return data.reverse();
129  }
130 
131  RS::Side getSideOfPoint(const RVector& point) const {
132  return data.getSideOfPoint(point);
133  }
134 
135  RS::Ending getTrimEnd(const RVector& coord,
136  const RVector& trimPoint) {
137  return data.getTrimEnd(coord, trimPoint);
138  }
139 
140  void trimStartPoint(const RVector& p) {
141  return data.trimStartPoint(p);
142  }
143  void trimEndPoint(const RVector& p) {
144  return data.trimEndPoint(p);
145  }
146 
147  double getLength() const {
148  return data.getLength();
149  }
150 
151 protected:
152  virtual void print(QDebug dbg) const;
153 
154 protected:
156 };
157 
159 Q_DECLARE_METATYPE(QSharedPointer<RLineEntity>)
160 Q_DECLARE_METATYPE(QSharedPointer<RLineEntity>*)
161 
162 #endif