Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
G4VisManager.hh
이 파일의 문서화 페이지로 가기
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 // $Id: G4VisManager.hh 106384 2017-10-09 09:34:51Z gcosmo $
28 //
29 //
30 
31 // Class Description:
32 //
33 // The GEANT4 Visualization Manager - John Allison 02/Jan/1996.
34 //
35 // G4VisManager is a "Singleton", i.e., only one instance of it or any
36 // derived class may exist. A G4Exception is thrown if an attempt is
37 // made to instantiate more than one.
38 //
39 // It is also an abstract class, so the user must derive his/her own
40 // class from G4VisManager, implement the pure virtual function
41 // RegisterGraphicsSystems, and instantiate an object of the derived
42 // class - for an example see
43 // visualization/include/G4VisExecutive.hh/icc.
44 //
45 // The recommended way for users to obtain a pointer to the vis
46 // manager is with G4VVisManager::GetConcreteInstance (), being always
47 // careful to test for non-zero. This pointer is non-zero only when
48 // (a) an object of the derived class exists and (b) when there is a
49 // valid viewer available.
50 //
51 // Graphics system registration is normally done through the protected
52 // pure virtual function RegisterGraphicsSystems called from
53 // Initialise (). You can also use the public function
54 // RegisterGraphicsSystem (new MyGraphicsSystem) if you have your own
55 // graphics system. A graphics system is, in effect, a factory for
56 // scene handlers and viewers.
57 //
58 // The VisManager creates and manages graphics systems, scenes, scene
59 // handlers, viewers and some models and model makers. You can have
60 // any number. It has the concept of a "current viewer", and the
61 // "current scene handler", the "current scene" and the "current
62 // graphics system" which go with it. You can select the current
63 // viewer. Most of the the operations of the VisManager take place
64 // with the current viewer, in particular, the Draw operations.
65 //
66 // Each scene comprises drawable objects such as detector components
67 // and trajectories, hits and digis when appropriate. A scene handler
68 // translates a scene into graphics-system-specific function calls
69 // and, possibly, a graphics-system-dependent database - display
70 // lists, scene graphs, etc. Each viewer has its "view parameters"
71 // (see class description of G4ViewParameters for available parameters
72 // and also for a description of the concept of a "standard view" and
73 // all that).
74 //
75 // A friend class G4VisStateDependent is "state dependent", i.e., it
76 // is notified on change of state (G4ApplicationState). This is used
77 // to message the G4VisManager to draw hits, digis and trajectories in
78 // the current scene at the end of event, as required.
79 
80 #ifndef G4VISMANAGER_HH
81 #define G4VISMANAGER_HH
82 
83 // Temporary definition until Xeon Phi can handle full C++11.
84 #ifndef __MIC__
85 #define G4VIS_USE_STD11
86 #endif
87 
88 #include "G4VVisManager.hh"
89 
90 #include "globals.hh"
91 #include "G4GraphicsSystemList.hh"
92 #include "G4ModelingParameters.hh"
93 #include "G4NullModel.hh"
94 #include "G4SceneHandlerList.hh"
95 #include "G4SceneList.hh"
96 #include "G4TrajectoriesModel.hh"
97 #include "G4Transform3D.hh"
98 #include "G4UImessenger.hh"
99 
100 #include <iostream>
101 #include <vector>
102 #include <map>
103 
104 #include "G4Threading.hh"
105 
106 class G4Scene;
107 class G4UIcommand;
108 class G4UImessenger;
109 class G4VisStateDependent;
110 class G4VTrajectoryModel;
111 class G4VUserVisAction;
112 template <typename> class G4VFilter;
113 template <typename> class G4VisFilterManager;
114 template <typename> class G4VisModelManager;
115 template <typename> class G4VModelFactory;
116 class G4Event;
117 
118 // Useful typedef's
123 
125 
126  // Management friends...
127  friend class G4VSceneHandler;
128  friend class G4VViewer;
129  friend class G4VisStateDependent;
130  friend class G4VisCommandList;
131 
132  // operator << friends...
133  friend std::ostream& operator << (std::ostream&, const G4VGraphicsSystem&);
134  friend std::ostream& operator << (std::ostream&, const G4VSceneHandler&);
135 
136 public: // With description
137 
138  enum Verbosity {
139  quiet, // Nothing is printed.
140  startup, // Startup and endup messages are printed...
141  errors, // ...and errors...
142  warnings, // ...and warnings...
143  confirmations, // ...and confirming messages...
144  parameters, // ...and parameters of scenes and views...
145  all // ...and everything available.
146  };
147  // Simple graded message scheme.
148 
149 protected: // With description
150 
151  G4VisManager (const G4String& verbosityString = "warnings");
152  // The constructor is protected so that an object of the derived
153  // class may be constructed.
154 
155 public: // With description
156 
157  virtual ~G4VisManager ();
158 
159 private:
160 
161  // Private copy constructor and assigment operator - copying and
162  // assignment not allowed. Keeps CodeWizard happy.
163  G4VisManager (const G4VisManager&);
165 
166 public:
167  static G4VisManager* GetInstance ();
168  // Returns pointer to itself. Throws a G4Exception if called before
169  // instantiation. Intended only for use within the vis category; the
170  // normal user should instead use G4VVisManager::GetConcreteInstance()
171  // to get a "higher level" pointer for general use - but always test
172  // for non-zero.
173 
174 public: // With description
175 
176  void Initialise ();
177  void Initialize (); // Alias Initialise ()
178 
179  // Optional registration of user vis actions. Added to scene with
180  // /vis/scene/add/userAction.
182  (const G4String& name, G4VUserVisAction*,
183  const G4VisExtent& = G4VisExtent());
185  (const G4String& name, G4VUserVisAction*,
186  const G4VisExtent& = G4VisExtent());
188  (const G4String& name, G4VUserVisAction*,
189  const G4VisExtent& = G4VisExtent());
190  void SetUserAction
191  (G4VUserVisAction* pVisAction,
192  const G4VisExtent& = G4VisExtent());
193  // SetUserAction is deprecated. Use RegisterRunDurationUserVisAction
194  // or other of the above.
195  void SetUserActionExtent (const G4VisExtent&); //Legacy: deprecated.
196 
198  // Register an individual graphics system. Normally this is done in
199  // a sub-class implementation of the protected virtual function,
200  // RegisterGraphicsSystems. See, e.g., G4VisExecutive.icc.
201 
203  // Register trajectory draw model factory. Assumes ownership of factory.
204 
206  // Register trajectory model. Assumes ownership of model.
207 
209  // Register trajectory filter model factory. Assumes ownership of factory.
210 
212  // Register trajectory filter model. Assumes ownership of model.
213 
215  // Register trajectory hit model factory. Assumes ownership of factory.
216 
217  void RegisterModel(G4VFilter<G4VHit>* filter);
218  // Register trajectory hit model. Assumes ownership of model.
219 
221  // Register trajectory digi model factory. Assumes ownership of factory.
222 
223  void RegisterModel(G4VFilter<G4VDigi>* filter);
224  // Register trajectory digi model. Assumes ownership of model.
225 
226  void SelectTrajectoryModel(const G4String& model);
227  // Set default trajectory model. Useful for use in compiled code
228 
229  void RegisterMessenger(G4UImessenger* messenger);
230  // Register messenger. Assumes ownership of messenger.
231 
233  // Now functions that implement the pure virtual functions of
234  // G4VVisManager for drawing various visualization primitives, useful
235  // for representing hits, digis, etc.
236 
237  void Draw (const G4Circle&,
238  const G4Transform3D& objectTransformation = G4Transform3D());
239 
240  void Draw (const G4Polyhedron&,
241  const G4Transform3D& objectTransformation = G4Transform3D());
242 
243  void Draw (const G4Polyline&,
244  const G4Transform3D& objectTransformation = G4Transform3D());
245 
246  void Draw (const G4Polymarker&,
247  const G4Transform3D& objectTransformation = G4Transform3D());
248 
249  void Draw (const G4Scale&,
250  const G4Transform3D& objectTransformation = G4Transform3D());
251 
252  void Draw (const G4Square&,
253  const G4Transform3D& objectTransformation = G4Transform3D());
254 
255  void Draw (const G4Text&,
256  const G4Transform3D& objectTransformation = G4Transform3D());
257 
258  void Draw2D (const G4Circle&,
259  const G4Transform3D& objectTransformation = G4Transform3D());
260 
261  void Draw2D (const G4Polyhedron&,
262  const G4Transform3D& objectTransformation = G4Transform3D());
263 
264  void Draw2D (const G4Polyline&,
265  const G4Transform3D& objectTransformation = G4Transform3D());
266 
267  void Draw2D (const G4Polymarker&,
268  const G4Transform3D& objectTransformation = G4Transform3D());
269 
270  void Draw2D (const G4Square&,
271  const G4Transform3D& objectTransformation = G4Transform3D());
272 
273  void Draw2D (const G4Text&,
274  const G4Transform3D& objectTransformation = G4Transform3D());
275 
277  // Now functions that implement the pure virtual functions of
278  // G4VVisManager for drawing a GEANT4 object. Note that the
279  // visualization attributes needed in some cases override any
280  // visualization attributes that are associated with the object
281  // itself - thus you can, for example, change the colour of a
282  // physical volume.
283 
284  void Draw (const G4VTrajectory&);
285 
286  void Draw (const G4VHit&);
287 
288  void Draw (const G4VDigi&);
289 
290  void Draw (const G4LogicalVolume&, const G4VisAttributes&,
291  const G4Transform3D& objectTransformation = G4Transform3D());
292 
293  void Draw (const G4VPhysicalVolume&, const G4VisAttributes&,
294  const G4Transform3D& objectTransformation = G4Transform3D());
295 
296  void Draw (const G4VSolid&, const G4VisAttributes&,
297  const G4Transform3D& objectTransformation = G4Transform3D());
298 
300  // Optional methods that you may use to bracket a series of Draw
301  // messages that have identical objectTransformation to improve
302  // drawing speed. Use Begin/EndDraw for a series of Draw messages,
303  // Begin/EndDraw2D for a series of Draw2D messages. Do not mix Draw
304  // and Draw2D messages.
305 
306  void BeginDraw
307  (const G4Transform3D& objectTransformation = G4Transform3D());
308 
309  void EndDraw ();
310 
311  void BeginDraw2D
312  (const G4Transform3D& objectTransformation = G4Transform3D());
313 
314  void EndDraw2D ();
315 
317  // Now other pure virtual functions of G4VVisManager...
318 
319  void GeometryHasChanged ();
320  // Used by run manager to notify change.
321 
323  // This method shoud be invoked by a class that has its own event loop,
324  // such as the RayTracer, material scanner, etc. If the argument is true,
325  // the following state changes among Idle, GeomClosed and EventProc are
326  // caused by such a class, and thus not by the ordinary event simulation.
327  // The same method with false should be invoked once such an event loop
328  // is over.
329 
330  void NotifyHandlers();
331  // Notify scene handlers (G4VGraphicsScene objects) that the scene
332  // has changed so that they may rebuild their graphics database, if
333  // any, and redraw all views.
334 
335  void DispatchToModel(const G4VTrajectory&);
336  // Draw the trajectory.
337 
339  G4bool FilterHit(const G4VHit&);
340  G4bool FilterDigi(const G4VDigi&);
341 
342 #ifdef G4MULTITHREADED
343 
344  virtual void SetUpForAThread();
345  // This method is invoked by G4WorkerRunManager
346 
347  static G4ThreadFunReturnType G4VisSubThread(G4ThreadFunArgType);
348  // Vis sub-thread function.
349 
350 #endif
351 
353  // Administration routines.
354 
355  void CreateSceneHandler (const G4String& name = "");
356  // Creates scene handler for the current system.
357 
358  void CreateViewer (const G4String& name = "", const G4String& XGeometry = "");
359  // Creates viewer for the current scene handler.
360 
361 private:
362 
363  void BeginOfRun ();
364 
365  void BeginOfEvent ();
366 
367  void EndOfEvent ();
368  // This is called on change of state (G4ApplicationState). It is
369  // used to draw hits, digis and trajectories if included in the
370  // current scene at the end of event, as required.
371 
372  void EndOfRun ();
373 
374 public: // With description
375 
377  // Access functions.
378 
379  void Enable();
380  void Disable();
381  // Global enable/disable functions.
382 
384 
385  struct UserVisAction {
386  UserVisAction(const G4String& name, G4VUserVisAction* pUserVisAction)
387  :fName(name), fpUserVisAction(pUserVisAction) {}
390  };
391  const std::vector<UserVisAction>& GetRunDurationUserVisActions () const;
392  const std::vector<UserVisAction>& GetEndOfEventUserVisActions () const;
393  const std::vector<UserVisAction>& GetEndOfRunUserVisActions () const;
394  const std::map<G4VUserVisAction*,G4VisExtent>& GetUserVisActionExtents () const;
396  G4Scene* GetCurrentScene () const;
398  G4VViewer* GetCurrentViewer () const;
400  // The above is non-const because it checks and updates the List by
401  // calling RegisterGraphicsSystems() if no graphics systems are
402  // already registered.
404  const G4SceneList& GetSceneList () const;
405  static Verbosity GetVerbosity ();
409  const G4Event* GetRequestedEvent () const;
412 #ifdef G4MULTITHREADED
413  G4int GetMaxEventQueueSize () const;
414  G4bool GetWaitOnEventQueueFull () const;
415 #endif
416 
418  void SetCurrentScene (G4Scene*);
420  void SetCurrentViewer (G4VViewer*);
421  G4SceneHandlerList& SetAvailableSceneHandlers (); // Returns lvalue.
422  G4SceneList& SetSceneList (); // Returns lvalue.
423  void SetVerboseLevel (G4int);
424  void SetVerboseLevel (const G4String&);
425  void SetVerboseLevel (Verbosity);
426  void SetEventRefreshing (G4bool);
431  // If non-zero, requested event is used in G4VSceneHandler::ProcessScene.
432  void SetRequestedEvent (const G4Event*);
435 #ifdef G4MULTITHREADED
436  void SetMaxEventQueueSize (G4int);
437  void SetWaitOnEventQueueFull (G4bool);
438 #endif
439 
441  // Utility functions.
442 
443  G4String ViewerShortName (const G4String& viewerName) const;
444  // Returns shortened version of viewer name, i.e., up to first space,
445  // if any.
446 
447  G4VViewer* GetViewer (const G4String& viewerName) const;
448  // Returns zero if not found. Can use long or short name, but find
449  // is done on short name.
450 
451  static Verbosity GetVerbosityValue(const G4String&);
452  // Returns verbosity given a string. (Uses first character only.)
453 
455  // Returns verbosity given an integer. If integer is out of range,
456  // selects verbosity at extreme of range.
457 
459  // Converts the verbosity into a string for suitable for printing.
460 
461  static std::vector<G4String> VerbosityGuidanceStrings;
462  // Guidance on the use of visualization verbosity.
463 
464 protected:
465 
466  virtual void RegisterGraphicsSystems () = 0;
467  // The sub-class must implement and make successive calls to
468  // RegisterGraphicsSystem.
469 
470  virtual void RegisterModelFactories();
471  // Sub-class must register desired models
472 
473  void RegisterMessengers (); // Command messengers.
474 
476  // fVerbose is kept for backwards compatibility for some user
477  // examples. (It is used in the derived user vis managers to print
478  // available graphics systems.) It is initialised to 1 in the
479  // constructor and cannot be changed.
480 
482 
483 private:
484 
485  // Function templates to implement the Draw methods (to avoid source
486  // code duplication).
487  template <class T> void DrawT
488  (const T& graphics_primitive, const G4Transform3D& objectTransform);
489  template <class T> void DrawT2D
490  (const T& graphics_primitive, const G4Transform3D& objectTransform);
491 
492  void PrintAvailableModels (Verbosity) const;
493  void InitialiseG4ColourMap () const;
494  void PrintAvailableColours (Verbosity) const;
496  void PrintInvalidPointers () const;
497  G4bool IsValidView ();
498  // True if view is valid. Prints messages and sanitises various data.
500  // Clears transient store of current scene handler if it is marked
501  // for clearing. Assumes view is valid.
502 
503  static G4VisManager* fpInstance; // Pointer to single instance.
505  std::vector<UserVisAction> fRunDurationUserVisActions;
506  std::vector<UserVisAction> fEndOfEventUserVisActions;
507  std::vector<UserVisAction> fEndOfRunUserVisActions;
508  std::map<G4VUserVisAction*,G4VisExtent> fUserVisActionExtents;
509  G4VGraphicsSystem* fpGraphicsSystem; // Current graphics system.
510  G4Scene* fpScene; // Current scene.
511  G4VSceneHandler* fpSceneHandler; // Current scene handler.
512  G4VViewer* fpViewer; // Current viewer.
517  std::vector<G4UImessenger*> fMessengerList;
518  std::vector<G4UIcommand*> fDirectoryList;
519  G4VisStateDependent* fpStateDependent; // Friend state dependent class.
528  const G4Event* fpRequestedEvent; // If non-zero, scene handler uses.
534 #ifdef G4MULTITHREADED
535  G4int fMaxEventQueueSize;
536  G4bool fWaitOnEventQueueFull;
537 #endif
538 
539  // Trajectory draw model manager
541 
542  // Trajectory filter model manager
544 
545  // Hit filter model manager
547 
548  // Digi filter model manager
550 };
551 
552 #include "G4VisManager.icc"
553 
554 #endif
void RegisterModelFactory(G4TrajDrawModelFactory *factory)
G4VViewer * fpViewer
void SetTransientsDrawnThisEvent(G4bool)
std::vector< G4UImessenger * > fMessengerList
const XML_Char * name
Definition: expat.h:151
const G4VTrajectoryModel * CurrentTrajDrawModel() const
G4bool fTransientsDrawnThisEvent
void Draw2D(const G4Circle &, const G4Transform3D &objectTransformation=G4Transform3D())
G4bool GetAbortReviewKeptEvents() const
const G4ViewParameters & GetDefaultViewParameters() const
const G4SceneList & GetSceneList() const
void ResetTransientsDrawnFlags()
G4bool fAbortReviewKeptEvents
void SetDrawEventOnlyIfToBeKept(G4bool)
const std::vector< UserVisAction > & GetEndOfRunUserVisActions() const
HepGeom::Transform3D G4Transform3D
G4bool GetTransientsDrawnThisRun() const
static Verbosity GetVerbosityValue(const G4String &)
G4VSceneHandler * fpSceneHandler
void EndDraw2D()
void PrintAvailableColours(Verbosity) const
G4int fDrawGroupNestingDepth
const G4Event * GetRequestedEvent() const
UserVisAction(const G4String &name, G4VUserVisAction *pUserVisAction)
const G4int fVerbose
Definition: G4VHit.hh:48
G4VisModelManager< G4VTrajectoryModel > * fpTrajDrawModelMgr
G4VModelFactory< G4VTrajectoryModel > G4TrajDrawModelFactory
G4bool fInitialised
void BeginOfEvent()
G4bool fTransientsDrawnThisRun
static G4VisManager * GetInstance()
void SetTransientsDrawnThisRun(G4bool)
void CreateViewer(const G4String &name="", const G4String &XGeometry="")
void RegisterEndOfRunUserVisAction(const G4String &name, G4VUserVisAction *, const G4VisExtent &=G4VisExtent())
G4Scene * fpScene
G4bool fEventKeepingSuspended
void PrintAvailableUserVisActions(Verbosity) const
G4bool fKeptLastEvent
G4bool IsValidView()
static std::vector< G4String > VerbosityGuidanceStrings
G4Scene * GetCurrentScene() const
G4VisFilterManager< G4VDigi > * fpDigiFilterMgr
G4GraphicsSystemList fAvailableGraphicsSystems
void SetVerboseLevel(G4int)
void PrintAvailableModels(Verbosity) const
static Verbosity fVerbosity
std::vector< UserVisAction > fEndOfRunUserVisActions
void DispatchToModel(const G4VTrajectory &)
void PrintAvailableGraphicsSystems(Verbosity) const
G4bool FilterHit(const G4VHit &)
G4ViewParameters fDefaultViewParameters
void Initialise()
bool G4bool
Definition: G4Types.hh:79
G4bool fIgnoreStateChanges
G4VisFilterManager< G4VHit > * fpHitFilterMgr
virtual void RegisterGraphicsSystems()=0
Definition: G4Text.hh:73
friend std::ostream & operator<<(std::ostream &, const G4VGraphicsSystem &)
G4VGraphicsSystem * fpGraphicsSystem
G4bool RegisterGraphicsSystem(G4VGraphicsSystem *)
G4VModelFactory< G4VFilter< G4VDigi > > G4DigiFilterFactory
void SetCurrentViewer(G4VViewer *)
void InitialiseG4ColourMap() const
G4VisManager(const G4String &verbosityString="warnings")
Definition: G4VisManager.cc:99
G4VViewer * GetCurrentViewer() const
G4int fNKeepRequests
void RegisterModel(G4VTrajectoryModel *model)
void SetAbortReviewKeptEvents(G4bool)
G4VUserVisAction * fpUserVisAction
G4VisFilterManager< G4VTrajectory > * fpTrajFilterMgr
void SetRequestedEvent(const G4Event *)
void SetUserActionExtent(const G4VisExtent &)
void Draw(const G4Circle &, const G4Transform3D &objectTransformation=G4Transform3D())
G4int fNoOfEventsDrawnThisRun
static Verbosity GetVerbosity()
G4bool GetDrawEventOnlyIfToBeKept() const
static G4VisManager * fpInstance
void RegisterMessenger(G4UImessenger *messenger)
void RegisterMessengers()
void SetDefaultViewParameters(const G4ViewParameters &)
G4bool fIsDrawGroup
void SetCurrentGraphicsSystem(G4VGraphicsSystem *)
void ClearTransientStoreIfMarked()
void SetCurrentSceneHandler(G4VSceneHandler *)
const std::vector< UserVisAction > & GetEndOfEventUserVisActions() const
void * G4ThreadFunReturnType
Definition: G4Threading.hh:102
std::vector< G4UIcommand * > fDirectoryList
void PrintInvalidPointers() const
std::vector< UserVisAction > fEndOfEventUserVisActions
void BeginDraw(const G4Transform3D &objectTransformation=G4Transform3D())
int G4int
Definition: G4Types.hh:78
void SetEventRefreshing(G4bool)
G4bool GetTransientsDrawnThisEvent() const
G4bool fDrawEventOnlyIfToBeKept
void SetCurrentScene(G4Scene *)
std::map< G4VUserVisAction *, G4VisExtent > fUserVisActionExtents
void SelectTrajectoryModel(const G4String &model)
const G4GraphicsSystemList & GetAvailableGraphicsSystems()
void * G4ThreadFunArgType
Definition: G4Threading.hh:103
const std::vector< UserVisAction > & GetRunDurationUserVisActions() const
G4bool FilterDigi(const G4VDigi &)
const G4Event * fpRequestedEvent
virtual ~G4VisManager()
void SetUserAction(G4VUserVisAction *pVisAction, const G4VisExtent &=G4VisExtent())
void GeometryHasChanged()
G4bool fEventRefreshing
G4bool FilterTrajectory(const G4VTrajectory &)
void RegisterRunDurationUserVisAction(const G4String &name, G4VUserVisAction *, const G4VisExtent &=G4VisExtent())
void Initialize()
void DrawT2D(const T &graphics_primitive, const G4Transform3D &objectTransform)
G4VisStateDependent * fpStateDependent
const G4SceneHandlerList & GetAvailableSceneHandlers() const
G4SceneList & SetSceneList()
void BeginDraw2D(const G4Transform3D &objectTransformation=G4Transform3D())
G4VModelFactory< G4VFilter< G4VTrajectory > > G4TrajFilterFactory
void NotifyHandlers()
G4SceneList fSceneList
G4VSceneHandler * GetCurrentSceneHandler() const
std::vector< UserVisAction > fRunDurationUserVisActions
G4VViewer * GetViewer(const G4String &viewerName) const
const XML_Char XML_Content * model
Definition: expat.h:151
static G4String VerbosityString(Verbosity)
virtual void RegisterModelFactories()
G4String ViewerShortName(const G4String &viewerName) const
G4VisManager & operator=(const G4VisManager &)
G4SceneHandlerList fAvailableSceneHandlers
void CreateSceneHandler(const G4String &name="")
void RegisterEndOfEventUserVisAction(const G4String &name, G4VUserVisAction *, const G4VisExtent &=G4VisExtent())
G4VModelFactory< G4VFilter< G4VHit > > G4HitFilterFactory
G4SceneHandlerList & SetAvailableSceneHandlers()
const std::map< G4VUserVisAction *, G4VisExtent > & GetUserVisActionExtents() const
G4VGraphicsSystem * GetCurrentGraphicsSystem() const
void IgnoreStateChanges(G4bool)
void DrawT(const T &graphics_primitive, const G4Transform3D &objectTransform)