CMS 3D CMS Logo

VisG4VisManager.h

Go to the documentation of this file.
00001 #ifndef VIS_G4_CORE_VIS_G4_VIS_MANAGER_H
00002 # define VIS_G4_CORE_VIS_G4_VIS_MANAGER_H
00003 
00004 //<<<<<< INCLUDES                                                       >>>>>>
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 //<<<<<< PUBLIC DEFINES                                                 >>>>>>
00013 //<<<<<< PUBLIC CONSTANTS                                               >>>>>>
00014 //<<<<<< PUBLIC TYPES                                                   >>>>>>
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 //<<<<<< PUBLIC VARIABLES                                               >>>>>>
00027 //<<<<<< PUBLIC FUNCTIONS                                               >>>>>>
00028 //<<<<<< CLASS DECLARATIONS                                             >>>>>>
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     // undefined semantics
00082     VisG4VisManager (const VisG4VisManager &);
00083     VisG4VisManager &operator= (const VisG4VisManager &);
00084 };
00085 
00086 //<<<<<< INLINE PUBLIC FUNCTIONS                                        >>>>>>
00087 //<<<<<< INLINE MEMBER FUNCTIONS                                        >>>>>>
00088 
00089 #endif // VIS_G4_CORE_VIS_G4_VIS_MANAGER_H

Generated on Tue Jun 9 17:50:06 2009 for CMSSW by  doxygen 1.5.4