Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/visualization/RayTracer/src/G4RTMessenger.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /visualization/RayTracer/src/G4RTMessenger.cc (Version 11.3.0) and /visualization/RayTracer/src/G4RTMessenger.cc (Version ReleaseNotes)


** Warning: Cannot open xref database.

  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 //                                                
 27 //                                                
 28 //                                                
 29 //                                                
 30                                                   
 31                                                   
 32 #include "G4RTMessenger.hh"                       
 33                                                   
 34 #include "G4UIdirectory.hh"                       
 35 #include "G4UIcmdWithABool.hh"                    
 36 #include "G4UIcmdWith3Vector.hh"                  
 37 #include "G4UIcmdWith3VectorAndUnit.hh"           
 38 #include "G4UIcmdWithADoubleAndUnit.hh"           
 39 #include "G4UIcmdWithAnInteger.hh"                
 40 #include "G4UIcmdWithAString.hh"                  
 41 #include "G4RTSteppingAction.hh"                  
 42 #include "G4ThreeVector.hh"                       
 43 #include "G4VisManager.hh"                        
 44 #include "G4RayTracerViewer.hh"                   
 45 #include "G4TheRayTracer.hh"                      
 46                                                   
 47 #define G4warn G4cout                             
 48                                                   
 49 G4RTMessenger* G4RTMessenger::fpInstance = 0;     
 50                                                   
 51 G4RTMessenger* G4RTMessenger::GetInstance         
 52 (G4TheRayTracer* p1)                              
 53 {                                                 
 54   if (!fpInstance) fpInstance = new G4RTMessen    
 55   return fpInstance;                              
 56 }                                                 
 57                                                   
 58 G4RTMessenger::G4RTMessenger(G4TheRayTracer* p    
 59 {                                                 
 60   theDefaultTracer = p1;                          
 61   theTracer = theDefaultTracer;                   
 62                                                   
 63   rayDirectory = new G4UIdirectory("/vis/rayTr    
 64   rayDirectory->SetGuidance("RayTracer command    
 65                                                   
 66   fileCmd = new G4UIcmdWithAString("/vis/rayTr    
 67   fileCmd->SetGuidance("Start the ray tracing.    
 68   fileCmd->SetGuidance("Define the name of out    
 69   fileCmd->SetParameterName("fileName",true);     
 70   fileCmd->SetDefaultValue("g4RayTracer.jpeg")    
 71   fileCmd->AvailableForStates(G4State_Idle);      
 72                                                   
 73   columnCmd = new G4UIcmdWithAnInteger("/vis/r    
 74   columnCmd->SetGuidance("Define the number of    
 75   columnCmd->SetParameterName("nPixel",false);    
 76   columnCmd->SetRange("nPixel > 0");              
 77                                                   
 78   rowCmd = new G4UIcmdWithAnInteger("/vis/rayT    
 79   rowCmd->SetGuidance("Define the number of ve    
 80   rowCmd->SetParameterName("nPixel",false);       
 81   rowCmd->SetRange("nPixel > 0");                 
 82                                                   
 83   targetCmd = new G4UIcmdWith3VectorAndUnit("/    
 84   targetCmd->SetGuidance("Define the center po    
 85   targetCmd->SetParameterName("X","Y","Z",true    
 86   targetCmd->SetDefaultValue(G4ThreeVector(0.,    
 87   targetCmd->SetDefaultUnit("m");                 
 88                                                   
 89   eyePosCmd = new G4UIcmdWith3VectorAndUnit("/    
 90   eyePosCmd->SetGuidance("Define the eye posit    
 91   eyePosCmd->SetGuidance("Eye direction is cal    
 92   eyePosCmd->SetParameterName("X","Y","Z",true    
 93   eyePosCmd->SetDefaultValue(G4ThreeVector(0.,    
 94   eyePosCmd->SetDefaultUnit("m");                 
 95                                                   
 96   lightCmd = new G4UIcmdWith3Vector("/vis/rayT    
 97   lightCmd->SetGuidance("Define the direction     
 98   lightCmd->SetGuidance("The vector needs not     
 99   lightCmd->SetParameterName("Px","Py","Pz",tr    
100   lightCmd->SetDefaultValue(G4ThreeVector(0.1,    
101   lightCmd->SetRange("Px != 0 || Py != 0 || Pz    
102                                                   
103   spanXCmd = new G4UIcmdWithADoubleAndUnit("/v    
104   spanXCmd->SetGuidance("Define the angle per     
105   spanXCmd->SetParameterName("span",true);        
106   spanXCmd->SetDefaultValue(50.);                 
107   spanXCmd->SetDefaultUnit("deg");                
108   spanXCmd->SetRange("span>0.");                  
109                                                   
110   headCmd = new G4UIcmdWithADoubleAndUnit("/vi    
111   headCmd->SetGuidance("Define the head direct    
112   headCmd->SetParameterName("headAngle",true);    
113   headCmd->SetDefaultValue(270.);                 
114   headCmd->SetDefaultUnit("deg");                 
115   headCmd->SetRange("headAngle>=0. && headAngl    
116                                                   
117   attCmd = new G4UIcmdWithADoubleAndUnit("/vis    
118   attCmd->SetGuidance("Define the attenuation     
119   attCmd->SetGuidance("Note that this value is    
120   attCmd->SetParameterName("Length",true);        
121   attCmd->SetDefaultValue(1.0);                   
122   attCmd->SetDefaultUnit("m");                    
123   attCmd->SetRange("Length > 0.");                
124                                                   
125   distCmd = new G4UIcmdWithABool("/vis/rayTrac    
126   distCmd->SetGuidance("Distortion effect of t    
127   distCmd->SetParameterName("flag",true);         
128   distCmd->SetDefaultValue(false);                
129                                                   
130   transCmd = new G4UIcmdWithABool("/vis/rayTra    
131   transCmd->SetGuidance("Ignore transparency e    
132   transCmd->SetParameterName("flag",true);        
133   transCmd->SetDefaultValue(false);               
134                                                   
135   bkgColCmd = new G4UIcmdWith3Vector("/vis/ray    
136   bkgColCmd->SetGuidance("Command has been dep    
137   bkgColCmd->SetParameterName("red","green","b    
138   bkgColCmd->SetDefaultValue(G4ThreeVector(1.,    
139 }                                                 
140                                                   
141 G4RTMessenger::~G4RTMessenger()                   
142 {                                                 
143   delete columnCmd;                               
144   delete rowCmd;                                  
145   delete targetCmd;                               
146   delete eyePosCmd;                               
147   delete lightCmd;                                
148   delete spanXCmd;                                
149   delete headCmd;                                 
150   delete attCmd;                                  
151   delete distCmd;                                 
152   delete transCmd;                                
153   delete fileCmd;                                 
154   delete bkgColCmd;                               
155   delete rayDirectory;                            
156 }                                                 
157                                                   
158 G4String G4RTMessenger::GetCurrentValue(G4UIco    
159 {                                                 
160   G4String currentValue;                          
161   if(command==columnCmd)                          
162   { currentValue = columnCmd->ConvertToString(    
163   else if(command==rowCmd)                        
164   { currentValue = rowCmd->ConvertToString(the    
165   else if(command==targetCmd)                     
166   { currentValue = targetCmd->ConvertToString(    
167   else if(command==eyePosCmd)                     
168   { currentValue = eyePosCmd->ConvertToString(    
169   else if(command==lightCmd)                      
170   { currentValue = lightCmd->ConvertToString(t    
171   else if(command==spanXCmd)                      
172   { currentValue = spanXCmd->ConvertToString(t    
173   else if(command==headCmd)                       
174   { currentValue = headCmd->ConvertToString(th    
175   else if(command==attCmd)                        
176   { currentValue = attCmd->ConvertToString(the    
177   else if(command==distCmd)                       
178   { currentValue = distCmd->ConvertToString(th    
179   else if(command==transCmd)                      
180   { currentValue = transCmd->ConvertToString(G    
181   else if(command==bkgColCmd)                     
182   { currentValue = bkgColCmd->ConvertToString(    
183   return currentValue;                            
184 }                                                 
185                                                   
186 void G4RTMessenger::SetNewValue(G4UIcommand *     
187 {                                                 
188   G4VisManager* pVisManager = G4VisManager::Ge    
189                                                   
190   theTracer = theDefaultTracer;                   
191                                                   
192   G4VViewer* pVViewer = pVisManager->GetCurren    
193   if (pVViewer) {                                 
194     G4RayTracerViewer* pViewer = dynamic_cast<    
195     if (pViewer) {                                
196       theTracer = pViewer->GetTracer();           
197     } else {                                      
198       G4warn <<                                   
199   "G4RTMessenger::SetNewValue: Current viewer     
200   "\n  Use \"/vis/viewer/select\" or \"/vis/op    
201        << G4endl;                                 
202     }                                             
203   }                                               
204                                                   
205   if (theTracer == theDefaultTracer) {            
206     G4warn <<                                     
207 "G4RTMessenger::SetNewValue: No valid current     
208      << G4endl;                                   
209   }                                               
210                                                   
211   if(command==columnCmd)                          
212   { theTracer->SetNColumn(columnCmd->GetNewInt    
213   else if(command==rowCmd)                        
214   { theTracer->SetNRow(rowCmd->GetNewIntValue(    
215   else if(command==targetCmd)                     
216   { theTracer->SetTargetPosition(targetCmd->Ge    
217   else if(command==eyePosCmd)                     
218   { theTracer->SetEyePosition(eyePosCmd->GetNe    
219   else if(command==lightCmd)                      
220   { theTracer->SetLightDirection(lightCmd->Get    
221   else if(command==spanXCmd)                      
222   { theTracer->SetViewSpan(spanXCmd->GetNewDou    
223   else if(command==headCmd)                       
224   { theTracer->SetHeadAngle(headCmd->GetNewDou    
225   else if(command==attCmd)                        
226   { theTracer->SetAttenuationLength(attCmd->Ge    
227   else if(command==distCmd)                       
228   { theTracer->SetDistortion(distCmd->GetNewBo    
229   else if(command==bkgColCmd)                     
230   {                                               
231   G4warn << "WARNING: /vis/rayTracer/backgroun    
232   "\n  Use \"/vis/viewer/set/background\" inst    
233     << G4endl;                                    
234   }                                               
235   else if(command==transCmd)                      
236   { G4RTSteppingAction::SetIgnoreTransparency(    
237   else if(command==fileCmd)                       
238   { theTracer->Trace(newValue); }                 
239 }                                                 
240                                                   
241                                                   
242                                                   
243                                                   
244                                                   
245