Geant4-11
Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends
G4ViewParameters Class Reference

#include <G4ViewParameters.hh>

Public Types

enum  CutawayMode { cutawayUnion , cutawayIntersection }
 
enum  DrawingStyle {
  wireframe , hlr , hsr , hlhsr ,
  cloud
}
 
enum  RotationStyle { constrainUpDirection , freeRotation }
 

Public Member Functions

void AddCutawayPlane (const G4Plane3D &cutawayPlane)
 
void AddVisAttributesModifier (const G4ModelingParameters::VisAttributesModifier &)
 
G4String CameraAndLightingCommands (const G4Point3D standardTargetPoint) const
 
void ChangeCutawayPlane (size_t index, const G4Plane3D &cutawayPlane)
 
void ClearCutawayPlanes ()
 
void ClearVisAttributesModifiers ()
 
G4String DrawingStyleCommands () const
 
 G4ViewParameters ()
 
G4Vector3DGetActualLightpointDirection ()
 
const G4ColourGetBackgroundColour () const
 
G4double GetCameraDistance (G4double radius) const
 
G4int GetCBDAlgorithmNumber () const
 
const std::vector< G4double > & GetCBDParameters () const
 
const G4Point3DGetCurrentTargetPoint () const
 
CutawayMode GetCutawayMode () const
 
const G4PlanesGetCutawayPlanes () const
 
const G4VMarkerGetDefaultMarker () const
 
const G4VisAttributesGetDefaultTextVisAttributes () const
 
const G4VisAttributesGetDefaultVisAttributes () const
 
G4double GetDisplayHeadTimeBlue () const
 
G4double GetDisplayHeadTimeGreen () const
 
G4double GetDisplayHeadTimeRed () const
 
G4double GetDisplayHeadTimeSize () const
 
G4double GetDisplayHeadTimeX () const
 
G4double GetDisplayHeadTimeY () const
 
G4double GetDisplayLightFrontBlue () const
 
G4double GetDisplayLightFrontGreen () const
 
G4double GetDisplayLightFrontRed () const
 
G4double GetDisplayLightFrontT () const
 
G4double GetDisplayLightFrontX () const
 
G4double GetDisplayLightFrontY () const
 
G4double GetDisplayLightFrontZ () const
 
G4double GetDolly () const
 
DrawingStyle GetDrawingStyle () const
 
G4double GetEndTime () const
 
const G4Point3DGetExplodeCentre () const
 
G4double GetExplodeFactor () const
 
G4double GetFadeFactor () const
 
G4double GetFarDistance (G4double cameraDistance, G4double nearDistance, G4double radius) const
 
G4double GetFieldHalfAngle () const
 
G4double GetFrontHalfHeight (G4double nearDistance, G4double radius) const
 
G4double GetGlobalLineWidthScale () const
 
G4double GetGlobalMarkerScale () const
 
const G4Vector3DGetLightpointDirection () const
 
G4bool GetLightsMoveWithCamera () const
 
G4double GetNearDistance (G4double cameraDistance, G4double radius) const
 
G4int GetNoOfSides () const
 
G4int GetNumberOfCloudPoints () const
 
RotationStyle GetRotationStyle () const
 
const G4Vector3DGetScaleFactor () const
 
const G4Plane3DGetSectionPlane () const
 
const std::vector< G4ModelingParameters::PVNameCopyNo > & GetSpecialMeshVolumes () const
 
G4double GetStartTime () const
 
const G4Vector3DGetUpVector () const
 
const G4Vector3DGetViewpointDirection () const
 
const std::vector< G4ModelingParameters::VisAttributesModifier > & GetVisAttributesModifiers () const
 
G4double GetVisibleDensity () const
 
G4int GetWindowAbsoluteLocationHintX (G4int) const
 
G4int GetWindowAbsoluteLocationHintY (G4int) const
 
G4int GetWindowLocationHintX () const
 
G4int GetWindowLocationHintY () const
 
unsigned int GetWindowSizeHintX () const
 
unsigned int GetWindowSizeHintY () const
 
const G4StringGetXGeometryString () const
 
G4double GetZoomFactor () const
 
void IncrementDolly (G4double dollyIncrement)
 
void IncrementPan (G4double right, G4double up)
 
void IncrementPan (G4double right, G4double up, G4double forward)
 
G4bool IsAutoRefresh () const
 
G4bool IsAuxEdgeVisible () const
 
G4bool IsCulling () const
 
G4bool IsCullingCovered () const
 
G4bool IsCullingInvisible () const
 
G4bool IsCutaway () const
 
G4bool IsDensityCulling () const
 
G4bool IsDisplayHeadTime () const
 
G4bool IsDisplayLightFront () const
 
G4bool IsExplode () const
 
G4bool IsMarkerNotHidden () const
 
G4bool IsPicking () const
 
G4bool IsSection () const
 
G4bool IsSpecialMeshRendering () const
 
bool IsWindowLocationHintX () const
 
bool IsWindowLocationHintY () const
 
bool IsWindowSizeHintX () const
 
bool IsWindowSizeHintY () const
 
void MultiplyScaleFactor (const G4Vector3D &scaleFactorMultiplier)
 
void MultiplyZoomFactor (G4double zoomFactorMultiplier)
 
G4bool operator!= (const G4ViewParameters &) const
 
void PrintDifferences (const G4ViewParameters &v) const
 
G4String SceneModifyingCommands () const
 
void SetAutoRefresh (G4bool)
 
void SetAuxEdgeVisible (G4bool)
 
void SetBackgroundColour (const G4Colour &)
 
void SetCBDAlgorithmNumber (G4int)
 
void SetCBDParameters (const std::vector< G4double > &)
 
void SetCulling (G4bool)
 
void SetCullingCovered (G4bool)
 
void SetCullingInvisible (G4bool)
 
void SetCurrentTargetPoint (const G4Point3D &currentTargetPoint)
 
void SetCutawayMode (CutawayMode)
 
void SetDefaultColour (const G4Colour &)
 
void SetDefaultMarker (const G4VMarker &defaultMarker)
 
void SetDefaultTextColour (const G4Colour &)
 
void SetDefaultTextVisAttributes (const G4VisAttributes &)
 
void SetDefaultVisAttributes (const G4VisAttributes &)
 
void SetDensityCulling (G4bool)
 
void SetDisplayHeadTime (G4bool)
 
void SetDisplayHeadTimeBlue (G4double)
 
void SetDisplayHeadTimeGreen (G4double)
 
void SetDisplayHeadTimeRed (G4double)
 
void SetDisplayHeadTimeSize (G4double)
 
void SetDisplayHeadTimeX (G4double)
 
void SetDisplayHeadTimeY (G4double)
 
void SetDisplayLightFront (G4bool)
 
void SetDisplayLightFrontBlue (G4double)
 
void SetDisplayLightFrontGreen (G4double)
 
void SetDisplayLightFrontRed (G4double)
 
void SetDisplayLightFrontT (G4double)
 
void SetDisplayLightFrontX (G4double)
 
void SetDisplayLightFrontY (G4double)
 
void SetDisplayLightFrontZ (G4double)
 
void SetDolly (G4double dolly)
 
void SetDrawingStyle (G4ViewParameters::DrawingStyle style)
 
void SetEndTime (G4double)
 
void SetExplodeCentre (const G4Point3D &explodeCentre)
 
void SetExplodeFactor (G4double explodeFactor)
 
void SetFadeFactor (G4double)
 
void SetFieldHalfAngle (G4double fieldHalfAngle)
 
void SetGlobalLineWidthScale (G4double globalLineWidthScale)
 
void SetGlobalMarkerScale (G4double globalMarkerScale)
 
void SetLightpointDirection (const G4Vector3D &lightpointDirection)
 
void SetLightsMoveWithCamera (G4bool moves)
 
void SetMarkerHidden ()
 
void SetMarkerNotHidden ()
 
G4int SetNoOfSides (G4int nSides)
 
G4int SetNumberOfCloudPoints (G4int)
 
void SetOrthogonalProjection ()
 
void SetPan (G4double right, G4double up)
 
void SetPerspectiveProjection (G4double fieldHalfAngle=30. *CLHEP::deg)
 
void SetPicking (G4bool)
 
void SetRotationStyle (RotationStyle)
 
void SetScaleFactor (const G4Vector3D &scaleFactor)
 
void SetSectionPlane (const G4Plane3D &sectionPlane)
 
void SetSpecialMeshRendering (G4bool)
 
void SetSpecialMeshVolumes (const std::vector< G4ModelingParameters::PVNameCopyNo > &)
 
void SetStartTime (G4double)
 
void SetUpVector (const G4Vector3D &upVector)
 
void SetViewAndLights (const G4Vector3D &viewpointDirection)
 
void SetViewpointDirection (const G4Vector3D &viewpointDirection)
 
void SetVisibleDensity (G4double visibleDensity)
 
void SetWindowLocationHint (G4int xHint, G4int yHint)
 
void SetWindowSizeHint (G4int xHint, G4int yHint)
 
void SetXGeometryString (const G4String &)
 
void SetZoomFactor (G4double zoomFactor)
 
G4String TimeWindowCommands () const
 
G4String TouchableCommands () const
 
void UnsetExplodeFactor ()
 
void UnsetSectionPlane ()
 
 ~G4ViewParameters ()
 

Static Public Member Functions

static G4ViewParametersCatmullRomCubicSplineInterpolation (const std::vector< G4ViewParameters > &views, G4int nInterpolationPoints=50)
 

Private Types

enum  {
  fNoValue = 0 , fXValue = 0x0001 , fYValue = 0x0002 , fWidthValue = 0x0004 ,
  fHeightValue = 0x0008 , fAllValues = 0x000F , fXNegative = 0x0010 , fYNegative = 0x0020
}
 

Private Member Functions

G4int ParseGeometry (const char *string, G4int *x, G4int *y, unsigned int *width, unsigned int *height)
 
G4int ReadInteger (char *string, char **NextString)
 

Private Attributes

G4Vector3D fActualLightpointDirection
 
G4bool fAutoRefresh
 
G4bool fAuxEdgeVisible
 
G4Colour fBackgroundColour
 
G4int fCBDAlgorithmNumber
 
std::vector< G4doublefCBDParameters
 
G4bool fCullCovered
 
G4bool fCulling
 
G4bool fCullInvisible
 
G4Point3D fCurrentTargetPoint
 
CutawayMode fCutawayMode
 
G4Planes fCutawayPlanes
 
G4VMarker fDefaultMarker
 
G4VisAttributes fDefaultTextVisAttributes
 
G4VisAttributes fDefaultVisAttributes
 
G4bool fDensityCulling
 
G4bool fDisplayHeadTime
 
G4double fDisplayHeadTimeBlue
 
G4double fDisplayHeadTimeGreen
 
G4double fDisplayHeadTimeRed
 
G4double fDisplayHeadTimeSize
 
G4double fDisplayHeadTimeX
 
G4double fDisplayHeadTimeY
 
G4bool fDisplayLightFront
 
G4double fDisplayLightFrontBlue
 
G4double fDisplayLightFrontGreen
 
G4double fDisplayLightFrontRed
 
G4double fDisplayLightFrontT
 
G4double fDisplayLightFrontX
 
G4double fDisplayLightFrontY
 
G4double fDisplayLightFrontZ
 
G4double fDolly
 
DrawingStyle fDrawingStyle
 
G4double fEndTime
 
G4Point3D fExplodeCentre
 
G4double fExplodeFactor
 
G4double fFadeFactor
 
G4double fFieldHalfAngle
 
G4int fGeometryMask
 
G4double fGlobalLineWidthScale
 
G4double fGlobalMarkerScale
 
G4bool fLightsMoveWithCamera
 
G4bool fMarkerNotHidden
 
G4int fNoOfSides
 
G4int fNumberOfCloudPoints
 
G4bool fPicking
 
G4Vector3D fRelativeLightpointDirection
 
RotationStyle fRotationStyle
 
G4Vector3D fScaleFactor
 
G4bool fSection
 
G4Plane3D fSectionPlane
 
G4bool fSpecialMeshRendering
 
std::vector< G4ModelingParameters::PVNameCopyNofSpecialMeshVolumes
 
G4double fStartTime
 
G4Vector3D fUpVector
 
G4Vector3D fViewpointDirection
 
std::vector< G4ModelingParameters::VisAttributesModifierfVisAttributesModifiers
 
G4double fVisibleDensity
 
G4int fWindowLocationHintX
 
G4bool fWindowLocationHintXNegative
 
G4int fWindowLocationHintY
 
G4bool fWindowLocationHintYNegative
 
G4int fWindowSizeHintX
 
G4int fWindowSizeHintY
 
G4String fXGeometryString
 
G4double fZoomFactor
 

Friends

std::ostream & operator<< (std::ostream &, const DrawingStyle &)
 
std::ostream & operator<< (std::ostream &, const G4ViewParameters &)
 

Detailed Description

Definition at line 90 of file G4ViewParameters.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
fNoValue 
fXValue 
fYValue 
fWidthValue 
fHeightValue 
fAllValues 
fXNegative 
fYNegative 

Definition at line 397 of file G4ViewParameters.hh.

397 { // Constants for geometry mask in ParseGeometry and related functions.
398 fNoValue = 0,
399 fXValue = 0x0001,
400 fYValue = 0x0002,
401 fWidthValue = 0x0004,
402 fHeightValue = 0x0008,
403 fAllValues = 0x000F,
404 fXNegative = 0x0010,
405 fYNegative = 0x0020
406 };

◆ CutawayMode

Enumerator
cutawayUnion 
cutawayIntersection 

Definition at line 102 of file G4ViewParameters.hh.

