#ifndef G4Lab_HitsCollectionAccessor_h #define G4Lab_HitsCollectionAccessor_h // Inheritance : #include #include class G4VHitsCollection; class G4VHit; class G4LogicalVolume; class G4Colour; class G4RunManager; namespace Slash {namespace Core {class ISession;}} namespace Slash {namespace Core {class IWriter;}} #include #include #include namespace G4Lab { class HitsCollectionAccessor : public OnX::InventorAccessor { public: //Slash::Data::IAccessor virtual std::string name() const; virtual Slash::Data::IIterator* iterator(); virtual Slash::Core::IValue* findValue(Slash::Data::IAccessor::Data,const std::string&,void*); public: //Slash::Data::IVisualizer virtual void beginVisualize(); virtual void visualize(Slash::Data::IAccessor::Data,void*); public: HitsCollectionAccessor(Slash::Core::ISession&,G4RunManager*, const std::string& = ""); virtual ~HitsCollectionAccessor(); const std::string& HCName() const; protected: static G4LogicalVolume* hitLogicalVolume(const G4VHit&); static G4Transform3D* hitTransform3D(const G4VHit&); static bool hitColor(const G4VHit&,G4Colour&); protected: G4VHitsCollection* getCollection(Slash::Core::IWriter&,const std::string&); private: std::string fType; G4RunManager* fRunManager; std::map* fAttDefs; std::string fHC; }; } #endif