Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Attributes
G4DAWNFILEViewer Class Reference

#include <G4DAWNFILEViewer.hh>

Inheritance diagram for G4DAWNFILEViewer:
G4VViewer

Public Member Functions

void ClearView ()
 
std::vector< G4ThreeVectorComputeFlyThrough (G4Vector3D *)
 
void DrawView ()
 
virtual void FinishView ()
 
 G4DAWNFILEViewer (G4DAWNFILESceneHandler &scene, const G4String &name="")
 
const G4VisAttributesGetApplicableVisAttributes (const G4VisAttributes *) const
 
const G4ViewParametersGetDefaultViewParameters () const
 
const char * GetG4PrimViewer ()
 
const char * GetG4PrimViewerInvocation ()
 
const G4StringGetName () const
 
virtual const std::vector< G4ModelingParameters::VisAttributesModifier > * GetPrivateVisAttributesModifiers () const
 
const char * GetPSViewer ()
 
G4VSceneHandlerGetSceneHandler () const
 
const G4StringGetShortName () const
 
G4int GetViewId () const
 
const G4ViewParametersGetViewParameters () const
 
virtual void Initialise ()
 
void NeedKernelVisit ()
 
void ProcessView ()
 
void RefreshView ()
 
virtual void ResetView ()
 
void SendDrawingStyleToDAWNGUI (std::ostream &out)
 
void SendViewParameters ()
 
void SetDefaultViewParameters (const G4ViewParameters &vp)
 
void SetName (const G4String &)
 
void SetNeedKernelVisit (G4bool need)
 
void SetView ()
 
void SetViewParameters (const G4ViewParameters &vp)
 
void ShowView ()
 
virtual ~G4DAWNFILEViewer ()
 

Protected Member Functions

void SetTouchable (const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &fullPath)
 
void TouchableSetColour (const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &fullPath, const G4Colour &)
 
void TouchableSetVisibility (const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &fullPath, G4bool visibility)
 

Protected Attributes

G4ViewParameters fDefaultVP
 
G4String fName
 
G4bool fNeedKernelVisit
 
G4String fShortName
 
G4int fViewId
 
G4ViewParameters fVP
 

Private Types

enum  FRDEV {
  FRDEV_PS = 1 , FRDEV_XWIN = 2 , FRDEV_PS2 = 3 , FRDEV_XWIN2 = 4 ,
  FRDEV_OPEN_GL = 5 , FRDEV_DEVICE_END = 6
}
 

Private Attributes

char fG4PrimViewer [32]
 
char fG4PrimViewerInvocation [64]
 
char fPSViewer [32]
 
G4DAWNFILESceneHandlerfSceneHandler
 

Detailed Description

Definition at line 39 of file G4DAWNFILEViewer.hh.

Member Enumeration Documentation

◆ FRDEV

Enumerator
FRDEV_PS 
FRDEV_XWIN 
FRDEV_PS2 
FRDEV_XWIN2 
FRDEV_OPEN_GL 
FRDEV_DEVICE_END 

Definition at line 41 of file G4DAWNFILEViewer.hh.

Constructor & Destructor Documentation

◆ G4DAWNFILEViewer()

G4DAWNFILEViewer::G4DAWNFILEViewer ( G4DAWNFILESceneHandler scene,
const G4String name = "" 
)

Definition at line 59 of file G4DAWNFILEViewer.cc.

61 : G4VViewer(sceneHandler, sceneHandler.IncrementViewCount(), name)
62 , fSceneHandler(sceneHandler)
63{
64 // Set a g4.prim-file viewer
65 strcpy(fG4PrimViewer, "dawn");
66 if(std::getenv("G4DAWNFILE_VIEWER") != NULL)
67 {
68 strcpy(fG4PrimViewer, std::getenv("G4DAWNFILE_VIEWER"));
69 }
70
71 // string for viewer invocation
72 if(!strcmp(fG4PrimViewer, "NONE"))
73 {
74 strcpy(fG4PrimViewerInvocation, "");
75 }
76 else
77 {
79 strcat(fG4PrimViewerInvocation, " ");
81 }
82
83 // Set a PostScript Viewer
84 // strcpy( fPSViewer, "ghostview" );
85 strcpy(fPSViewer, "gv");
86 if(std::getenv("G4DAWNFILE_PS_VIEWER") != NULL)
87 {
88 strcpy(fPSViewer, std::getenv("G4DAWNFILE_PS_VIEWER"));
89 }
90}
G4DAWNFILESceneHandler & fSceneHandler
char fG4PrimViewerInvocation[64]
G4VViewer(G4VSceneHandler &, G4int id, const G4String &name="")
Definition: G4VViewer.cc:46
const char * name(G4int ptype)

References fG4PrimViewer, fG4PrimViewerInvocation, fPSViewer, fSceneHandler, and G4DAWNFILESceneHandler::GetG4PrimFileName().

◆ ~G4DAWNFILEViewer()

G4DAWNFILEViewer::~G4DAWNFILEViewer ( )
virtual

Definition at line 93 of file G4DAWNFILEViewer.cc.

93{}

Member Function Documentation

◆ ClearView()

void G4DAWNFILEViewer::ClearView ( void  )
virtual

Implements G4VViewer.

Definition at line 107 of file G4DAWNFILEViewer.cc.

108{
109#if defined DEBUG_FR_VIEW
111 G4cout << "***** G4DAWNFILEViewer::ClearView (): No effects " << G4endl;
112#endif
114 {
116 // Re-open with same filename...
121 }
122}
const char FR_G4_PRIM_HEADER[]
Definition: G4FRConst.hh:37
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
void SendStr(const char *char_string)
void Open(const char *filename)
Definition: G4FRofstream.hh:68
G4bool IsOpen()
Definition: G4FRofstream.hh:55
static Verbosity GetVerbosity()

References G4FRofstream::Close(), G4VisManager::errors, G4DAWNFILESceneHandler::fG4PrimFileName, G4DAWNFILESceneHandler::fPrimDest, FR_G4_PRIM_HEADER, G4DAWNFILESceneHandler::FRBeginModeling(), G4DAWNFILESceneHandler::FRflag_in_modeling, fSceneHandler, G4cout, G4endl, G4VisManager::GetVerbosity(), G4FRofstream::IsOpen(), G4FRofstream::Open(), and G4DAWNFILESceneHandler::SendStr().