102 {
103 cutawayUnion, // Union (addition) of result of each cutaway plane.
104 cutawayIntersection // Intersection (multiplication) " .
105 };

◆ DrawingStyle

Enumerator
wireframe 
hlr 
hsr 
hlhsr 
cloud 

Definition at line 94 of file G4ViewParameters.hh.

94 {
95 wireframe, // Draw edges - no hidden line removal.
96 hlr, // Draw edges - hidden lines removed.
97 hsr, // Draw surfaces - hidden surfaces removed.
98 hlhsr, // Draw surfaces and edges - hidden removed.
99 cloud // Draw volume as a cloud of dots.
100 };

◆ RotationStyle

Enumerator
constrainUpDirection 
freeRotation 

Definition at line 107 of file G4ViewParameters.hh.

107 {
108 constrainUpDirection, // Standard, HEP convention.
109 freeRotation // Free, Google-like rotation, using mouse-grab.
110 };

Constructor & Destructor Documentation

◆ G4ViewParameters()

G4ViewParameters::G4ViewParameters ( )

Definition at line 43 of file G4ViewParameters.cc.

43 :
46 fAuxEdgeVisible (false),
47 fCulling (true),
48 fCullInvisible (true),
49 fDensityCulling (false),
50 fVisibleDensity (0.01 * g / cm3),
51 fCullCovered (false),
53 fSection (false),
57 fExplodeFactor (1.),
58 fNoOfSides (),
59 fViewpointDirection (G4Vector3D (0., 0., 1.)), // On z-axis.
60 fUpVector (G4Vector3D (0., 1., 0.)), // y-axis up.
61 fFieldHalfAngle (0.), // Orthogonal projection.
62 fZoomFactor (1.),
63 fScaleFactor (G4Vector3D (1., 1., 1.)),
65 fDolly (0.),
74 fMarkerNotHidden (true),
75 fWindowSizeHintX (600),
76 fWindowSizeHintY (600),
82 fAutoRefresh (false),
83 fBackgroundColour (G4Colour(0.,0.,0.)), // Black
84 fPicking (false),
88 fFadeFactor(0.),
89 fDisplayHeadTime(false),
96 fDisplayLightFront(false),
105{
106 // Pick up default no of sides from G4Polyhedron.
107 // Note that this parameter is variously called:
108 // No of sides
109 // NumberOfRotationSteps
110 // Line segments per circle
111 // It refers to the approximation of a circle by a polygon of
112 // stated number of sides.
114
116 // Markers are 5 pixels "overall" size, i.e., diameter.
117}
static constexpr double cm3
Definition: G4SIunits.hh:101
static constexpr double g
Definition: G4SIunits.hh:168
void SetScreenSize(G4double)
G4Point3D fCurrentTargetPoint
G4double fDisplayLightFrontT
G4double fDisplayLightFrontBlue
G4bool fWindowLocationHintYNegative
G4double fDisplayHeadTimeBlue
G4double fDisplayLightFrontY
CutawayMode fCutawayMode
G4double fDisplayLightFrontRed
G4double fDisplayLightFrontGreen
DrawingStyle fDrawingStyle
G4Vector3D fViewpointDirection
G4double fDisplayHeadTimeGreen
G4double fDisplayLightFrontX
G4double fGlobalLineWidthScale
G4VisAttributes fDefaultTextVisAttributes
G4double fDisplayHeadTimeSize
G4Vector3D fRelativeLightpointDirection
G4VisAttributes fDefaultVisAttributes
G4double fDisplayHeadTimeRed
G4double fDisplayLightFrontZ
G4bool fWindowLocationHintXNegative
G4Vector3D fActualLightpointDirection
RotationStyle fRotationStyle
static constexpr G4double fVeryLongTime
static G4int GetNumberOfRotationSteps()

References fDefaultMarker, fNoOfSides, HepPolyhedron::GetNumberOfRotationSteps(), and G4VMarker::SetScreenSize().

◆ ~G4ViewParameters()

G4ViewParameters::~G4ViewParameters ( )

Definition at line 119 of file G4ViewParameters.cc.

119{}

Member Function Documentation

◆ AddCutawayPlane()

void G4ViewParameters::AddCutawayPlane ( const G4Plane3D cutawayPlane)

Definition at line 181 of file G4ViewParameters.cc.

181 {
182 if (fCutawayPlanes.size () < 3 ) {
183 fCutawayPlanes.push_back (cutawayPlane);
184 }
185 else {
186 G4cerr <<
187 "ERROR: G4ViewParameters::AddCutawayPlane:"
188 "\n A maximum of 3 cutaway planes supported." << G4endl;
189 }
190}
G4GLOB_DLL std::ostream G4cerr
#define G4endl
Definition: G4ios.hh:57

References fCutawayPlanes, G4cerr, and G4endl.

Referenced by G4VisCommandViewerAddCutawayPlane::SetNewValue().

◆ AddVisAttributesModifier()

void G4ViewParameters::AddVisAttributesModifier ( const G4ModelingParameters::VisAttributesModifier vam)

Definition at line 298 of file G4ViewParameters.cc.

299 {
300 // If target exists with same signifier just change vis attributes.
301 G4bool duplicateTarget = false;
302 auto i = fVisAttributesModifiers.begin();
303 for (; i < fVisAttributesModifiers.end(); ++i) {
304 if (vam.GetPVNameCopyNoPath() == (*i).GetPVNameCopyNoPath() &&
305 vam.GetVisAttributesSignifier() == (*i).GetVisAttributesSignifier()) {
306 duplicateTarget = true;
307 break;
308 }
309 }
310 if (duplicateTarget) (*i).SetVisAttributes(vam.GetVisAttributes());
311 else fVisAttributesModifiers.push_back(vam);
312}
bool G4bool
Definition: G4Types.hh:86
const PVNameCopyNoPath & GetPVNameCopyNoPath() const
VisAttributesSignifier GetVisAttributesSignifier() const
const G4VisAttributes & GetVisAttributes() const
std::vector< G4ModelingParameters::VisAttributesModifier > fVisAttributesModifiers

References fVisAttributesModifiers, G4ModelingParameters::VisAttributesModifier::GetPVNameCopyNoPath(), G4ModelingParameters::VisAttributesModifier::GetVisAttributes(), and G4ModelingParameters::VisAttributesModifier::GetVisAttributesSignifier().

Referenced by G4VisCommandsTouchableSet::SetNewValue(), G4VisCommandViewerSave::SetNewValue(), G4VisCommandsViewerSet::SetNewValue(), G4VViewer::TouchableSetColour(), and G4VViewer::TouchableSetVisibility().

◆ CameraAndLightingCommands()

G4String G4ViewParameters::CameraAndLightingCommands ( const G4Point3D  standardTargetPoint) const

Definition at line 314 of file G4ViewParameters.cc.

316{
317 std::ostringstream oss;
318
319 oss << "#\n# Camera and lights commands";
320
321 oss << "\n/vis/viewer/set/viewpointVector "
323 << ' ' << fViewpointDirection.y()
324 << ' ' << fViewpointDirection.z();
325
326 oss << "\n/vis/viewer/set/upVector "
327 << fUpVector.x()
328 << ' ' << fUpVector.y()
329 << ' ' << fUpVector.z();
330
331 oss << "\n/vis/viewer/set/projection ";
332 if (fFieldHalfAngle == 0.) {
333 oss
334 << "orthogonal";
335 } else {
336 oss
337 << "perspective "
339 << " deg";
340 }
341
342 oss << "\n/vis/viewer/zoomTo "
343 << fZoomFactor;
344
345 oss << "\n/vis/viewer/scaleTo "
346 << fScaleFactor.x()
347 << ' ' << fScaleFactor.y()
348 << ' ' << fScaleFactor.z();
349
350 oss << "\n/vis/viewer/set/targetPoint "
351 << G4BestUnit(standardTargetPoint+fCurrentTargetPoint,"Length")
352 << "\n# Note that if you have not set a target point, the vis system sets"
353 << "\n# a target point based on the scene - plus any panning and dollying -"
354 << "\n# so don't be alarmed by strange coordinates here.";
355
356 oss << "\n/vis/viewer/dollyTo "
357 << G4BestUnit(fDolly,"Length");
358
359 oss << "\n/vis/viewer/set/lightsMove ";
361 oss << "camera";
362 } else {
363 oss << "object";
364 }
365
366 oss << "\n/vis/viewer/set/lightsVector "
370
371 oss << "\n/vis/viewer/set/rotationStyle ";
373 oss << "constrainUpDirection";
374 } else {
375 oss << "freeRotation";
376 }
377
379 oss << "\n/vis/viewer/set/background "
380 << c.GetRed()
381 << ' ' << c.GetGreen()
382 << ' ' << c.GetBlue()
383 << ' ' << c.GetAlpha();
384
386 oss << "\n/vis/viewer/set/defaultColour "
387 << c.GetRed()
388 << ' ' << c.GetGreen()
389 << ' ' << c.GetBlue()
390 << ' ' << c.GetAlpha();
391
393 oss << "\n/vis/viewer/set/defaultTextColour "
394 << c.GetRed()
395 << ' ' << c.GetGreen()
396 << ' ' << c.GetBlue()
397 << ' ' << c.GetAlpha();
398
399 oss << std::endl;
400
401 return oss.str();
402}
static constexpr double deg
Definition: G4SIunits.hh:132
#define G4BestUnit(a, b)
G4double GetBlue() const
Definition: G4Colour.hh:154
G4double GetAlpha() const
Definition: G4Colour.hh:155
G4double GetRed() const
Definition: G4Colour.hh:152
G4double GetGreen() const
Definition: G4Colour.hh:153
const G4Colour & GetColour() const

References constrainUpDirection, deg, fBackgroundColour, fCurrentTargetPoint, fDefaultTextVisAttributes, fDefaultVisAttributes, fDolly, fFieldHalfAngle, fLightsMoveWithCamera, fRelativeLightpointDirection, fRotationStyle, fScaleFactor, fUpVector, fViewpointDirection, fZoomFactor, G4BestUnit, G4Colour::GetAlpha(), G4Colour::GetBlue(), G4VisAttributes::GetColour(), G4Colour::GetGreen(), G4Colour::GetRed(), HepGeom::BasicVector3D< T >::x(), HepGeom::BasicVector3D< T >::y(), and HepGeom::BasicVector3D< T >::z().

Referenced by anonymous_namespace{G4VisCommandsViewer.cc}::WriteCommands().

◆ CatmullRomCubicSplineInterpolation()

G4ViewParameters * G4ViewParameters::CatmullRomCubicSplineInterpolation ( const std::vector< G4ViewParameters > &  views,
G4int  nInterpolationPoints = 50 
)
static

Definition at line 1419 of file G4ViewParameters.cc.

