ddt 1.4.0
 
Loading...
Searching...
No Matches
ddtGraphicalElement.hpp
Go to the documentation of this file.
1
10
11#ifndef DDT_DATAVISUALISATION_DDTGRAPHCIS_GRAPHICALELEMENT_HPP
12#define DDT_DATAVISUALISATION_DDTGRAPHCIS_GRAPHICALELEMENT_HPP
13
14#include <math.h>
15#include <QGraphicsObject>
16#include <QGraphicsSceneHoverEvent>
17#include <QGraphicsSceneMouseEvent>
18#include <QPainter>
19
22
23/*
24 * Overlay type enumerator
25 */
76
80class DdtGraphicalElement : public QGraphicsItem {
81 public:
89 explicit DdtGraphicalElement(
91 const QString obj_name = "", const QString elem_name = "");
92
97
101 virtual void DrawElement(QPainter *painter) = 0;
102
107 virtual QRectF boundingRect() const override;
108
114 virtual QRectF RotateBoundingBox(QRectF const &original_bounding_box) const;
115
122 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
123 QWidget *widget) override;
124
128 void DrawBoundingBox(QPainter *painter) const;
129
134
138 virtual void HighlightSelectedElement(QPainter *painter) const;
139
143 virtual bool IsHidden();
144
148 virtual float ScaleThreshold();
149
153 virtual void SetShowFlag(bool show);
154
158 virtual DdtOverlayType GetType();
159
163 virtual QString GetTypeString();
164
168 virtual QString GetTag();
169
176 virtual void SetTransform(QTransform const &transform);
177
181 void SetIsEditable(const bool editable);
182
186 void SetItemIsSelected(const bool is_selected);
187
191 void SetIsHovering(const bool item_is_hovering);
192
197 bool GetIsEditable() const;
198
203 bool GetItemIsSelected() const;
204
209 QString GetObjectName() const;
210
215 QString GetElementName() const;
216
221 bool GetIsHovering() const;
222
228
232 const int LIGHTER_FACTOR = 200;
233
239
240 protected:
241 void mouseMoveEvent(QGraphicsSceneMouseEvent *const event) override;
242 void mousePressEvent(QGraphicsSceneMouseEvent *const event) override;
243 bool HandleEvent(PointGrabber *const corner, QEvent *const event) const;
244
249
254
258 QPointF location;
259
263 QPointF drag_start;
264
269
274
275 /*
276 * Name of the overlay object this element belongs to.
277 */
278 QString object_name;
279
284
285 private:
286 void Initialize();
287
288 bool item_is_selected;
289 bool is_editable;
290};
291
292#endif // DDT_DATAVISUALISATION_DDTGRAPHCIS_GRAPHICALELEMENT_HPP
Definition ddtGraphicalElementProperties.hpp:20
bool is_hovering
Definition ddtGraphicalElement.hpp:273
void SetItemIsSelected(const bool is_selected)
Definition ddtGraphicalElement.cpp:235
void SetIsEditable(const bool editable)
Definition ddtGraphicalElement.cpp:231
void EditElementProperties(const DdtGraphicalElementProperties &properties)
Definition ddtGraphicalElement.cpp:141
bool GetIsHovering() const
Definition ddtGraphicalElement.cpp:247
QPointF drag_start
Definition ddtGraphicalElement.hpp:263
qreal corner_size
Definition ddtGraphicalElement.hpp:268
virtual QRectF RotateBoundingBox(QRectF const &original_bounding_box) const
Definition ddtGraphicalElement.cpp:97
QPointF location
Definition ddtGraphicalElement.hpp:258
virtual void SetShowFlag(bool show)
Definition ddtGraphicalElement.cpp:158
virtual QString GetTypeString()
Definition ddtGraphicalElement.cpp:178
virtual QString GetTag()
Definition ddtGraphicalElement.cpp:226
DdtGraphicalElementProperties element_properties
Definition ddtGraphicalElement.hpp:248
virtual void HighlightSelectedElement(QPainter *painter) const
Definition ddtGraphicalElement.cpp:66
const int LIGHTER_FACTOR
Definition ddtGraphicalElement.hpp:232
virtual ~DdtGraphicalElement()
void mouseMoveEvent(QGraphicsSceneMouseEvent *const event) override
Definition ddtGraphicalElement.cpp:292
void mousePressEvent(QGraphicsSceneMouseEvent *const event) override
Definition ddtGraphicalElement.cpp:282
bool GetIsEditable() const
Definition ddtGraphicalElement.cpp:243
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition ddtGraphicalElement.cpp:33
DdtOverlayType element_type
Definition ddtGraphicalElement.hpp:253
virtual void SetTransform(QTransform const &transform)
Definition ddtGraphicalElement.cpp:303
const DdtGraphicalElementProperties & GetElementProperties()
Definition ddtGraphicalElement.cpp:154
bool HandleEvent(PointGrabber *const corner, QEvent *const event) const
Definition ddtGraphicalElement.cpp:249
const int SCALE_DIFFERENCE_FACTOR
Definition ddtGraphicalElement.hpp:238
virtual DdtOverlayType GetType()
Definition ddtGraphicalElement.cpp:173
virtual void DrawElement(QPainter *painter)=0
QString GetObjectName() const
Definition ddtGraphicalElement.cpp:308
QString element_name
Definition ddtGraphicalElement.hpp:283
void DrawBoundingBox(QPainter *painter) const
Definition ddtGraphicalElement.cpp:40
virtual bool IsHidden()
Definition ddtGraphicalElement.cpp:163
QString object_name
Definition ddtGraphicalElement.hpp:278
DdtGraphicalElement(DdtGraphicalElementProperties const &element_properties, const QString obj_name="", const QString elem_name="")
Definition ddtGraphicalElement.cpp:15
QString GetElementName() const
Definition ddtGraphicalElement.cpp:310
virtual float ScaleThreshold()
Definition ddtGraphicalElement.cpp:168
virtual QRectF boundingRect() const override
Definition ddtGraphicalElement.cpp:95
void SetIsHovering(const bool item_is_hovering)
Definition ddtGraphicalElement.cpp:239
bool GetItemIsSelected() const
Definition ddtGraphicalElement.cpp:245
Definition ddtPointGrabber.hpp:24
DDT Graphics. Class for common properties of graphical elements like line width, colour etc....
DdtOverlayType
Definition ddtGraphicalElement.hpp:26
@ DDT_OVERLAY_PICK_MARKER
Definition ddtGraphicalElement.hpp:74
@ DDT_OVERLAY_REF_LINE
Definition ddtGraphicalElement.hpp:58
@ DDT_OVERLAY_LINE
Definition ddtGraphicalElement.hpp:50
@ DDT_OVERLAY_ALL
Definition ddtGraphicalElement.hpp:30
@ DDT_OVERLAY_IMAGE
Definition ddtGraphicalElement.hpp:70
@ DDT_OVERLAY_TEXT
Definition ddtGraphicalElement.hpp:46
@ DDT_OVERLAY_RECTANGLE
Definition ddtGraphicalElement.hpp:38
@ DDT_OVERLAY_ELLIPSE
Definition ddtGraphicalElement.hpp:34
@ DDT_OVERLAY_STAT_RECTANGLE
Definition ddtGraphicalElement.hpp:62
@ DDT_OVERLAY_CROSS
Definition ddtGraphicalElement.hpp:42
@ DDT_OVERLAY_SLIT
Definition ddtGraphicalElement.hpp:54
@ DDT_OVERLAY_COMPASS
Definition ddtGraphicalElement.hpp:66
Point grabber for manipulate graphical elements.