G4RTMessenger Class Reference

#include <G4RTMessenger.hh>

Inheritance diagram for G4RTMessenger:

G4UImessenger

Public Member Functions

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

Static Public Member Functions

static G4RTMessengerGetInstance (G4TheRayTracer *p1, G4RTSteppingAction *p2)

Detailed Description

Definition at line 52 of file G4RTMessenger.hh.


Constructor & Destructor Documentation

G4RTMessenger::~G4RTMessenger (  )  [virtual]

Definition at line 140 of file G4RTMessenger.cc.

00141 {
00142   delete columnCmd;
00143   delete rowCmd;
00144   delete targetCmd;
00145   delete eyePosCmd;
00146   delete lightCmd;
00147   delete spanXCmd;
00148   delete headCmd;
00149   delete attCmd;
00150   delete distCmd;
00151   delete transCmd;
00152   delete fileCmd;
00153   delete bkgColCmd;
00154   delete rayDirectory;
00155 }


Member Function Documentation

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

Reimplemented from G4UImessenger.

Definition at line 157 of file G4RTMessenger.cc.

References G4UIcommand::ConvertToString(), G4TheRayTracer::GetAttenuationLength(), G4TheRayTracer::GetBackgroundColour(), G4TheRayTracer::GetDistortion(), G4TheRayTracer::GetEyePosition(), G4TheRayTracer::GetHeadAngle(), G4RTSteppingAction::GetIgnoreTransparency(), G4TheRayTracer::GetLightDirection(), G4TheRayTracer::GetNColumn(), G4TheRayTracer::GetNRow(), G4TheRayTracer::GetTargetPosition(), and G4TheRayTracer::GetViewSpan().

00158 {
00159   G4String currentValue;
00160   if(command==columnCmd)
00161   { currentValue = columnCmd->ConvertToString(theTracer->GetNColumn()); }
00162   else if(command==rowCmd)
00163   { currentValue = rowCmd->ConvertToString(theTracer->GetNRow()); }
00164   else if(command==targetCmd)
00165   { currentValue = targetCmd->ConvertToString(theTracer->GetTargetPosition(),"m"); }
00166   else if(command==eyePosCmd)
00167   { currentValue = eyePosCmd->ConvertToString(theTracer->GetEyePosition(),"m"); }
00168   else if(command==lightCmd)
00169   { currentValue = lightCmd->ConvertToString(theTracer->GetLightDirection()); }
00170   else if(command==spanXCmd)
00171   { currentValue = spanXCmd->ConvertToString(theTracer->GetViewSpan(),"deg"); }
00172   else if(command==headCmd)
00173   { currentValue = headCmd->ConvertToString(theTracer->GetHeadAngle(),"deg"); }
00174   else if(command==attCmd)
00175   { currentValue = attCmd->ConvertToString(theTracer->GetAttenuationLength(),"m");}
00176   else if(command==distCmd)
00177   { currentValue = distCmd->ConvertToString(theTracer->GetDistortion()); }
00178   else if(command==transCmd)
00179   { currentValue = transCmd->ConvertToString(theSteppingAction->GetIgnoreTransparency()); }
00180   else if(command==bkgColCmd)
00181   { currentValue = bkgColCmd->ConvertToString(theTracer->GetBackgroundColour()); }
00182   return currentValue;
00183 }

G4RTMessenger * G4RTMessenger::GetInstance ( G4TheRayTracer p1,
G4RTSteppingAction p2 
) [static]

Definition at line 51 of file G4RTMessenger.cc.

Referenced by G4TheRayTracer::G4TheRayTracer().

00052 {
00053   if (!fpInstance) fpInstance = new G4RTMessenger(p1, p2);
00054   return fpInstance;
00055 }

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

Reimplemented from G4UImessenger.

Definition at line 185 of file G4RTMessenger.cc.

References G4cout, G4endl, G4VisManager::GetCurrentViewer(), G4UIcmdWith3Vector::GetNew3VectorValue(), G4UIcmdWith3VectorAndUnit::GetNew3VectorValue(), G4UIcmdWithABool::GetNewBoolValue(), G4UIcmdWithADoubleAndUnit::GetNewDoubleValue(), G4UIcmdWithAnInteger::GetNewIntValue(), G4RayTracerViewer::GetTracer(), G4TheRayTracer::SetAttenuationLength(), G4TheRayTracer::SetDistortion(), G4TheRayTracer::SetEyePosition(), G4TheRayTracer::SetHeadAngle(), G4RTSteppingAction::SetIgnoreTransparency(), G4TheRayTracer::SetLightDirection(), G4TheRayTracer::SetNColumn(), G4TheRayTracer::SetNRow(), G4TheRayTracer::SetTargetPosition(), G4TheRayTracer::SetViewSpan(), and G4TheRayTracer::Trace().

00186 {
00187   G4VisManager* pVisManager = G4VisManager::GetInstance();
00188 
00189   theTracer = theDefaultTracer;
00190 
00191   G4VViewer* pVViewer = pVisManager->GetCurrentViewer();
00192   if (pVViewer) {
00193     G4RayTracerViewer* pViewer = dynamic_cast<G4RayTracerViewer*>(pVViewer);
00194     if (pViewer) {
00195       theTracer = pViewer->GetTracer();
00196     } else {
00197       G4cout <<
00198         "G4RTMessenger::SetNewValue: Current viewer is not of type RayTracer."
00199         "\n  Use \"/vis/viewer/select\" or \"/vis/open\"."
00200              << G4endl;
00201     }
00202   }
00203 
00204   if (theTracer == theDefaultTracer) {
00205     G4cout <<
00206 "G4RTMessenger::SetNewValue: No valid current viewer. Using default RayTracer."
00207            << G4endl;
00208   }
00209 
00210   if(command==columnCmd)
00211   { theTracer->SetNColumn(columnCmd->GetNewIntValue(newValue)); }
00212   else if(command==rowCmd)
00213   { theTracer->SetNRow(rowCmd->GetNewIntValue(newValue)); }
00214   else if(command==targetCmd)
00215   { theTracer->SetTargetPosition(targetCmd->GetNew3VectorValue(newValue)); }
00216   else if(command==eyePosCmd)
00217   { theTracer->SetEyePosition(eyePosCmd->GetNew3VectorValue(newValue)); }
00218   else if(command==lightCmd)
00219   { theTracer->SetLightDirection(lightCmd->GetNew3VectorValue(newValue)); }
00220   else if(command==spanXCmd)
00221   { theTracer->SetViewSpan(spanXCmd->GetNewDoubleValue(newValue)); }
00222   else if(command==headCmd)
00223   { theTracer->SetHeadAngle(headCmd->GetNewDoubleValue(newValue)); }
00224   else if(command==attCmd)
00225   { theTracer->SetAttenuationLength(attCmd->GetNewDoubleValue(newValue)); }
00226   else if(command==distCmd)
00227   { theTracer->SetDistortion(distCmd->GetNewBoolValue(newValue)); }
00228   else if(command==bkgColCmd)
00229   {
00230         G4cout << "WARNING: /vis/rayTracer/backgroundColour has been deprecated."
00231         "\n  Use \"/vis/viewer/set/background\" instead."
00232                 << G4endl;
00233   }
00234   else if(command==transCmd)
00235   { theSteppingAction->SetIgnoreTransparency(transCmd->GetNewBoolValue(newValue)); }
00236   else if(command==fileCmd)
00237   { theTracer->Trace(newValue); }
00238 }


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