ATLAS Offline Software
Loading...
Searching...
No Matches
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>
13class SoNode;
14class SoGroup;
15class SoSeparator;
16class VolumeHandle;
17class SoMaterial;
22class VP1GeoTreeView;
24
26public:
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
52
53 static void setShowVolumeOutlines(SoGroup*nodesep,bool showvol);
54
55
56private:
57
58 // It is illegal to copy/assign a VolumeHandleSharedData:
61
62 class Imp;
64
65 //For inlines:
67 SoSeparator* m_textSep;
68
69};
70
71#endif
VolumeHandleSharedData(GeoSysController *controller, VP1GeoFlags::SubSystemFlag, std::map< SoSeparator *, VolumeHandle * > *sonodesep2volhandle, const GeoPVConstLink &motherpV, PhiSectorManager *, SoMaterial *topMaterial, MatVisAttributes *, VolVisAttributes *, ZappedVolumeListModel *, VP1GeoTreeView *, SoSeparator *)
SoSeparator * textSep() const
SoSeparator * m_textSep
base text sep
VolumeHandleSharedData & operator=(const VolumeHandleSharedData &)
GeoPVConstLink geoPVConstLinkOfTreeTopsMother() const
VolumeHandleSharedData(const VolumeHandleSharedData &)
PhiSectorManager * phiSectorManager() const
GeoSysController * controller() const
void registerNodeSepForVolumeHandle(SoSeparator *, VolumeHandle *)
VP1GeoTreeView * volumeBrowser() const
SoNode * getSoCylinderOrientedLikeGeoTube(const double &radius, const double &halfLength)
static void setShowVolumeOutlines(SoGroup *nodesep, bool showvol)
VolVisAttributes * volVisAttributes() const
VP1GeoFlags::SubSystemFlag subSystemFlag() const
void removeZappedVolumesFromGui(VolumeHandle *)
void addZappedVolumeToGui(VolumeHandle *)
SoMaterial * fallBackTopLevelMaterial() const
MatVisAttributes * matVisAttributes() const
SoNode * toShapeNode(const GeoPVConstLink &pV)