ddt 1.2.1
Loading...
Searching...
No Matches
ddtGraphicalElement.hpp
Go to the documentation of this file.
1
20#ifndef DDT_DATAVISUALISATION_DDTGRAPHCIS_GRAPHICALELEMENT_HPP
21#define DDT_DATAVISUALISATION_DDTGRAPHCIS_GRAPHICALELEMENT_HPP
22
23#include <math.h>
24#include <QGraphicsObject>
25#include <QGraphicsSceneHoverEvent>
26#include <QGraphicsSceneMouseEvent>
27#include <QPainter>
28
31
32/*
33 * Overlay type enumerator
34 */
85
89class DdtGraphicalElement : public QGraphicsItem {
90 public:
98 explicit DdtGraphicalElement(
100 const QString obj_name = "", const QString elem_name = "");
101
106
110 virtual void DrawElement(QPainter *painter) = 0;
111
116 virtual QRectF boundingRect() const override;
117
123 virtual QRectF RotateBoundingBox(QRectF const &original_bounding_box) const;
124
131 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
132 QWidget *widget) override;
133
137 void DrawBoundingBox(QPainter *painter) const;
138
143
147 virtual void HighlightSelectedElement(QPainter *painter) const;
148
152 virtual bool IsHidden();
153
157 virtual float ScaleThreshold();
158
162 virtual void SetShowFlag(bool show);
163
167 virtual DdtOverlayType GetType();
168
172 virtual QString GetTypeString();
173
177 virtual QString GetTag();
178
185 virtual void SetTransform(QTransform const &transform);
186
190 void SetIsEditable(const bool editable);
191
195 void SetItemIsSelected(const bool is_selected);
196
200 void SetIsHovering(const bool item_is_hovering);
201
206 bool GetIsEditable() const;
207
212 bool GetItemIsSelected() const;
213
218 QString GetObjectName() const;
219
224 QString GetElementName() const;
225
230 bool GetIsHovering() const;
231
237
241 const int LIGHTER_FACTOR = 200;
242
248
249 protected:
250 void mouseMoveEvent(QGraphicsSceneMouseEvent *const event) override;
251 void mousePressEvent(QGraphicsSceneMouseEvent *const event) override;
252 bool HandleEvent(PointGrabber *const corner, QEvent *const event) const;
253
258
263
267 QPointF location;
268
272 QPointF drag_start;
273
278
283
284 /*
285 * Name of the overlay object this element belongs to.
286 */
287 QString object_name;
288
293
294 private:
295 void Initialize();
296
297 bool item_is_selected;
298 bool is_editable;
299};
300
301#endif // DDT_DATAVISUALISATION_DDTGRAPHCIS_GRAPHICALELEMENT_HPP
302
Definition ddtGraphicalElementProperties.hpp:29
Definition ddtGraphicalElement.hpp:89
bool is_hovering
Definition ddtGraphicalElement.hpp:282
void SetItemIsSelected(const bool is_selected)
Definition ddtGraphicalElement.cpp:244
void SetIsEditable(const bool editable)
Definition ddtGraphicalElement.cpp:240
void EditElementProperties(const DdtGraphicalElementProperties &properties)
Definition ddtGraphicalElement.cpp:150
bool GetIsHovering() const
Definition ddtGraphicalElement.cpp:256
QPointF drag_start
Definition ddtGraphicalElement.hpp:272
qreal corner_size
Definition ddtGraphicalElement.hpp:277
virtual QRectF RotateBoundingBox(QRectF const &original_bounding_box) const
Definition ddtGraphicalElement.cpp:106
QPointF location
Definition ddtGraphicalElement.hpp:267
virtual void SetShowFlag(bool show)
Definition ddtGraphicalElement.cpp:167
virtual QString GetTypeString()
Definition ddtGraphicalElement.cpp:187
virtual QString GetTag()
Definition ddtGraphicalElement.cpp:235
DdtGraphicalElementProperties element_properties
Definition ddtGraphicalElement.hpp:257
virtual void HighlightSelectedElement(QPainter *painter) const
Definition ddtGraphicalElement.cpp:75
const int LIGHTER_FACTOR
Definition ddtGraphicalElement.hpp:241
virtual ~DdtGraphicalElement()
void mouseMoveEvent(QGraphicsSceneMouseEvent *const event) override
Definition ddtGraphicalElement.cpp:301
void mousePressEvent(QGraphicsSceneMouseEvent *const event) override
Definition ddtGraphicalElement.cpp:291
bool GetIsEditable() const
Definition ddtGraphicalElement.cpp:252
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition ddtGraphicalElement.cpp:42
DdtOverlayType element_type
Definition ddtGraphicalElement.hpp:262
virtual void SetTransform(QTransform const &transform)
Definition ddtGraphicalElement.cpp:312
const DdtGraphicalElementProperties & GetElementProperties()
Definition ddtGraphicalElement.cpp:163
bool HandleEvent(PointGrabber *const corner, QEvent *const event) const
Definition ddtGraphicalElement.cpp:258
const int SCALE_DIFFERENCE_FACTOR
Definition ddtGraphicalElement.hpp:247
virtual DdtOverlayType GetType()
Definition ddtGraphicalElement.cpp:182
virtual void DrawElement(QPainter *painter)=0
QString GetObjectName() const
Definition ddtGraphicalElement.cpp:317
QString element_name
Definition ddtGraphicalElement.hpp:292
void DrawBoundingBox(QPainter *painter) const
Definition ddtGraphicalElement.cpp:49
virtual bool IsHidden()
Definition ddtGraphicalElement.cpp:172
QString object_name
Definition ddtGraphicalElement.hpp:287
DdtGraphicalElement(DdtGraphicalElementProperties const &element_properties, const QString obj_name="", const QString elem_name="")
Definition ddtGraphicalElement.cpp:24
QString GetElementName() const
Definition ddtGraphicalElement.cpp:319
virtual float ScaleThreshold()
Definition ddtGraphicalElement.cpp:177
virtual QRectF boundingRect() const override
Definition ddtGraphicalElement.cpp:104
void SetIsHovering(const bool item_is_hovering)
Definition ddtGraphicalElement.cpp:248
bool GetItemIsSelected() const
Definition ddtGraphicalElement.cpp:254
Definition ddtPointGrabber.hpp:33
DDT Graphics. Class for common properties of graphical elements like line width, colour etc....
DdtOverlayType
Definition ddtGraphicalElement.hpp:35
@ DDT_OVERLAY_PICK_MARKER
Definition ddtGraphicalElement.hpp:83
@ DDT_OVERLAY_REF_LINE
Definition ddtGraphicalElement.hpp:67
@ DDT_OVERLAY_LINE
Definition ddtGraphicalElement.hpp:59
@ DDT_OVERLAY_ALL
Definition ddtGraphicalElement.hpp:39
@ DDT_OVERLAY_IMAGE
Definition ddtGraphicalElement.hpp:79
@ DDT_OVERLAY_TEXT
Definition ddtGraphicalElement.hpp:55
@ DDT_OVERLAY_RECTANGLE
Definition ddtGraphicalElement.hpp:47
@ DDT_OVERLAY_ELLIPSE
Definition ddtGraphicalElement.hpp:43
@ DDT_OVERLAY_STAT_RECTANGLE
Definition ddtGraphicalElement.hpp:71
@ DDT_OVERLAY_CROSS
Definition ddtGraphicalElement.hpp:51
@ DDT_OVERLAY_SLIT
Definition ddtGraphicalElement.hpp:63
@ DDT_OVERLAY_COMPASS
Definition ddtGraphicalElement.hpp:75
Point grabber for manipulate graphical elements.