ATLAS Offline Software
Loading...
Searching...
No Matches
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
19
20class SoSeparator;
21class SoNode;
22class SoPath;
23
25
26 Q_OBJECT
27
28public:
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
78private:
79 class Imp;
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
virtual void systemcreate(StoreGateSvc *detstore)
IVP13DSystemSimple(const QString &name, const QString &information, const QString &contact_info)
SoSeparator * getSceneGraph() const
void create(StoreGateSvc *detstore)
void refresh(StoreGateSvc *storegate)
virtual void userPickedNode(SoNode *pickedNode, SoPath *pickedPath)
virtual void buildPermanentSceneGraph(StoreGateSvc *detstore, SoSeparator *root)
virtual QWidget * buildController()
void warnOnDisabledNotifications() const
virtual void buildEventSceneGraph(StoreGateSvc *sg, SoSeparator *root)=0
virtual void systemuncreate()
IVP13DSystem(const QString &name, const QString &information, const QString &contact_info)
const QString & name() const
void updateGUI()
const QString & information() const
const QString & contact_info() const
The Athena Transient Store API.