◆ ComputeFlyThrough()

std::vector< G4ThreeVector > G4VViewer::ComputeFlyThrough ( G4Vector3D )
inherited

Definition at line 215 of file G4VViewer.cc.

216{
217 enum CurveType {
218 Bezier,
219 G4SplineTest};
220
221 // Choose a curve type (for testing)
222// int myCurveType = Bezier;
223
224 // number if step points
225 int stepPoints = 500;
226
227
228 G4Spline spline;
229
230
231 // At the moment we don't use the aVect parameters, but build it here :
232 // Good step points for exampleB5
233 spline.AddSplinePoint(G4Vector3D(0,1000,-14000));
234 spline.AddSplinePoint(G4Vector3D(0,1000,0));
235 spline.AddSplinePoint(G4Vector3D(-4000,1000,4000));
236
237
238 std::vector <G4ThreeVector> viewVect;
239
240// if(myCurveType == Bezier) {
241
242
243 // Draw the spline
244
245 for (int i = 0; i < stepPoints; i++) {
246 float t = (float)i / (float)stepPoints;
247 G4Vector3D cameraPosition = spline.GetInterpolatedSplinePoint(t);
248 // G4Vector3D targetPoint = spline.GetInterpolatedSplinePoint(t);
249
250 // viewParam->SetViewAndLights(G4ThreeVector (cameraPosition.x(), cameraPosition.y(), cameraPosition.z()));
251 // viewParam->SetCurrentTargetPoint(targetPoint);
252 G4cout << "FLY CR("<< i << "):" << cameraPosition << G4endl;
253 viewVect.push_back(G4ThreeVector (cameraPosition.x(), cameraPosition.y(), cameraPosition.z()));
254 }
255
256// } else if (myCurveType == G4SplineTest) {
257 /*
258 This method is a inspire from a Bezier curve. The problem of the Bezier curve is that the path does not go straight between two waypoints.
259 This method add "stay straight" parameter which could be between 0 and 1 where the pass will follow exactly the line between the waypoints
260 Ex : stay straight = 50%
261 m1 = 3*(P1+P0)/2
262
263 Ex : stay straight = 0%
264 m1 = (P1+P0)/2
265
266 P1
267 / \
268 / \
269 a--x--b
270 / ° ° \
271 / ° ° \
272 m1 m2
273 / \
274 / \
275 / \
276 / \
277 P0 P2
278
279 */
280// G4Vector3D a;
281// G4Vector3D b;
282// G4Vector3D m1;
283// G4Vector3D m2;
284// G4Vector3D P0;
285// G4Vector3D P1;
286// G4Vector3D P2;
287// G4double stayStraight = 0;
288// G4double bezierSpeed = 0.4; // Spend 40% time in bezier curve (time between m1-m2 is 40% of time between P0-P1)
289//
290// G4Vector3D firstPoint;
291// G4Vector3D lastPoint;
292//
293// float nbBezierSteps = (stepPoints * bezierSpeed*(1-stayStraight)) * (2./spline.GetNumPoints());
294// float nbFirstSteps = ((stepPoints/2-nbBezierSteps/2) /(1+stayStraight)) * (2./spline.GetNumPoints());
295//
296// // First points
297// firstPoint = spline.GetPoint(0);
298// lastPoint = (firstPoint + spline.GetPoint(1))/2;
299//
300// for( float j=0; j<1; j+= 1/nbFirstSteps) {
301// G4ThreeVector pt = firstPoint + (lastPoint - firstPoint) * j;
302// viewVect.push_back(pt);
303// G4cout << "FLY Bezier A1("<< viewVect.size()<< "):" << pt << G4endl;
304// }
305//
306// for (int i = 0; i < spline.GetNumPoints()-2; i++) {
307// P0 = spline.GetPoint(i);
308// P1 = spline.GetPoint(i+1);
309// P2 = spline.GetPoint(i+2);
310//
311// m1 = P1 - (P1-P0)*(1-stayStraight)/2;
312// m2 = P1 + (P2-P1)*(1-stayStraight)/2;
313//
314// // We have to get straight path from (middile of P0-P1) to (middile of P0-P1 + (dist P0-P1) * stayStraight/2)
315// if (stayStraight >0) {
316//
317// firstPoint = (P0 + P1)/2;
318// lastPoint = (P0 + P1)/2 + (P1-P0)*stayStraight/2;
319//
320// for( float j=0; j<1; j+= 1/(nbFirstSteps*stayStraight)) {
321// G4ThreeVector pt = firstPoint + (lastPoint - firstPoint)* j;
322// viewVect.push_back(pt);
323// G4cout << "FLY Bezier A2("<< viewVect.size()<< "):" << pt << G4endl;
324// }
325// }
326// // Compute Bezier curve
327// for( float delta = 0 ; delta < 1 ; delta += 1/nbBezierSteps)
328// {
329// // The Green Line
330// a = m1 + ( (P1 - m1) * delta );
331// b = P1 + ( (m2 - P1) * delta );
332//
333// // Final point
334// G4ThreeVector pt = a + ((b-a) * delta );
335// viewVect.push_back(pt);
336// G4cout << "FLY Bezier("<< viewVect.size()<< "):" << pt << G4endl;
337// }
338//
339// // We have to get straight path
340// if (stayStraight >0) {
341// firstPoint = (P1 + P2)/2 - (P2-P1)*stayStraight/2;
342// lastPoint = (P1 + P2)/2;
343//
344// for( float j=0; j<1; j+= 1/(nbFirstSteps*stayStraight)) {
345// G4ThreeVector pt = firstPoint + (lastPoint - firstPoint)* j;
346// viewVect.push_back(pt);
347// G4cout << "FLY Bezier B1("<< viewVect.size()<< "):" << pt << G4endl;
348// }
349// }
350// }
351//
352// // last points
353// firstPoint = spline.GetPoint(spline.GetNumPoints()-2);
354// lastPoint = spline.GetPoint(spline.GetNumPoints()-1);
355// for( float j=1; j>0; j-= 1/nbFirstSteps) {
356// G4ThreeVector pt = lastPoint - ((lastPoint-firstPoint)*((1-stayStraight)/2) * j );
357// viewVect.push_back(pt);
358// G4cout << "FLY Bezier B2("<< viewVect.size()<< "):" << pt << G4endl;
359// }
360// }
361 return viewVect;
362}
HepGeom::Vector3D< G4double > G4Vector3D
Definition: G4Vector3D.hh:34