1422{
1423 // Returns a null pointer when no more to be done. For example:
1424 // do {
1425 // G4ViewParameters* vp =
1426 // G4ViewParameters::CatmullRomCubicSplineInterpolation(viewVector,nInterpolationPoints);
1427 // if (!vp) break;
1428 // ...
1429 // } while (true);
1430
1431 // See https://en.wikipedia.org/wiki/Cubic_Hermite_spline
1432
1433 // Assumes equal intervals
1434
1435 if (views.size() < 2) {
1437 ("G4ViewParameters::CatmullRomCubicSplineInterpolation",
1438 "visman0301", JustWarning,
1439 "There must be at least two views.");
1440 return 0;
1441 }
1442
1443 if (nInterpolationPoints < 1) {
1445 ("G4ViewParameters::CatmullRomCubicSplineInterpolation",
1446 "visman0302", JustWarning,
1447 "Number of interpolation points cannot be zero or negative.");
1448 return 0;
1449 }
1450
1451 const size_t nIntervals = views.size() - 1;
1452 const G4double dt = 1./nInterpolationPoints;
1453
1454 static G4ViewParameters holdingValues;
1455 static G4double t = 0.; // 0. <= t <= 1.
1456 static G4int iInterpolationPoint = 0;
1457 static size_t iInterval = 0;
1458
1459// G4cout << "Interval " << iInterval << ", t = " << t << G4endl;
1460
1461 // Hermite polynomials.
1462 const G4double h00 = 2.*t*t*t - 3.*t*t +1;
1463 const G4double h10 = t*t*t -2.*t*t + t;
1464 const G4double h01 = -2.*t*t*t + 3.*t*t;
1465 const G4double h11 = t*t*t - t*t;
1466
1467 // Aliases (to simplify code)
1468 const size_t& n = nIntervals;
1469 size_t& i = iInterval;
1470 const std::vector<G4ViewParameters>& v = views;
1471
1472 // The Catmull-Rom cubic spline prescription is as follows:
1473 // Slope at first way point is v[1] - v[0].
1474 // Slope at last way point is v[n] - v[n-1].
1475 // Otherwise slope at way point i is 0.5*(v[i+1] - v[i-1]).
1476 // Result = h00*v[i] + h10*m[i] + h01*v[i+1] + h11*m[i+1],
1477 // where m[i] amd m[i+1] are the slopes at the start and end
1478 // of the interval for the particular value.
1479 // If (n == 1), linear interpolation results.
1480 // If (n == 2), quadratic interpolation results.
1481
1482 // Working variables
1483 G4double mi, mi1, real, x, y, z;
1484
1485 // First, a crude interpolation of all parameters. Then, below, a
1486 // smooth interpolation of those for which it makes sense.
1487 holdingValues = t < 0.5? v[i]: v[i+1];
1488
1489 // Catmull-Rom cubic spline interpolation
1490#define INTERPOLATE(param) \
1491/* This works out the interpolated param in i'th interval */ \
1492/* Assumes n >= 1 */ \
1493if (i == 0) { \
1494/* First interval */ \
1495mi = v[1].param - v[0].param; \
1496/* If there is only one interval, make start and end slopes equal */ \
1497/* (This results in a linear interpolation) */ \
1498if (n == 1) mi1 = mi; \
1499/* else the end slope of the interval takes account of the next waypoint along */ \
1500else mi1 = 0.5 * (v[2].param - v[0].param); \
1501} else if (i >= n - 1) { \
1502/* Similarly for last interval */ \
1503mi1 = v[i+1].param - v[i].param; \
1504/* If there is only one interval, make start and end slopes equal */ \
1505if (n == 1) mi = mi1; \
1506/* else the start slope of the interval takes account of the previous waypoint */ \
1507else mi = 0.5 * (v[i+1].param - v[i-1].param); \
1508} else { \
1509/* Full Catmull-Rom slopes use previous AND next waypoints */ \
1510mi = 0.5 * (v[i+1].param - v[i-1].param); \
1511mi1 = 0.5 * (v[i+2].param - v[i ].param); \
1512} \
1513real = h00 * v[i].param + h10 * mi + h01 * v[i+1].param + h11 * mi1;
1514
1515#define INTERPOLATELOG(param) \
1516if (i == 0) { \
1517mi = std::log(v[1].param) - std::log(v[0].param); \
1518if (n == 1) mi1 = mi; \
1519else mi1 = 0.5 * (std::log(v[2].param) - std::log(v[0].param)); \
1520} else if (i >= n - 1) { \
1521mi1 = std::log(v[i+1].param) - std::log(v[i].param); \
1522if (n == 1) mi = mi1; \
1523else mi = 0.5 * (std::log(v[i+1].param) - std::log(v[i-1].param)); \
1524} else { \
1525mi = 0.5 * (std::log(v[i+1].param) - std::log(v[i-1].param)); \
1526mi1 = 0.5 * (std::log(v[i+2].param) - std::log(v[i ].param)); \
1527} \
1528real = std::exp(h00 * std::log(v[i].param) + h10 * mi + h01 * std::log(v[i+1].param) + h11 * mi1);
1529
1530 // Real parameters
1532 if (real < 0.) real = 0.;
1533 holdingValues.fVisibleDensity = real;
1535 holdingValues.fExplodeFactor = real;
1537 if (real < 0.) real = 0.;
1538 holdingValues.fFieldHalfAngle = real;
1540 holdingValues.fZoomFactor = real;
1542 holdingValues.fDolly = real;
1544 if (real < 0.) real = 0.;
1545 holdingValues.fGlobalMarkerScale = real;
1547 if (real < 0.) real = 0.;
1548 holdingValues.fGlobalLineWidthScale = real;
1549
1550 // Unit vectors
1551#define INTERPOLATEUNITVECTOR(vector) \
1552INTERPOLATE(vector.x()); x = real; \
1553INTERPOLATE(vector.y()); y = real; \
1554INTERPOLATE(vector.z()); z = real;
1556 holdingValues.fViewpointDirection = G4Vector3D(x,y,z).unit();
1558 holdingValues.fUpVector = G4Vector3D(x,y,z).unit();
1560 holdingValues.fRelativeLightpointDirection = G4Vector3D(x,y,z).unit();
1562 holdingValues.fActualLightpointDirection = G4Vector3D(x,y,z).unit();
1563
1564 // Un-normalised vectors
1565#define INTERPOLATEVECTOR(vector) \
1566INTERPOLATE(vector.x()); x = real; \
1567INTERPOLATE(vector.y()); y = real; \
1568INTERPOLATE(vector.z()); z = real;
1570 holdingValues.fScaleFactor = G4Vector3D(x,y,z);
1571
1572 // Points
1573#define INTERPOLATEPOINT(point) \
1574INTERPOLATE(point.x()); x = real; \
1575INTERPOLATE(point.y()); y = real; \
1576INTERPOLATE(point.z()); z = real;
1578 holdingValues.fExplodeCentre = G4Point3D(x,y,z);
1580 holdingValues.fCurrentTargetPoint = G4Point3D(x,y,z);
1581
1582 // Colour
1583 G4double red, green, blue, alpha;
1584#define INTERPOLATECOLOUR(colour) \
1585INTERPOLATE(colour.GetRed()); red = real; \
1586INTERPOLATE(colour.GetGreen()); green = real; \
1587INTERPOLATE(colour.GetBlue()); blue = real; \
1588INTERPOLATE(colour.GetAlpha()); alpha = real;
1590 // Components are clamped to 0. <= component <= 1.
1591 holdingValues.fBackgroundColour = G4Colour(red,green,blue,alpha);
1592
1593 // For some parameters we need to check some continuity
1594 G4bool continuous;
1595#define CONTINUITY(quantity) \
1596 continuous = false; \
1597 /* This follows the logic of the INTERPOLATE macro above; see comments therein */ \
1598 if (i == 0) { \
1599 if (v[1].quantity == v[0].quantity) { \
1600 if (n == 1) continuous = true; \
1601 else if (v[2].quantity == v[0].quantity) \
1602 continuous = true; \
1603 } \
1604 } else if (i >= n - 1) { \
1605 if (v[i+1].quantity == v[i].quantity) { \
1606 if (n == 1) continuous = true; \
1607 else if (v[i+1].quantity == v[i-1].quantity) \
1608 continuous = true; \
1609 } \
1610 } else { \
1611 if (v[i-1].quantity == v[i].quantity && \
1612 v[i+1].quantity == v[i].quantity && \
1613 v[i+2].quantity == v[i].quantity) \
1614 continuous = true; \
1615 }
1616
1617 G4double a, b, c, d;
1618#define INTERPOLATEPLANE(plane) \
1619INTERPOLATE(plane.a()); a = real; \
1620INTERPOLATE(plane.b()); b = real; \
1621INTERPOLATE(plane.c()); c = real; \
1622INTERPOLATE(plane.d()); d = real;
1623
1624 // Section plane
1626 if (continuous) {
1628 holdingValues.fSectionPlane = G4Plane3D(a,b,c,d);
1629 }
1630
1631 // Cutaway planes
1632 if (v[i].fCutawayPlanes.size()) {
1633 CONTINUITY(fCutawayPlanes.size());
1634 if (continuous) {
1635 for (size_t j = 0; j < v[i].fCutawayPlanes.size(); ++j) {
1637 holdingValues.fCutawayPlanes[j] = G4Plane3D(a,b,c,d);
1638 }
1639 }
1640 }
1641
1642 // Vis attributes modifiers
1643 // Really, we are only interested in colour - other attributes can follow
1644 // the "crude" interpolation that is guaranteed above.
1645 static G4VisAttributes workingVA;
1646 if (v[i].fVisAttributesModifiers.size()) {
1648 if (continuous) {
1649 for (size_t j = 0; j < v[i].fVisAttributesModifiers.size(); ++j) {
1650 CONTINUITY(fVisAttributesModifiers[j].GetPVNameCopyNoPath());
1651 if (continuous) {
1652 CONTINUITY(fVisAttributesModifiers[j].GetVisAttributesSignifier());
1653 if (continuous) {
1654 if (v[i].fVisAttributesModifiers[j].GetVisAttributesSignifier() ==
1656 INTERPOLATECOLOUR(fVisAttributesModifiers[j].GetVisAttributes().GetColour());
1657 workingVA = v[i].fVisAttributesModifiers[j].GetVisAttributes();
1658 workingVA.SetColour(G4Colour(red,green,blue,alpha));
1659 holdingValues.fVisAttributesModifiers[j].SetVisAttributes(workingVA);
1660 }
1661 }
1662 }
1663 }
1664 }
1665 }
1666
1667 // Time window parameters (for showing particles in flight)
1668 // Only two parameters are interpolated. The others are usually chosen
1669 // once and for all by the user for a given series of views - or at least,
1670 // if not, they will be interpolated by the default "crude" method above.
1672 holdingValues.fStartTime = real;
1674 holdingValues.fEndTime = real;
1675
1676 // Increment counters
1677 iInterpolationPoint++;
1678 t += dt;
1679 if (iInterpolationPoint > nInterpolationPoints) {
1680 iInterpolationPoint = 1; // Ready for next interval.
1681 t = dt;
1682 iInterval++;
1683 }
1684 if (iInterval >= nIntervals) {
1685 iInterpolationPoint = 0; // Ready for a complete restart.
1686 t = 0.;
1687 iInterval = 0;
1688 return 0;
1689 }
1690
1691 return &holdingValues;
1692}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
static const G4double alpha
HepGeom::Plane3D< G4double > G4Plane3D
Definition: G4Plane3D.hh:36
HepGeom::Point3D< G4double > G4Point3D
Definition: G4Point3D.hh:34
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
HepGeom::Vector3D< G4double > G4Vector3D
Definition: G4Vector3D.hh:34
#define INTERPOLATECOLOUR(colour)
#define INTERPOLATEVECTOR(vector)
#define INTERPOLATE(param)
#define INTERPOLATEPLANE(plane)
#define CONTINUITY(quantity)
#define INTERPOLATEPOINT(point)
#define INTERPOLATEUNITVECTOR(vector)
#define INTERPOLATELOG(param)
void SetColour(const G4Colour &)
BasicVector3D< T > unit() const

References alpha, CONTINUITY, fActualLightpointDirection, fBackgroundColour, fCurrentTargetPoint, fCutawayPlanes, fDolly, fEndTime, fExplodeCentre, fExplodeFactor, fFieldHalfAngle, fGlobalLineWidthScale, fGlobalMarkerScale, fRelativeLightpointDirection, fScaleFactor, fSection, fSectionPlane, fStartTime, fUpVector, fViewpointDirection, fVisAttributesModifiers, fVisibleDensity, fZoomFactor, G4Exception(), INTERPOLATE, INTERPOLATECOLOUR, INTERPOLATELOG, INTERPOLATEPLANE, INTERPOLATEPOINT, INTERPOLATEUNITVECTOR, INTERPOLATEVECTOR, JustWarning, anonymous_namespace{G4QuasiElRatios.cc}::mi, CLHEP::detail::n, G4VisAttributes::SetColour(), HepGeom::BasicVector3D< T >::unit(), and G4ModelingParameters::VASColour.

Referenced by G4VVisCommand::InterpolateViews().

◆ ChangeCutawayPlane()

void G4ViewParameters::ChangeCutawayPlane ( size_t  index,
const G4Plane3D cutawayPlane 
)

Definition at line 192 of file G4ViewParameters.cc.

193 {
194 if (index >= fCutawayPlanes.size()) {
195 G4cerr <<
196 "ERROR: G4ViewParameters::ChangeCutawayPlane:"
197 "\n Plane " << index << " does not exist." << G4endl;
198 } else {
199 fCutawayPlanes[index] = cutawayPlane;
200 }
201}

References fCutawayPlanes, G4cerr, and G4endl.

Referenced by G4VisCommandViewerChangeCutawayPlane::SetNewValue().

◆ ClearCutawayPlanes()

void G4ViewParameters::ClearCutawayPlanes ( )

◆ ClearVisAttributesModifiers()

void G4ViewParameters::ClearVisAttributesModifiers ( )

◆ DrawingStyleCommands()

G4String G4ViewParameters::DrawingStyleCommands ( ) const

Definition at line 404 of file G4ViewParameters.cc.

405{
406 std::ostringstream oss;
407
408 oss << "#\n# Drawing style commands";
409
410 oss << "\n/vis/viewer/set/style ";
411 switch (fDrawingStyle) {
412 case wireframe:
413 case hlr:
414 oss << "wireframe";
415 break;
416 case hsr:
417 case hlhsr:
418 oss << "surface";
419 break;
420 case cloud:
421 oss << "cloud";
422 break;
423 }
424
425 oss << "\n/vis/viewer/set/hiddenEdge ";
426 if (fDrawingStyle == hlr || fDrawingStyle == hlhsr) {
427 oss << "true";
428 } else {
429 oss << "false";
430 }
431
432 oss << "\n/vis/viewer/set/auxiliaryEdge ";
433 if (fAuxEdgeVisible) {
434 oss << "true";
435 } else {
436 oss << "false";
437 }
438
439 oss << "\n/vis/viewer/set/hiddenMarker ";
440 if (fMarkerNotHidden) {
441 oss << "false";
442 } else {
443 oss << "true";
444 }
445
446 oss << "\n/vis/viewer/set/globalLineWidthScale "
448
449 oss << "\n/vis/viewer/set/globalMarkerScale "
451
452 oss << "\n/vis/viewer/set/numberOfCloudPoints "
454
455 oss << "\n/vis/viewer/set/specialMeshRendering ";
457 oss << "true";
458 } else {
459 oss << "false";
460 }
461
462 oss << "\n/vis/viewer/set/specialMeshVolumes";
463 for (const auto& volume : fSpecialMeshVolumes) {
464 oss << ' ' << volume.GetName() << ' ' << volume.GetCopyNo();
465 }
466
467 oss << std::endl;
468
469 return oss.str();
470}
std::vector< G4ModelingParameters::PVNameCopyNo > fSpecialMeshVolumes

References cloud, fAuxEdgeVisible, fDrawingStyle, fGlobalLineWidthScale, fGlobalMarkerScale, fMarkerNotHidden, fNumberOfCloudPoints, fSpecialMeshRendering, fSpecialMeshVolumes, hlhsr, hlr, hsr, and wireframe.

Referenced by anonymous_namespace{G4VisCommandsViewer.cc}::WriteCommands().

◆ GetActualLightpointDirection()

G4Vector3D & G4ViewParameters::GetActualLightpointDirection ( )

◆ GetBackgroundColour()

const G4Colour & G4ViewParameters::GetBackgroundColour ( ) const

◆ GetCameraDistance()

