Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4ModelingParameters Class Reference

#include <G4ModelingParameters.hh>

Classes

class  PVNameCopyNo
 
class  VisAttributesModifier
 

Public Types

enum  DrawingStyle { wf, hlr, hsr, hlhsr }
 
enum  VisAttributesSignifier {
  VASVisibility, VASDaughtersInvisible, VASColour, VASLineStyle,
  VASLineWidth, VASForceWireframe, VASForceSolid, VASForceAuxEdgeVisible,
  VASForceLineSegmentsPerCircle
}
 
typedef std::vector< PVNameCopyNoPVNameCopyNoPath
 
typedef
PVNameCopyNoPath::const_iterator 
PVNameCopyNoPathConstIterator
 

Public Member Functions

 G4ModelingParameters ()
 
 G4ModelingParameters (const G4VisAttributes *pDefaultVisAttributes, DrawingStyle drawingStyle, G4bool isCulling, G4bool isCullingInvisible, G4bool isDensityCulling, G4double visibleDensity, G4bool isCullingCovered, G4int noOfSides)
 
 ~G4ModelingParameters ()
 
G4bool operator!= (const G4ModelingParameters &) const
 
G4bool IsWarning () const
 
const G4VisAttributesGetDefaultVisAttributes () const
 
DrawingStyle GetDrawingStyle () const
 
G4bool IsCulling () const
 
G4bool IsCullingInvisible () const
 
G4bool IsDensityCulling () const
 
G4double GetVisibleDensity () const
 
G4bool IsCullingCovered () const
 
G4bool IsExplode () const
 
G4double GetExplodeFactor () const
 
const G4Point3DGetExplodeCentre () const
 
G4int GetNoOfSides () const
 
G4VSolidGetSectionSolid () const
 
G4VSolidGetCutawaySolid () const
 
const G4EventGetEvent () const
 
const std::vector
< VisAttributesModifier > & 
GetVisAttributesModifiers () const
 
void SetWarning (G4bool)
 
void SetDefaultVisAttributes (const G4VisAttributes *pDefaultVisAttributes)
 
void SetDrawingStyle (DrawingStyle)
 
void SetCulling (G4bool)
 
void SetCullingInvisible (G4bool)
 
void SetDensityCulling (G4bool)
 
void SetVisibleDensity (G4double)
 
void SetCullingCovered (G4bool)
 
void SetExplodeFactor (G4double explodeFactor)
 
void SetExplodeCentre (const G4Point3D &explodeCentre)
 
G4int SetNoOfSides (G4int)
 
void SetSectionSolid (G4VSolid *pSectionSolid)
 
void SetCutawaySolid (G4VSolid *pCutawaySolid)
 
void SetEvent (const G4Event *pEvent)
 
void SetVisAttributesModifiers (const std::vector< VisAttributesModifier > &)
 

Friends

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

Detailed Description

Definition at line 52 of file G4ModelingParameters.hh.

Member Typedef Documentation

Definition at line 91 of file G4ModelingParameters.hh.

typedef PVNameCopyNoPath::const_iterator G4ModelingParameters::PVNameCopyNoPathConstIterator

Definition at line 92 of file G4ModelingParameters.hh.

Member Enumeration Documentation

Enumerator
wf 
hlr 
hsr 
hlhsr 

Definition at line 57 of file G4ModelingParameters.hh.

57  {
58  wf, // Draw edges - no hidden line removal (wireframe).
59  hlr, // Draw edges - hidden lines removed.
60  hsr, // Draw surfaces - hidden surfaces removed.
61  hlhsr // Draw surfaces and edges - hidden removed.
62  };

Constructor & Destructor Documentation

G4ModelingParameters::G4ModelingParameters ( )

Definition at line 43 of file G4ModelingParameters.cc.