References G4VViewer::G4Spline::AddSplinePoint(), G4cout, G4endl, G4VViewer::G4Spline::GetInterpolatedSplinePoint(), HepGeom::BasicVector3D< T >::x(), HepGeom::BasicVector3D< T >::y(), and HepGeom::BasicVector3D< T >::z().

◆ DrawView()

void G4DAWNFILEViewer::DrawView ( )
virtual

Implements G4VViewer.

Definition at line 125 of file G4DAWNFILEViewer.cc.

126{
127#if defined DEBUG_FR_VIEW
129 G4cout << "***** G4DAWNFILEViewer::DrawView () " << G4endl;
130#endif
131 //-----
133
134 //----- Always visit G4 kernel
136
137 //----- Draw
138 ProcessView();
139
140} // G4DAWNFILEViewer::DrawView ()
void ProcessView()
Definition: G4VViewer.cc:105
void NeedKernelVisit()
Definition: G4VViewer.cc:78

References G4VisManager::errors, G4DAWNFILESceneHandler::FRBeginModeling(), fSceneHandler, G4cout, G4endl, G4VisManager::GetVerbosity(), G4VViewer::NeedKernelVisit(), and G4VViewer::ProcessView().

◆ FinishView()

void G4VViewer::FinishView ( void  )
virtualinherited

◆ GetApplicableVisAttributes()

const G4VisAttributes * G4VViewer::GetApplicableVisAttributes ( const G4VisAttributes ) const
inherited

◆ GetDefaultViewParameters()

const G4ViewParameters & G4VViewer::GetDefaultViewParameters ( ) const
inherited

◆ GetG4PrimViewer()

const char * G4DAWNFILEViewer::GetG4PrimViewer ( )
inline

Definition at line 64 of file G4DAWNFILEViewer.hh.

64{ return fG4PrimViewer; }

References fG4PrimViewer.

◆ GetG4PrimViewerInvocation()

const char * G4DAWNFILEViewer::GetG4PrimViewerInvocation ( )
inline

Definition at line 65 of file G4DAWNFILEViewer.hh.

References fG4PrimViewerInvocation.

Referenced by ShowView().

◆ GetName()

const G4String & G4VViewer::GetName ( ) const
inherited

◆ GetPrivateVisAttributesModifiers()

virtual const std::vector< G4ModelingParameters::VisAttributesModifier > * G4VViewer::GetPrivateVisAttributesModifiers ( ) const
virtualinherited

◆ GetPSViewer()

const char * G4DAWNFILEViewer::GetPSViewer ( )
inline

Definition at line 66 of file G4DAWNFILEViewer.hh.

66{ return fPSViewer; }

References fPSViewer.

Referenced by SendViewParameters().

◆ GetSceneHandler()

G4VSceneHandler * G4VViewer::GetSceneHandler ( ) const
inherited

◆ GetShortName()

const G4String & G4VViewer::GetShortName ( ) const
inherited

◆ GetViewId()

G4int G4VViewer::GetViewId ( ) const
inherited

◆ GetViewParameters()

const G4ViewParameters & G4VViewer::GetViewParameters ( ) const
inherited

Referenced by G4OpenGLXmViewer::actions_callback(), G4OpenInventorSceneHandler::AddCircleSquare(), G4Qt3DSceneHandler::AddPrimitive(), G4ToolsSGSceneHandler::AddPrimitive(), G4OpenInventorSceneHandler::AddPrimitive(), G4OpenGLSceneHandler::AddPrimitive(), G4OpenGLImmediateSceneHandler::AddPrimitivePreambleInternal(), G4OpenGLStoredSceneHandler::AddPrimitivePreambleInternal(), G4OpenInventorSceneHandler::AddTransform(), G4OpenGLXmViewer::background_color_callback(), G4OpenGLImmediateQtViewer::ComputeView(), G4OpenGLStoredQtViewer::ComputeView(), G4VSceneHandler::CreateSectionSolid(), G4VisManager::CreateViewer(), G4OpenGLImmediateWin32Viewer::DrawView(), G4OpenGLImmediateXmViewer::DrawView(), G4OpenGLImmediateXViewer::DrawView(), G4OpenGLStoredWin32Viewer::DrawView(), G4OpenGLStoredXmViewer::DrawView(), G4OpenGLStoredXViewer::DrawView(), G4OpenGLStoredSceneHandler::EndModeling(), G4VisManager::EndOfRun(), G4VSceneHandler::GetAuxEdgeVisible(), G4VSceneHandler::GetColour(), G4VSceneHandler::GetDrawingStyle(), G4VSceneHandler::GetNoOfSides(), G4VSceneHandler::GetNumberOfCloudPoints(), G4VSceneHandler::GetTextColour(), G4VVisCommand::RefreshIfRequired(), G4VSceneHandler::RequestPrimitives(), G4VisCommandDrawView::SetNewValue(), G4VisCommandDrawLogicalVolume::SetNewValue(), G4VisCommandGeometrySetDaughtersInvisible::SetNewValue(), G4VisCommandGeometrySetVisibility::SetNewValue(), G4VisCommandSceneNotifyHandlers::SetNewValue(), G4VisCommandSceneAddLogo::SetNewValue(), G4VisCommandSceneAddScale::SetNewValue(), G4VisCommandSceneHandlerCreate::SetNewValue(), G4VisCommandsTouchable::SetNewValue(), G4VisCommandsTouchableSet::SetNewValue(), G4VisCommandViewerAddCutawayPlane::SetNewValue(), G4VisCommandViewerCentreOn::SetNewValue(), G4VisCommandViewerChangeCutawayPlane::SetNewValue(), G4VisCommandViewerClearCutawayPlanes::SetNewValue(), G4VisCommandViewerClearVisAttributesModifiers::SetNewValue(), G4VisCommandViewerClone::SetNewValue(), G4VisCommandViewerColourByDensity::SetNewValue(), G4VisCommandViewerCopyViewFrom::SetNewValue(), G4VisCommandViewerCreate::SetNewValue(), G4VisCommandViewerDolly::SetNewValue(), G4VisCommandViewerInterpolate::SetNewValue(), G4VisCommandViewerPan::SetNewValue(), G4VisCommandViewerSave::SetNewValue(), G4VisCommandViewerScale::SetNewValue(), G4VisCommandViewerZoom::SetNewValue(), G4VisCommandsViewerSet::SetNewValue(), G4VisCommandGeometrySetVisibility::SetNewValueOnLV(), G4OpenInventorViewer::SetReducedWireFrame(), G4OpenInventorViewer::SetSolid(), and G4OpenInventorViewer::SetWireFrame().