G4double G4ViewParameters::GetCameraDistance ( G4double  radius) const

◆ GetCBDAlgorithmNumber()

G4int G4ViewParameters::GetCBDAlgorithmNumber ( ) const

◆ GetCBDParameters()

const std::vector< G4double > & G4ViewParameters::GetCBDParameters ( ) const

◆ GetCurrentTargetPoint()

const G4Point3D & G4ViewParameters::GetCurrentTargetPoint ( ) const

◆ GetCutawayMode()

CutawayMode G4ViewParameters::GetCutawayMode ( ) const

◆ GetCutawayPlanes()

const G4Planes & G4ViewParameters::GetCutawayPlanes ( ) const

◆ GetDefaultMarker()

const G4VMarker & G4ViewParameters::GetDefaultMarker ( ) const

◆ GetDefaultTextVisAttributes()

const G4VisAttributes * G4ViewParameters::GetDefaultTextVisAttributes ( ) const

◆ GetDefaultVisAttributes()

const G4VisAttributes * G4ViewParameters::GetDefaultVisAttributes ( ) const

◆ GetDisplayHeadTimeBlue()

G4double G4ViewParameters::GetDisplayHeadTimeBlue ( ) const

◆ GetDisplayHeadTimeGreen()

G4double G4ViewParameters::GetDisplayHeadTimeGreen ( ) const

◆ GetDisplayHeadTimeRed()

G4double G4ViewParameters::GetDisplayHeadTimeRed ( ) const

◆ GetDisplayHeadTimeSize()

G4double G4ViewParameters::GetDisplayHeadTimeSize ( ) const

◆ GetDisplayHeadTimeX()

G4double G4ViewParameters::GetDisplayHeadTimeX ( ) const

◆ GetDisplayHeadTimeY()

G4double G4ViewParameters::GetDisplayHeadTimeY ( ) const

◆ GetDisplayLightFrontBlue()

G4double G4ViewParameters::GetDisplayLightFrontBlue ( ) const

◆ GetDisplayLightFrontGreen()

G4double G4ViewParameters::GetDisplayLightFrontGreen ( ) const

◆ GetDisplayLightFrontRed()

G4double G4ViewParameters::GetDisplayLightFrontRed ( ) const

◆ GetDisplayLightFrontT()

G4double G4ViewParameters::GetDisplayLightFrontT ( ) const

◆ GetDisplayLightFrontX()

G4double G4ViewParameters::GetDisplayLightFrontX ( ) const

◆ GetDisplayLightFrontY()

G4double G4ViewParameters::GetDisplayLightFrontY ( ) const

◆ GetDisplayLightFrontZ()

G4double G4ViewParameters::GetDisplayLightFrontZ ( ) const

◆ GetDolly()

G4double G4ViewParameters::GetDolly ( ) const

◆ GetDrawingStyle()

DrawingStyle G4ViewParameters::GetDrawingStyle ( ) const

◆ GetEndTime()

G4double G4ViewParameters::GetEndTime ( ) const

◆ GetExplodeCentre()

const G4Point3D & G4ViewParameters::GetExplodeCentre ( ) const

◆ GetExplodeFactor()

G4double G4ViewParameters::GetExplodeFactor ( ) const

◆ GetFadeFactor()

G4double G4ViewParameters::GetFadeFactor ( ) const

◆ GetFarDistance()

G4double G4ViewParameters::GetFarDistance ( G4double  cameraDistance,
G4double  nearDistance,
G4double  radius 
) const

Definition at line 160 of file G4ViewParameters.cc.

162 {
163 G4double farDistance = cameraDistance + radius;
164 if (farDistance < nearDistance) farDistance = nearDistance;
165 return farDistance;
166}

Referenced by G4OpenGLViewer::getSceneDepth(), G4OpenGLViewer::getSceneFarWidth(), G4OpenGLViewer::SetView(), G4Qt3DViewer::SetView(), and G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::SetView().

◆ GetFieldHalfAngle()

G4double G4ViewParameters::GetFieldHalfAngle ( ) const

◆ GetFrontHalfHeight()

G4double G4ViewParameters::GetFrontHalfHeight ( G4double  nearDistance,
G4double  radius 
) const

Definition at line 168 of file G4ViewParameters.cc.

169 {
170 G4double frontHalfHeight;
171 if (fFieldHalfAngle == 0.) {
172 frontHalfHeight = radius / fZoomFactor;
173 }
174 else {
175 frontHalfHeight = nearDistance * std::tan (fFieldHalfAngle) / fZoomFactor;
176 }
177 return frontHalfHeight;
178}

References fFieldHalfAngle, and fZoomFactor.

Referenced by G4OpenGLViewer::getSceneFarWidth(), G4OpenGLViewer::getSceneNearWidth(), G4OpenGLViewer::SetView(), G4Qt3DViewer::SetView(), G4RayTracerViewer::SetView(), and G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::SetView().

◆ GetGlobalLineWidthScale()

G4double G4ViewParameters::GetGlobalLineWidthScale ( ) const

◆ GetGlobalMarkerScale()

G4double G4ViewParameters::GetGlobalMarkerScale ( ) const

◆ GetLightpointDirection()

const G4Vector3D & G4ViewParameters::GetLightpointDirection ( ) const

◆ GetLightsMoveWithCamera()

G4bool G4ViewParameters::GetLightsMoveWithCamera ( ) const

◆ GetNearDistance()

G4double G4ViewParameters::GetNearDistance ( G4double  cameraDistance,
G4double  radius 
) const

Definition at line 152 of file G4ViewParameters.cc.

153 {
154 const G4double small = 1.e-6 * radius;
155 G4double nearDistance = cameraDistance - radius;
156 if (nearDistance < small) nearDistance = small;
157 return nearDistance;
158}

Referenced by G4OpenGLViewer::getSceneDepth(), G4OpenGLViewer::getSceneFarWidth(), G4OpenGLViewer::getSceneNearWidth(), G4OpenGLViewer::SetView(), G4Qt3DViewer::SetView(), G4RayTracerViewer::SetView(), and G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::SetView().

◆ GetNoOfSides()

G4int G4ViewParameters::GetNoOfSides ( ) const

◆ GetNumberOfCloudPoints()

G4int G4ViewParameters::GetNumberOfCloudPoints ( ) const

◆ GetRotationStyle()

RotationStyle G4ViewParameters::GetRotationStyle ( ) const

◆ GetScaleFactor()

const G4Vector3D & G4ViewParameters::GetScaleFactor ( ) const

◆ GetSectionPlane()

const G4Plane3D & G4ViewParameters::GetSectionPlane ( ) const

◆ GetSpecialMeshVolumes()

const std::vector< G4ModelingParameters::PVNameCopyNo > & G4ViewParameters::GetSpecialMeshVolumes ( ) const

◆ GetStartTime()

G4double G4ViewParameters::GetStartTime ( ) const

◆ GetUpVector()

const G4Vector3D & G4ViewParameters::GetUpVector ( ) const

◆ GetViewpointDirection()

const G4Vector3D & G4ViewParameters::GetViewpointDirection ( ) const

◆ GetVisAttributesModifiers()

const std::vector< G4ModelingParameters::VisAttributesModifier > & G4ViewParameters::GetVisAttributesModifiers ( ) const

◆ GetVisibleDensity()

G4double G4ViewParameters::GetVisibleDensity ( ) const

◆ GetWindowAbsoluteLocationHintX()

G4int G4ViewParameters::GetWindowAbsoluteLocationHintX ( G4int  sizeX) const

◆ GetWindowAbsoluteLocationHintY()

G4int G4ViewParameters::GetWindowAbsoluteLocationHintY ( G4int  sizeY) const

◆ GetWindowLocationHintX()

G4int G4ViewParameters::GetWindowLocationHintX ( ) const

Referenced by G4VtkViewer::Initialise().

◆ GetWindowLocationHintY()

G4int G4ViewParameters::GetWindowLocationHintY ( ) const

Referenced by G4VtkViewer::Initialise().

◆ GetWindowSizeHintX()

unsigned int G4ViewParameters::GetWindowSizeHintX ( ) const

◆ GetWindowSizeHintY()

unsigned int G4ViewParameters::GetWindowSizeHintY ( ) const

◆ GetXGeometryString()

const G4String & G4ViewParameters::GetXGeometryString ( ) const

◆ GetZoomFactor()

G4double G4ViewParameters::GetZoomFactor ( ) const

◆ IncrementDolly()

void G4ViewParameters::IncrementDolly ( G4double  dollyIncrement)

◆ IncrementPan() [1/2]

void G4ViewParameters::IncrementPan ( G4double  right,
G4double  up 
)

◆ IncrementPan() [2/2]

void G4ViewParameters::IncrementPan ( G4double  right,
G4double  up,
G4double  forward 
)

Definition at line 292 of file G4ViewParameters.cc.

292 {
293 G4Vector3D unitRight = (fUpVector.cross (fViewpointDirection)).unit();
294 G4Vector3D unitUp = (fViewpointDirection.cross (unitRight)).unit();
295 fCurrentTargetPoint += right * unitRight + up * unitUp + distance * fViewpointDirection;
296}
BasicVector3D< T > cross(const BasicVector3D< T > &v) const

References HepGeom::BasicVector3D< T >::cross(), fCurrentTargetPoint, fUpVector, and fViewpointDirection.

◆ IsAutoRefresh()

G4bool G4ViewParameters::IsAutoRefresh ( ) const

◆ IsAuxEdgeVisible()

G4bool G4ViewParameters::IsAuxEdgeVisible ( ) const

◆ IsCulling()

G4bool G4ViewParameters::IsCulling ( ) const

◆ IsCullingCovered()

G4bool G4ViewParameters::IsCullingCovered ( ) const

◆ IsCullingInvisible()

G4bool G4ViewParameters::IsCullingInvisible ( ) const

◆ IsCutaway()

G4bool G4ViewParameters::IsCutaway ( ) const

◆ IsDensityCulling()

G4bool G4ViewParameters::IsDensityCulling ( ) const

◆ IsDisplayHeadTime()

G4bool G4ViewParameters::IsDisplayHeadTime ( ) const

◆ IsDisplayLightFront()

G4bool G4ViewParameters::IsDisplayLightFront ( ) const

◆ IsExplode()

G4bool G4ViewParameters::IsExplode ( ) const

◆ IsMarkerNotHidden()

G4bool G4ViewParameters::IsMarkerNotHidden ( ) const

◆ IsPicking()

G4bool G4ViewParameters::IsPicking ( ) const

◆ IsSection()

G4bool G4ViewParameters::IsSection ( ) const

◆ IsSpecialMeshRendering()

G4bool G4ViewParameters::IsSpecialMeshRendering ( ) const

◆ IsWindowLocationHintX()

bool G4ViewParameters::IsWindowLocationHintX ( ) const

◆ IsWindowLocationHintY()

bool G4ViewParameters::IsWindowLocationHintY ( ) const

◆ IsWindowSizeHintX()

bool G4ViewParameters::IsWindowSizeHintX ( ) const

◆ IsWindowSizeHintY()

bool G4ViewParameters::IsWindowSizeHintY ( ) const

◆ MultiplyScaleFactor()

void G4ViewParameters::MultiplyScaleFactor ( const G4Vector3D scaleFactorMultiplier)

◆ MultiplyZoomFactor()

void G4ViewParameters::MultiplyZoomFactor ( G4double  zoomFactorMultiplier)

◆ operator!=()

G4bool G4ViewParameters::operator!= ( const G4ViewParameters v) const

Definition at line 1082 of file G4ViewParameters.cc.

1082 {
1083
1084 // Put performance-sensitive parameters first.
1085 if (
1086 // This first to optimise spin, etc.
1088
1089 // No particular order from here on.
1093 (fCulling != v.fCulling) ||
1096 (fCullCovered != v.fCullCovered) ||
1098 (fSection != v.fSection) ||
1099 (IsCutaway() != v.IsCutaway()) ||
1100 (IsExplode() != v.IsExplode()) ||
1101 (fNoOfSides != v.fNoOfSides) ||
1102 (fUpVector != v.fUpVector) ||
1104 (fZoomFactor != v.fZoomFactor) ||
1105 (fScaleFactor != v.fScaleFactor) ||
1107 (fDolly != v.fDolly) ||
1120 (fAutoRefresh != v.fAutoRefresh) ||
1122 (fPicking != v.fPicking) ||
1125 )
1126 return true;
1127
1128 if (fDensityCulling &&
1129 (fVisibleDensity != v.fVisibleDensity)) return true;
1130
1131 if (fCBDAlgorithmNumber > 0) {
1132 if (fCBDParameters.size() != v.fCBDParameters.size()) return true;
1133 else if (fCBDParameters != v.fCBDParameters) return true;
1134 }
1135
1136 if (fSection &&
1137 (!(fSectionPlane == v.fSectionPlane))) return true;
1138
1139 if (IsCutaway()) {
1140 if (fCutawayPlanes.size () != v.fCutawayPlanes.size ())
1141 return true;
1142 else {
1143 for (size_t i = 0; i < fCutawayPlanes.size (); i++) {
1144 if (!(fCutawayPlanes[i] == v.fCutawayPlanes[i])) return true;
1145 }
1146 }
1147 }
1148
1149 if (IsExplode() &&
1151 (fExplodeCentre != v.fExplodeCentre))) return true;
1152
1154
1155 if (fStartTime != v.fStartTime ||
1156 fEndTime != v.fEndTime ||
1157 fFadeFactor != v.fFadeFactor) return true;
1158
1159 if (fDisplayHeadTime != v.fDisplayHeadTime) return true;
1160 if (fDisplayHeadTime) {
1167 return true;
1168 }
1169 }
1170
1171 if (fDisplayLightFront != v.fDisplayLightFront) return true;
1172 if (fDisplayLightFront) {
1180 return true;
1181 }
1182 }
1183
1186 return true;;
1187 }
1188
1189 return false;
1190}
G4bool IsCutaway() const
std::vector< G4double > fCBDParameters
G4bool IsExplode() const

