Geometrize  1.0
An application for geometrizing images into geometric primitives
imagetaskscene.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 
5 #include <QGraphicsScene>
6 
8 #include "svgitem.h"
9 
10 class QEvent;
11 class QFocusEvent;
12 class QKeyEvent;
13 class QGraphicsSceneWheelEvent;
14 
15 namespace geometrize
16 {
17 
18 namespace scene
19 {
20 
24 class ImageTaskScene : public QGraphicsScene
25 {
26  Q_OBJECT
27 
28 public:
29  explicit ImageTaskScene(QObject* parent = nullptr);
30  virtual ~ImageTaskScene();
31 
36  void setTargetPixmapOpacity(float opacity);
37 
42  void setTargetPixmap(const QPixmap& pixmap);
43 
49 
54  void setOverlayShape(SvgItem* item);
55 
60  void setOverlayShapeVisibility(bool visible);
61 
62 protected:
63  bool event(QEvent* event) override;
64  void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
65  void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
66  void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
67  void wheelEvent(QGraphicsSceneWheelEvent* event) override;
68  void keyPressEvent(QKeyEvent* event) override;
69  void keyReleaseEvent(QKeyEvent* event) override;
70  void focusInEvent(QFocusEvent* event) override;
71  void focusOutEvent(QFocusEvent* event) override;
72 
73 private:
74  class ImageTaskSceneImpl;
75  std::unique_ptr<ImageTaskSceneImpl> d;
76 };
77 
78 }
79 
80 }
geometrize::scene::ImageTaskScene::setTargetPixmap
void setTargetPixmap(const QPixmap &pixmap)
setTargetPixmap Sets the pixmap that provides the target/goal image visualization.
Definition: imagetaskscene.cpp:97
geometrize::scene::ImageTaskScene::setOverlayShapeVisibility
void setOverlayShapeVisibility(bool visible)
setOverlayShapeVisibility Whether the overlay shape(s) in the scene should be visible.
Definition: imagetaskscene.cpp:112
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::getTargetPixmapItem
ImageTaskPixmapGraphicsItem & getTargetPixmapItem()
Definition: imagetaskscene.cpp:47
geometrize::scene::ImageTaskScene::mouseReleaseEvent
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition: imagetaskscene.cpp:141
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::q
ImageTaskScene * q
Definition: imagetaskscene.cpp:78
geometrize::scene::ImageTaskScene::wheelEvent
void wheelEvent(QGraphicsSceneWheelEvent *event) override
Definition: imagetaskscene.cpp:146
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::setTargetPixmapOpacity
void setTargetPixmapOpacity(float opacity)
Definition: imagetaskscene.cpp:33
geometrize::scene::ImageTaskScene::ImageTaskScene
ImageTaskScene(QObject *parent=nullptr)
Definition: imagetaskscene.cpp:84
geometrize::scene::ImageTaskScene::~ImageTaskScene
virtual ~ImageTaskScene()
Definition: imagetaskscene.cpp:88
geometrize::scene::ImageTaskScene::mousePressEvent
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition: imagetaskscene.cpp:131
geometrize::scene::ImageTaskScene::focusOutEvent
void focusOutEvent(QFocusEvent *event) override
Definition: imagetaskscene.cpp:166
geometrize::scene::ImageTaskScene::getTargetPixmapItem
ImageTaskPixmapGraphicsItem & getTargetPixmapItem()
getTargetPixmapItem Gets a refernece to the graphics item that houses the target pixmap.
Definition: imagetaskscene.cpp:102
geometrize::scene::CustomTabletEvent::customEventId
static const int customEventId
CustomTabletEventTypeId is the id for the corresponding custom tablet event type.
Definition: customtabletevent.h:93
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::m_targetPixmapItem
ImageTaskPixmapGraphicsItem m_targetPixmapItem
Definition: imagetaskscene.cpp:75
geometrize::scene::CustomTabletEvent
The CustomTabletEvent class represents a tablet event (specifically from a Wacom Pro pen) that can be...
Definition: customtabletevent.h:88
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::setOverlayShapeVisibility
void setOverlayShapeVisibility(const bool visible)
Definition: imagetaskscene.cpp:66
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::m_overlayShapeVisibility
bool m_overlayShapeVisibility
Definition: imagetaskscene.cpp:81
geometrize::scene::SvgItem
The SvgItem class represents an SVG graphic that is drawn as part of a scene.
Definition: svgitem.h:16
svgitem.h
geometrize
Definition: commandlineparser.cpp:73
geometrize::scene::ImageTaskScene::setTargetPixmapOpacity
void setTargetPixmapOpacity(float opacity)
setTargetPixmapOpacity Sets the opacity of the target pixmap.
Definition: imagetaskscene.cpp:92
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::ImageTaskSceneImpl
ImageTaskSceneImpl(ImageTaskScene *pQ)
Definition: imagetaskscene.cpp:23
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::setOverlayShape
void setOverlayShape(SvgItem *item)
Definition: imagetaskscene.cpp:52
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::setTargetPixmap
void setTargetPixmap(const QPixmap &pixmap)
Definition: imagetaskscene.cpp:42
geometrize::scene::ImageTaskScene::event
bool event(QEvent *event) override
Definition: imagetaskscene.cpp:117
imagetaskpixmapgraphicsitem.h
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl
Definition: imagetaskscene.cpp:21
geometrize::scene::ImageTaskScene::keyPressEvent
void keyPressEvent(QKeyEvent *event) override
Definition: imagetaskscene.cpp:151
geometrize::scene::ImageTaskScene
The ImageTaskScene class models a graphics scene for viewing the results of image tasks.
Definition: imagetaskscene.h:25
geometrize::scene::ImageTaskScene::d
std::unique_ptr< ImageTaskSceneImpl > d
Definition: imagetaskscene.h:74
geometrize::scene::ImageTaskScene::mouseMoveEvent
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Definition: imagetaskscene.cpp:136
geometrize::scene::ImageTaskScene::setOverlayShape
void setOverlayShape(SvgItem *item)
setOverlayItem Sets the given overlay shape upon the scene.
Definition: imagetaskscene.cpp:107
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::~ImageTaskSceneImpl
~ImageTaskSceneImpl()=default
customtabletevent.h
geometrize::scene::ImageTaskScene::keyReleaseEvent
void keyReleaseEvent(QKeyEvent *event) override
Definition: imagetaskscene.cpp:156
geometrize::scene::ImageTaskPixmapGraphicsItem
The ImageTaskPixmapGraphicsItem class models a pixmap graphic item that goes into the scene for an im...
Definition: imagetaskpixmapgraphicsitem.h:26
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::ImageTaskSceneImpl
ImageTaskSceneImpl(const ImageTaskSceneImpl &)=delete
geometrize::scene::ImageTaskScene::focusInEvent
void focusInEvent(QFocusEvent *event) override
Definition: imagetaskscene.cpp:161
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::m_lastOverlayShapeItem
SvgItem * m_lastOverlayShapeItem
Definition: imagetaskscene.cpp:80
geometrize::scene::ImageTaskScene::ImageTaskSceneImpl::operator=
ImageTaskSceneImpl operator=(const ImageTaskSceneImpl &)=delete
imagetaskscene.h