◆ Initialise()

virtual void G4VViewer::Initialise ( )
virtualinherited

◆ NeedKernelVisit()

void G4VViewer::NeedKernelVisit ( )
inherited

Definition at line 78 of file G4VViewer.cc.

78 {
79
80 fNeedKernelVisit = true;
81
82 // At one time I thought we'd better notify all viewers. But I guess
83 // each viewer can take care of itself, so the following code is
84 // redundant (but keep it commented out for now). (John Allison)
85 // Notify all viewers that a kernel visit is required.
86 // const G4ViewerList& viewerList = fSceneHandler.GetViewerList ();
87 // G4ViewerListConstIterator i;
88 // for (i = viewerList.begin(); i != viewerList.end(); i++) {
89 // (*i) -> SetNeedKernelVisit ();
90 // }
91 // ??...but, there's a problem in OpenGL Stored which seems to
92 // require *all* viewers to revisit the kernel, so...
93 // const G4ViewerList& viewerList = fSceneHandler.GetViewerList ();
94 // G4ViewerListConstIterator i;
95 // for (i = viewerList.begin(); i != viewerList.end(); i++) {
96 // (*i) -> SetNeedKernelVisit (true);
97 // }
98 // Feb 2005 - commented out. Let's fix OpenGL if necessary.
99}
G4bool fNeedKernelVisit
Definition: G4VViewer.hh:224

References G4VViewer::fNeedKernelVisit.