References fAutoRefresh, fAuxEdgeVisible, fBackgroundColour, fCBDAlgorithmNumber, fCBDParameters, fCullCovered, fCulling, fCullInvisible, fCurrentTargetPoint, fCutawayPlanes, fDefaultMarker, fDefaultTextVisAttributes, fDefaultVisAttributes, fDensityCulling, fDisplayHeadTime, fDisplayHeadTimeBlue, fDisplayHeadTimeGreen, fDisplayHeadTimeRed, fDisplayHeadTimeSize, fDisplayHeadTimeX, fDisplayHeadTimeY, fDisplayLightFront, fDisplayLightFrontBlue, fDisplayLightFrontGreen, fDisplayLightFrontRed, fDisplayLightFrontT, fDisplayLightFrontX, fDisplayLightFrontY, fDisplayLightFrontZ, fDolly, fDrawingStyle, fEndTime, fExplodeCentre, fExplodeFactor, fFadeFactor, fFieldHalfAngle, fGeometryMask, fGlobalLineWidthScale, fGlobalMarkerScale, fLightsMoveWithCamera, fMarkerNotHidden, fNoOfSides, fNumberOfCloudPoints, fPicking, fRelativeLightpointDirection, fRotationStyle, fScaleFactor, fSection, fSectionPlane, fSpecialMeshRendering, fSpecialMeshVolumes, fStartTime, fUpVector, fViewpointDirection, fVisAttributesModifiers, fVisibleDensity, fWindowSizeHintX, fWindowSizeHintY, fXGeometryString, fZoomFactor, IsCutaway(), and IsExplode().

◆ ParseGeometry()

int G4ViewParameters::ParseGeometry ( const char *  string,
G4int x,
G4int y,
unsigned int *  width,
unsigned int *  height 
)
private

Definition at line 1303 of file G4ViewParameters.cc.

1309{
1310
1311 G4int mask = fNoValue;
1312 char *strind;
1313 unsigned int tempWidth = 0;
1314 unsigned int tempHeight = 0;
1315 G4int tempX = 0;
1316 G4int tempY = 0;
1317 char *nextCharacter;
1318 if ( (string == NULL) || (*string == '\0')) {
1319 return(mask);
1320 }
1321 if (*string == '=')
1322 string++; /* ignore possible '=' at beg of geometry spec */
1323 strind = (char *)string;
1324 if (*strind != '+' && *strind != '-' && *strind != 'x') {
1325 tempWidth = ReadInteger(strind, &nextCharacter);
1326 if (strind == nextCharacter)
1327 return (0);
1328 strind = nextCharacter;
1329 mask |= fWidthValue;
1330 }
1331 if (*strind == 'x' || *strind == 'X') {
1332 strind++;
1333 tempHeight = ReadInteger(strind, &nextCharacter);
1334 if (strind == nextCharacter)
1335 return (0);
1336 strind = nextCharacter;
1337 mask |= fHeightValue;
1338 }
1339
1340 if ((*strind == '+') || (*strind == '-')) {
1341 if (*strind == '-') {
1342 strind++;
1343 tempX = -ReadInteger(strind, &nextCharacter);
1344 if (strind == nextCharacter)
1345 return (0);
1346 strind = nextCharacter;
1347 mask |= fXNegative;
1348
1349 }
1350 else
1351 { strind++;
1352 tempX = ReadInteger(strind, &nextCharacter);
1353 if (strind == nextCharacter)
1354 return(0);
1355 strind = nextCharacter;
1356 }
1357 mask |= fXValue;
1358 if ((*strind == '+') || (*strind == '-')) {
1359 if (*strind == '-') {
1360 strind++;
1361 tempY = -ReadInteger(strind, &nextCharacter);
1362 if (strind == nextCharacter)
1363 return(0);
1364 strind = nextCharacter;
1365 mask |= fYNegative;
1366 }
1367 else
1368 {
1369 strind++;
1370 tempY = ReadInteger(strind, &nextCharacter);
1371 if (strind == nextCharacter)
1372 return(0);
1373 strind = nextCharacter;
1374 }
1375 mask |= fYValue;
1376 }
1377 }
1378 /* If strind isn't at the end of the string the it's an invalid
1379 geometry specification. */
1380 if (*strind != '\0') return (0);
1381 if (mask & fXValue)
1382 *x = tempX;
1383 if (mask & fYValue)
1384 *y = tempY;
1385 if (mask & fWidthValue)
1386 *width = tempWidth;
1387 if (mask & fHeightValue)
1388 *height = tempHeight;
1389 return (mask);
1390}
G4int ReadInteger(char *string, char **NextString)

References fHeightValue, fNoValue, fWidthValue, fXNegative, fXValue, fYNegative, fYValue, and ReadInteger().

Referenced by SetXGeometryString().

◆ PrintDifferences()

void G4ViewParameters::PrintDifferences ( const G4ViewParameters v) const

Definition at line 753 of file G4ViewParameters.cc.

753 {
754
755 // Put performance-sensitive parameters first.
756 if (
757 // This first to optimise spin, etc.
759
760 // No particular order from here on.
764 (fCulling != v.fCulling) ||
768 (fCullCovered != v.fCullCovered) ||
770 (fSection != v.fSection) ||
771 (fNoOfSides != v.fNoOfSides) ||
772 (fUpVector != v.fUpVector) ||
774 (fZoomFactor != v.fZoomFactor) ||
775 (fScaleFactor != v.fScaleFactor) ||
777 (fDolly != v.fDolly) ||
790 (fAutoRefresh != v.fAutoRefresh) ||
792 (fPicking != v.fPicking) ||
794 )
795 G4cout << "Difference in 1st batch." << G4endl;
796
797 if (fCBDAlgorithmNumber > 0) {
798 if (fCBDParameters.size() != v.fCBDParameters.size()) {
799 G4cout << "Difference in number of colour by density parameters." << G4endl;
800 } else if (fCBDParameters != v.fCBDParameters) {
801 G4cout << "Difference in values of colour by density parameters." << G4endl;
802 }
803 }
804
805 if (fSection) {
806 if (!(fSectionPlane == v.fSectionPlane))
807 G4cout << "Difference in section planes batch." << G4endl;
808 }
809
810 if (IsCutaway()) {
811 if (fCutawayPlanes.size () != v.fCutawayPlanes.size ()) {
812 G4cout << "Difference in no of cutaway planes." << G4endl;
813 }
814 else {
815 for (size_t i = 0; i < fCutawayPlanes.size (); i++) {
816 if (!(fCutawayPlanes[i] == v.fCutawayPlanes[i]))
817 G4cout << "Difference in cutaway plane no. " << i << G4endl;
818 }
819 }
820 }
821
822 if (IsExplode()) {
824 G4cout << "Difference in explode factor." << G4endl;
826 G4cout << "Difference in explode centre." << G4endl;
827 }
828
830 G4cout << "Difference in vis attributes modifiers." << G4endl;
831 }
832
833 if (fStartTime != v.fStartTime ||
834 fEndTime != v.fEndTime) {
835 G4cout << "Difference in time window." << G4endl;
836 }
837
838 if (fFadeFactor != v.fFadeFactor) {
839 G4cout << "Difference in time window fade factor." << G4endl;
840 }
841
843 G4cout << "Difference in display head time flag." << G4endl;
844 } else {
851 G4cout << "Difference in display head time parameters." << G4endl;
852 }
853 }
854
856 G4cout << "Difference in display light front flag." << G4endl;
857 } else {
865 G4cout << "Difference in display light front parameters." << G4endl;
866 }
867 }
868}
G4GLOB_DLL std::ostream G4cout

References fAutoRefresh, fAuxEdgeVisible, fBackgroundColour, fCBDAlgorithmNumber, fCBDParameters, fCullCovered, fCulling, fCullInvisible, fCurrentTargetPoint, fCutawayPlanes, fDefaultMarker, fDefaultTextVisAttributes, fDefaultVisAttributes, fDensityCulling, fDisplayHeadTime, fDisplayHeadTimeBlue, fDisplayHeadTimeGreen, fDisplayHeadTimeRed, fDisplayHeadTimeSize, fDisplayHeadTimeX, fDisplayHeadTimeY, fDisplayLightFront, fDisplayLightFrontBlue, fDisplayLightFrontGreen, fDisplayLightFrontRed, fDisplayLightFrontT, fDisplayLightFrontX, fDisplayLightFrontY, fDisplayLightFrontZ, fDolly, fDrawingStyle, fEndTime, fExplodeCentre, fExplodeFactor, fFadeFactor, fFieldHalfAngle, fGeometryMask, fGlobalLineWidthScale, fGlobalMarkerScale, fLightsMoveWithCamera, fMarkerNotHidden, fNoOfSides, fNumberOfCloudPoints, fPicking, fRelativeLightpointDirection, fRotationStyle, fScaleFactor, fSection, fSectionPlane, fStartTime, fUpVector, fViewpointDirection, fVisAttributesModifiers, fVisibleDensity, fWindowSizeHintX, fWindowSizeHintY, fXGeometryString, fZoomFactor, G4cout, G4endl, IsCutaway(), and IsExplode().

◆ ReadInteger()

G4int G4ViewParameters::ReadInteger ( char *  string,
char **  NextString 
)
private

Definition at line 1396 of file G4ViewParameters.cc.

1397{
1398 G4int Result = 0;
1399 G4int Sign = 1;
1400
1401 if (*string == '+')
1402 string++;
1403 else if (*string == '-')
1404 {
1405 string++;
1406 Sign = -1;
1407 }
1408 for (; (*string >= '0') && (*string <= '9'); string++)
1409 {
1410 Result = (Result * 10) + (*string - '0');
1411 }
1412 *NextString = string;
1413 if (Sign >= 0)
1414 return (Result);
1415 else
1416 return (-Result);
1417}

Referenced by ParseGeometry().

◆ SceneModifyingCommands()

G4String G4ViewParameters::SceneModifyingCommands ( ) const

Definition at line 472 of file G4ViewParameters.cc.

473{
474 std::ostringstream oss;
475
476 oss << "#\n# Scene-modifying commands";
477
478 oss << "\n/vis/viewer/set/culling global ";
479 if (fCulling) {
480 oss << "true";
481 } else {
482 oss << "false";
483 }
484
485 oss << "\n/vis/viewer/set/culling invisible ";
486 if (fCullInvisible) {
487 oss << "true";
488 } else {
489 oss << "false";
490 }
491
492 oss << "\n/vis/viewer/set/culling density ";
493 if (fDensityCulling) {
494 oss << "true " << fVisibleDensity/(g/cm3) << " g/cm3";
495 } else {
496 oss << "false";
497 }
498
499 oss << "\n/vis/viewer/set/culling coveredDaughters ";
500 if (fCullCovered) {
501 oss << "true";
502 } else {
503 oss << "false";
504 }
505
506 oss << "\n/vis/viewer/colourByDensity "
507 << fCBDAlgorithmNumber << " g/cm3";
508 for (auto p: fCBDParameters) {
509 oss << ' ' << p/(g/cm3);
510 }
511
512 oss << "\n/vis/viewer/set/sectionPlane ";
513 if (fSection) {
514 oss << "on "
515 << G4BestUnit(fSectionPlane.point(),"Length")
516 << fSectionPlane.normal().x()
517 << ' ' << fSectionPlane.normal().y()
518 << ' ' << fSectionPlane.normal().z();
519 } else {
520 oss << "off";
521 }
522
523 oss << "\n/vis/viewer/set/cutawayMode ";
524 if (fCutawayMode == cutawayUnion) {
525 oss << "union";
526 } else {
527 oss << "intersection";
528 }
529
530 oss << "\n/vis/viewer/clearCutawayPlanes";
531 if (fCutawayPlanes.size()) {
532 for (size_t i = 0; i < fCutawayPlanes.size(); i++) {
533 oss << "\n/vis/viewer/addCutawayPlane "
534 << G4BestUnit(fCutawayPlanes[i].point(),"Length")
535 << fCutawayPlanes[i].normal().x()
536 << ' ' << fCutawayPlanes[i].normal().y()
537 << ' ' << fCutawayPlanes[i].normal().z();
538 }
539 } else {
540 oss << "\n# No cutaway planes defined.";
541 }
542
543 oss << "\n/vis/viewer/set/explodeFactor "
545 << ' ' << G4BestUnit(fExplodeCentre,"Length");
546
547 oss << "\n/vis/viewer/set/lineSegmentsPerCircle "
548 << fNoOfSides;
549
550 oss << std::endl;
551
552 return oss.str();
553}
Point3D< T > point(const Point3D< T > &p) const
Definition: Plane3D.h:115
Normal3D< T > normal() const
Definition: Plane3D.h:97

References cm3, cutawayUnion, fCBDAlgorithmNumber, fCBDParameters, fCullCovered, fCulling, fCullInvisible, fCutawayMode, fCutawayPlanes, fDensityCulling, fExplodeCentre, fExplodeFactor, fNoOfSides, fSection, fSectionPlane, fVisibleDensity, g, G4BestUnit, HepGeom::Plane3D< T >::normal(), and HepGeom::Plane3D< T >::point().

Referenced by anonymous_namespace{G4VisCommandsViewer.cc}::WriteCommands().

◆ SetAutoRefresh()

void G4ViewParameters::SetAutoRefresh ( G4bool  )

◆ SetAuxEdgeVisible()

void G4ViewParameters::SetAuxEdgeVisible ( G4bool  )

