00001 #ifndef VIS_G4_CORE_VIS_G4_VIS_MANAGER_H
00002 # define VIS_G4_CORE_VIS_G4_VIS_MANAGER_H
00003
00004
00005
00006 # include "VisGeant4/VisG4Core/interface/config.h"
00007 # include "Iguana/Framework/interface/IgStateElement.h"
00008 # include <classlib/utils/Callback.h>
00009 # include <G4VVisManager.hh>
00010 # include <vector>
00011
00012
00013
00014
00015
00016 class IgTwig;
00017 class VisG4VisMonitor;
00018 class VisG4VisQtTimer;
00019 class VisG4VisScene;
00020 class VisG4VisSystem;
00021 class VisG4VisSceneHandler;
00022 class VisG4VisViewer;
00023 class G4VSceneHandler;
00024 class G4Scene;
00025
00026
00027
00028
00029
00042 class VIS_G4_CORE_API VisG4VisManager : public IgStateElement, public G4VVisManager
00043 {
00044 IG_DECLARE_STATE_ELEMENT (VisG4VisManager);
00045 public:
00046 VisG4VisManager (IgState *state);
00047 ~VisG4VisManager (void);
00048
00049 void notify (lat::Callback onChange);
00050
00051 protected:
00052 virtual void GeometryHasChanged (void);
00053
00054 private:
00055 virtual void Draw (const G4Circle &, const G4Transform3D &);
00056 virtual void Draw (const G4NURBS &, const G4Transform3D &);
00057 virtual void Draw (const G4Polyhedron &, const G4Transform3D &);
00058 virtual void Draw (const G4Polyline &, const G4Transform3D &);
00059 virtual void Draw (const G4Polymarker &, const G4Transform3D &);
00060 virtual void Draw (const G4Scale &, const G4Transform3D &);
00061 virtual void Draw (const G4Square &, const G4Transform3D &);
00062 virtual void Draw (const G4Text &, const G4Transform3D &);
00063 virtual void Draw2D (const G4Text &);
00064 virtual void Draw (const G4VHit &);
00065 virtual void Draw (const G4VTrajectory &,int);
00066 virtual void Draw (const G4LogicalVolume &,
00067 const G4VisAttributes &, const G4Transform3D &);
00068 virtual void Draw (const G4VPhysicalVolume &,
00069 const G4VisAttributes &, const G4Transform3D &);
00070 virtual void Draw (const G4VSolid &,
00071 const G4VisAttributes&, const G4Transform3D &);
00072 virtual void DispatchToModel (const G4VTrajectory &, G4int i_mode = 0);
00073 virtual G4bool FilterTrajectory (const G4VTrajectory &);
00074 virtual G4bool FilterHit (const G4VHit &);
00075
00076 typedef std::vector<lat::Callback> CallbackList;
00077
00078 IgState *m_state;
00079 CallbackList m_callbacks;
00080
00081
00082 VisG4VisManager (const VisG4VisManager &);
00083 VisG4VisManager &operator= (const VisG4VisManager &);
00084 };
00085
00086
00087
00088
00089 #endif // VIS_G4_CORE_VIS_G4_VIS_MANAGER_H