StateScene.h
Go to the documentation of this file.
1 /*
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @package ArmarX::
17 * @author Mirko Waechter ( mirko.waechter at kit dot edu)
18 * @date 2014
19 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20 * GNU General Public License
21 */
22 
23 #pragma once
24 
25 #include <QGraphicsLineItem>
26 #include <QGraphicsRectItem>
27 #include <QGraphicsScene>
28 
30 
32 {
33  class State;
34  using StatePtr = std::shared_ptr<State>;
35  class StateInstance;
36  using StateInstancePtr = std::shared_ptr<StateInstance>;
37  class Transition;
38  using TransitionCPtr = std::shared_ptr<const Transition>;
39 } // namespace armarx::statechartmodel
40 
41 namespace armarx
42 {
43  class StateItem;
44 
46  {
47  bool active = false;
48  QString fullStatePath;
50  };
51 
52  class StateScene : public QGraphicsScene, public Logging
53  {
54  Q_OBJECT
55  public:
56  explicit StateScene(QObject* parent = 0);
59 
60 
61  QMap<QString, StateInstanceData> getStateInstanceData() const;
62 
63  signals:
65  QPoint mouseScreenPos,
66  QPointF mouseItemPos);
69  QPoint mouseScreenPos,
70  QPointF mouseItemPos);
71  public slots:
72  void setToplevelState(statechartmodel::StatePtr toplevelStateInstance);
73  void saveSceneToSVG(QString path = "/tmp/statechart.png", int width = 6000);
74  void clearActiveSubstates();
75 
76  private:
77  statechartmodel::StateInstancePtr toplevelStateInstance;
78  StateItem* topLevelStateItem;
79  // QMap<QString, StateItem*> subStates;
80  // QList<QGraphicsLineItem*> transitions;
81  };
82 
83 } // namespace armarx
armarx::StateInstanceData::fullStatePath
QString fullStatePath
Definition: StateScene.h:48
armarx::StateScene::saveSceneToSVG
void saveSceneToSVG(QString path="/tmp/statechart.png", int width=6000)
Definition: StateScene.cpp:61
armarx::StateScene::getStateInstanceData
QMap< QString, StateInstanceData > getStateInstanceData() const
Definition: StateScene.cpp:98
armarx::StateScene::clearActiveSubstates
void clearActiveSubstates()
Definition: StateScene.cpp:75
armarx::StateScene::getStateInstance
statechartmodel::StateInstancePtr getStateInstance() const
Definition: StateScene.cpp:43
armarx::statechartmodel::StateInstancePtr
std::shared_ptr< StateInstance > StateInstancePtr
Definition: StateInstance.h:146
armarx::StateScene::getTopLevelStateItem
StateItem * getTopLevelStateItem() const
Definition: StateScene.cpp:138
armarx::StateScene::transitionContextMenuRequested
void transitionContextMenuRequested(statechartmodel::TransitionCPtr transition, statechartmodel::StatePtr state, QPoint mouseScreenPos, QPointF mouseItemPos)
armarx::statechartmodel
Definition: XmlWriter.h:36
KITProsthesis::ProsthesisState::State
State
Definition: KITProstheticHandInterface.ice:32
armarx::StateScene::StateScene
StateScene(QObject *parent=0)
Definition: StateScene.cpp:37
armarx::StateInstanceData::active
bool active
Definition: StateScene.h:47
armarx::Logging
Base Class for all Logging classes.
Definition: Logging.h:239
armarx::statechartmodel::TransitionCPtr
std::shared_ptr< const Transition > TransitionCPtr
Definition: Transition.h:91
armarx::StateScene::setToplevelState
void setToplevelState(statechartmodel::StatePtr toplevelStateInstance)
Definition: StateScene.cpp:49
armarx::statechartmodel::StatePtr
std::shared_ptr< State > StatePtr
Definition: State.h:48
armarx::StateItem
Definition: StateItem.h:58
armarx::StateScene::stateContextMenuRequested
void stateContextMenuRequested(statechartmodel::StateInstancePtr state, QPoint mouseScreenPos, QPointF mouseItemPos)
Logging.h
armarx::StateInstanceData
Definition: StateScene.h:45
armarx::StateScene
Definition: StateScene.h:52
armarx::StateInstanceData::stateInstance
statechartmodel::StateInstancePtr stateInstance
Definition: StateScene.h:49
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27