◆ SetBackgroundColour()

void G4ViewParameters::SetBackgroundColour ( const G4Colour )

◆ SetCBDAlgorithmNumber()

void G4ViewParameters::SetCBDAlgorithmNumber ( G4int  )

◆ SetCBDParameters()

void G4ViewParameters::SetCBDParameters ( const std::vector< G4double > &  )

◆ SetCulling()

void G4ViewParameters::SetCulling ( G4bool  )

◆ SetCullingCovered()

void G4ViewParameters::SetCullingCovered ( G4bool  )

◆ SetCullingInvisible()

void G4ViewParameters::SetCullingInvisible ( G4bool  )

◆ SetCurrentTargetPoint()

void G4ViewParameters::SetCurrentTargetPoint ( const G4Point3D currentTargetPoint)

◆ SetCutawayMode()

void G4ViewParameters::SetCutawayMode ( CutawayMode  )

◆ SetDefaultColour()

void G4ViewParameters::SetDefaultColour ( const G4Colour )

◆ SetDefaultMarker()

void G4ViewParameters::SetDefaultMarker ( const G4VMarker defaultMarker)

◆ SetDefaultTextColour()

void G4ViewParameters::SetDefaultTextColour ( const G4Colour )

◆ SetDefaultTextVisAttributes()

void G4ViewParameters::SetDefaultTextVisAttributes ( const G4VisAttributes )

◆ SetDefaultVisAttributes()

void G4ViewParameters::SetDefaultVisAttributes ( const G4VisAttributes )

◆ SetDensityCulling()

void G4ViewParameters::SetDensityCulling ( G4bool  )

◆ SetDisplayHeadTime()

void G4ViewParameters::SetDisplayHeadTime ( G4bool  )

◆ SetDisplayHeadTimeBlue()

void G4ViewParameters::SetDisplayHeadTimeBlue ( G4double  )

◆ SetDisplayHeadTimeGreen()

void G4ViewParameters::SetDisplayHeadTimeGreen ( G4double  )

◆ SetDisplayHeadTimeRed()

void G4ViewParameters::SetDisplayHeadTimeRed ( G4double  )

◆ SetDisplayHeadTimeSize()

void G4ViewParameters::SetDisplayHeadTimeSize ( G4double  )

◆ SetDisplayHeadTimeX()

void G4ViewParameters::SetDisplayHeadTimeX ( G4double  )

◆ SetDisplayHeadTimeY()

void G4ViewParameters::SetDisplayHeadTimeY ( G4double  )

◆ SetDisplayLightFront()

void G4ViewParameters::SetDisplayLightFront ( G4bool  )

◆ SetDisplayLightFrontBlue()

void G4ViewParameters::SetDisplayLightFrontBlue ( G4double  )

◆ SetDisplayLightFrontGreen()

void G4ViewParameters::SetDisplayLightFrontGreen ( G4double  )

◆ SetDisplayLightFrontRed()

void G4ViewParameters::SetDisplayLightFrontRed ( G4double  )

◆ SetDisplayLightFrontT()

void G4ViewParameters::SetDisplayLightFrontT ( G4double  )

◆ SetDisplayLightFrontX()

void G4ViewParameters::SetDisplayLightFrontX ( G4double  )

◆ SetDisplayLightFrontY()

void G4ViewParameters::SetDisplayLightFrontY ( G4double  )

◆ SetDisplayLightFrontZ()

void G4ViewParameters::SetDisplayLightFrontZ ( G4double  )

◆ SetDolly()

void G4ViewParameters::SetDolly ( G4double  dolly)

◆ SetDrawingStyle()

void G4ViewParameters::SetDrawingStyle ( G4ViewParameters::DrawingStyle  style)

◆ SetEndTime()

void G4ViewParameters::SetEndTime ( G4double  )

◆ SetExplodeCentre()

void G4ViewParameters::SetExplodeCentre ( const G4Point3D explodeCentre)

◆ SetExplodeFactor()

void G4ViewParameters::SetExplodeFactor ( G4double  explodeFactor)

◆ SetFadeFactor()

void G4ViewParameters::SetFadeFactor ( G4double  )

◆ SetFieldHalfAngle()

void G4ViewParameters::SetFieldHalfAngle ( G4double  fieldHalfAngle)

◆ SetGlobalLineWidthScale()

void G4ViewParameters::SetGlobalLineWidthScale ( G4double  globalLineWidthScale)

◆ SetGlobalMarkerScale()

void G4ViewParameters::SetGlobalMarkerScale ( G4double  globalMarkerScale)

◆ SetLightpointDirection()

void G4ViewParameters::SetLightpointDirection ( const G4Vector3D lightpointDirection)

◆ SetLightsMoveWithCamera()

void G4ViewParameters::SetLightsMoveWithCamera ( G4bool  moves)

◆ SetMarkerHidden()

void G4ViewParameters::SetMarkerHidden ( )

◆ SetMarkerNotHidden()

void G4ViewParameters::SetMarkerNotHidden ( )

◆ SetNoOfSides()

G4int G4ViewParameters::SetNoOfSides ( G4int  nSides)

Definition at line 220 of file G4ViewParameters.cc.

220 {
222 if (nSides < nSidesMin) {
223 nSides = nSidesMin;
224 G4cout << "G4ViewParameters::SetNoOfSides: attempt to set the"
225 "\nnumber of sides per circle < " << nSidesMin
226 << "; forced to " << nSides << G4endl;
227 }
228 fNoOfSides = nSides;
229 return fNoOfSides;
230}
static G4int GetMinLineSegmentsPerCircle()

References fDefaultVisAttributes, fNoOfSides, G4cout, G4endl, and G4VisAttributes::GetMinLineSegmentsPerCircle().

Referenced by G4VisCommandsViewerSet::SetNewValue().

◆ SetNumberOfCloudPoints()

G4int G4ViewParameters::SetNumberOfCloudPoints ( G4int  nPoints)

Definition at line 232 of file G4ViewParameters.cc.

232 {
233 const G4int nPointsMin = 100;
234 if (nPoints < nPointsMin) {
235 nPoints = nPointsMin;
236 G4cout << "G4ViewParameters::SetNumberOfCloudPoints:"
237 "\nnumber of points per cloud set to minimum " << nPoints
238 << G4endl;
239 }
240 fNumberOfCloudPoints = nPoints;
242}

References fNumberOfCloudPoints, G4cout, and G4endl.

Referenced by G4VisCommandsViewerSet::SetNewValue().

◆ SetOrthogonalProjection()

void G4ViewParameters::SetOrthogonalProjection ( )

◆ SetPan()

void G4ViewParameters::SetPan ( G4double  right,
G4double  up 
)

Definition at line 282 of file G4ViewParameters.cc.

282 {
283 G4Vector3D unitRight = (fUpVector.cross (fViewpointDirection)).unit();
284 G4Vector3D unitUp = (fViewpointDirection.cross (unitRight)).unit();
285 fCurrentTargetPoint = right * unitRight + up * unitUp;
286}

References HepGeom::BasicVector3D< T >::cross(), fCurrentTargetPoint, fUpVector, and fViewpointDirection.

Referenced by G4VisCommandViewerPan::SetNewValue().

◆ SetPerspectiveProjection()

void G4ViewParameters::SetPerspectiveProjection ( G4double  fieldHalfAngle = 30. *CLHEP::deg)

◆ SetPicking()

void G4ViewParameters::SetPicking ( G4bool  )

◆ SetRotationStyle()

void G4ViewParameters::SetRotationStyle ( RotationStyle  )

◆ SetScaleFactor()

void G4ViewParameters::SetScaleFactor ( const G4Vector3D scaleFactor)

◆ SetSectionPlane()

void G4ViewParameters::SetSectionPlane ( const G4Plane3D sectionPlane)

◆ SetSpecialMeshRendering()

void G4ViewParameters::SetSpecialMeshRendering ( G4bool  )

◆ SetSpecialMeshVolumes()

void G4ViewParameters::SetSpecialMeshVolumes ( const std::vector< G4ModelingParameters::PVNameCopyNo > &  )

◆ SetStartTime()

void G4ViewParameters::SetStartTime ( G4double  )

◆ SetUpVector()

void G4ViewParameters::SetUpVector ( const G4Vector3D upVector)

◆ SetViewAndLights()

void G4ViewParameters::SetViewAndLights ( const G4Vector3D viewpointDirection)

Definition at line 244 of file G4ViewParameters.cc.

245 {
246
247 fViewpointDirection = viewpointDirection;
248
249 // If the requested viewpoint direction is parallel to the up
250 // vector, the orientation of the view is undefined...
251 if (fViewpointDirection.unit() * fUpVector.unit() > .9999) {
252 static G4bool firstTime = true;
253 if (firstTime) {
254 firstTime = false;
255 G4cout <<
256 "WARNING: Viewpoint direction is very close to the up vector direction."
257 "\n Change the up vector or \"/vis/viewer/set/rotationStyle freeRotation\"."
258 << G4endl;
259 }
260 }
261
262 // Move the lights too if requested...
265 G4Vector3D xprime = (fUpVector.cross (zprime)).unit ();
266 G4Vector3D yprime = zprime.cross (xprime);
268 fRelativeLightpointDirection.x () * xprime +
269 fRelativeLightpointDirection.y () * yprime +
270 fRelativeLightpointDirection.x () * zprime;
271 } else {
273 }
274}

References HepGeom::BasicVector3D< T >::cross(), fActualLightpointDirection, fLightsMoveWithCamera, fRelativeLightpointDirection, fUpVector, fViewpointDirection, G4cout, G4endl, HepGeom::BasicVector3D< T >::unit(), HepGeom::BasicVector3D< T >::x(), and HepGeom::BasicVector3D< T >::y().

Referenced by GetActualLightpointDirection(), G4OpenGLViewer::rotateSceneInViewDirection(), G4OpenGLViewer::rotateSceneThetaPhi(), SetLightpointDirection(), G4VisCommandsViewerSet::SetNewValue(), and G4OpenGLXmViewer::wobble_timer_callback().

◆ SetViewpointDirection()

void G4ViewParameters::SetViewpointDirection ( const G4Vector3D viewpointDirection)

◆ SetVisibleDensity()

void G4ViewParameters::SetVisibleDensity ( G4double  visibleDensity)

Definition at line 203 of file G4ViewParameters.cc.

203 {
204 const G4double reasonableMaximum = 10.0 * g / cm3;
205 if (visibleDensity < 0) {
206 G4cout << "G4ViewParameters::SetVisibleDensity: attempt to set negative "
207 "density - ignored." << G4endl;
208 }
209 else {
210 if (visibleDensity > reasonableMaximum) {
211 G4cout << "G4ViewParameters::SetVisibleDensity: density > "
212 << G4BestUnit (reasonableMaximum, "Volumic Mass")
213 << " - did you mean this?"
214 << G4endl;
215 }
216 fVisibleDensity = visibleDensity;
217 }
218}

References cm3, fVisibleDensity, g, G4BestUnit, G4cout, and G4endl.

Referenced by G4VisCommandsViewerSet::SetNewValue().

◆ SetWindowLocationHint()

void G4ViewParameters::SetWindowLocationHint ( G4int  xHint,
G4int  yHint 
)

◆ SetWindowSizeHint()

void G4ViewParameters::SetWindowSizeHint ( G4int  xHint,
G4int  yHint 
)

◆ SetXGeometryString()

void G4ViewParameters::SetXGeometryString ( const G4String geomStringArg)

Definition at line 1192 of file G4ViewParameters.cc.

1193{
1194 G4int x = 0, y = 0;
1195 unsigned int w = 0, h = 0;
1196 G4String geomString = geomStringArg;
1197 // Parse windowSizeHintString for backwards compatibility...
1198 const G4String delimiters("xX+-");
1199 G4String::size_type i = geomString.find_first_of(delimiters);
1200 if (i == G4String::npos) { // Does not contain "xX+-". Assume single number
1201 std::istringstream iss(geomString);
1202 G4int size;
1203 iss >> size;
1204 if (!iss) {
1205 size = 600;
1206 G4cout << "Unrecognised windowSizeHint string: \""
1207 << geomString
1208 << "\". Asuuming " << size << G4endl;
1209 }
1210 std::ostringstream oss;
1211 oss << size << 'x' << size;
1212 geomString = oss.str();
1213 }
1214
1215 fGeometryMask = ParseGeometry( geomString, &x, &y, &w, &h );
1216
1217 // Handle special case :
1218 if ((fGeometryMask & fYValue) == 0)
1219 { // Using default
1221 }
1222 if ((fGeometryMask & fXValue) == 0)
1223 { // Using default
1225 }
1226
1227 // Check errors
1228 // if there is no Width and Height
1229 if ( ((fGeometryMask & fHeightValue) == 0 ) &&
1230 ((fGeometryMask & fWidthValue) == 0 )) {
1231 h = fWindowSizeHintY;
1232 w = fWindowSizeHintX;
1233 } else if ((fGeometryMask & fHeightValue) == 0 ) {
1234
1235 // if there is only Width. Special case to be backward compatible
1236 // We set Width and Height the same to obtain a square windows.
1237
1238 G4cout << "Unrecognised geometry string \""
1239 << geomString
1240 << "\". No Height found. Using Width value instead"
1241 << G4endl;
1242 h = w;
1243 }
1244 if ( ((fGeometryMask & fXValue) == 0 ) ||
1245 ((fGeometryMask & fYValue) == 0 )) {
1246 //Using defaults
1249 }
1250 // Set the string
1251 fXGeometryString = geomString;
1252
1253 // Set values
1254 fWindowSizeHintX = w;
1255 fWindowSizeHintY = h;
1258
1259 if ( ((fGeometryMask & fXValue)) &&
1260 ((fGeometryMask & fYValue))) {
1261
1262 if ( (fGeometryMask & fXNegative) ) {
1264 } else {
1266 }
1267 if ( (fGeometryMask & fYNegative) ) {
1269 } else {
1271 }
1272 }
1273}
G4int ParseGeometry(const char *string, G4int *x, G4int *y, unsigned int *width, unsigned int *height)

