ATLAS Offline Software
Loading...
Searching...
No Matches
VP1RawDataCommonData.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5
7// //
8// Implementation of class VP1RawDataCommonData //
9// //
10// Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
11// Initial version: January 2009 //
12// //
14
20#include <map>
22#include <Inventor/nodes/SoGroup.h>
23
24//____________________________________________________________________
26public:
27 std::map<SoTransform*,VP1RawDataHandleBase*> transform2handle;
28 static void setShowVolumeOutlines(SoGroup*nodegroup,bool showvol);
29 bool showVolOutlines = false;
30};
31
32
33
34//____________________________________________________________________
36 : VP1HelperClassBase(sys,"VP1RawDataCommonData"),
39{
41 m_d->showVolOutlines = controller->showVolumeOutLines();
42 connect(controller,SIGNAL(showVolumeOutLinesChanged(bool)),
43 this,SLOT(setShowVolumeOutLines(bool)));
44}
45
46//____________________________________________________________________
52
53//____________________________________________________________________
55{
56 if (t&&h) {
57 m_d->transform2handle[t]=h;
58 }
59}
60
61//____________________________________________________________________
63{
64 m_d->transform2handle.clear();
65}
66
67//____________________________________________________________________
69{
70 if (!t)
71 return 0;
72 std::map<SoTransform*,VP1RawDataHandleBase*>::iterator it = m_d->transform2handle.find(t);
73 return it==m_d->transform2handle.end() ? 0 : it->second;
74}
75
76//_____________________________________________________________________________________
77void VP1RawDataCommonData::Imp::setShowVolumeOutlines(SoGroup*nodegroup,bool showvol)
78{
79 for (int i = 0; i<nodegroup->getNumChildren();++i) {
80 SoNode * n = nodegroup->getChild(i);
81 if (n->getTypeId().isDerivedFrom(SoGenericBox::getClassTypeId())) {
82 if (static_cast<SoGenericBox*>(n)->drawEdgeLines.getValue()!=showvol)
83 static_cast<SoGenericBox*>(n)->drawEdgeLines.setValue(showvol);
84 } else if (n->getTypeId().isDerivedFrom(SoGroup::getClassTypeId())) {
85 setShowVolumeOutlines(static_cast<SoGroup*>(n),showvol);
86 }
87 }
88}
89
90//_____________________________________________________________________________________
92{
93 Imp::setShowVolumeOutlines(g,m_d->showVolOutlines);
94}
95
96//_____________________________________________________________________________________
98{
99 if (m_d->showVolOutlines==b)
100 return;
101 m_d->showVolOutlines = b;
102 std::map<SoTransform*,VP1RawDataHandleBase*>::iterator it, itE = m_d->transform2handle.end();
103 for (it=m_d->transform2handle.begin();it!=itE;++it)
104 it->second->updateShownOutlines();
105}
106
Header file for AthHistogramAlgorithm.
static void initClass()
VP1HelperClassBase(IVP1System *sys=0, QString helpername="")
std::map< SoTransform *, VP1RawDataHandleBase * > transform2handle
static void setShowVolumeOutlines(SoGroup *nodegroup, bool showvol)
void updateVolumeOutlines(SoGroup *)
HitsSoNodeManager * m_nodeManager
VP1RawDataHandleBase * getHandle(SoTransform *)
VP1RawDataSysController * m_controller
void registerTransformAndHandle(SoTransform *, VP1RawDataHandleBase *)
VP1RawDataCommonData(IVP13DSystem *sys, VP1RawDataSysController *)
VP1RawDataSysController * controller()