Referenced by G4OpenGLImmediateQtViewer::ComputeView(), DrawView(), G4GMocrenFileViewer::DrawView(), G4HepRepFileViewer::DrawView(), G4OpenGLImmediateWin32Viewer::DrawView(), G4OpenGLImmediateXmViewer::DrawView(), G4OpenGLImmediateXViewer::DrawView(), G4VTreeViewer::DrawView(), G4VRML2FileViewer::DrawView(), G4VtkViewer::DrawView(), G4VisManager::GeometryHasChanged(), G4OpenGLStoredViewer::KernelVisitDecision(), G4OpenInventorViewer::KernelVisitDecision(), G4Qt3DViewer::KernelVisitDecision(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::KernelVisitDecision(), G4VisManager::NotifyHandlers(), G4OpenGLImmediateViewer::ProcessView(), G4VisCommandViewerRebuild::SetNewValue(), G4OpenInventorViewer::SetPreview(), G4OpenInventorViewer::SetPreviewAndFull(), G4OpenInventorViewer::SetReducedWireFrame(), and G4OpenInventorViewer::UpdateScene().

◆ ProcessView()

void G4VViewer::ProcessView ( )
inherited

Definition at line 105 of file G4VViewer.cc.

106{
107 // If the scene has changed, or if the concrete viewer has decided
108 // that it necessary to visit the kernel, perhaps because the view
109 // parameters have changed significantly (this should be done in the
110 // concrete viewer's DrawView)...
111 if (fNeedKernelVisit) {
112 // Reset flag. This must be done before ProcessScene to prevent
113 // recursive calls when recomputing transients...
114 fNeedKernelVisit = false;
117 }
118}
virtual void ProcessScene()
virtual void ClearStore()
G4VSceneHandler & fSceneHandler
Definition: G4VViewer.hh:215

References G4VSceneHandler::ClearStore(), G4VViewer::fNeedKernelVisit, G4VViewer::fSceneHandler, and G4VSceneHandler::ProcessScene().

Referenced by G4OpenGLStoredQtViewer::ComputeView(), DrawView(), G4GMocrenFileViewer::DrawView(), G4HepRepFileViewer::DrawView(), G4OpenGLStoredWin32Viewer::DrawView(), G4OpenGLStoredXmViewer::DrawView(), G4OpenGLStoredXViewer::DrawView(), G4OpenInventorViewer::DrawView(), G4Qt3DViewer::DrawView(), G4RayTracerViewer::DrawView(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::DrawView(), G4VTreeViewer::DrawView(), G4VRML2FileViewer::DrawView(), G4VtkViewer::DrawView(), and G4OpenGLImmediateViewer::ProcessView().

◆ RefreshView()

void G4VViewer::RefreshView ( )
inherited

◆ ResetView()

virtual void G4VViewer::ResetView ( )
virtualinherited

◆ SendDrawingStyleToDAWNGUI()

void G4DAWNFILEViewer::SendDrawingStyleToDAWNGUI ( std::ostream &  out)

Definition at line 205 of file G4DAWNFILEViewer.cc.

206{
208 //#if defined DEBUG_FR_VIEW
209 // G4cout << "***** G4DAWNFILEViewer::SendDrawingStyleToDAWNGUI()" << G4endl;
210 //#endif
212
213 G4int style = fVP.GetDrawingStyle();
214
215 enum
216 {
217 FR_WIREFRAME_STYLE = 1,
218 FR_WF_STORED_STYLE = 2,
219 FR_HID_STYLE = 3,
220 FR_HID2_STYLE = 4,
221 FR_HID3_STYLE = 5,
222 FR_DRAWING_MODE_END_STYLE = 6
223 };
224
225 switch(style)
226 {
228 out << FR_WIREFRAME_STYLE << G4endl;
229 break;
231 out << FR_HID2_STYLE << G4endl; // LINE
232 break;
235 out << FR_HID_STYLE << G4endl; // SURFACE
236 break;
237 default:
238 out << FR_WIREFRAME_STYLE << G4endl;
239 break;
240 }
241
242} // G4DAWNFILEViewer::SendDrawingStyle()
int G4int
Definition: G4Types.hh:85
G4ViewParameters fVP
Definition: G4VViewer.hh:219
DrawingStyle GetDrawingStyle() const

References G4VViewer::fVP, G4endl, G4ViewParameters::GetDrawingStyle(), G4ViewParameters::hlhsr, G4ViewParameters::hlr, G4ViewParameters::hsr, and G4ViewParameters::wireframe.

Referenced by SendViewParameters().

◆ SendViewParameters()

void G4DAWNFILEViewer::SendViewParameters ( )

Definition at line 245 of file G4DAWNFILEViewer.cc.

246{
247 // Calculates view representation based on extent of object being
248 // viewed and (initial) direction of camera. (Note: it can change
249 // later due to user interaction via visualization system's GUI.)
250
251#if defined DEBUG_FR_VIEW
253 {
254 G4cout << "***** G4DAWNFILEViewer::SendViewParameters() ";
255 G4cout << "(GUI parameters)" << G4endl;
256 }
257#endif
258
259 //----- Magic number to decide camera distance automatically
260 const G4double HOW_FAR = 1000.0; // to define "infinity"
261 const G4double MIN_HALF_ANGLE = 0.01;
262 const G4double MAX_HALF_ANGLE = 0.499 * pi;
263
264 //----- CALC camera distance
265 //..... Note: Camera cannot enter inside object
266 G4double camera_distance;
268
269 G4double half_view_angle = std::fabs(fVP.GetFieldHalfAngle());
270 if(half_view_angle > MAX_HALF_ANGLE)
271 {
272 half_view_angle = MAX_HALF_ANGLE;
273 }
274
275 if(half_view_angle < MIN_HALF_ANGLE)
276 {
277 //----- infinity (or ortho projection)
278 camera_distance = radius * HOW_FAR;
279 }
280 else
281 {
282 //----- Calc camera distance from half view angle
283 camera_distance = radius / std::sin(half_view_angle);
284 camera_distance -= fVP.GetDolly();
285 }
286
287 if(camera_distance < radius)
288 {
290 {
291 G4cout << "WARNING from DAWNFILE driver:" << G4endl;
292 G4cout << " Camera cannot enter inside objects" << G4endl;
293 }
294 camera_distance = radius;
295 }
296
297 //----- CALC camera direction
298 const G4Vector3D& camera_direction = fVP.GetViewpointDirection().unit();
299 const G4double v_angle = (180.0 / pi) * camera_direction.theta();
300 const G4double h_angle = (180.0 / pi) * camera_direction.phi();
301
302 //########### Generation of the file .DAWN.history for DAWN GUI
303 //-----
304 std::ofstream gui_out(".DAWN_1.history");
305
306 // ######### P1
307
308 //----- camera position
309 gui_out << camera_distance << G4endl;
310 gui_out << v_angle << G4endl;
311 gui_out << h_angle << G4endl;
312 gui_out << "0" << G4endl; // auto target
313
314 //----- target point
315 const G4Point3D& target_point =
318 gui_out << target_point.x() << G4endl;
319 gui_out << target_point.y() << G4endl;
320 gui_out << target_point.z() << G4endl;
321
322 //----- Magnification
323 const G4double zoom_factor = fVP.GetZoomFactor();
324 if(half_view_angle < MIN_HALF_ANGLE)
325 {
326 gui_out << zoom_factor << G4endl;
327 }
328 else
329 {
330 const G4double FR_HALF_SCREEN_SIZE = 0.5;
331 G4double focal_distance = FR_HALF_SCREEN_SIZE / std::tan(half_view_angle);
332 focal_distance *= zoom_factor;
333
334 gui_out << "fd" << focal_distance << G4endl;
335 }
336 SendDrawingStyleToDAWNGUI(gui_out); // gui_out, viewing mode
337 gui_out << "0.001" << G4endl; // 3D Tolerance
338 gui_out << "0" << G4endl; // not display parameters
339
340 // ######### P2
341 gui_out << 1 << G4endl; // Source light
342 gui_out << 1 << G4endl;
343 gui_out << 1 << G4endl;
344 gui_out << 0.5 << G4endl; // Ambient light
345 gui_out << 0.5 << G4endl;
346 gui_out << 0.5 << G4endl;
347 gui_out << 19.0 << G4endl; // Light direction (Polar)
348 gui_out << 71.0 << G4endl; // Light direction (Azimuthal)
349
350 // ######### P3
351 gui_out << 0.1 << G4endl; // Real edge width
352 gui_out << 0.1 << G4endl; // outline width
353 gui_out << 0.1 << G4endl; // aux edge width
354 gui_out << 3 << G4endl; // aux edge style
355 gui_out << 70.0 << G4endl; // aux-edge threshold angle
356 gui_out << 0.1 << G4endl; // line width
357 gui_out << 0 << G4endl; // haloing
358 gui_out << 1 << G4endl; // Dashed edged for back faces
359
360 //######### P4
361 //----- drawing device
362 // enum {PS=1, XWIN=2, PS2=3, XWIN2=4, OPEN_GL=5, DEVICE_END=6};
363 if(((std::getenv(FR_ENV_MULTI_WINDOW) != NULL) &&
364 (strcmp(std::getenv(FR_ENV_MULTI_WINDOW), "0"))) ||
365 ((std::getenv(FR_ENV_MULTI_WINDOW2) != NULL) &&
366 (strcmp(std::getenv(FR_ENV_MULTI_WINDOW2), "0"))))
367 {
368 gui_out << 2 << G4endl; // OpenWindow
369 }
370 else
371 {
372 gui_out << 1 << G4endl; // Invoke PS viewer
373 }
374
375 gui_out << GetPSViewer() << G4endl; // PS viewer
376 gui_out << 1 << G4endl; // Do not add showpage
377 gui_out << 0 << G4endl; // Non-append mode
378
379 gui_out.close();
380 //########### end of generating file .DAWN.history
381}
const char FR_ENV_MULTI_WINDOW2[]
const char FR_ENV_MULTI_WINDOW[]
static constexpr double pi
Definition: G4SIunits.hh:55
double G4double
Definition: G4Types.hh:83
void SendDrawingStyleToDAWNGUI(std::ostream &out)
const char * GetPSViewer()
const G4VisExtent & GetExtent() const
const G4Point3D & GetStandardTargetPoint() const
G4Scene * GetScene() const
const G4Vector3D & GetViewpointDirection() const
const G4Point3D & GetCurrentTargetPoint() const
G4double GetFieldHalfAngle() const
G4double GetZoomFactor() const
G4double GetDolly() const
G4double GetExtentRadius() const
Definition: G4VisExtent.cc:75
BasicVector3D< T > unit() const

References G4VisManager::errors, FR_ENV_MULTI_WINDOW, FR_ENV_MULTI_WINDOW2, fSceneHandler, G4VViewer::fVP, G4cout, G4endl, G4ViewParameters::GetCurrentTargetPoint(), G4ViewParameters::GetDolly(), G4Scene::GetExtent(), G4VisExtent::GetExtentRadius(), G4ViewParameters::GetFieldHalfAngle(), GetPSViewer(), G4VSceneHandler::GetScene(), G4Scene::GetStandardTargetPoint(), G4VisManager::GetVerbosity(), G4ViewParameters::GetViewpointDirection(), G4ViewParameters::GetZoomFactor(), HepGeom::BasicVector3D< T >::phi(), pi, SendDrawingStyleToDAWNGUI(), HepGeom::BasicVector3D< T >::theta(), HepGeom::BasicVector3D< T >::unit(), HepGeom::BasicVector3D< T >::x(), HepGeom::BasicVector3D< T >::y(), and HepGeom::BasicVector3D< T >::z().

Referenced by ShowView().

◆ SetDefaultViewParameters()

void G4VViewer::SetDefaultViewParameters ( const G4ViewParameters vp)
inherited

◆ SetName()

void G4VViewer::SetName ( const G4String name)
inherited

Definition at line 72 of file G4VViewer.cc.

72 {
73 fName = name;
74 fShortName = fName.substr(0, fName.find (' '));
76}
G4String fShortName
Definition: G4VViewer.hh:218
G4String fName
Definition: G4VViewer.hh:217
void strip(G4String &str, char c=' ')
Remove leading and trailing characters from string.

References G4VViewer::fName, G4VViewer::fShortName, G4InuclParticleNames::name(), and G4StrUtil::strip().

◆ SetNeedKernelVisit()

void G4VViewer::SetNeedKernelVisit ( G4bool  need)
inherited

◆ SetTouchable()

void G4VViewer::SetTouchable ( const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &  fullPath)
protectedinherited

Definition at line 124 of file G4VViewer.cc.

126{
127 // Set the touchable for /vis/touchable/set/... commands.
128 std::ostringstream oss;
129 const auto& pvStore = G4PhysicalVolumeStore::GetInstance();
130 for (const auto& pvNodeId: fullPath) {
131 const auto& pv = pvNodeId.GetPhysicalVolume();
132 auto iterator = find(pvStore->begin(),pvStore->end(),pv);
133 if (iterator == pvStore->end()) {
135 ed << "Volume no longer in physical volume store.";
136 G4Exception("G4VViewer::SetTouchable", "visman0501", JustWarning, ed);
137 } else {
138 oss
139 << ' ' << pvNodeId.GetPhysicalVolume()->GetName()
140 << ' ' << pvNodeId.GetCopyNo();
141 }
142 }
143 G4UImanager::GetUIpointer()->ApplyCommand("/vis/set/touchable" + oss.str());
144}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
static G4PhysicalVolumeStore * GetInstance()
G4int ApplyCommand(const char *aCommand)
Definition: G4UImanager.cc:485
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:77

References G4UImanager::ApplyCommand(), G4Exception(), G4PhysicalVolumeStore::GetInstance(), G4UImanager::GetUIpointer(), and JustWarning.

Referenced by G4OpenGLQtViewer::changeColorAndTransparency(), and G4OpenGLQtViewer::setCheckComponent().

◆ SetView()

void G4DAWNFILEViewer::SetView ( )
virtual

Implements G4VViewer.

Definition at line 96 of file G4DAWNFILEViewer.cc.

97{
98#if defined DEBUG_FR_VIEW
100 G4cout << "***** G4DAWNFILEViewer::SetView(): No effects" << G4endl;
101#endif
102 // Do nothing, since DAWN is running as a different process.
103 // SendViewParameters () will do this job instead.
104}

References G4VisManager::errors, G4cout, G4endl, and G4VisManager::GetVerbosity().

◆ SetViewParameters()

void G4VViewer::SetViewParameters ( const G4ViewParameters vp)
inherited

◆ ShowView()

void G4DAWNFILEViewer::ShowView ( void  )
virtual

Reimplemented from G4VViewer.

Definition at line 143 of file G4DAWNFILEViewer.cc.

144{
145#if defined DEBUG_FR_VIEW
147 G4cout << "***** G4DAWNFILEViewer::ShowView () " << G4endl;
148#endif
149
151 {
152 //----- End of modeling
153 // !EndModeling, !DrawAll, !CloseDevice,
154 // close g4.prim
156
157 //----- Output DAWN GUI file
159
160 //----- string for viewer invocation
161 if(!strcmp(fG4PrimViewer, "NONE"))
162 {
163 strcpy(fG4PrimViewerInvocation, "");
164 }
165 else
166 {
168 strcat(fG4PrimViewerInvocation, " ");
170 }
171
172 //----- Invoke DAWN
173 G4cout << G4endl;
175 {
176 G4cout << "ERROR: Failed to generate file ";
178 }
179 else if(strcmp(GetG4PrimViewerInvocation(), ""))
180 {
181 G4cout << "File " << fSceneHandler.GetG4PrimFileName();
182 G4cout << " is generated." << G4endl;
184 int iErr = system(GetG4PrimViewerInvocation());
185 if(iErr != 0)
186 {
188 ed << "Error " << iErr << " when calling system with \""
189 << GetG4PrimViewerInvocation() << "\".";
190 G4Exception("G4DAWNFILEViewer::ShowView()", "dawn0005", JustWarning,
191 ed);
192 }
193 }
194 else
195 { // no view, i.e., only file generation
196 G4cout << "File " << fSceneHandler.GetG4PrimFileName();
197 G4cout << " is generated." << G4endl;
198 G4cout << "No viewer is invoked." << G4endl;
199 }
200 }
201
202} // G4DAWNFILEViewer::ShowView()
const char * GetG4PrimViewerInvocation()
static G4bool DoesFileExist(const char *filename)
Definition: G4FRofstream.hh:94

References G4FRofstream::DoesFileExist(), G4VisManager::errors, fG4PrimViewer, fG4PrimViewerInvocation, G4DAWNFILESceneHandler::FREndModeling(), G4DAWNFILESceneHandler::FRIsInModeling(), fSceneHandler, G4cout, G4endl, G4Exception(), G4DAWNFILESceneHandler::GetG4PrimFileName(), GetG4PrimViewerInvocation(), G4VisManager::GetVerbosity(), JustWarning, and SendViewParameters().

◆ TouchableSetColour()

void G4VViewer::TouchableSetColour ( const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &  fullPath,
const G4Colour colour 
)
protectedinherited

Definition at line 180 of file G4VViewer.cc.

183{
184 // Changes the Vis Attribute Modifiers WITHOUT triggering a rebuild.
185
186 std::ostringstream oss;
187 oss << "/vis/touchable/set/colour "
188 << colour.GetRed() << ' ' << colour.GetGreen()
189 << ' ' << colour.GetBlue() << ' ' << colour.GetAlpha();
190
191 // The following is equivalent to
192 // G4UImanager::GetUIpointer()->ApplyCommand(oss.str());
193 // (assuming the touchable has already been set), but avoids view rebuild.
194
195 // Instantiate a working copy of a G4VisAttributes object...
196 G4VisAttributes workingVisAtts;
197 // and set the colour.
198 workingVisAtts.SetColour(colour);
199
202 (workingVisAtts,
205 // G4ModelingParameters::VASColour (VAS = Vis Attribute Signifier)
206 // signifies that it is the colour that should be picked out
207 // and merged with the touchable's normal vis attributes.
208
209 // Record on G4cout (with #) for information.
210 if (G4UImanager::GetUIpointer()->GetVerboseLevel() >= 2) {
211 G4cout << "# " << oss.str() << G4endl;
212 }
213}
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
static G4ModelingParameters::PVNameCopyNoPath GetPVNameCopyNoPath(const std::vector< G4PhysicalVolumeNodeID > &)
void AddVisAttributesModifier(const G4ModelingParameters::VisAttributesModifier &)
void SetColour(const G4Colour &)

References G4ViewParameters::AddVisAttributesModifier(), G4VViewer::fVP, G4cout, G4endl, G4Colour::GetAlpha(), G4Colour::GetBlue(), G4Colour::GetGreen(), G4PhysicalVolumeModel::GetPVNameCopyNoPath(), G4Colour::GetRed(), G4UImanager::GetUIpointer(), G4VisAttributes::SetColour(), and G4ModelingParameters::VASColour.

Referenced by G4OpenGLQtViewer::changeColorAndTransparency().

◆ TouchableSetVisibility()

void G4VViewer::TouchableSetVisibility ( const std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > &  fullPath,
G4bool  visibility 
)
protectedinherited

Definition at line 146 of file G4VViewer.cc.

149{
150 // Changes the Vis Attribute Modifiers WITHOUT triggering a rebuild.
151
152 std::ostringstream oss;
153 oss << "/vis/touchable/set/visibility ";
154 if (visibiity) oss << "true"; else oss << "false";
155
156 // The following is equivalent to
157 // G4UImanager::GetUIpointer()->ApplyCommand(oss.str());
158 // (assuming the touchable has already been set), but avoids view rebuild.
159
160 // Instantiate a working copy of a G4VisAttributes object...
161 G4VisAttributes workingVisAtts;
162 // and set the visibility.
163 workingVisAtts.SetVisibility(visibiity);
164
167 (workingVisAtts,
170 // G4ModelingParameters::VASVisibility (VAS = Vis Attribute Signifier)
171 // signifies that it is the visibility that should be picked out
172 // and merged with the touchable's normal vis attributes.
173
174 // Record on G4cout (with #) for information.
175 if (G4UImanager::GetUIpointer()->GetVerboseLevel() >= 2) {
176 G4cout << "# " << oss.str() << G4endl;
177 }
178}
void SetVisibility(G4bool=true)

References G4ViewParameters::AddVisAttributesModifier(), G4VViewer::fVP, G4cout, G4endl, G4PhysicalVolumeModel::GetPVNameCopyNoPath(), G4UImanager::GetUIpointer(), G4VisAttributes::SetVisibility(), and G4ModelingParameters::VASVisibility.

Referenced by G4OpenGLQtViewer::setCheckComponent().

Field Documentation

◆ fDefaultVP

G4ViewParameters G4VViewer::fDefaultVP
protectedinherited

◆ fG4PrimViewer

char G4DAWNFILEViewer::fG4PrimViewer[32]
private

Definition at line 73 of file G4DAWNFILEViewer.hh.

Referenced by G4DAWNFILEViewer(), GetG4PrimViewer(), and ShowView().

◆ fG4PrimViewerInvocation

char G4DAWNFILEViewer::fG4PrimViewerInvocation[64]
private

Definition at line 74 of file G4DAWNFILEViewer.hh.

Referenced by G4DAWNFILEViewer(), GetG4PrimViewerInvocation(), and ShowView().

◆ fName

G4String G4VViewer::fName
protectedinherited

◆ fNeedKernelVisit

G4bool G4VViewer::fNeedKernelVisit
protectedinherited

◆ fPSViewer

char G4DAWNFILEViewer::fPSViewer[32]
private

Definition at line 75 of file G4DAWNFILEViewer.hh.

Referenced by G4DAWNFILEViewer(), and GetPSViewer().

◆ fSceneHandler

G4DAWNFILESceneHandler& G4DAWNFILEViewer::fSceneHandler
private

◆ fShortName

G4String G4VViewer::fShortName
protectedinherited

◆ fViewId

G4int G4VViewer::fViewId
protectedinherited

◆ fVP

G4ViewParameters G4VViewer::fVP
protectedinherited

Definition at line 219 of file G4VViewer.hh.

Referenced by G4OpenGLQtViewer::actionChangeBackgroundColor(), G4OpenGLQtViewer::actionChangeDefaultColor(), G4OpenGLQtViewer::actionChangeTextColor(), G4OpenGLXmViewer::actions_callback(), G4OpenGLSceneHandler::AddPrimitive(), G4OpenGLImmediateSceneHandler::AddPrimitivePreambleInternal(), G4OpenGLStoredSceneHandler::AddPrimitivePreambleInternal(), G4OpenGLXmViewer::aux_edge_callback(), G4OpenGLQtViewer::changeDepthInSceneTree(), G4OpenGLStoredQtViewer::CompareForKernelVisit(), G4OpenGLStoredViewer::CompareForKernelVisit(), G4OpenInventorViewer::CompareForKernelVisit(), G4Qt3DViewer::CompareForKernelVisit(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::CompareForKernelVisit(), G4OpenGLStoredQtViewer::ComputeView(), G4OpenGLWin32Viewer::CreateMainWindow(), G4OpenGLXmViewer::CreateMainWindow(), G4OpenGLXViewer::CreateMainWindow(), G4OpenGLQtViewer::CreateMainWindow(), G4OpenGLQtViewer::createPopupMenu(), G4OpenGLXmViewer::dolly_callback(), G4OpenGLStoredViewer::DrawDisplayLists(), G4OpenGLXmViewer::drawing_style_callback(), G4OpenGLStoredWin32Viewer::DrawView(), G4OpenGLStoredXmViewer::DrawView(), G4OpenGLStoredXViewer::DrawView(), G4OpenInventorViewer::DrawView(), G4Qt3DViewer::DrawView(), G4RayTracerViewer::DrawView(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::DrawView(), G4VtkViewer::DrawViewHUD(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::Export(), G4ASCIITreeViewer::G4ASCIITreeViewer(), G4HepRepFileViewer::G4HepRepFileViewer(), G4OpenGLQtViewer::G4keyPressEvent(), G4OpenGLQtViewer::G4MouseMoveEvent(), G4OpenGLQtViewer::G4MousePressEvent(), G4OpenGLQtViewer::G4MouseReleaseEvent(), G4OpenGLViewer::G4OpenGLViewer(), G4OpenInventorViewer::G4OpenInventorViewer(), G4VtkViewer::G4VtkViewer(), G4VViewer::G4VViewer(), G4OpenGLQtViewer::G4wheelEvent(), G4OpenGLViewer::getSceneDepth(), G4OpenGLViewer::getSceneFarWidth(), G4OpenGLViewer::getSceneNearWidth(), G4OpenGLXmViewer::GetXmConnection(), G4OpenInventorViewer::GroupCameraSensorCB(), G4OpenInventorQtViewer::Initialise(), G4OpenInventorWinViewer::Initialise(), G4OpenInventorXtExtendedViewer::Initialise(), G4OpenInventorXtViewer::Initialise(), G4Qt3DViewer::Initialise(), G4RayTracerViewer::Initialise(), G4RayTracerXViewer::Initialise(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::Initialise(), G4VtkQtViewer::Initialise(), G4VtkViewer::Initialise(), G4OpenGLViewer::InitializeGLView(), G4OpenGLXmViewer::left_right_pan_callback(), G4OpenGLXmViewer::misc_callback(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::mouse_move(), G4Qt3DViewer::mouseMoveEvent(), G4OpenGLQtViewer::moveScene(), G4OpenGLImmediateViewer::ProcessView(), G4OpenGLXmViewer::projection_callback(), G4OpenGLXmViewer::reset_callback(), G4OpenGLXmViewer::ResetView(), G4OpenGLViewer::rotateScene(), G4OpenGLViewer::rotateSceneInViewDirection(), G4OpenGLViewer::rotateSceneThetaPhi(), G4OpenGLViewer::rotateSceneToggle(), SendDrawingStyleToDAWNGUI(), SendViewParameters(), G4VRML2FileViewer::SendViewParameters(), G4OpenGLXmViewer::set_rot_subject_callback(), G4OpenGLViewerMessenger::SetNewValue(), G4OpenGLXmViewerMessenger::SetNewValue(), G4OpenGLWin32Viewer::SetRotation(), G4OpenGLWin32Viewer::SetShift(), G4OpenGLViewer::SetView(), G4OpenInventorQtViewer::SetView(), G4OpenInventorViewer::SetView(), G4OpenInventorWinViewer::SetView(), G4OpenInventorXtExtendedViewer::SetView(), G4OpenInventorXtViewer::SetView(), G4Qt3DViewer::SetView(), G4RayTracerViewer::SetView(), G4ToolsSGQtViewer::SetView(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::SetView(), G4VtkViewer::SetView(), G4VViewer::SetViewParameters(), G4OpenGLWin32Viewer::SetZoom(), G4OpenGLXViewer::ShowView(), G4VtkViewer::ShowView(), G4OpenGLQtViewer::toggleAux(), G4OpenGLQtViewer::toggleHiddenMarkers(), G4OpenGLQtViewer::togglePicking(), G4OpenGLQtViewer::toggleProjection(), G4OpenGLQtViewer::toggleSurfaceAction(), G4VViewer::TouchableSetColour(), G4VViewer::TouchableSetVisibility(), G4OpenGLXmViewer::up_down_pan_callback(), G4OpenGLXmViewer::update_panels_callback(), G4OpenGLXmViewer::UpdateControlPanel(), G4OpenGLQtViewer::updateToolbarAndMouseContextMenu(), G4OpenGLQtViewer::updateViewerPropertiesTableWidget(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::wheel_rotate(), G4Qt3DViewer::wheelEvent(), G4OpenGLXmViewer::wobble_callback(), G4OpenGLXmViewer::wobble_timer_callback(), and G4OpenGLXmViewer::zoom_callback().


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