ATLAS Offline Software
VolumeHandleSharedData.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef VOLUMEHANDLESHAREDDATA_H
6 #define VOLUMEHANDLESHAREDDATA_H
7 
8 //This reference counted class keeps data (and related methods) which are common
9 //for all volume handle nodes under a given top-level handle.
10 
12 #include <map>
13 class SoNode;
14 class SoGroup;
15 class SoSeparator;
16 class VolumeHandle;
17 class SoMaterial;
18 class PhiSectorManager;
20 class MatVisAttributes;
21 class VolVisAttributes;
22 class VP1GeoTreeView;
23 class GeoSysController;
24 
26 public:
27  VolumeHandleSharedData(GeoSysController * controller,VP1GeoFlags::SubSystemFlag,std::map<SoSeparator*,VolumeHandle*>* sonodesep2volhandle,
28  const GeoPVConstLink& motherpV,PhiSectorManager*,
29  SoMaterial * topMaterial,MatVisAttributes *,VolVisAttributes *,
30  ZappedVolumeListModel *, VP1GeoTreeView *, SoSeparator*);
32  void ref();
33  void unref();
34 
35  //Fixme: Inline?
36  GeoPVConstLink geoPVConstLinkOfTreeTopsMother() const;
39  SoMaterial * fallBackTopLevelMaterial() const;
43  inline SoSeparator* textSep() const {return m_textSep;}
47 
48  SoNode * toShapeNode(const GeoPVConstLink& pV);//Returns shape of pV->getLogVol() (uses shared instancing as appropriate)
49  SoNode * getSoCylinderOrientedLikeGeoTube(const double& radius, const double& halfLength);//(uses shared instancing as appropriate)
50 
51  void registerNodeSepForVolumeHandle(SoSeparator*,VolumeHandle*);
52 
53  static void setShowVolumeOutlines(SoGroup*nodesep,bool showvol);
54 
55 
56 private:
57 
58  // It is illegal to copy/assign a VolumeHandleSharedData:
61 
62  class Imp;
63  Imp * m_d;
64 
65  //For inlines:
67  SoSeparator* m_textSep;
68 
69 };
70 
71 #endif
VolumeHandleSharedData::fallBackTopLevelMaterial
SoMaterial * fallBackTopLevelMaterial() const
Definition: VolumeHandleSharedData.cxx:105
VP1GeoTreeView
Definition: VP1GeoTreeView.h:22
VolumeHandleSharedData::m_d
Imp * m_d
Definition: VolumeHandleSharedData.h:62
VolumeHandleSharedData::volumeBrowser
VP1GeoTreeView * volumeBrowser() const
Definition: VolumeHandleSharedData.h:40
VolVisAttributes
Definition: VisAttributes.h:71
GeoSysController
Definition: GeoSysController.h:29
VolumeHandleSharedData::volVisAttributes
VolVisAttributes * volVisAttributes() const
Definition: VolumeHandleSharedData.cxx:99
VolumeHandleSharedData::textSep
SoSeparator * textSep() const
Definition: VolumeHandleSharedData.h:43
VolumeHandleSharedData::unref
void unref()
Definition: VolumeHandleSharedData.cxx:85
VolumeHandleSharedData::phiSectorManager
PhiSectorManager * phiSectorManager() const
Definition: VolumeHandleSharedData.cxx:117
VolumeHandleSharedData::~VolumeHandleSharedData
~VolumeHandleSharedData()
Definition: VolumeHandleSharedData.cxx:63
VolumeHandleSharedData::registerNodeSepForVolumeHandle
void registerNodeSepForVolumeHandle(SoSeparator *, VolumeHandle *)
Definition: VolumeHandleSharedData.cxx:129
VolumeHandleSharedData::m_volumebrowser
VP1GeoTreeView * m_volumebrowser
Definition: VolumeHandleSharedData.h:66
VolumeHandleSharedData::Imp
Definition: VolumeHandleSharedData.cxx:25
VolumeHandleSharedData::operator=
VolumeHandleSharedData & operator=(const VolumeHandleSharedData &)
VolumeHandleSharedData
Definition: VolumeHandleSharedData.h:25
VolumeHandleSharedData::geoPVConstLinkOfTreeTopsMother
GeoPVConstLink geoPVConstLinkOfTreeTopsMother() const
Definition: VolumeHandleSharedData.cxx:213
VolumeHandle
Definition: VolumeHandle.h:21
VP1GeoFlags.h
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
VolumeHandleSharedData::ref
void ref()
Definition: VolumeHandleSharedData.cxx:79
VolumeHandleSharedData::subSystemFlag
VP1GeoFlags::SubSystemFlag subSystemFlag() const
Definition: VolumeHandleSharedData.cxx:111
VolumeHandleSharedData::removeZappedVolumesFromGui
void removeZappedVolumesFromGui(VolumeHandle *)
Definition: VolumeHandleSharedData.cxx:225
VolumeHandleSharedData::setShowVolumeOutlines
static void setShowVolumeOutlines(SoGroup *nodesep, bool showvol)
Definition: VolumeHandleSharedData.cxx:137
VolumeHandleSharedData::VolumeHandleSharedData
VolumeHandleSharedData(const VolumeHandleSharedData &)
MatVisAttributes
Definition: VisAttributes.h:64
VolumeHandleSharedData::addZappedVolumeToGui
void addZappedVolumeToGui(VolumeHandle *)
Definition: VolumeHandleSharedData.cxx:219
ZappedVolumeListModel
Definition: ZappedVolumeListModel.h:15
VolumeHandleSharedData::m_textSep
SoSeparator * m_textSep
base text sep
Definition: VolumeHandleSharedData.h:67
PhiSectorManager
Definition: PhiSectorManager.h:30
VolumeHandleSharedData::VolumeHandleSharedData
VolumeHandleSharedData(GeoSysController *controller, VP1GeoFlags::SubSystemFlag, std::map< SoSeparator *, VolumeHandle * > *sonodesep2volhandle, const GeoPVConstLink &motherpV, PhiSectorManager *, SoMaterial *topMaterial, MatVisAttributes *, VolVisAttributes *, ZappedVolumeListModel *, VP1GeoTreeView *, SoSeparator *)
Definition: VolumeHandleSharedData.cxx:43
VolumeHandleSharedData::controller
GeoSysController * controller() const
Definition: VolumeHandleSharedData.cxx:123
VolumeHandleSharedData::toShapeNode
SoNode * toShapeNode(const GeoPVConstLink &pV)
Definition: VolumeHandleSharedData.cxx:163
VP1GeoFlags::SubSystemFlag
SubSystemFlag
Definition: VP1GeoFlags.h:30
VolumeHandleSharedData::getSoCylinderOrientedLikeGeoTube
SoNode * getSoCylinderOrientedLikeGeoTube(const double &radius, const double &halfLength)
Definition: VolumeHandleSharedData.cxx:191
VolumeHandleSharedData::matVisAttributes
MatVisAttributes * matVisAttributes() const
Definition: VolumeHandleSharedData.cxx:93