43  :
44  fWarning (true),
45  fpDefaultVisAttributes (0),
46  fDrawingStyle (wf),
47  fCulling (false),
48  fCullInvisible (false),
49  fDensityCulling (false),
50  fVisibleDensity (0.01 * g / cm3),
51  fCullCovered (false),
52  fExplodeFactor (1.),
53  fNoOfSides (72),
54  fpSectionSolid (0),
55  fpCutawaySolid (0),
56  fpEvent (0)
57 {}
static constexpr double g
Definition: G4SIunits.hh:183
static constexpr double cm3
Definition: G4SIunits.hh:121
G4ModelingParameters::G4ModelingParameters ( const G4VisAttributes pDefaultVisAttributes,
G4ModelingParameters::DrawingStyle  drawingStyle,
G4bool  isCulling,
G4bool  isCullingInvisible,
G4bool  isDensityCulling,
G4double  visibleDensity,
G4bool  isCullingCovered,
G4int  noOfSides 
)

Definition at line 60 of file G4ModelingParameters.cc.

68  :
69  fWarning (true),
70  fpDefaultVisAttributes (pDefaultVisAttributes),
71  fDrawingStyle (drawingStyle),
72  fCulling (isCulling),
73  fCullInvisible (isCullingInvisible),
74  fDensityCulling (isDensityCulling),
75  fVisibleDensity (visibleDensity),
76  fCullCovered (isCullingCovered),
77  fExplodeFactor (1.),
78  fNoOfSides (noOfSides),
79  fpSectionSolid (0),
80  fpCutawaySolid (0),
81  fpEvent (0)
82 {}
G4ModelingParameters::~G4ModelingParameters ( )

Definition at line 84 of file G4ModelingParameters.cc.

85 {
86  delete fpSectionSolid;
87  delete fpCutawaySolid;
88 }

Member Function Documentation

G4VSolid* G4ModelingParameters::GetCutawaySolid ( ) const
const G4VisAttributes* G4ModelingParameters::GetDefaultVisAttributes ( ) const

Here is the caller graph for this function:

DrawingStyle G4ModelingParameters::GetDrawingStyle ( ) const
const G4Event* G4ModelingParameters::GetEvent ( ) const

Here is the caller graph for this function:

const G4Point3D& G4ModelingParameters::GetExplodeCentre ( ) const
G4double G4ModelingParameters::GetExplodeFactor ( ) const
G4int G4ModelingParameters::GetNoOfSides ( ) const
G4VSolid* G4ModelingParameters::GetSectionSolid ( ) const
const std::vector<VisAttributesModifier>& G4ModelingParameters::GetVisAttributesModifiers ( ) const
G4double G4ModelingParameters::GetVisibleDensity ( ) const
G4bool G4ModelingParameters::IsCulling ( ) const
G4bool G4ModelingParameters::IsCullingCovered ( ) const
G4bool G4ModelingParameters::IsCullingInvisible ( ) const
G4bool G4ModelingParameters::IsDensityCulling ( ) const
G4bool G4ModelingParameters::IsExplode ( ) const
G4bool G4ModelingParameters::IsWarning ( ) const
G4bool G4ModelingParameters::operator!= ( const G4ModelingParameters mp) const

Definition at line 225 of file G4ModelingParameters.cc.

225  {
226 
227  if (
228  (fWarning != mp.fWarning) ||
229  (*fpDefaultVisAttributes != *mp.fpDefaultVisAttributes) ||
230  (fCulling != mp.fCulling) ||
231  (fCullInvisible != mp.fCullInvisible) ||
232  (fDensityCulling != mp.fDensityCulling) ||
233  (fCullCovered != mp.fCullCovered) ||
234  (fExplodeFactor != mp.fExplodeFactor) ||
235  (fExplodeCentre != mp.fExplodeCentre) ||
236  (fNoOfSides != mp.fNoOfSides) ||
237  (fpSectionSolid != mp.fpSectionSolid) ||
238  (fpCutawaySolid != mp.fpCutawaySolid) ||
239  (fpEvent != mp.fpEvent)
240  )
241  return true;
242 
243  if (fDensityCulling &&
244  (fVisibleDensity != mp.fVisibleDensity)) return true;
245 
246  if (fVisAttributesModifiers != mp.fVisAttributesModifiers)
247  return true;
248 
249  return false;
250 }
void G4ModelingParameters::SetCulling ( G4bool  )

