#ifndef G4Lab_SoVisitedVolume_h #define G4Lab_SoVisitedVolume_h // Inheritance : #include class SoGroup; class SoGC; namespace G4Lab { class SoVisitedVolume : public virtual IVisitedVolume { public: //IVisitedVolume virtual IVisitedVolume::Status beginVolume(G4VPhysicalVolume*,G4VSolid*,G4Material*, const G4Transform3D&,int); virtual void endVolume(G4VPhysicalVolume*); virtual void beginDaughters(G4VPhysicalVolume*,int); virtual void endDaughters(G4VPhysicalVolume*,int); public: SoVisitedVolume(SoGC&,SoGroup&,G4VPhysicalVolume&); virtual ~SoVisitedVolume(); private: SoGC& fSoGC; SoGroup& fParent; G4VPhysicalVolume& fPhysicalVolume; int fIndex; }; } #endif