00001 #ifndef SoHepMC_Types_h
00002 #define SoHepMC_Types_h
00003
00004 class IParticlePropertySvc;
00005 class IDataProviderSvc;
00006 class IUserInterfaceSvc;
00007
00008 class SoRegion;
00009
00010 namespace HepMC {class GenParticle;}
00011
00012 #include <Lib/Interfaces/IIterator.h>
00013 #include <Lib/Interfaces/ISession.h>
00014 #include <OnX/Core/BaseType.h>
00015
00016 class GenParticleType : public OnX::BaseType {
00017 public:
00018 virtual std::string name() const;
00019 virtual Lib::IIterator* iterator();
00020 virtual Lib::Variable value(Lib::Identifier,const std::string&,void*);
00021 public:
00022 virtual void visualize(Lib::Identifier,void*);
00023 public:
00024 GenParticleType(IParticlePropertySvc*,
00025 IDataProviderSvc*,
00026 IUserInterfaceSvc*);
00027 static void represent(HepMC::GenParticle*,
00028 ISession*,SoRegion*,IParticlePropertySvc*);
00029 static void representDecay(HepMC::GenParticle*,
00030 ISession*,SoRegion*,IParticlePropertySvc*);
00031 private:
00032 void clear();
00033 private:
00034 std::string fType;
00035 IParticlePropertySvc* fParticlePropertySvc;
00036 IDataProviderSvc* fDataProviderSvc;
00037 IUserInterfaceSvc* fUISvc;
00038 };
00039
00040 #endif