References fGeometryMask, fHeightValue, fWidthValue, fWindowLocationHintX, fWindowLocationHintXNegative, fWindowLocationHintY, fWindowLocationHintYNegative, fWindowSizeHintX, fWindowSizeHintY, fXGeometryString, fXNegative, fXValue, fYNegative, fYValue, G4cout, G4endl, and ParseGeometry().

Referenced by G4VisManager::CreateViewer().

◆ SetZoomFactor()

void G4ViewParameters::SetZoomFactor ( G4double  zoomFactor)

◆ TimeWindowCommands()

G4String G4ViewParameters::TimeWindowCommands ( ) const

Definition at line 698 of file G4ViewParameters.cc.

699{
700 std::ostringstream oss;
701
702 oss << "#\n# Time window commands";
703
704 oss
705 << "\n/vis/viewer/set/timeWindow/startTime "
706 << fStartTime/ns << " ns ";
707
708 oss
709 << "\n/vis/viewer/set/timeWindow/endTime "
710 << fEndTime/ns << " ns ";
711
712 oss << "\n/vis/viewer/set/timeWindow/fadeFactor "
713 << fFadeFactor;
714
715 oss
716 << "\n/vis/viewer/set/timeWindow/displayHeadTime ";
717 if (!fDisplayHeadTime) {
718 oss << "false";
719 } else {
720 oss
721 << "true"
722 << ' ' << fDisplayHeadTimeX
723 << ' ' << fDisplayHeadTimeY
724 << ' ' << fDisplayHeadTimeSize
725 << ' ' << fDisplayHeadTimeRed
726 << ' ' << fDisplayHeadTimeGreen
727 << ' ' << fDisplayHeadTimeBlue;
728 }
729
730 oss
731 << "\n/vis/viewer/set/timeWindow/displayLightFront ";
732 if (!fDisplayLightFront) {
733 oss << "false";
734 } else {
735 oss
736 << "true"
737 << ' ' << fDisplayLightFrontX/mm
738 << ' ' << fDisplayLightFrontY/mm
739 << ' ' << fDisplayLightFrontZ/mm
740 << " mm"
741 << ' ' << fDisplayLightFrontT/ns
742 << " ns"
743 << ' ' << fDisplayLightFrontRed
745 << ' ' << fDisplayLightFrontBlue;
746 }
747
748 oss << std::endl;
749
750 return oss.str();
751}
static constexpr double mm
Definition: G4SIunits.hh:95
#define ns
Definition: xmlparse.cc:614

References fDisplayHeadTime, fDisplayHeadTimeBlue, fDisplayHeadTimeGreen, fDisplayHeadTimeRed, fDisplayHeadTimeSize, fDisplayHeadTimeX, fDisplayHeadTimeY, fDisplayLightFront, fDisplayLightFrontBlue, fDisplayLightFrontGreen, fDisplayLightFrontRed, fDisplayLightFrontT, fDisplayLightFrontX, fDisplayLightFrontY, fDisplayLightFrontZ, fEndTime, fFadeFactor, fStartTime, mm, and ns.

Referenced by anonymous_namespace{G4VisCommandsViewer.cc}::WriteCommands().

◆ TouchableCommands()

G4String G4ViewParameters::TouchableCommands ( ) const

Definition at line 555 of file G4ViewParameters.cc.

556{
557 std::ostringstream oss;
558
559 oss << "#\n# Touchable commands";
560
561 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
563
564 if (vams.empty()) {
565 oss
566 << "\n# None"
567 << "\n/vis/viewer/clearVisAttributesModifiers";
568 oss << std::endl;
569 return oss.str();
570 }
571
572 oss
573 << "\n/vis/viewer/clearVisAttributesModifiers";
574
576 std::vector<G4ModelingParameters::VisAttributesModifier>::const_iterator
577 iModifier;
578 for (iModifier = vams.begin();
579 iModifier != vams.end();
580 ++iModifier) {
582 iModifier->GetPVNameCopyNoPath();
583 if (vamPath != lastPath) {
584 lastPath = vamPath;
585 oss << "\n/vis/set/touchable";
587 for (iVAM = vamPath.begin();
588 iVAM != vamPath.end();
589 ++iVAM) {
590 oss << ' ' << iVAM->GetName() << ' ' << iVAM->GetCopyNo();
591 }
592 }
593 const G4VisAttributes& vamVisAtts = iModifier->GetVisAttributes();
594 const G4Colour& c = vamVisAtts.GetColour();
595 switch (iModifier->GetVisAttributesSignifier()) {
597 oss << "\n/vis/touchable/set/visibility ";
598 if (vamVisAtts.IsVisible()) {
599 oss << "true";
600 } else {
601 oss << "false";
602 }
603 break;
605 oss << "\n/vis/touchable/set/daughtersInvisible ";
606 if (vamVisAtts.IsDaughtersInvisible()) {
607 oss << "true";
608 } else {
609 oss << "false";
610 }
611 break;
613 oss << "\n/vis/touchable/set/colour "
614 << c.GetRed()
615 << ' ' << c.GetGreen()
616 << ' ' << c.GetBlue()
617 << ' ' << c.GetAlpha();
618 break;
620 oss << "\n/vis/touchable/set/lineStyle ";
621 switch (vamVisAtts.GetLineStyle()) {
623 oss << "unbroken";
624 break;
626 oss << "dashed";
627 break;
629 oss << "dotted";
630 }
631 break;
633 oss << "\n/vis/touchable/set/lineWidth "
634 << vamVisAtts.GetLineWidth();
635 break;
637 if (vamVisAtts.IsForceDrawingStyle()) {
639 oss << "\n/vis/touchable/set/forceWireframe ";
640 if (vamVisAtts.IsForceDrawingStyle()) {
641 oss << "true";
642 } else {
643 oss << "false";
644 }
645 }
646 }
647 break;
649 if (vamVisAtts.IsForceDrawingStyle()) {
650 if (vamVisAtts.GetForcedDrawingStyle() == G4VisAttributes::solid) {
651 oss << "\n/vis/touchable/set/forceSolid ";
652 if (vamVisAtts.IsForceDrawingStyle()) {
653 oss << "true";
654 } else {
655 oss << "false";
656 }
657 }
658 }
659 break;
661 if (vamVisAtts.IsForceDrawingStyle()) {
662 if (vamVisAtts.GetForcedDrawingStyle() == G4VisAttributes::cloud) {
663 oss << "\n/vis/touchable/set/forceCloud ";
664 if (vamVisAtts.IsForceDrawingStyle()) {
665 oss << "true";
666 } else {
667 oss << "false";
668 }
669 }
670 }
671 break;
673 if (vamVisAtts.IsForceAuxEdgeVisible()) {
674 oss << "\n/vis/touchable/set/forceAuxEdgeVisible ";
675 if (vamVisAtts.IsForcedAuxEdgeVisible()) {
676 oss << "true";
677 } else {
678 oss << "false";
679 }
680 }
681 break;
683 oss << "\n/vis/touchable/set/lineSegmentsPerCircle "
684 << vamVisAtts.GetForcedLineSegmentsPerCircle();
685 break;
687 oss << "\n/vis/touchable/set/numberOfCloudPoints "
688 << vamVisAtts.GetForcedNumberOfCloudPoints();
689 break;
690 }
691 }
692
693 oss << std::endl;
694
695 return oss.str();
696}
PVNameCopyNoPath::const_iterator PVNameCopyNoPathConstIterator
std::vector< PVNameCopyNo > PVNameCopyNoPath
G4int GetForcedNumberOfCloudPoints() const
G4double GetLineWidth() const
G4bool IsDaughtersInvisible() const
G4int GetForcedLineSegmentsPerCircle() const
LineStyle GetLineStyle() const
G4bool IsVisible() const
G4bool IsForceAuxEdgeVisible() const
G4bool IsForcedAuxEdgeVisible() const
ForcedDrawingStyle GetForcedDrawingStyle() const
G4bool IsForceDrawingStyle() const

References G4VisAttributes::cloud, G4VisAttributes::dashed, G4VisAttributes::dotted, fVisAttributesModifiers, G4Colour::GetAlpha(), G4Colour::GetBlue(), G4VisAttributes::GetColour(), G4VisAttributes::GetForcedDrawingStyle(), G4VisAttributes::GetForcedLineSegmentsPerCircle(), G4VisAttributes::GetForcedNumberOfCloudPoints(), G4Colour::GetGreen(), G4VisAttributes::GetLineStyle(), G4VisAttributes::GetLineWidth(), G4Colour::GetRed(), G4VisAttributes::IsDaughtersInvisible(), G4VisAttributes::IsForceAuxEdgeVisible(), G4VisAttributes::IsForcedAuxEdgeVisible(), G4VisAttributes::IsForceDrawingStyle(), G4VisAttributes::IsVisible(), G4VisAttributes::solid, G4VisAttributes::unbroken, G4ModelingParameters::VASColour, G4ModelingParameters::VASDaughtersInvisible, G4ModelingParameters::VASForceAuxEdgeVisible, G4ModelingParameters::VASForceCloud, G4ModelingParameters::VASForceLineSegmentsPerCircle, G4ModelingParameters::VASForceNumberOfCloudPoints, G4ModelingParameters::VASForceSolid, G4ModelingParameters::VASForceWireframe, G4ModelingParameters::VASLineStyle, G4ModelingParameters::VASLineWidth, G4ModelingParameters::VASVisibility, and G4VisAttributes::wireframe.

Referenced by anonymous_namespace{G4VisCommandsViewer.cc}::WriteCommands().

◆ UnsetExplodeFactor()

void G4ViewParameters::UnsetExplodeFactor ( )

◆ UnsetSectionPlane()

void G4ViewParameters::UnsetSectionPlane ( )

Friends And Related Function Documentation

◆ operator<< [1/2]

std::ostream & operator<< ( std::ostream &  os,
const DrawingStyle style 
)
friend

Definition at line 870 of file G4ViewParameters.cc.

872{
873 switch (style) {
875 os << "wireframe"; break;
877 os << "hlr - hidden lines removed"; break;
879 os << "hsr - hidden surfaces removed"; break;
881 os << "hlhsr - hidden line, hidden surface removed"; break;
883 os << "cloud - draw volume as a cloud of dots"; break;
884 default: os << "unrecognised"; break;
885 }
886 return os;
887}

◆ operator<< [2/2]

std::ostream & operator<< ( std::ostream &  os,
const G4ViewParameters v 
)
friend

Definition at line 889 of file G4ViewParameters.cc.

