00001 #ifndef VIS_G4_VOLUMES_VIS_G4_VOLUME_TWIG_H 00002 # define VIS_G4_VOLUMES_VIS_G4_VOLUME_TWIG_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "VisGeant4/VisG4Volumes/interface/config.h" 00007 # include "VisGeant4/VisG4Core/interface/VisG4Path.h" 00008 # include "Iguana/Framework/interface/IgTwig.h" 00009 # include <vector> 00010 00011 //<<<<<< PUBLIC DEFINES >>>>>> 00012 //<<<<<< PUBLIC CONSTANTS >>>>>> 00013 //<<<<<< PUBLIC TYPES >>>>>> 00014 00015 class G4VPhysicalVolume; 00016 class VisG4MaterialFilter; 00017 class VisG4Filter; 00018 00019 //<<<<<< PUBLIC VARIABLES >>>>>> 00020 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00021 //<<<<<< CLASS DECLARATIONS >>>>>> 00022 00024 class VIS_G4_VOLUMES_API VisG4VolumeTwig : public IgCompoundTwig 00025 { 00026 public: 00027 VisG4VolumeTwig (IgTwig *parent, 00028 G4VPhysicalVolume *in, 00029 bool traverse = false, 00030 bool visible = false, 00031 bool open = false, 00032 bool logical = true); 00033 // implicit copy constructor 00034 // implicit assignment operator 00035 // implicit destructor 00036 00037 //VisG4Path path (void) const; 00038 unsigned paths (void); 00039 VisG4Path path (unsigned index); 00040 00041 G4VPhysicalVolume * volume (void) const; 00042 VisG4VolumeTwig * select (const VisG4Path &path, 00043 bool autoexpand = false); 00044 00045 unsigned physicalChildren (void); 00046 IgTwig * physicalChild (unsigned index); 00047 00048 virtual std::string name (void) const; 00049 virtual void name (const std::string &value); 00050 00051 virtual bool expand (void); 00052 00053 virtual bool selfTraverse (void) const; 00054 virtual void selfTraverse (bool value); 00055 00056 virtual bool selfVisible (void) const; 00057 virtual void selfVisible (bool value); 00058 00059 virtual bool cascade (void) const; 00060 virtual void cascade (bool value); 00061 00062 virtual bool logical (void) const; 00063 virtual void logical (bool value); 00064 00065 static VisG4MaterialFilter *m_materialFilter; 00066 static VisG4Filter *m_visualizationFilter; 00067 private: 00068 static const unsigned int TRAVERSE = 2; 00069 static const unsigned int VISIBLE = 4; 00070 static const unsigned int CASCADE = 8; 00071 static const unsigned int LOGICAL = 16; 00072 00073 G4VPhysicalVolume *m_volume; 00074 std::vector<VisG4Path> m_paths; 00075 }; 00076 00077 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00078 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00079 00080 #endif // VIS_G4_VOLUMES_VIS_G4_VOLUME_TWIG_H