G4VisCommandViewerRefresh Class Reference

#include <G4VisCommandsViewer.hh>

Inheritance diagram for G4VisCommandViewerRefresh:

G4VVisCommandViewer G4VVisCommand G4UImessenger

Public Member Functions

 G4VisCommandViewerRefresh ()
virtual ~G4VisCommandViewerRefresh ()
G4String GetCurrentValue (G4UIcommand *command)
void SetNewValue (G4UIcommand *command, G4String newValue)

Detailed Description

Definition at line 224 of file G4VisCommandsViewer.hh.


Constructor & Destructor Documentation

G4VisCommandViewerRefresh::G4VisCommandViewerRefresh (  ) 

Definition at line 1174 of file G4VisCommandsViewer.cc.

01174                                                       {
01175   G4bool omitable, currentAsDefault;
01176   fpCommand = new G4UIcmdWithAString ("/vis/viewer/refresh", this);
01177   fpCommand -> SetGuidance
01178     ("Refreshes viewer.");
01179   fpCommand -> SetGuidance 
01180     ("By default, acts on current viewer.  \"/vis/viewer/list\""
01181      "\nto see possible viewers.  Viewer becomes current.");
01182   fpCommand -> SetParameterName ("viewer-name",
01183                                  omitable = true,
01184                                  currentAsDefault = true);
01185 }

G4VisCommandViewerRefresh::~G4VisCommandViewerRefresh (  )  [virtual]

Definition at line 1187 of file G4VisCommandsViewer.cc.

01187                                                        {
01188   delete fpCommand;
01189 }


Member Function Documentation

G4String G4VisCommandViewerRefresh::GetCurrentValue ( G4UIcommand command  )  [virtual]

Reimplemented from G4UImessenger.

Definition at line 1191 of file G4VisCommandsViewer.cc.

References G4VVisCommand::fpVisManager.

01191                                                                  {
01192   G4VViewer* viewer = fpVisManager -> GetCurrentViewer ();
01193   return viewer ? viewer -> GetName () : G4String("none");
01194 }

void G4VisCommandViewerRefresh::SetNewValue ( G4UIcommand command,
G4String  newValue 
) [virtual]

Reimplemented from G4UImessenger.

Definition at line 1196 of file G4VisCommandsViewer.cc.

References G4VisManager::confirmations, G4VisManager::errors, G4VVisCommand::fpVisManager, G4cout, G4endl, G4Scene::GetName(), G4VSceneHandler::GetName(), G4Scene::GetRunDurationModelList(), G4VSceneHandler::GetScene(), G4VViewer::GetSceneHandler(), G4VisManager::GetVerbosity(), G4VVisCommand::UpdateVisManagerScene(), and G4VisManager::warnings.

01196                                                                             {
01197 
01198   G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity();
01199   G4bool warn(verbosity >= G4VisManager::warnings);
01200 
01201   G4String& refreshName = newValue;
01202   G4VViewer* viewer = fpVisManager -> GetViewer (refreshName);
01203   if (!viewer) {
01204     if (verbosity >= G4VisManager::errors) {
01205       G4cout << "ERROR: Viewer \"" << refreshName << "\"" <<
01206         " not found - \"/vis/viewer/list\"\n  to see possibilities."
01207              << G4endl;
01208     }
01209     return;
01210   }
01211 
01212   G4VSceneHandler* sceneHandler = viewer->GetSceneHandler();
01213   if (!sceneHandler) {
01214     if (verbosity >= G4VisManager::errors) {
01215       G4cout << "ERROR: Viewer \"" << refreshName << "\"" <<
01216         " has no scene handler - report serious bug."
01217              << G4endl;
01218     }
01219     return;
01220   }
01221 
01222   G4Scene* scene = sceneHandler->GetScene();
01223   if (!scene) {
01224     if (verbosity >= G4VisManager::confirmations) {
01225       G4cout << "NOTE: SceneHandler \"" << sceneHandler->GetName()
01226              << "\", to which viewer \"" << refreshName << "\"" <<
01227         "\n  is attached, has no scene - \"/vis/scene/create\" and"
01228         " \"/vis/sceneHandler/attach\""
01229         "\n  (or use compound command \"/vis/drawVolume\")."
01230              << G4endl;
01231     }
01232     return;
01233   }
01234   if (scene->GetRunDurationModelList().empty()) {
01235     G4bool successful = scene -> AddWorldIfEmpty (warn);
01236     if (!successful) {
01237       if (verbosity >= G4VisManager::warnings) {
01238         G4cout <<
01239           "WARNING: Scene is empty.  Perhaps no geometry exists."
01240           "\n  Try /run/initialize."
01241                << G4endl;
01242       }
01243       return;
01244     }
01245     // Scene has changed.  UpdateVisManagerScene issues
01246     // /vis/scene/notifyHandlers, which does a refresh anyway, so the
01247     // ordinary refresh becomes part of the else phrase...
01248     UpdateVisManagerScene(scene->GetName());
01249   } else {
01250     if (verbosity >= G4VisManager::confirmations) {
01251       G4cout << "Refreshing viewer \"" << viewer -> GetName () << "\"..."
01252              << G4endl;
01253     }
01254     viewer -> SetView ();
01255     viewer -> ClearView ();
01256     viewer -> DrawView ();
01257     if (verbosity >= G4VisManager::confirmations) {
01258       G4cout << "Viewer \"" << viewer -> GetName () << "\"" << " refreshed."
01259         "\n  (You might also need \"/vis/viewer/update\".)" << G4endl;
01260     }
01261   }
01262 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:47 2013 for Geant4 by  doxygen 1.4.7