ddt 1.1.0
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 */
84};
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(CornerGrabber *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: ddtCornergrabber.hpp:34
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
const int SCALE_DIFFERENCE_FACTOR
Definition: ddtGraphicalElement.hpp:247
bool HandleEvent(CornerGrabber *const corner, QEvent *const event) const
Definition: ddtGraphicalElement.cpp:258
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
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
Corner grabber for resizable graphical elements. Class for the corners of resizable graphical element...
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