Here is the caller graph for this function:

void G4ModelingParameters::SetCullingCovered ( G4bool  )
void G4ModelingParameters::SetCullingInvisible ( G4bool  )
void G4ModelingParameters::SetCutawaySolid ( G4VSolid pCutawaySolid)

Definition at line 147 of file G4ModelingParameters.cc.

147  {
148  delete fpCutawaySolid;
149  fpCutawaySolid = pCutawaySolid;
150 }

Here is the caller graph for this function:

void G4ModelingParameters::SetDefaultVisAttributes ( const G4VisAttributes pDefaultVisAttributes)

Here is the caller graph for this function:

void G4ModelingParameters::SetDensityCulling ( G4bool  )
void G4ModelingParameters::SetDrawingStyle ( DrawingStyle  )
void G4ModelingParameters::SetEvent ( const G4Event pEvent)

Here is the caller graph for this function:

void G4ModelingParameters::SetExplodeCentre ( const G4Point3D explodeCentre)

Here is the caller graph for this function:

void G4ModelingParameters::SetExplodeFactor ( G4double  explodeFactor)

Here is the caller graph for this function:

G4int G4ModelingParameters::SetNoOfSides ( G4int  nSides)

Definition at line 127 of file G4ModelingParameters.cc.

127  {
128  const G4int nSidesMin = fpDefaultVisAttributes->GetMinLineSegmentsPerCircle();
129  if (nSides < nSidesMin) {
130  nSides = nSidesMin;
131  if (fWarning)
132  G4cout << "G4ModelingParameters::SetNoOfSides: attempt to set the"
133  "\nnumber of sides per circle < " << nSidesMin
134  << "; forced to" << nSides << G4endl;
135  }
136  fNoOfSides = nSides;
137  return fNoOfSides;
138 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
static G4int GetMinLineSegmentsPerCircle()
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

void G4ModelingParameters::SetSectionSolid ( G4VSolid pSectionSolid)

Definition at line 141 of file G4ModelingParameters.cc.

141  {
142  delete fpSectionSolid;
143  fpSectionSolid = pSectionSolid;
144 }

Here is the caller graph for this function:

void G4ModelingParameters::SetVisAttributesModifiers ( const std::vector< VisAttributesModifier > &  )

Here is the caller graph for this function:

void G4ModelingParameters::SetVisibleDensity ( G4double  visibleDensity)

Definition at line 110 of file G4ModelingParameters.cc.

110  {
111  const G4double reasonableMaximum = 10.0 * g / cm3;
112  if (visibleDensity < 0 && fWarning) {
113  G4cout << "G4ModelingParameters::SetVisibleDensity: attempt to set negative "
114  "density - ignored." << G4endl;
115  }
116  else {
117  if (fVisibleDensity > reasonableMaximum && fWarning) {
118  G4cout << "G4ModelingParameters::SetVisibleDensity: density > "
119  << reasonableMaximum
120  << " g / cm3 - did you mean this?"
121  << G4endl;
122  }
123  fVisibleDensity = visibleDensity;
124  }
125 }
static constexpr double g
Definition: G4SIunits.hh:183
G4GLOB_DLL std::ostream G4cout
static constexpr double cm3
Definition: G4SIunits.hh:121
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
void G4ModelingParameters::SetWarning ( G4bool  )

Here is the caller graph for this function:

Friends And Related Function Documentation

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

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 PVNameCopyNoPath path 
)
friend

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< VisAttributesModifier > &  vams 
)
friend

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

The documentation for this class was generated from the following files: