Geometrize  1.0
An application for geometrizing images into geometric primitives
imagetaskscenemanager.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 #include <vector>
5 
6 #include <QObject>
7 
9 
10 class QPixmap;
11 
12 namespace geometrize
13 {
14 struct ShapeResult;
15 class Shape;
16 }
17 
18 namespace geometrize
19 {
20 namespace scene
21 {
22 class ImageTaskGraphicsView;
23 }
24 }
25 
26 namespace geometrize
27 {
28 
29 namespace scene
30 {
31 
36 class ImageTaskSceneManager : public QObject
37 {
38  Q_OBJECT
39 
40 public:
42  virtual ~ImageTaskSceneManager();
43 
49  void setViews(ImageTaskGraphicsView& pixmapView, ImageTaskGraphicsView& svgView);
50 
55  void setTargetPixmap(const QPixmap& pixmap);
56 
61  void setTargetPixmapOpacity(float opacity);
62 
68  void updateScenes(const QPixmap& pixmap, const std::vector<geometrize::ShapeResult>& shapes);
69 
73  void reset();
74 
80 
86 
93 
98  void setAreaOfInfluenceShape(const geometrize::Shape& shape);
99 
100 signals:
102  void signal_onTargetImageHoverMoveEvent(double lastX, double lastY, double x, double y, bool ctrlModifier);
103  void signal_onTargetImageMousePressEvent(double x, double y, bool ctrlModifier);
104  void signal_onTargetImageMouseMoveEvent(double lastX, double lastY, double x, double y, bool ctrlModifier);
105  void signal_onTargetImageMouseReleaseEvent(double x, double y, bool ctrlModifier);
106  void signal_onTargetImageWheelEvent(double x, double y, int amount, bool ctrlModifier);
107  void signal_onTargetImageKeyPressEvent(int key, bool ctrlModifier);
108  void signal_onTargetImageKeyReleaseEvent(int key, bool ctrlModifier);
109 
110  void signal_onAreaOfInfluenceShapeHoverMoveEvent(double lastX, double lastY, double x, double y, bool ctrlModifier);
111  void signal_onAreaOfInfluenceShapeMousePressEvent(double x, double y, bool ctrlModifier);
112  void signal_onAreaOfInfluenceShapeMouseMoveEvent(double lastX, double lastY, double x, double y, bool ctrlModifier);
113  void signal_onAreaOfInfluenceShapeMouseReleaseEvent(double x, double y, bool ctrlModifier);
114  void signal_onAreaOfInfluenceShapeMouseWheelEvent(double x, double y, int amount, bool ctrlModifier);
115  void signal_onAreaOfInfluenceShapeKeyPressEvent(int key, bool ctrlModifier);
116  void signal_onAreaOfInfluenceShapeKeyReleaseEvent(int key, bool ctrlModifier);
117 
118 private:
120  std::unique_ptr<ImageTaskSceneManagerImpl> d;
121 };
122 
123 }
124 
125 }
geometrize::scene::ImageTaskSceneManager::reset
void reset()
reset Resets the state of the scenes, removing shapes etc.
Definition: imagetaskscenemanager.cpp:173
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl
Definition: imagetaskscenemanager.cpp:27
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::ImageTaskSceneManagerImpl
ImageTaskSceneManagerImpl(ImageTaskSceneManager *pQ)
Definition: imagetaskscenemanager.cpp:29
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::setAreaOfInfluenceShape
void setAreaOfInfluenceShape(const geometrize::Shape &shape)
Definition: imagetaskscenemanager.cpp:87
geometrize::scene::ImageTaskPixmapGraphicsItem::signal_onMouseMoveEvent
void signal_onMouseMoveEvent(double lastX, double lastY, double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::setTargetPixmapOpacity
void setTargetPixmapOpacity(const float opacity)
Definition: imagetaskscenemanager.cpp:50
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::ImageTaskPixmapGraphicsItem::signal_onCustomTabletEvent
void signal_onCustomTabletEvent(const geometrize::scene::CustomTabletEvent &event)
geometrize::scene::ImageTaskPixmapGraphicsItem::signal_onMousePressEvent
void signal_onMousePressEvent(double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::signal_onTargetImageMouseMoveEvent
void signal_onTargetImageMouseMoveEvent(double lastX, double lastY, double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::reset
void reset()
Definition: imagetaskscenemanager.cpp:62
areaofinfluenceshapeitem.h
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManager
ImageTaskSceneManager()
Definition: imagetaskscenemanager.cpp:145
geometrize::scene::ImageTaskPixmapGraphicsItem::signal_onKeyReleaseEvent
void signal_onKeyReleaseEvent(int key, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::connectTargetItemSignals
void connectTargetItemSignals(geometrize::scene::ImageTaskPixmapGraphicsItem &item)
Definition: imagetaskscenemanager.cpp:109
geometrize::scene::ImageTaskPixmapGraphicsItem::signal_onHoverMoveEvent
void signal_onHoverMoveEvent(double lastX, double lastY, double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::updateScenes
void updateScenes(const QPixmap &pixmap, const std::vector< geometrize::ShapeResult > &shapes)
updateScenes Updates the scenes to show the latest image/shapes.
Definition: imagetaskscenemanager.cpp:168
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::fitVectorSceneInView
void fitVectorSceneInView(ImageTaskGraphicsView &svgView)
Definition: imagetaskscenemanager.cpp:74
geometrize::scene::ImageTaskSvgScene
The ImageTaskSvgScene class models a graphics scene for viewing the shape data of an image task as an...
Definition: imagetasksvgscene.h:25
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::~ImageTaskSceneManagerImpl
~ImageTaskSceneManagerImpl()=default
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::m_svgScene
geometrize::scene::ImageTaskSvgScene m_svgScene
The scene containing the raster/pixel-based representation of the shapes
Definition: imagetaskscenemanager.cpp:138
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::setTargetPixmap
void setTargetPixmap(const QPixmap &pixmap)
Definition: imagetaskscenemanager.cpp:44
geometrize::scene::ImageTaskSceneManager::signal_onTargetImageMousePressEvent
void signal_onTargetImageMousePressEvent(double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::setViews
void setViews(ImageTaskGraphicsView &pixmapView, ImageTaskGraphicsView &svgView)
Definition: imagetaskscenemanager.cpp:38
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::q
ImageTaskSceneManager * q
The scene containing the vector-based representation of the shapes
Definition: imagetaskscenemanager.cpp:140
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::ImageTaskPixmapScene::setWorkingPixmap
void setWorkingPixmap(const QPixmap &pixmap)
setWorkingPixmap Sets the pixmap that provides the current/working image visualization.
Definition: imagetaskpixmapscene.cpp:43
geometrize::scene::ImageTaskPixmapGraphicsItem::signal_onKeyPressEvent
void signal_onKeyPressEvent(int key, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::fitVectorSceneInView
void fitVectorSceneInView(ImageTaskGraphicsView &svgView)
fitVectorSceneInView Fits the SVG/vector scene into the given view.
Definition: imagetaskscenemanager.cpp:183
geometrize::scene::ImageTaskSceneManager::signal_onTargetImageMouseReleaseEvent
void signal_onTargetImageMouseReleaseEvent(double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::setTargetPixmapOpacity
void setTargetPixmapOpacity(float opacity)
setTargetPixmapOpacity Sets the opacity of the target pixmap.
Definition: imagetaskscenemanager.cpp:163
geometrize::scene::ImageTaskSceneManager::signal_onTargetImageKeyPressEvent
void signal_onTargetImageKeyPressEvent(int key, bool ctrlModifier)
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::ImageTaskSceneManager::ImageTaskSceneManagerImpl::updateScenes
void updateScenes(const QPixmap &pixmap, const std::vector< geometrize::ShapeResult > &shapes)
Definition: imagetaskscenemanager.cpp:56
geometrize::scene::ImageTaskSceneManager::fitScenesInViews
void fitScenesInViews(ImageTaskGraphicsView &pixmapView, ImageTaskGraphicsView &svgView)
fitScenesInViews Fits the scenes into their respective views.
Definition: imagetaskscenemanager.cpp:188
geometrize::scene::ImageTaskSceneManager::d
std::unique_ptr< ImageTaskSceneManagerImpl > d
Definition: imagetaskscenemanager.h:119
geometrize::scene::ImageTaskGraphicsView
The ImageTaskGraphicsView class models a graphics view for viewing the images and shapes used and/or ...
Definition: imagetaskgraphicsview.h:22
geometrize::scene::ImageTaskSceneManager::signal_onAreaOfInfluenceShapeMousePressEvent
void signal_onAreaOfInfluenceShapeMousePressEvent(double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskSvgScene::removeShapes
void removeShapes()
removeShapes Removes all shapes from the scene.
Definition: imagetasksvgscene.cpp:74
geometrize
Definition: commandlineparser.cpp:73
geometrize::scene::ImageTaskSceneManager::signal_onTargetImageTabletEvent
void signal_onTargetImageTabletEvent(const geometrize::scene::CustomTabletEvent &event)
geometrize::scene::ImageTaskScene::setTargetPixmapOpacity
void setTargetPixmapOpacity(float opacity)
setTargetPixmapOpacity Sets the opacity of the target pixmap.
Definition: imagetaskscene.cpp:92
geometrize::scene::ImageTaskSceneManager::signal_onAreaOfInfluenceShapeMouseReleaseEvent
void signal_onAreaOfInfluenceShapeMouseReleaseEvent(double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::signal_onAreaOfInfluenceShapeKeyReleaseEvent
void signal_onAreaOfInfluenceShapeKeyReleaseEvent(int key, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::signal_onTargetImageWheelEvent
void signal_onTargetImageWheelEvent(double x, double y, int amount, bool ctrlModifier)
imagetasksvgscene.h
geometrize::scene::ImageTaskSceneManager::signal_onAreaOfInfluenceShapeKeyPressEvent
void signal_onAreaOfInfluenceShapeKeyPressEvent(int key, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::signal_onTargetImageKeyReleaseEvent
void signal_onTargetImageKeyReleaseEvent(int key, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::operator=
ImageTaskSceneManagerImpl operator=(const ImageTaskSceneManagerImpl &)=delete
imagetaskpixmapgraphicsitem.h
imagetaskgraphicsview.h
geometrize::scene::ImageTaskPixmapGraphicsItem::signal_onMouseReleaseEvent
void signal_onMouseReleaseEvent(double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskScene::setOverlayShape
void setOverlayShape(SvgItem *item)
setOverlayItem Sets the given overlay shape upon the scene.
Definition: imagetaskscene.cpp:107
geometrize::scene::ImageTaskSceneManager::signal_onAreaOfInfluenceShapeHoverMoveEvent
void signal_onAreaOfInfluenceShapeHoverMoveEvent(double lastX, double lastY, double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::signal_onTargetImageHoverMoveEvent
void signal_onTargetImageHoverMoveEvent(double lastX, double lastY, double x, double y, bool ctrlModifier)
customtabletevent.h
geometrize::scene::ImageTaskSceneManager::fitPixmapSceneInView
void fitPixmapSceneInView(ImageTaskGraphicsView &pixmapView)
fitPixmapSceneInView Fits the pixmap scene into the given view.
Definition: imagetaskscenemanager.cpp:178
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::ImageTaskSceneManager::ImageTaskSceneManagerImpl::fitScenesInViews
void fitScenesInViews(ImageTaskGraphicsView &pixmapView, ImageTaskGraphicsView &svgView)
Definition: imagetaskscenemanager.cpp:81
geometrize::scene::ImageTaskSvgScene::addShapes
void addShapes(const std::vector< geometrize::ShapeResult > &shapes, const std::uint32_t width, const std::uint32_t height)
addShapes Updates the SVG data based on the given shapes.
Definition: imagetasksvgscene.cpp:69
geometrize::scene::ImageTaskSceneManager::setViews
void setViews(ImageTaskGraphicsView &pixmapView, ImageTaskGraphicsView &svgView)
setViews Associates the given views with the scenes managed by this class.
Definition: imagetaskscenemanager.cpp:153
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::ImageTaskSceneManagerImpl
ImageTaskSceneManagerImpl(const ImageTaskSceneManagerImpl &)=delete
geometrize::scene::AreaOfInfluenceShapeItem
The AreaOfInfluenceShapeItem class represents a graphical visualization of a shape that the user inte...
Definition: areaofinfluenceshapeitem.h:21
geometrize::scene::ImageTaskSceneManager::signal_onAreaOfInfluenceShapeMouseWheelEvent
void signal_onAreaOfInfluenceShapeMouseWheelEvent(double x, double y, int amount, bool ctrlModifier)
imagetaskpixmapscene.h
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::m_pixmapScene
geometrize::scene::ImageTaskPixmapScene m_pixmapScene
Definition: imagetaskscenemanager.cpp:137
geometrize::scene::ImageTaskSceneManager
The ImageTaskSceneManager manages the scenes representing the graphical state of the shapes It mostly...
Definition: imagetaskscenemanager.h:37
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::m_defaultViewMargins
const double m_defaultViewMargins
Definition: imagetaskscenemanager.cpp:142
geometrize::scene::ImageTaskPixmapGraphicsItem::signal_onWheelEvent
void signal_onWheelEvent(double x, double y, int amount, bool ctrlModifier)
geometrize::scene::ImageTaskSceneManager::setAreaOfInfluenceShape
void setAreaOfInfluenceShape(const geometrize::Shape &shape)
setAreaOfInfluenceShape Sets up a area of influence visual for the given shape.
Definition: imagetaskscenemanager.cpp:193
geometrize::scene::ImageTaskSceneManager::setTargetPixmap
void setTargetPixmap(const QPixmap &pixmap)
setTargetPixmap Sets the pixmap that provides the target/goal image visualization.
Definition: imagetaskscenemanager.cpp:158
imagetaskscenemanager.h
geometrize::scene::ImageTaskSceneManager::ImageTaskSceneManagerImpl::fitPixmapSceneInView
void fitPixmapSceneInView(ImageTaskGraphicsView &pixmapView)
Definition: imagetaskscenemanager.cpp:67
geometrize::scene::ImageTaskSceneManager::signal_onAreaOfInfluenceShapeMouseMoveEvent
void signal_onAreaOfInfluenceShapeMouseMoveEvent(double lastX, double lastY, double x, double y, bool ctrlModifier)
geometrize::scene::ImageTaskPixmapScene
The ImageTaskPixmapScene class models a graphics scene for viewing the pixmap-based results of image ...
Definition: imagetaskpixmapscene.h:21
geometrize::scene::ImageTaskSceneManager::~ImageTaskSceneManager
virtual ~ImageTaskSceneManager()
Definition: imagetaskscenemanager.cpp:149