#ifndef VTK_GEANT_EMITTERPRIMARY_H #define VTK_GEANT_EMITTERPRIMARY_H #include "Vtk/uLibVtkInterface.h" #include "HEP/Geant/EmitterPrimary.hh" class vtkConeSource; class vtkLineSource; class vtkPolyData; class vtkActor; class vtkPlaneSource; class vtkCylinderSource; namespace uLib { namespace Vtk { class EmitterPrimary : public Prop3D { public: EmitterPrimary(Geant::EmitterPrimary &emitter); virtual ~EmitterPrimary(); virtual void contentUpdate(); virtual void Update(); protected: Geant::EmitterPrimary &m_emitter; vtkActor *m_Actor; }; class vtkSkyPlaneEmitterPrimary : public EmitterPrimary { public: vtkSkyPlaneEmitterPrimary(Geant::SkyPlaneEmitterPrimary &emitter); virtual ~vtkSkyPlaneEmitterPrimary(); virtual void contentUpdate(); private: Geant::SkyPlaneEmitterPrimary &m_skyEmitter; vtkPlaneSource *m_PlaneSource; }; class vtkQuadMeshEmitterPrimary : public EmitterPrimary { public: vtkQuadMeshEmitterPrimary(Geant::QuadMeshEmitterPrimary &emitter); virtual void contentUpdate(); private: Geant::QuadMeshEmitterPrimary &m_meshEmitter; }; class vtkCylinderEmitterPrimary : public EmitterPrimary { public: vtkCylinderEmitterPrimary(Geant::CylinderEmitterPrimary &emitter); virtual ~vtkCylinderEmitterPrimary(); virtual void contentUpdate(); private: Geant::CylinderEmitterPrimary &m_cylinderEmitter; vtkCylinderSource *m_CylinderSource; }; } // namespace Vtk } // namespace uLib #endif // VTK_GEANT_EMITTERPRIMARY_H