889 {
890 os << "View parameters and options:";
891
892 os << "\n Drawing style: " << v.fDrawingStyle;
893
894 os << "\n Number of cloud points: " << v.fNumberOfCloudPoints;
895
896 os << "\n Auxiliary edges: ";
897 if (!v.fAuxEdgeVisible) os << "in";
898 os << "visible";
899
900 os << "\n Culling: ";
901 if (v.fCulling) os << "on";
902 else os << "off";
903
904 os << "\n Culling invisible objects: ";
905 if (v.fCullInvisible) os << "on";
906 else os << "off";
907
908 os << "\n Density culling: ";
909 if (v.fDensityCulling) {
910 os << "on - invisible if density less than "
911 << v.fVisibleDensity / (1. * g / cm3) << " g cm^-3";
912 }
913 else os << "off";
914
915 os << "\n Culling daughters covered by opaque mothers: ";
916 if (v.fCullCovered) os << "on";
917 else os << "off";
918
919 os << "\n Colour by density: ";
920 if (v.fCBDAlgorithmNumber <= 0) {
921 os << "inactive";
922 } else {
923 os << "Algorithm " << v.fCBDAlgorithmNumber << ", Parameters:";
924 for (auto p: v.fCBDParameters) {
925 os << ' ' << G4BestUnit(p,"Volumic Mass");
926 }
927 }
928
929 os << "\n Section flag: ";
930 if (v.fSection) os << "true, section/cut plane: " << v.fSectionPlane;
931 else os << "false";
932
933 if (v.IsCutaway()) {
934 os << "\n Cutaway planes: ";
935 for (size_t i = 0; i < v.fCutawayPlanes.size (); i++) {
936 os << ' ' << v.fCutawayPlanes[i];
937 }
938 }
939 else {
940 os << "\n No cutaway planes";
941 }
942
943 os << "\n Explode factor: " << v.fExplodeFactor
944 << " about centre: " << v.fExplodeCentre;
945
946 os << "\n No. of sides used in circle polygon approximation: "
947 << v.fNoOfSides;
948
949 os << "\n Viewpoint direction: " << v.fViewpointDirection;
950
951 os << "\n Up vector: " << v.fUpVector;
952
953 os << "\n Field half angle: " << v.fFieldHalfAngle;
954
955 os << "\n Zoom factor: " << v.fZoomFactor;
956
957 os << "\n Scale factor: " << v.fScaleFactor;
958
959 os << "\n Current target point: " << v.fCurrentTargetPoint;
960
961 os << "\n Dolly distance: " << v.fDolly;
962
963 os << "\n Light ";
964 if (v.fLightsMoveWithCamera) os << "moves";
965 else os << "does not move";
966 os << " with camera";
967
968 os << "\n Relative lightpoint direction: "
970
971 os << "\n Actual lightpoint direction: "
973
974 os << "\n Derived parameters for standard view of object of unit radius:";
975 G4ViewParameters tempVP = v;
976 tempVP.fDolly = 0.;
977 tempVP.fZoomFactor = 1.;
978 const G4double radius = 1.;
979 const G4double cameraDistance = tempVP.GetCameraDistance (radius);
980 const G4double nearDistance =
981 tempVP.GetNearDistance (cameraDistance, radius);
982 const G4double farDistance =
983 tempVP.GetFarDistance (cameraDistance, nearDistance, radius);
984 const G4double right = tempVP.GetFrontHalfHeight (nearDistance, radius);
985 os << "\n Camera distance: " << cameraDistance;
986 os << "\n Near distance: " << nearDistance;
987 os << "\n Far distance: " << farDistance;
988 os << "\n Front half height: " << right;
989
990 os << "\n Default VisAttributes:\n " << v.fDefaultVisAttributes;
991
992 os << "\n Default TextVisAttributes:\n " << v.fDefaultTextVisAttributes;
993
994 os << "\n Default marker: " << v.fDefaultMarker;
995
996 os << "\n Global marker scale: " << v.fGlobalMarkerScale;
997
998 os << "\n Global lineWidth scale: " << v.fGlobalLineWidthScale;
999
1000 os << "\n Marker ";
1001 if (v.fMarkerNotHidden) os << "not ";
1002 os << "hidden by surfaces.";
1003
1004 os << "\n Window size hint: "
1005 << v.fWindowSizeHintX << 'x'<< v.fWindowSizeHintX;
1006
1007 os << "\n X geometry string: " << v.fXGeometryString;
1008 os << "\n X geometry mask: "
1009 << std::showbase << std::hex << v.fGeometryMask
1010 << std::noshowbase << std::dec;
1011
1012 os << "\n Auto refresh: ";
1013 if (v.fAutoRefresh) os << "true";
1014 else os << "false";
1015
1016 os << "\n Background colour: " << v.fBackgroundColour;
1017
1018 os << "\n Picking requested: ";
1019 if (v.fPicking) os << "true";
1020 else os << "false";
1021
1022 os << "\n Rotation style: ";
1023 switch (v.fRotationStyle) {
1025 os << "constrainUpDirection (conventional HEP view)"; break;
1027 os << "freeRotation (Google-like rotation, using mouse-grab)"; break;
1028 default: os << "unrecognised"; break;
1029 }
1030
1031 os << "\n Vis attributes modifiers: ";
1032 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
1034 if (vams.empty()) {
1035 os << "None";
1036 } else {
1037 os << vams;
1038 }
1039
1040 os << "\n Time window parameters:"
1041 << "\n Start time: " << v.fStartTime/ns << " ns"
1042 << "\n End time: " << v.fEndTime/ns << " ns"
1043 << "\n Fade factor: " << v.fFadeFactor;
1044 if (!v.fDisplayHeadTime) {
1045 os << "\n Head time display not requested.";
1046 } else {
1047 os
1048 << "\n Head time position: "
1049 << v.fDisplayHeadTimeX << ' ' << v.fDisplayHeadTimeY
1050 << "\n Head time size: " << v.fDisplayHeadTimeSize
1051 << "\n Head time colour: " << v.fDisplayHeadTimeRed
1052 << ' ' << v.fDisplayHeadTimeGreen << ' ' << v.fDisplayHeadTimeBlue;
1053 }
1054 if (!v.fDisplayLightFront) {
1055 os << "\n Light front display not requested.";
1056 } else {
1057 os
1058 << "\n Light front position: "
1060 << ' ' << v.fDisplayLightFrontZ/mm << " mm"
1061 << "\n Light front time: " << v.fDisplayLightFrontT/ns << " ns"
1062 << "\n Light front colour: " << v.fDisplayLightFrontRed
1063 << ' ' << v.fDisplayLightFrontGreen << ' ' << v.fDisplayLightFrontBlue;
1064 }
1065
1066 os << "\n Special Mesh Rendering: ";
1067 if (v.fSpecialMeshRendering) {
1068 os << "on: ";
1069 if (v.fSpecialMeshVolumes.empty()) {
1070 os << "all meshes";
1071 } else {
1072 os << "selected meshes";
1073 for (const auto& vol: v.fSpecialMeshVolumes) {
1074 os << "\n " << vol.GetName() << ':' << vol.GetCopyNo();
1075 }
1076 }
1077 } else os << "off";
1078
1079 return os;
1080}
G4double GetCameraDistance(G4double radius) const
G4double GetFarDistance(G4double cameraDistance, G4double nearDistance, G4double radius) const
G4double GetFrontHalfHeight(G4double nearDistance, G4double radius) const
G4double GetNearDistance(G4double cameraDistance, G4double radius) const

Field Documentation

◆ fActualLightpointDirection

G4Vector3D G4ViewParameters::fActualLightpointDirection
private

◆ fAutoRefresh

G4bool G4ViewParameters::fAutoRefresh
private

Definition at line 379 of file G4ViewParameters.hh.

Referenced by operator!=(), and PrintDifferences().

◆ fAuxEdgeVisible

G4bool G4ViewParameters::fAuxEdgeVisible
private

Definition at line 334 of file G4ViewParameters.hh.

Referenced by DrawingStyleCommands(), operator!=(), and PrintDifferences().

◆ fBackgroundColour

G4Colour G4ViewParameters::fBackgroundColour
private

◆ fCBDAlgorithmNumber

G4int G4ViewParameters::fCBDAlgorithmNumber
private

Definition at line 340 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and SceneModifyingCommands().

◆ fCBDParameters

std::vector<G4double> G4ViewParameters::fCBDParameters
private

Definition at line 341 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and SceneModifyingCommands().

◆ fCullCovered

G4bool G4ViewParameters::fCullCovered
private

Definition at line 339 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and SceneModifyingCommands().

◆ fCulling

G4bool G4ViewParameters::fCulling
private

Definition at line 335 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and SceneModifyingCommands().

◆ fCullInvisible

G4bool G4ViewParameters::fCullInvisible
private

Definition at line 336 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and SceneModifyingCommands().

◆ fCurrentTargetPoint

G4Point3D G4ViewParameters::fCurrentTargetPoint
private

◆ fCutawayMode

CutawayMode G4ViewParameters::fCutawayMode
private

Definition at line 344 of file G4ViewParameters.hh.

Referenced by SceneModifyingCommands().

◆ fCutawayPlanes

G4Planes G4ViewParameters::fCutawayPlanes
private

◆ fDefaultMarker

G4VMarker G4ViewParameters::fDefaultMarker
private

Definition at line 363 of file G4ViewParameters.hh.

Referenced by G4ViewParameters(), operator!=(), and PrintDifferences().

◆ fDefaultTextVisAttributes

G4VisAttributes G4ViewParameters::fDefaultTextVisAttributes
private

Definition at line 362 of file G4ViewParameters.hh.

Referenced by CameraAndLightingCommands(), operator!=(), and PrintDifferences().

◆ fDefaultVisAttributes

G4VisAttributes G4ViewParameters::fDefaultVisAttributes
private

◆ fDensityCulling

G4bool G4ViewParameters::fDensityCulling
private

Definition at line 337 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and SceneModifyingCommands().

◆ fDisplayHeadTime

G4bool G4ViewParameters::fDisplayHeadTime
private

Definition at line 386 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayHeadTimeBlue

G4double G4ViewParameters::fDisplayHeadTimeBlue
private

Definition at line 389 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayHeadTimeGreen

G4double G4ViewParameters::fDisplayHeadTimeGreen
private

Definition at line 389 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayHeadTimeRed

G4double G4ViewParameters::fDisplayHeadTimeRed
private

Definition at line 389 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayHeadTimeSize

G4double G4ViewParameters::fDisplayHeadTimeSize
private

Definition at line 388 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayHeadTimeX

G4double G4ViewParameters::fDisplayHeadTimeX
private

Definition at line 387 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayHeadTimeY

G4double G4ViewParameters::fDisplayHeadTimeY
private

Definition at line 387 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayLightFront

G4bool G4ViewParameters::fDisplayLightFront
private

Definition at line 390 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayLightFrontBlue

G4double G4ViewParameters::fDisplayLightFrontBlue
private

Definition at line 393 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayLightFrontGreen

G4double G4ViewParameters::fDisplayLightFrontGreen
private

Definition at line 393 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayLightFrontRed

G4double G4ViewParameters::fDisplayLightFrontRed
private

Definition at line 393 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayLightFrontT

G4double G4ViewParameters::fDisplayLightFrontT
private

Definition at line 392 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayLightFrontX

G4double G4ViewParameters::fDisplayLightFrontX
private

Definition at line 391 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayLightFrontY

G4double G4ViewParameters::fDisplayLightFrontY
private

Definition at line 391 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDisplayLightFrontZ

G4double G4ViewParameters::fDisplayLightFrontZ
private

Definition at line 391 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fDolly

G4double G4ViewParameters::fDolly
private

◆ fDrawingStyle

DrawingStyle G4ViewParameters::fDrawingStyle
private

Definition at line 331 of file G4ViewParameters.hh.

Referenced by DrawingStyleCommands(), operator!=(), and PrintDifferences().

◆ fEndTime

G4double G4ViewParameters::fEndTime
private

◆ fExplodeCentre

G4Point3D G4ViewParameters::fExplodeCentre
private

◆ fExplodeFactor

G4double G4ViewParameters::fExplodeFactor
private

◆ fFadeFactor

G4double G4ViewParameters::fFadeFactor
private

Definition at line 385 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and TimeWindowCommands().

◆ fFieldHalfAngle

G4double G4ViewParameters::fFieldHalfAngle
private

◆ fGeometryMask

G4int G4ViewParameters::fGeometryMask
private

Definition at line 378 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and SetXGeometryString().

◆ fGlobalLineWidthScale

G4double G4ViewParameters::fGlobalLineWidthScale
private

◆ fGlobalMarkerScale

G4double G4ViewParameters::fGlobalMarkerScale
private

◆ fLightsMoveWithCamera

G4bool G4ViewParameters::fLightsMoveWithCamera
private

◆ fMarkerNotHidden

G4bool G4ViewParameters::fMarkerNotHidden
private

Definition at line 366 of file G4ViewParameters.hh.

Referenced by DrawingStyleCommands(), operator!=(), and PrintDifferences().

◆ fNoOfSides

G4int G4ViewParameters::fNoOfSides
private

◆ fNumberOfCloudPoints

G4int G4ViewParameters::fNumberOfCloudPoints
private

◆ fPicking

G4bool G4ViewParameters::fPicking
private

Definition at line 381 of file G4ViewParameters.hh.

Referenced by operator!=(), and PrintDifferences().

◆ fRelativeLightpointDirection

G4Vector3D G4ViewParameters::fRelativeLightpointDirection
private

◆ fRotationStyle

RotationStyle G4ViewParameters::fRotationStyle
private

Definition at line 382 of file G4ViewParameters.hh.

Referenced by CameraAndLightingCommands(), operator!=(), and PrintDifferences().

◆ fScaleFactor

G4Vector3D G4ViewParameters::fScaleFactor
private

◆ fSection

G4bool G4ViewParameters::fSection
private

◆ fSectionPlane

G4Plane3D G4ViewParameters::fSectionPlane
private

◆ fSpecialMeshRendering

G4bool G4ViewParameters::fSpecialMeshRendering
private

Definition at line 394 of file G4ViewParameters.hh.

Referenced by DrawingStyleCommands(), and operator!=().

◆ fSpecialMeshVolumes

std::vector<G4ModelingParameters::PVNameCopyNo> G4ViewParameters::fSpecialMeshVolumes
private

Definition at line 395 of file G4ViewParameters.hh.

Referenced by DrawingStyleCommands(), and operator!=().

◆ fStartTime

G4double G4ViewParameters::fStartTime
private

◆ fUpVector

G4Vector3D G4ViewParameters::fUpVector
private

◆ fViewpointDirection

G4Vector3D G4ViewParameters::fViewpointDirection
private

◆ fVisAttributesModifiers

std::vector<G4ModelingParameters::VisAttributesModifier> G4ViewParameters::fVisAttributesModifiers
private

◆ fVisibleDensity

G4double G4ViewParameters::fVisibleDensity
private

◆ fWindowLocationHintX

G4int G4ViewParameters::fWindowLocationHintX
private

Definition at line 373 of file G4ViewParameters.hh.

Referenced by GetWindowAbsoluteLocationHintX(), and SetXGeometryString().

◆ fWindowLocationHintXNegative

G4bool G4ViewParameters::fWindowLocationHintXNegative
private

Definition at line 375 of file G4ViewParameters.hh.

Referenced by GetWindowAbsoluteLocationHintX(), and SetXGeometryString().

◆ fWindowLocationHintY

G4int G4ViewParameters::fWindowLocationHintY
private

Definition at line 374 of file G4ViewParameters.hh.

Referenced by GetWindowAbsoluteLocationHintY(), and SetXGeometryString().

◆ fWindowLocationHintYNegative

G4bool G4ViewParameters::fWindowLocationHintYNegative
private

Definition at line 376 of file G4ViewParameters.hh.

Referenced by GetWindowAbsoluteLocationHintY(), and SetXGeometryString().

◆ fWindowSizeHintX

G4int G4ViewParameters::fWindowSizeHintX
private

◆ fWindowSizeHintY

G4int G4ViewParameters::fWindowSizeHintY
private

◆ fXGeometryString

G4String G4ViewParameters::fXGeometryString
private

Definition at line 377 of file G4ViewParameters.hh.

Referenced by operator!=(), PrintDifferences(), and SetXGeometryString().

◆ fZoomFactor

G4double G4ViewParameters::fZoomFactor
private

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