Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4ModelingParameters.cc File Reference
#include "G4ModelingParameters.hh"
#include "G4ios.hh"
#include "G4VisAttributes.hh"
#include "G4ExceptionSeverity.hh"
#include "G4SystemOfUnits.hh"
#include "G4VSolid.hh"
#include "G4VPhysicalVolume.hh"
#include "G4PhysicalVolumeModel.hh"
Include dependency graph for G4ModelingParameters.cc:

Go to the source code of this file.

Functions

std::ostream & operator<< (std::ostream &os, const G4ModelingParameters &mp)
 
std::ostream & operator<< (std::ostream &os, const G4ModelingParameters::PVNameCopyNoPath &path)
 
std::ostream & operator<< (std::ostream &os, const std::vector< G4ModelingParameters::VisAttributesModifier > &vams)
 

Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const G4ModelingParameters mp 
)

Definition at line 152 of file G4ModelingParameters.cc.

153 {
154  os << "Modeling parameters (warning ";
155  if (mp.fWarning) os << "true";
156  else os << "false";
157  os << "):";
158 
159  const G4VisAttributes* va = mp.fpDefaultVisAttributes;
160  os << "\n Default vis. attributes: ";
161  if (va) os << *va;
162  else os << "none";
163 
164  os << "\n Current requested drawing style: ";
165  switch (mp.fDrawingStyle) {
167  os << "wireframe"; break;
169  os << "hidden line removal (hlr)"; break;
171  os << "surface (hsr)"; break;
173  os << "surface and edges (hlhsr)"; break;
174  default: os << "unrecognised"; break;
175  }
176 
177  os << "\n Culling: ";
178  if (mp.fCulling) os << "on";
179  else os << "off";
180 
181  os << "\n Culling invisible objects: ";
182  if (mp.fCullInvisible) os << "on";
183  else os << "off";
184 
185  os << "\n Density culling: ";
186  if (mp.fDensityCulling) {
187  os << "on - invisible if density less than "
188  << mp.fVisibleDensity / (1. * g / cm3) << " g cm^-3";
189  }
190  else os << "off";
191 
192  os << "\n Culling daughters covered by opaque mothers: ";
193  if (mp.fCullCovered) os << "on";
194  else os << "off";
195 
196  os << "\n Explode factor: " << mp.fExplodeFactor
197  << " about centre: " << mp.fExplodeCentre;
198 
199  os << "\n No. of sides used in circle polygon approximation: "
200  << mp.fNoOfSides;
201 
202  os << "\n Section (DCUT) shape (G4VSolid) pointer: ";
203  if (!mp.fpSectionSolid) os << "non-";
204  os << "null";
205 
206  os << "\n Cutaway (DCUT) shape (G4VSolid) pointer: ";
207  if (!mp.fpCutawaySolid) os << "non-";
208  os << "null";
209 
210  os << "\n Event pointer: " << mp.fpEvent;
211 
212  os << "\n Vis attributes modifiers: ";
213  const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
214  mp.fVisAttributesModifiers;
215  if (vams.empty()) {
216  os << "None";
217  } else {
218  os << vams;
219  }
220 
221  return os;
222 }
static constexpr double g
Definition: G4SIunits.hh:183
static constexpr double cm3
Definition: G4SIunits.hh:121
std::ostream& operator<< ( std::ostream &  os,
const G4ModelingParameters::PVNameCopyNoPath path 
)

Definition at line 314 of file G4ModelingParameters.cc.

315 {
316  os << "Touchable path: physical-volume-name:copy-number pairs:\n ";
318  for (i = path.begin(); i != path.end(); ++i) {
319  if (i != path.begin()) {
320  os << ',';
321  }
322  os << i->GetName() << ':' << i->GetCopyNo();
323  }
324  return os;
325 }
PVNameCopyNoPath::const_iterator PVNameCopyNoPathConstIterator
std::ostream& operator<< ( std::ostream &  os,
const std::vector< G4ModelingParameters::VisAttributesModifier > &  vams 
)

Definition at line 328 of file G4ModelingParameters.cc.

330 {
331  std::vector<G4ModelingParameters::VisAttributesModifier>::const_iterator
332  iModifier;
333  for (iModifier = vams.begin();
334  iModifier != vams.end();
335  ++iModifier) {
337  iModifier->GetPVNameCopyNoPath();
338  os << '\n' << vamPath;
339  const G4VisAttributes& vamVisAtts = iModifier->GetVisAttributes();
340  const G4Colour& c = vamVisAtts.GetColour();
341  switch (iModifier->GetVisAttributesSignifier()) {
343  os << " visibility ";
344  if (vamVisAtts.IsVisible()) {
345  os << "true";
346  } else {
347  os << "false";
348  }
349  break;
351  os << " daughtersInvisible ";
352  if (vamVisAtts.IsDaughtersInvisible()) {
353  os << "true";
354  } else {
355  os << "false";
356  }
357  break;
359  os << " colour " << c;
360  break;
362  os << " lineStyle ";
363  switch (vamVisAtts.GetLineStyle()) {
365  os << "unbroken";
366  break;
368  os << "dashed";
369  break;
371  os << "dotted";
372  }
373  break;
375  os << " lineWidth "
376  << vamVisAtts.GetLineWidth();
377  break;
380  os << " forceWireframe ";
381  if (vamVisAtts.IsForceDrawingStyle()) {
382  os << "true";
383  } else {
384  os << "false";
385  }
386  }
387  break;
389  if (vamVisAtts.GetForcedDrawingStyle() == G4VisAttributes::solid) {
390  os << " forceSolid ";
391  if (vamVisAtts.IsForceDrawingStyle()) {
392  os << "true";
393  } else {
394  os << "false";
395  }
396  }
397  break;
399  os << " forceAuxEdgeVisible: ";
400  if (!vamVisAtts.IsForceDrawingStyle()) {
401  os << "not ";
402  }
403  os << " forced";
404  if (vamVisAtts.IsForceAuxEdgeVisible()) {
405  os << ": ";
406  if (vamVisAtts.IsForcedAuxEdgeVisible()) {
407  os << "true";
408  } else {
409  os << "false";
410  }
411  }
412  break;
414  os << " lineSegmentsPerCircle "
415  << vamVisAtts.GetForcedLineSegmentsPerCircle();
416  break;
417  }
418  }
419 
420  return os;
421 }
G4bool IsForceAuxEdgeVisible() const
G4double GetLineWidth() const
G4bool IsVisible() const
const G4Colour & GetColour() const
LineStyle GetLineStyle() const
G4bool IsDaughtersInvisible() const
G4bool IsForcedAuxEdgeVisible() const
G4int GetForcedLineSegmentsPerCircle() const
std::vector< PVNameCopyNo > PVNameCopyNoPath
G4bool IsForceDrawingStyle() const
ForcedDrawingStyle GetForcedDrawingStyle() const

Here is the call graph for this function: