#include <G4RTMessenger.hh>
Inheritance diagram for G4RTMessenger:
Public Member Functions | |
virtual | ~G4RTMessenger () |
virtual G4String | GetCurrentValue (G4UIcommand *command) |
virtual void | SetNewValue (G4UIcommand *command, G4String newValue) |
Static Public Member Functions | |
static G4RTMessenger * | GetInstance (G4TheRayTracer *p1, G4RTSteppingAction *p2) |
Definition at line 52 of file G4RTMessenger.hh.
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 }
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 }