Engauge Digitizer
2
Toggle main menu visibility
Loading...
Searching...
No Matches
Centipede
CentipedeStateContext.h
Go to the documentation of this file.
1
/******************************************************************************************************
2
* (C) 2020 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3
* under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4
* LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5
******************************************************************************************************/
6
7
#ifndef CENTIPEDE_STATE_CONTEXT_H
8
#define CENTIPEDE_STATE_CONTEXT_H
9
10
#include "
CentipedeState.h
"
11
#include "
DocumentModelCoords.h
"
12
#include "
DocumentModelGuideline.h
"
13
#include <QPointF>
14
#include <QVector>
15
16
class
CentipedeStateAbstractBase
;
17
class
CmdMediator
;
18
class
DigitizeStateGuideline
;
19
class
GraphicsScene
;
20
class
MainWindow
;
21
class
Transformation
;
22
25
class
CentipedeStateContext
26
{
27
public
:
29
CentipedeStateContext
(
DigitizeStateGuideline
&stateGuideline);
30
virtual
~CentipedeStateContext
();
31
33
void
createGuidelineCommand
(
bool
selectedXTFinal,
34
double
valueFinal);
35
37
GraphicsScene
*
graphicsScene
()
const
;
38
39
virtual
void
handleKeyPress
(Qt::Key key,
40
bool
atLeastOneSelectedItem);
41
virtual
void
handleMouseMove
(QPointF posScreen);
42
virtual
void
handleMousePress
(
GraphicsScene
*
scene
,
43
const
Transformation
&
transformation
,
44
const
DocumentModelGuideline
&
modelGuideline
,
45
const
DocumentModelCoords
&
modelCoords
,
46
QPointF posScreen,
47
bool
clickedOnItem);
48
virtual
void
handleMouseRelease
(QPointF posScreen);
49
51
DocumentModelCoords
modelCoords
()
const
;
52
54
DocumentModelGuideline
modelGuideline
()
const
;
55
57
QPointF
posClickScreen
()
const
;
58
60
void
requestDelayedStateTransition
(
CentipedeState
centipedeState);
61
63
void
requestImmediateStateTransition
(
CentipedeState
centipedeState);
64
66
GraphicsScene
&
scene
()
const
;
67
69
Transformation
transformation
()
const
;
70
71
private
:
72
73
void
completeRequestedStateTransitionIfExists ();
74
75
// State machine
76
QVector<CentipedeStateAbstractBase*> m_states;
77
CentipedeState
m_currentState;
78
CentipedeState
m_requestedState;
// Same as m_currentState until requestDelayedStateTransition is called
79
80
// Owning state
81
DigitizeStateGuideline
&m_stateGuideline;
82
83
// Variables for creating graphics items. Values are forwarded through handleKeyPress
84
GraphicsScene
*m_scene;
85
Transformation
*m_transformation;
86
DocumentModelGuideline
m_modelGuideline;
87
DocumentModelCoords
m_modelCoords;
88
QPointF m_posClickScreen;
89
};
90
91
#endif
// CENTIPEDE_STATE_CONTEXT_H
CentipedeState.h
CentipedeState
CentipedeState
Set of possible states of Centipede construction.
Definition
CentipedeState.h:13
DocumentModelCoords.h
DocumentModelGuideline.h
CentipedeStateAbstractBase
Base class for CentipedePair states.
Definition
CentipedeStateAbstractBase.h:17
CentipedeStateContext::modelCoords
DocumentModelCoords modelCoords() const
Get method for forwarded DocumentModelCoords.
Definition
CentipedeStateContext.cpp:126
CentipedeStateContext::scene
GraphicsScene & scene() const
Get method for forwarded GraphicsScene.
Definition
CentipedeStateContext.cpp:152
CentipedeStateContext::CentipedeStateContext
CentipedeStateContext(DigitizeStateGuideline &stateGuideline)
Single constructor.
Definition
CentipedeStateContext.cpp:22
CentipedeStateContext::handleMouseMove
virtual void handleMouseMove(QPointF posScreen)
Definition
CentipedeStateContext.cpp:87
CentipedeStateContext::graphicsScene
GraphicsScene * graphicsScene() const
Get method for forwarded GraphicsScene.
CentipedeStateContext::modelGuideline
DocumentModelGuideline modelGuideline() const
Get method for forwarded DocumentModelGuideline.
Definition
CentipedeStateContext.cpp:131
CentipedeStateContext::handleMousePress
virtual void handleMousePress(GraphicsScene *scene, const Transformation &transformation, const DocumentModelGuideline &modelGuideline, const DocumentModelCoords &modelCoords, QPointF posScreen, bool clickedOnItem)
Definition
CentipedeStateContext.cpp:95
CentipedeStateContext::posClickScreen
QPointF posClickScreen() const
Get method for forwarded click point.
Definition
CentipedeStateContext.cpp:136
CentipedeStateContext::transformation
Transformation transformation() const
Get method for forwarded Transformation.
Definition
CentipedeStateContext.cpp:157
CentipedeStateContext::~CentipedeStateContext
virtual ~CentipedeStateContext()
Definition
CentipedeStateContext.cpp:37
CentipedeStateContext::handleMouseRelease
virtual void handleMouseRelease(QPointF posScreen)
Definition
CentipedeStateContext.cpp:119
CentipedeStateContext::requestDelayedStateTransition
void requestDelayedStateTransition(CentipedeState centipedeState)
Initiate state transition to be performed later, when CentipedeState is off the stack.
Definition
CentipedeStateContext.cpp:141
CentipedeStateContext::createGuidelineCommand
void createGuidelineCommand(bool selectedXTFinal, double valueFinal)
Create a command for creating a Guideline.
Definition
CentipedeStateContext.cpp:70
CentipedeStateContext::requestImmediateStateTransition
void requestImmediateStateTransition(CentipedeState centipedeState)
Perform immediate state transition for immediate action. Called when states are off the stack.
Definition
CentipedeStateContext.cpp:146
CentipedeStateContext::handleKeyPress
virtual void handleKeyPress(Qt::Key key, bool atLeastOneSelectedItem)
Definition
CentipedeStateContext.cpp:77
CmdMediator
Command queue stack.
Definition
CmdMediator.h:24
DigitizeStateGuideline
Digitizing state for creating, moving and removing guidelines.
Definition
DigitizeStateGuideline.h:35
DocumentModelCoords
Model for DlgSettingsCoords and CmdSettingsCoords.
Definition
DocumentModelCoords.h:21
DocumentModelGuideline
Model for managing the coordinate values corresponding Guidelines.
Definition
DocumentModelGuideline.h:22
GraphicsScene
Add point and line handling to generic QGraphicsScene.
Definition
GraphicsScene.h:37
MainWindow
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition
MainWindow.h:95
Transformation
Affine transformation between screen and graph coordinates, based on digitized axis points.
Definition
Transformation.h:32
Generated on
for Engauge Digitizer by
1.17.0