Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/visualization/management/src/G4VisCommandsGeometrySet.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/management/src/G4VisCommandsGeometrySet.cc (Version 11.3.0) and /visualization/management/src/G4VisCommandsGeometrySet.cc (Version 6.0.p1)


  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 // /vis/geometry commands - John Allison  31st    
 29                                                   
 30 #include "G4VisCommandsGeometrySet.hh"            
 31                                                   
 32 #include "G4UIcommand.hh"                         
 33 #include "G4VisManager.hh"                        
 34 #include "G4LogicalVolumeStore.hh"                
 35 #include "G4UImanager.hh"                         
 36                                                   
 37 #include <sstream>                                
 38                                                   
 39 #define G4warn G4cout                             
 40                                                   
 41 void G4VVisCommandGeometrySet::Set                
 42 (const G4String& requestedName,                   
 43  const G4VVisCommandGeometrySetFunction& setFu    
 44  G4int requestedDepth)                            
 45 {                                                 
 46   G4VisManager::Verbosity verbosity = fpVisMan    
 47   G4LogicalVolumeStore* pLVStore = G4LogicalVo    
 48   G4bool found = false;                           
 49   for (std::size_t iLV = 0; iLV < pLVStore->si    
 50     G4LogicalVolume* pLV = (*pLVStore)[iLV];      
 51     const G4String& logVolName = pLV->GetName(    
 52     if (logVolName == requestedName) found = t    
 53     if (requestedName == "all" || logVolName =    
 54       SetLVVisAtts(pLV, setFunction, 0, reques    
 55     }                                             
 56   }                                               
 57   if (requestedName != "all" && !found) {         
 58     if (verbosity >= G4VisManager::errors) {      
 59       G4warn << "ERROR: Logical volume \"" <<     
 60        << "\" not found in logical volume stor    
 61     }                                             
 62     return;                                       
 63   }                                               
 64   // Recalculate extent of any physical volume    
 65   for (const auto& scene : fpVisManager->GetSc    
 66     const auto& runDurationModelList = scene->    
 67     for (const auto& sceneModel : runDurationM    
 68       auto model = sceneModel.fpModel;            
 69       auto pvModel = dynamic_cast<G4PhysicalVo    
 70       if (pvModel) pvModel->CalculateExtent();    
 71     }                                             
 72     // And re-calculate the scene's extent        
 73     scene->CalculateExtent();                     
 74   }                                               
 75   if (fpVisManager->GetCurrentViewer()) {         
 76     G4UImanager::GetUIpointer()->ApplyCommand(    
 77   }                                               
 78 }                                                 
 79                                                   
 80 void G4VVisCommandGeometrySet::SetLVVisAtts       
 81 (G4LogicalVolume* pLV,                            
 82  const G4VVisCommandGeometrySetFunction& setFu    
 83  G4int depth, G4int requestedDepth)               
 84 {                                                 
 85   G4VisManager::Verbosity verbosity = fpVisMan    
 86   const G4VisAttributes* oldVisAtts = pLV->Get    
 87   fVisAttsMap.insert(std::make_pair(pLV,oldVis    
 88   G4VisAttributes* newVisAtts = new G4VisAttri    
 89   if (oldVisAtts) {                               
 90     *newVisAtts = *oldVisAtts;                    
 91   }                                               
 92   setFunction(newVisAtts);  // Sets whatever a    
 93           // function object.                     
 94   pLV->SetVisAttributes(newVisAtts);              
 95   if (verbosity >= G4VisManager::confirmations    
 96     G4cout << "\nLogical Volume \"" << pLV->Ge    
 97      << "\": setting vis attributes:";            
 98     if (oldVisAtts) {                             
 99       G4cout << "\nwas: " << *oldVisAtts;         
100     } else {                                      
101       G4cout << "\n(no old attributes)";          
102     }                                             
103     G4cout << "\nnow: " << *newVisAtts            
104      << G4endl;                                   
105   }                                               
106   if (requestedDepth < 0 || depth < requestedD    
107     G4int nDaughters = (G4int)pLV->GetNoDaught    
108     for (G4int i = 0; i < nDaughters; ++i) {      
109       SetLVVisAtts(pLV->GetDaughter(i)->GetLog    
110        setFunction, ++depth, requestedDepth);     
111     }                                             
112   }                                               
113 }                                                 
114                                                   
115 ////////////// /vis/geometry/set/colour //////    
116                                                   
117 G4VisCommandGeometrySetColour::G4VisCommandGeo    
118 {                                                 
119   G4bool omitable;                                
120   fpCommand = new G4UIcommand("/vis/geometry/s    
121   fpCommand->SetGuidance("Sets colour of logic    
122   fpCommand->SetGuidance("\"all\" sets all log    
123   fpCommand->SetGuidance                          
124     ("Optionally propagates down hierarchy to     
125   G4UIparameter* parameter;                       
126   parameter = new G4UIparameter ("logical-volu    
127   parameter->SetDefaultValue("all");              
128   fpCommand->SetParameter(parameter);             
129   parameter = new G4UIparameter("depth", 'd',     
130   parameter->SetDefaultValue(0);                  
131   parameter->SetGuidance                          
132     ("Depth of propagation (-1 means unlimited    
133   fpCommand->SetParameter(parameter);             
134   parameter = new G4UIparameter("red", 's', om    
135   parameter->SetDefaultValue("1.");               
136   parameter->SetGuidance                          
137     ("Red component or a string, e.g., \"blue\    
138   fpCommand->SetParameter(parameter);             
139   parameter = new G4UIparameter("green", 'd',     
140   parameter->SetDefaultValue(1.);                 
141   fpCommand->SetParameter(parameter);             
142   parameter = new G4UIparameter("blue", 'd', o    
143   parameter->SetDefaultValue(1.);                 
144   fpCommand->SetParameter(parameter);             
145   parameter = new G4UIparameter("opacity", 'd'    
146   parameter->SetDefaultValue(1.);                 
147   fpCommand->SetParameter(parameter);             
148 }                                                 
149                                                   
150 G4VisCommandGeometrySetColour::~G4VisCommandGe    
151 {                                                 
152   delete fpCommand;                               
153 }                                                 
154                                                   
155 G4String G4VisCommandGeometrySetColour::GetCur    
156 {                                                 
157   return "";                                      
158 }                                                 
159                                                   
160 void G4VisCommandGeometrySetColour::SetNewValu    
161 (G4UIcommand*, G4String newValue)                 
162 {                                                 
163   G4String name, redOrString;                     
164   G4int requestedDepth;                           
165   G4double green, blue, opacity;                  
166   std::istringstream iss(newValue);               
167   iss >> name >> requestedDepth >> redOrString    
168   G4Colour colour(1,1,1,1);  // Default white     
169   ConvertToColour(colour, redOrString, green,     
170   G4VisCommandGeometrySetColourFunction setCol    
171   Set(name, setColour, requestedDepth);           
172 }                                                 
173                                                   
174 ////////////// /vis/geometry/set/daughtersInvi    
175                                                   
176 G4VisCommandGeometrySetDaughtersInvisible::G4V    
177 {                                                 
178   G4bool omitable;                                
179   fpCommand = new G4UIcommand("/vis/geometry/s    
180   fpCommand->SetGuidance("Makes daughters of l    
181   fpCommand->SetGuidance("\"all\" sets all log    
182   fpCommand->SetGuidance                          
183     ("Optionally propagates down hierarchy to     
184   G4UIparameter* parameter;                       
185   parameter = new G4UIparameter ("logical-volu    
186   parameter->SetDefaultValue("all");              
187   fpCommand->SetParameter(parameter);             
188   parameter = new G4UIparameter("depth", 'd',     
189   parameter->SetDefaultValue(0);                  
190   parameter->SetGuidance                          
191     ("Depth of propagation (-1 means unlimited    
192   fpCommand->SetParameter(parameter);             
193   parameter = new G4UIparameter("daughtersInvi    
194   parameter->SetDefaultValue(true);               
195   fpCommand->SetParameter(parameter);             
196 }                                                 
197                                                   
198 G4VisCommandGeometrySetDaughtersInvisible::~G4    
199 {                                                 
200   delete fpCommand;                               
201 }                                                 
202                                                   
203 G4String                                          
204 G4VisCommandGeometrySetDaughtersInvisible::Get    
205 {                                                 
206   return "";                                      
207 }                                                 
208                                                   
209 void G4VisCommandGeometrySetDaughtersInvisible    
210 (G4UIcommand*, G4String newValue)                 
211 {                                                 
212   G4String name;                                  
213   G4int requestedDepth;                           
214   G4String daughtersInvisibleString;              
215   std::istringstream iss(newValue);               
216   iss >> name >> requestedDepth >> daughtersIn    
217   G4bool daughtersInvisible =                     
218     G4UIcommand::ConvertToBool(daughtersInvisi    
219                                                   
220   if (requestedDepth !=0) {                       
221     requestedDepth = 0;                           
222     if (fpVisManager->GetVerbosity() >= G4VisM    
223       G4warn << "Recursive application suppres    
224        << G4endl;                                 
225     }                                             
226   }                                               
227                                                   
228   G4VisCommandGeometrySetDaughtersInvisibleFun    
229     setDaughtersInvisible(daughtersInvisible);    
230   Set(name, setDaughtersInvisible, requestedDe    
231                                                   
232   G4VViewer* pViewer = fpVisManager->GetCurren    
233   if (pViewer) {                                  
234     const G4ViewParameters& viewParams = pView    
235     if (fpVisManager->GetVerbosity() >= G4VisM    
236       if (!viewParams.IsCulling()) {              
237   G4warn <<                                       
238     "Culling must be on - \"/vis/viewer/set/cu    
239          << G4endl;                               
240       }                                           
241     }                                             
242   }                                               
243 }                                                 
244                                                   
245 ////////////// /vis/geometry/set/forceAuxEdgeV    
246                                                   
247 G4VisCommandGeometrySetForceAuxEdgeVisible::G4    
248 {                                                 
249   G4bool omitable;                                
250   fpCommand = new G4UIcommand("/vis/geometry/s    
251   fpCommand->SetGuidance                          
252     ("Forces auxiliary (soft) edges of logical    
253     "\nregardless of the view parameters.");      
254   fpCommand->SetGuidance("\"all\" sets all log    
255   fpCommand->SetGuidance                          
256     ("Optionally propagates down hierarchy to     
257   G4UIparameter* parameter;                       
258   parameter = new G4UIparameter ("logical-volu    
259   parameter->SetDefaultValue("all");              
260   fpCommand->SetParameter(parameter);             
261   parameter = new G4UIparameter("depth", 'd',     
262   parameter->SetDefaultValue(0);                  
263   parameter->SetGuidance                          
264     ("Depth of propagation (-1 means unlimited    
265   fpCommand->SetParameter(parameter);             
266   parameter = new G4UIparameter("forceAuxEdgeV    
267   parameter->SetDefaultValue(true);               
268   fpCommand->SetParameter(parameter);             
269 }                                                 
270                                                   
271 G4VisCommandGeometrySetForceAuxEdgeVisible::~G    
272 {                                                 
273   delete fpCommand;                               
274 }                                                 
275                                                   
276 G4String                                          
277 G4VisCommandGeometrySetForceAuxEdgeVisible::Ge    
278 {                                                 
279   return "";                                      
280 }                                                 
281                                                   
282 void G4VisCommandGeometrySetForceAuxEdgeVisibl    
283 (G4UIcommand*, G4String newValue)                 
284 {                                                 
285   G4String name;                                  
286   G4int requestedDepth;                           
287   G4String forceAuxEdgeVisibleString;             
288   std::istringstream iss(newValue);               
289   iss >> name >> requestedDepth >> forceAuxEdg    
290   G4bool forceAuxEdgeVisible =                    
291     G4UIcommand::ConvertToBool(forceAuxEdgeVis    
292                                                   
293   G4VisCommandGeometrySetForceAuxEdgeVisibleFu    
294     setForceAuxEdgeVisible(forceAuxEdgeVisible    
295   Set(name, setForceAuxEdgeVisible, requestedD    
296 }                                                 
297                                                   
298 ////////////// /vis/geometry/set/forceCloud //    
299                                                   
300 G4VisCommandGeometrySetForceCloud::G4VisComman    
301 {                                                 
302   G4bool omitable;                                
303   fpCommand = new G4UIcommand("/vis/geometry/s    
304   fpCommand->SetGuidance                          
305   ("Forces logical volume(s) always to be draw    
306    "\nregardless of the view parameters.");       
307   fpCommand->SetGuidance("\"all\" sets all log    
308   fpCommand->SetGuidance                          
309     ("Optionally propagates down hierarchy to     
310   G4UIparameter* parameter;                       
311   parameter = new G4UIparameter ("logical-volu    
312   parameter->SetDefaultValue("all");              
313   fpCommand->SetParameter(parameter);             
314   parameter = new G4UIparameter("depth", 'd',     
315   parameter->SetDefaultValue(0);                  
316   parameter->SetGuidance                          
317     ("Depth of propagation (-1 means unlimited    
318   fpCommand->SetParameter(parameter);             
319   parameter = new G4UIparameter("forceCloud",     
320   parameter->SetDefaultValue(true);               
321   fpCommand->SetParameter(parameter);             
322   parameter = new G4UIparameter("nPoints", 'd'    
323   parameter->SetGuidance                          
324     ("<= 0 means under control of viewer.");      
325   parameter->SetDefaultValue(0);                  
326   fpCommand->SetParameter(parameter);             
327 }                                                 
328                                                   
329 G4VisCommandGeometrySetForceCloud::~G4VisComma    
330 {                                                 
331   delete fpCommand;                               
332 }                                                 
333                                                   
334 G4String                                          
335 G4VisCommandGeometrySetForceCloud::GetCurrentV    
336 {                                                 
337   return "";                                      
338 }                                                 
339                                                   
340 void G4VisCommandGeometrySetForceCloud::SetNew    
341 (G4UIcommand*, G4String newValue)                 
342 {                                                 
343   G4String name, forceCloudString;                
344   G4int requestedDepth, nPoints;                  
345   std::istringstream iss(newValue);               
346   iss >> name >> requestedDepth >> forceCloudS    
347   G4bool forceCloud = G4UIcommand::ConvertToBo    
348                                                   
349   G4VisCommandGeometrySetForceCloudFunction se    
350   Set(name, setForceCloud, requestedDepth);       
351 }                                                 
352                                                   
353 ////////////// /vis/geometry/set/forceLineSegm    
354                                                   
355 G4VisCommandGeometrySetForceLineSegmentsPerCir    
356 {                                                 
357   G4bool omitable;                                
358   fpCommand = new G4UIcommand("/vis/geometry/s    
359   fpCommand->SetGuidance                          
360     ("Forces number of line segments per circl    
361      "\ncurved line or surface is represented     
362      "\nregardless of the view parameters.");     
363   fpCommand->SetGuidance("\"all\" sets all log    
364   fpCommand->SetGuidance                          
365     ("Optionally propagates down hierarchy to     
366   G4UIparameter* parameter;                       
367   parameter = new G4UIparameter ("logical-volu    
368   parameter->SetDefaultValue("all");              
369   fpCommand->SetParameter(parameter);             
370   parameter = new G4UIparameter("depth", 'd',     
371   parameter->SetDefaultValue(0);                  
372   parameter->SetGuidance                          
373     ("Depth of propagation (-1 means unlimited    
374   fpCommand->SetParameter(parameter);             
375   parameter = new G4UIparameter("lineSegmentsP    
376   parameter->SetGuidance                          
377     ("<= 0 means not forced, i.e., under contr    
378   parameter->SetDefaultValue(0);                  
379   fpCommand->SetParameter(parameter);             
380 }                                                 
381                                                   
382 G4VisCommandGeometrySetForceLineSegmentsPerCir    
383 {                                                 
384   delete fpCommand;                               
385 }                                                 
386                                                   
387 G4String                                          
388 G4VisCommandGeometrySetForceLineSegmentsPerCir    
389 {                                                 
390   return "";                                      
391 }                                                 
392                                                   
393 void G4VisCommandGeometrySetForceLineSegmentsP    
394 (G4UIcommand*, G4String newValue)                 
395 {                                                 
396   G4String name;                                  
397   G4int requestedDepth;                           
398   G4int lineSegmentsPerCircle;                    
399   std::istringstream iss(newValue);               
400   iss >> name >> requestedDepth >> lineSegment    
401                                                   
402   G4VisCommandGeometrySetForceLineSegmentsPerC    
403   setForceLineSegmentsPerCircle(lineSegmentsPe    
404   Set(name, setForceLineSegmentsPerCircle, req    
405 }                                                 
406                                                   
407 ////////////// /vis/geometry/set/forceSolid //    
408                                                   
409 G4VisCommandGeometrySetForceSolid::G4VisComman    
410 {                                                 
411   G4bool omitable;                                
412   fpCommand = new G4UIcommand("/vis/geometry/s    
413   fpCommand->SetGuidance                          
414    ("Forces logical volume(s) always to be dra    
415     "\nregardless of the view parameters.");      
416   fpCommand->SetGuidance("\"all\" sets all log    
417   fpCommand->SetGuidance                          
418     ("Optionally propagates down hierarchy to     
419   G4UIparameter* parameter;                       
420   parameter = new G4UIparameter ("logical-volu    
421   parameter->SetDefaultValue("all");              
422   fpCommand->SetParameter(parameter);             
423   parameter = new G4UIparameter("depth", 'd',     
424   parameter->SetDefaultValue(0);                  
425   parameter->SetGuidance                          
426     ("Depth of propagation (-1 means unlimited    
427   fpCommand->SetParameter(parameter);             
428   parameter = new G4UIparameter("force", 'b',     
429   parameter->SetDefaultValue(true);               
430   fpCommand->SetParameter(parameter);             
431 }                                                 
432                                                   
433 G4VisCommandGeometrySetForceSolid::~G4VisComma    
434 {                                                 
435   delete fpCommand;                               
436 }                                                 
437                                                   
438 G4String                                          
439 G4VisCommandGeometrySetForceSolid::GetCurrentV    
440 {                                                 
441   return "";                                      
442 }                                                 
443                                                   
444 void G4VisCommandGeometrySetForceSolid::SetNew    
445 (G4UIcommand*, G4String newValue)                 
446 {                                                 
447   G4String name;                                  
448   G4int requestedDepth;                           
449   G4String forceString;                           
450   std::istringstream iss(newValue);               
451   iss >> name >> requestedDepth >> forceString    
452   G4bool force = G4UIcommand::ConvertToBool(fo    
453                                                   
454   G4VisCommandGeometrySetForceSolidFunction se    
455   Set(name, setForceSolid, requestedDepth);       
456 }                                                 
457                                                   
458 ////////////// /vis/geometry/set/forceWirefram    
459                                                   
460 G4VisCommandGeometrySetForceWireframe::G4VisCo    
461 {                                                 
462   G4bool omitable;                                
463   fpCommand = new G4UIcommand("/vis/geometry/s    
464   fpCommand->SetGuidance                          
465    ("Forces logical volume(s) always to be dra    
466     "\nregardless of the view parameters.");      
467   fpCommand->SetGuidance("\"all\" sets all log    
468   fpCommand->SetGuidance                          
469     ("Optionally propagates down hierarchy to     
470   G4UIparameter* parameter;                       
471   parameter = new G4UIparameter ("logical-volu    
472   parameter->SetDefaultValue("all");              
473   fpCommand->SetParameter(parameter);             
474   parameter = new G4UIparameter("depth", 'd',     
475   parameter->SetDefaultValue(0);                  
476   parameter->SetGuidance                          
477     ("Depth of propagation (-1 means unlimited    
478   fpCommand->SetParameter(parameter);             
479   parameter = new G4UIparameter("forceWirefram    
480   parameter->SetDefaultValue(true);               
481   fpCommand->SetParameter(parameter);             
482 }                                                 
483                                                   
484 G4VisCommandGeometrySetForceWireframe::~G4VisC    
485 {                                                 
486   delete fpCommand;                               
487 }                                                 
488                                                   
489 G4String                                          
490 G4VisCommandGeometrySetForceWireframe::GetCurr    
491 {                                                 
492   return "";                                      
493 }                                                 
494                                                   
495 void G4VisCommandGeometrySetForceWireframe::Se    
496 (G4UIcommand*, G4String newValue)                 
497 {                                                 
498   G4String name;                                  
499   G4int requestedDepth;                           
500   G4String forceWireframeString;                  
501   std::istringstream iss(newValue);               
502   iss >> name >> requestedDepth >> forceWirefr    
503   G4bool forceWireframe = G4UIcommand::Convert    
504                                                   
505   G4VisCommandGeometrySetForceWireframeFunctio    
506     setForceWireframe(forceWireframe);            
507   Set(name, setForceWireframe, requestedDepth)    
508 }                                                 
509                                                   
510 ////////////// /vis/geometry/set/lineStyle ///    
511                                                   
512 G4VisCommandGeometrySetLineStyle::G4VisCommand    
513 {                                                 
514   G4bool omitable;                                
515   fpCommand = new G4UIcommand("/vis/geometry/s    
516   fpCommand->SetGuidance("Sets line style of l    
517   fpCommand->SetGuidance("\"all\" sets all log    
518   fpCommand->SetGuidance                          
519     ("Optionally propagates down hierarchy to     
520   G4UIparameter* parameter;                       
521   parameter = new G4UIparameter ("logical-volu    
522   parameter->SetDefaultValue("all");              
523   fpCommand->SetParameter(parameter);             
524   parameter = new G4UIparameter("depth", 'd',     
525   parameter->SetDefaultValue(0);                  
526   parameter->SetGuidance                          
527     ("Depth of propagation (-1 means unlimited    
528   fpCommand->SetParameter(parameter);             
529   parameter = new G4UIparameter("lineStyle", '    
530   parameter->SetParameterCandidates("unbroken     
531   parameter->SetDefaultValue("unbroken");         
532   fpCommand->SetParameter(parameter);             
533 }                                                 
534                                                   
535 G4VisCommandGeometrySetLineStyle::~G4VisComman    
536 {                                                 
537   delete fpCommand;                               
538 }                                                 
539                                                   
540 G4String                                          
541 G4VisCommandGeometrySetLineStyle::GetCurrentVa    
542 {                                                 
543   return "";                                      
544 }                                                 
545                                                   
546 void G4VisCommandGeometrySetLineStyle::SetNewV    
547 (G4UIcommand*, G4String newValue)                 
548 {                                                 
549   G4String name, lineStyleString;                 
550   G4int requestedDepth;                           
551   std::istringstream iss(newValue);               
552   iss >> name >> requestedDepth >> lineStyleSt    
553   G4VisAttributes::LineStyle lineStyle = G4Vis    
554   if (lineStyleString == "unbroken") lineStyle    
555   if (lineStyleString == "dashed") lineStyle =    
556   if (lineStyleString == "dotted") lineStyle =    
557                                                   
558   G4VisCommandGeometrySetLineStyleFunction set    
559   Set(name, setLineStyle, requestedDepth);        
560 }                                                 
561                                                   
562 ////////////// /vis/geometry/set/lineWidth ///    
563                                                   
564 G4VisCommandGeometrySetLineWidth::G4VisCommand    
565 {                                                 
566   G4bool omitable;                                
567   fpCommand = new G4UIcommand("/vis/geometry/s    
568   fpCommand->SetGuidance("Sets line width of l    
569   fpCommand->SetGuidance("\"all\" sets all log    
570   fpCommand->SetGuidance                          
571     ("Optionally propagates down hierarchy to     
572   G4UIparameter* parameter;                       
573   parameter = new G4UIparameter ("logical-volu    
574   parameter->SetDefaultValue("all");              
575   fpCommand->SetParameter(parameter);             
576   parameter = new G4UIparameter("depth", 'd',     
577   parameter->SetDefaultValue(0);                  
578   parameter->SetGuidance                          
579     ("Depth of propagation (-1 means unlimited    
580   fpCommand->SetParameter(parameter);             
581   parameter = new G4UIparameter("lineWidth", '    
582   parameter->SetDefaultValue(1.);                 
583   fpCommand->SetParameter(parameter);             
584 }                                                 
585                                                   
586 G4VisCommandGeometrySetLineWidth::~G4VisComman    
587 {                                                 
588   delete fpCommand;                               
589 }                                                 
590                                                   
591 G4String                                          
592 G4VisCommandGeometrySetLineWidth::GetCurrentVa    
593 {                                                 
594   return "";                                      
595 }                                                 
596                                                   
597 void G4VisCommandGeometrySetLineWidth::SetNewV    
598 (G4UIcommand*, G4String newValue)                 
599 {                                                 
600   G4String name;                                  
601   G4int requestedDepth;                           
602   G4double lineWidth;                             
603   std::istringstream iss(newValue);               
604   iss >> name >> requestedDepth >> lineWidth;     
605                                                   
606   G4VisCommandGeometrySetLineWidthFunction set    
607   Set(name, setLineWidth, requestedDepth);        
608 }                                                 
609                                                   
610 ////////////// /vis/geometry/set/visibility //    
611                                                   
612 G4VisCommandGeometrySetVisibility::G4VisComman    
613 {                                                 
614   G4bool omitable;                                
615   fpCommand = new G4UIcommand("/vis/geometry/s    
616   fpCommand->SetGuidance("Sets visibility of l    
617   fpCommand->SetGuidance("\"all\" sets all log    
618   fpCommand->SetGuidance                          
619     ("Optionally propagates down hierarchy to     
620   G4UIparameter* parameter;                       
621   parameter = new G4UIparameter ("logical-volu    
622   parameter->SetDefaultValue("all");              
623   fpCommand->SetParameter(parameter);             
624   parameter = new G4UIparameter("depth", 'd',     
625   parameter->SetDefaultValue(0);                  
626   parameter->SetGuidance                          
627     ("Depth of propagation (-1 means unlimited    
628   fpCommand->SetParameter(parameter);             
629   parameter = new G4UIparameter("visibility",     
630   parameter->SetDefaultValue(true);               
631   fpCommand->SetParameter(parameter);             
632 }                                                 
633                                                   
634 G4VisCommandGeometrySetVisibility::~G4VisComma    
635 {                                                 
636   delete fpCommand;                               
637 }                                                 
638                                                   
639 G4String G4VisCommandGeometrySetVisibility::Ge    
640 {                                                 
641   return "";                                      
642 }                                                 
643                                                   
644 void G4VisCommandGeometrySetVisibility::SetNew    
645 (G4UIcommand*, G4String newValue)                 
646 {                                                 
647   G4String name;                                  
648   G4int requestedDepth;                           
649   G4String visibilityString;                      
650   std::istringstream iss(newValue);               
651   iss >> name >> requestedDepth >> visibilityS    
652   G4bool visibility = G4UIcommand::ConvertToBo    
653                                                   
654   G4VisCommandGeometrySetVisibilityFunction se    
655   Set(name, setVisibility, requestedDepth);       
656                                                   
657   G4VViewer* pViewer = fpVisManager->GetCurren    
658   if (pViewer) {                                  
659     const G4ViewParameters& viewParams = pView    
660     if (fpVisManager->GetVerbosity() >= G4VisM    
661       if (!viewParams.IsCulling() ||              
662     !viewParams.IsCullingInvisible()) {           
663   G4warn <<                                       
664     "Culling must be on - \"/vis/viewer/set/cu    
665     "\n  \"/vis/viewer/set/culling invisible t    
666          << G4endl;                               
667       }                                           
668     }                                             
669   }                                               
670 }                                                 
671                                                   
672 void G4VisCommandGeometrySetVisibility::SetNew    
673 (G4LogicalVolume* pLV, G4int requestedDepth,G4    
674 {                                                 
675   if (!pLV) return;                               
676   G4VisCommandGeometrySetVisibilityFunction se    
677   SetLVVisAtts(pLV, setVisibility, 0, requeste    
678                                                   
679   G4VViewer* pViewer = fpVisManager->GetCurren    
680   if (pViewer) {                                  
681     G4UImanager::GetUIpointer()->ApplyCommand(    
682     const G4ViewParameters& viewParams = pView    
683     if (fpVisManager->GetVerbosity() >= G4VisM    
684       if (!viewParams.IsCulling() ||              
685     !viewParams.IsCullingInvisible()) {           
686   G4warn <<                                       
687     "Culling must be on - \"/vis/viewer/set/cu    
688     "\n  \"/vis/viewer/set/culling invisible t    
689          << G4endl;                               
690       }                                           
691     }                                             
692   }                                               
693 }                                                 
694