Index: trunk/source/visualization/management/include/G4VisManager.hh
===================================================================
--- trunk/source/visualization/management/include/G4VisManager.hh	(revision 1274)
+++ trunk/source/visualization/management/include/G4VisManager.hh	(revision 1288)
@@ -25,5 +25,5 @@
 //
 //
-// $Id: G4VisManager.hh,v 1.71 2010/05/20 07:54:31 allison Exp $
+// $Id: G4VisManager.hh,v 1.75 2010/06/01 16:08:15 allison Exp $
 // GEANT4 tag $Name:  $
 //
@@ -66,15 +66,16 @@
 //
 // Each scene comprises drawable objects such as detector components
-// and hits when appropriate.  A scene handler translates a scene into
-// graphics-system-specific function calls and, possibly, a
-// graphics-system-dependent database - display lists, scene graphs,
-// etc.  Each viewer has its "view parameters" (see class description
-// of G4ViewParameters for available parameters and also for a
-// description of the concept of a "standard view" and all that).
+// and trajectories, hits and digis when appropriate.  A scene handler
+// translates a scene into graphics-system-specific function calls
+// and, possibly, a graphics-system-dependent database - display
+// lists, scene graphs, etc.  Each viewer has its "view parameters"
+// (see class description of G4ViewParameters for available parameters
+// and also for a description of the concept of a "standard view" and
+// all that).
 //
 // A friend class G4VisStateDependent is "state dependent", i.e., it
 // is notified on change of state (G4ApplicationState).  This is used
-// to message the G4VisManager to draw hits and trajectories in the
-// current scene at the end of event, as required.
+// to message the G4VisManager to draw hits, digis and trajectories in
+// the current scene at the end of event, as required.
 
 #ifndef G4VISMANAGER_HH
@@ -113,4 +114,5 @@
   typedef G4VModelFactory< G4VFilter<G4VTrajectory> > G4TrajFilterFactory;
   typedef G4VModelFactory< G4VFilter<G4VHit> > G4HitFilterFactory;
+  typedef G4VModelFactory< G4VFilter<G4VDigi> > G4DigiFilterFactory;
 }
 
@@ -129,9 +131,6 @@
   friend class G4RayTracerSceneHandler;
   friend class G4RTMessenger;
-  friend class G4OpenGLStoredSceneHandler;
   friend class G4OpenGLViewerMessenger;
-  friend class G4OpenGLXViewerMessenger;
   friend class G4OpenGLXmViewerMessenger;
-  friend class G4XXXSceneHandler;
   friend class G4HepRepFileSceneHandler;
 
@@ -139,14 +138,10 @@
   friend class G4VSceneHandler;
   friend class G4VViewer;
-
-  friend std::ostream & operator <<
-  (std::ostream &, const G4VGraphicsSystem &);
-
-  friend std::ostream & operator <<
-  (std::ostream &, const G4VSceneHandler &);
-
   friend class G4VisStateDependent;
-
   friend class G4VisCommandList;
+
+  // operator << friends...
+  friend std::ostream& operator << (std::ostream&, const G4VGraphicsSystem&);
+  friend std::ostream& operator << (std::ostream&, const G4VSceneHandler&);
 
 public: // With description
@@ -165,5 +160,5 @@
 protected: // With description
 
-  G4VisManager ();
+  G4VisManager (const G4String& verbosityString = "warnings");
   // The constructor is protected so that an object of the derived
   // class may be constructed.
@@ -214,4 +209,10 @@
   void RegisterModel(G4VFilter<G4VHit>* filter);
   // Register trajectory hit model. Assumes ownership of model.
+
+  void RegisterModelFactory(G4DigiFilterFactory* factory);
+  // Register trajectory digi model factory. Assumes ownership of factory.
+
+  void RegisterModel(G4VFilter<G4VDigi>* filter);
+  // Register trajectory digi model. Assumes ownership of model.
 
   void SelectTrajectoryModel(const G4String& model);
@@ -281,4 +282,6 @@
   void Draw (const G4VHit&);
 
+  void Draw (const G4VDigi&);
+
   void Draw (const G4VTrajectory&, G4int i_mode);
   // i_mode is a parameter that can be used to control the drawing of
@@ -306,4 +309,5 @@
   // any, and redraw all views.
 
+  void DispatchToModel(const G4VTrajectory&);
   void DispatchToModel(const G4VTrajectory&, G4int i_mode);
   // Draw the trajectory.
@@ -311,4 +315,5 @@
   G4bool FilterTrajectory(const G4VTrajectory&);
   G4bool FilterHit(const G4VHit&);
+  G4bool FilterDigi(const G4VDigi&);
 
   ////////////////////////////////////////////////////////////////////////
@@ -329,6 +334,6 @@
   void EndOfEvent ();
   // This is called on change of state (G4ApplicationState).  It is
-  // used to draw hits and trajectories if included in the current
-  // scene at the end of event, as required.
+  // used to draw hits, digis and trajectories if included in the
+  // current scene at the end of event, as required.
 
   void EndOfRun ();
@@ -357,5 +362,5 @@
   const G4SceneHandlerList&    GetAvailableSceneHandlers   () const;
   const G4SceneList&           GetSceneList                () const;
-  Verbosity                    GetVerbosity                () const;
+  static Verbosity             GetVerbosity                ();
   G4bool                       GetTransientsDrawnThisRun       () const;
   G4bool                       GetTransientsDrawnThisEvent     () const;
@@ -445,5 +450,5 @@
   G4SceneList           fSceneList;
   G4SceneHandlerList    fAvailableSceneHandlers;
-  Verbosity             fVerbosity;
+  static Verbosity             fVerbosity;
   std::vector<G4UImessenger*> fMessengerList;
   std::vector<G4UIcommand*>   fDirectoryList;
@@ -467,4 +472,7 @@
   G4VisFilterManager<G4VHit>* fpHitFilterMgr;
 
+  // Digi filter model manager
+  G4VisFilterManager<G4VDigi>* fpDigiFilterMgr;
+
 };
 
