#include <G4VisCommandsViewer.hh>
Inheritance diagram for G4VisCommandViewerRefresh:
Public Member Functions | |
G4VisCommandViewerRefresh () | |
virtual | ~G4VisCommandViewerRefresh () |
G4String | GetCurrentValue (G4UIcommand *command) |
void | SetNewValue (G4UIcommand *command, G4String newValue) |
Definition at line 224 of file G4VisCommandsViewer.hh.
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] |
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 }