ATLAS Offline Software
IVP13DSystemSimple.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // //
7 // Header file for class IVP13DSystemSimple //
8 // //
9 // Author: Thomas Kittelmann <Thomas.Kittelmann@cern.ch> //
10 // //
11 // Initial version: April 2007 //
12 // //
14 
15 #ifndef IVP13DSYSTEMSIMPLE_H
16 #define IVP13DSYSTEMSIMPLE_H
17 
18 #include "VP1Base/IVP13DSystem.h"
19 
20 class SoSeparator;
21 class SoNode;
22 class SoPath;
23 
25 
26  Q_OBJECT
27 
28 public:
29 
34 
35  IVP13DSystemSimple(const QString & name, const QString & information, const QString & contact_info);
36 
37  virtual void systemcreate(StoreGateSvc* detstore);//Optional.
38 
39  //If you need a controller - create it and return it from a
40  //reimplementation of this method (it will only be called
41  //once). This method will be called before both systemcreate() and
42  //restoreFromState().
43  virtual QWidget * buildController();
44 
45  void ensureBuildController();//Rarely you might wish to call this if you need to access
46  //controller elements in methods that might be called earlier than ::create().
47 
48  //If some part of the scene should stay for the entire run, reimplement and append scene to root, :
49  virtual void buildPermanentSceneGraph(StoreGateSvc* detstore,SoSeparator *root);
50 
51  //Reimplement and build a scenegraph for a given event based on the contents of storegate:
52  virtual void buildEventSceneGraph(StoreGateSvc* sg, SoSeparator *root)=0;
53 
54  void updateGUI();//Call this occasionally in buildEventSceneGraph(...) to avoid GUI freezing.
55 
56  //Reimplement if you need to take action when the user picks an object with the mouse:
57  virtual void userPickedNode(SoNode* pickedNode, SoPath *pickedPath);
58  //NB: This convenient method will often suffice for simple
59  //systems. Systems requiring more advanced selection/deselection
60  //functionality should insert SoCooperativeSelection nodes in their
61  //scenegraphs and use the methods of IVP13Dsystem to handle them.
62 
63  virtual void systemerase();//Optional - for erasing maps etc. with event data. //Fixme: make pure virtual (i.e. require!.. or make warning??)
64 
65  virtual void systemuncreate();//Optional.
66 
71 
72  virtual ~IVP13DSystemSimple();
73 
74  //Call this at any point to get warnings about nodes where
75  //notifications have been mistakenly been left off:
76  void warnOnDisabledNotifications() const;
77 
78 private:
79  class Imp;
80  Imp *m_d;
81  SoSeparator *getSceneGraph() const;
82  void create(StoreGateSvc* detstore);
83  void refresh(StoreGateSvc* storegate);
84  void erase();
85  void uncreate();
86 };
87 
90 
91 #endif
IVP13DSystemSimple::systemuncreate
virtual void systemuncreate()
Definition: IVP13DSystemSimple.cxx:27
IVP13DSystemSimple
Definition: IVP13DSystemSimple.h:24
IVP13DSystemSimple::uncreate
void uncreate()
Definition: IVP13DSystemSimple.cxx:202
IVP13DSystemSimple::IVP13DSystemSimple
IVP13DSystemSimple(const QString &name, const QString &information, const QString &contact_info)
Definition: IVP13DSystemSimple.cxx:50
IVP13DSystemSimple::buildController
virtual QWidget * buildController()
Definition: IVP13DSystemSimple.cxx:24
IVP1System::information
const QString & information() const
Definition: IVP1System.cxx:56
sendEI_SPB.root
root
Definition: sendEI_SPB.py:34
IVP13DSystemSimple::buildPermanentSceneGraph
virtual void buildPermanentSceneGraph(StoreGateSvc *detstore, SoSeparator *root)
Definition: IVP13DSystemSimple.cxx:25
IVP13DSystemSimple::buildEventSceneGraph
virtual void buildEventSceneGraph(StoreGateSvc *sg, SoSeparator *root)=0
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
IVP13DSystemSimple::refresh
void refresh(StoreGateSvc *storegate)
Definition: IVP13DSystemSimple.cxx:146
IVP13DSystemSimple::systemerase
virtual void systemerase()
Definition: IVP13DSystemSimple.cxx:28
IVP13DSystemSimple::userPickedNode
virtual void userPickedNode(SoNode *pickedNode, SoPath *pickedPath)
Definition: IVP13DSystemSimple.cxx:26
IVP13DSystem.h
IVP13DSystemSimple::create
void create(StoreGateSvc *detstore)
Definition: IVP13DSystemSimple.cxx:133
IVP1System::name
const QString & name() const
Definition: IVP1System.cxx:50
IVP13DSystemSimple::systemcreate
virtual void systemcreate(StoreGateSvc *detstore)
Definition: IVP13DSystemSimple.cxx:23
IVP13DSystemSimple::ensureBuildController
void ensureBuildController()
Definition: IVP13DSystemSimple.cxx:90
IVP1System::contact_info
const QString & contact_info() const
Definition: IVP1System.cxx:62
IVP13DSystemSimple::erase
void erase()
Definition: IVP13DSystemSimple.cxx:173
IVP13DSystemSimple::getSceneGraph
SoSeparator * getSceneGraph() const
Definition: IVP13DSystemSimple.cxx:127
IVP13DSystemSimple::updateGUI
void updateGUI()
Definition: IVP13DSystemSimple.h:89
IVP1System::updateGUI
void updateGUI()
Definition: IVP1System.cxx:262
IVP13DSystemSimple::warnOnDisabledNotifications
void warnOnDisabledNotifications() const
Definition: IVP13DSystemSimple.cxx:221
IVP13DSystem
Definition: IVP13DSystem.h:31
IVP13DSystemSimple::Imp
Definition: IVP13DSystemSimple.cxx:33
IVP13DSystemSimple::m_d
Imp * m_d
Definition: IVP13DSystemSimple.h:79
IVP13DSystemSimple::~IVP13DSystemSimple
virtual ~IVP13DSystemSimple()
Definition: IVP13DSystemSimple.cxx:80