Import Geant4 4.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:18:25 +02:00
parent 36c080dca6
commit 921d3b1cda
3990 changed files with 185376 additions and 82884 deletions
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLImmediateSceneHandler.cc,v 1.3.4.1 2001/06/28 19:15:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLImmediateSceneHandler.cc,v 1.6 2001/08/14 18:03:16 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 10th February 1997
@@ -100,19 +100,30 @@ void G4OpenGLImmediateSceneHandler::EndPrimitives () {
}
void G4OpenGLImmediateSceneHandler::BeginModeling () {
G4VSceneHandler::BeginModeling();
if (fpViewer -> GetViewParameters ().GetDrawingStyle() == G4ViewParameters::hlr) {
initialize_hlr = true;
}
G4VSceneHandler::BeginModeling();
}
void G4OpenGLImmediateSceneHandler::EndModeling () {
G4VSceneHandler::EndModeling ();
if (fpViewer -> GetViewParameters ().GetDrawingStyle() == G4ViewParameters::hlr) {
initialize_hlr = true;
// glDisable (GL_POLYGON_OFFSET_FILL);
}
G4VSceneHandler::EndModeling ();
}
void G4OpenGLImmediateSceneHandler::ClearTransientStore () {
G4VSceneHandler::ClearTransientStore ();
// For immediate mode, clear screen and re-draw detector.
if (fpViewer) {
fpViewer -> SetView ();
fpViewer -> ClearView ();
fpViewer -> DrawView ();
}
}
G4int G4OpenGLImmediateSceneHandler::GetSceneCount () {
@@ -124,4 +135,3 @@ G4int G4OpenGLImmediateSceneHandler::fSceneIdCount = 0;
G4int G4OpenGLImmediateSceneHandler::fSceneCount = 0;
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLImmediateViewer.cc,v 1.3.4.1 2001/06/28 19:15:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLImmediateViewer.cc,v 1.4 2001/07/11 10:08:53 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 7th February 1997
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLImmediateWin32.cc,v 1.5.4.1 2001/06/28 19:15:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLImmediateWin32.cc,v 1.6 2001/07/11 10:08:53 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// OpenGLImmediateWin32 graphics system factory.
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.2.4.1 2001/06/28 19:15:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.4 2001/07/14 21:47:49 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Class G4OpenGLImmediateWin32Viewer : a class derived from G4OpenGLWin32Viewer and
@@ -47,6 +47,9 @@ G4OpenGLImmediateViewer (scene),
G4VViewer (scene, scene.IncrementViewCount ()) {
if (fViewId < 0) return; // In case error in base class instantiation.
}
void G4OpenGLImmediateWin32Viewer::Initialise () {
// ensure a suitable window was found
@@ -66,7 +69,6 @@ G4VViewer (scene, scene.IncrementViewCount ()) {
glDepthFunc (GL_LEQUAL);
glDepthMask (GL_TRUE);
}
void G4OpenGLImmediateWin32Viewer::DrawView () {
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLImmediateX.cc,v 1.6.4.1 2001/06/28 19:15:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLImmediateX.cc,v 1.7 2001/07/11 10:08:54 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 27th March 1996
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLImmediateXViewer.cc,v 1.4.4.1 2001/06/28 19:15:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLImmediateXViewer.cc,v 1.6 2001/07/14 21:47:50 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 7th February 1997
@@ -60,6 +60,11 @@ G4VViewer (scene, scene.IncrementViewCount (), name) {
fViewId = -1; // This flags an error.
return;
}
}
G4OpenGLImmediateXViewer::~G4OpenGLImmediateXViewer () {}
void G4OpenGLImmediateXViewer::Initialise () {
CreateGLXContext (vi_immediate);
@@ -71,6 +76,17 @@ G4VViewer (scene, scene.IncrementViewCount (), name) {
ClearView ();
FinishView ();
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//The following code was in the constructor and found not to work for
//the reasons below. It was moved to DrawView(), but has now been moved
//to Initialise().
//The following code is useless in its current position, as the
//G4OpenGLXmViewer constructor gets called *after* it, and hence sets
//doublebuffer to true or false there, after our little test to correct
//it in the case of a double buffer being got for an immediate view.
//Hence, code moved to DrawView.
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// If a double buffer context has been forced upon us, ignore the
// back buffer for this OpenGLImmediate view.
if (doublebuffer) {
@@ -80,20 +96,10 @@ G4VViewer (scene, scene.IncrementViewCount (), name) {
glDepthFunc (GL_LEQUAL);
glDepthMask (GL_TRUE);
}
G4OpenGLImmediateXViewer::~G4OpenGLImmediateXViewer () {}
void G4OpenGLImmediateXViewer::DrawView () {
// If a double buffer context has been forced upon us, ignore the
// back buffer for this OpenGLImmediate view.
if (doublebuffer) {
doublebuffer = false;
glDrawBuffer (GL_FRONT);
}
if (white_background == true) {
glClearColor (1., 1., 1., 1.);
} else {
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLImmediateXm.cc,v 1.6.2.1 2001/06/28 19:15:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLImmediateXm.cc,v 1.7 2001/07/11 10:08:54 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 10th February 1997
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLImmediateXmViewer.cc,v 1.4.2.1 2001/06/28 19:15:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLImmediateXmViewer.cc,v 1.6 2001/07/14 21:47:51 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 10th February 1997
@@ -58,6 +58,11 @@ G4VViewer (scene, scene.IncrementViewCount (), name) {
fViewId = -1; // This flags an error.
return;
}
}
G4OpenGLImmediateXmViewer::~G4OpenGLImmediateXmViewer () {}
void G4OpenGLImmediateXmViewer::Initialise () {
CreateGLXContext (vi_immediate);
@@ -80,6 +85,9 @@ G4VViewer (scene, scene.IncrementViewCount (), name) {
glShadeModel (GL_FLAT);
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//The following code was in the constructor and found not to work for
//the reasons below. It was moved to DrawView(), but has now been moved
//to Initialise().
//The following code is useless in its current position, as the
//G4OpenGLXmViewer constructor gets called *after* it, and hence sets
//doublebuffer to true or false there, after our little test to correct
@@ -89,23 +97,14 @@ G4VViewer (scene, scene.IncrementViewCount (), name) {
// If a double buffer context has been forced upon us, ignore the
// back buffer for this OpenGLImmediate view.
// if (doublebuffer) {
// doublebuffer = false;
// glDrawBuffer (GL_FRONT);
// }
if (doublebuffer) {
doublebuffer = false;
glDrawBuffer (GL_FRONT);
}
}
G4OpenGLImmediateXmViewer::~G4OpenGLImmediateXmViewer () {}
void G4OpenGLImmediateXmViewer::DrawView () {
// If a double buffer context has been forced upon us, ignore the
// back buffer for this OpenGLImmediate view.
if (doublebuffer) {
doublebuffer = false;
glDrawBuffer (GL_FRONT);
}
if (white_background == true) {
glClearColor (1., 1., 1., 1.);
} else {
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLSceneHandler.cc,v 1.10.2.1 2001/06/28 19:15:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLSceneHandler.cc,v 1.14 2001/08/24 18:37:09 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 27th March 1996
@@ -116,16 +116,25 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyline& line)
}
void G4OpenGLSceneHandler::AddPrimitive (const G4Text& text) {
static G4int callCount (0);
++callCount;
MarkerSizeType sizeType;
G4double size = GetMarkerSize (text, sizeType);
G4cout
<< "G4OpenGLSceneHandler::AddPrimitive (const G4Text& text) not implemented yet."
<< "\n Called with text \"" << text.GetText ()
<< "\" at " << text.GetPosition ()
<< ", size " << size
<< ", offsets " << text.GetXOffset () << ", " << text.GetYOffset ()
<< ", type " << G4int(sizeType)
<< G4endl;
G4ThreeVector position (*fpObjectTransformation * text.GetPosition ());
if (callCount <= 10 || callCount%100 == 0) {
G4cout <<
"G4OpenGLSceneHandler::AddPrimitive (const G4Text&) call count "
<< callCount <<
"\n Not implemented yet. Called with text \""
<< text.GetText ()
<< "\"\n at " << position
<< ", size " << size
<< ", offsets " << text.GetXOffset () << ", " << text.GetYOffset ()
<< ", type " << G4int(sizeType)
<< G4endl;
}
}
void G4OpenGLSceneHandler::AddPrimitive (const G4Circle& circle) {
@@ -240,7 +249,7 @@ recreate the display lists. The down side is that the markers
rotate. The only way to avoid this is to play with the modelview
and projection matrices of OpenGL - which I need to think about.
For future reference, here is the code to draw in window
coordinates; it's down side is tha markers do not follow global
coordinates; its down side is that markers do not follow global
transformations. Some clever stuff is needed.
...
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLStoredSceneHandler.cc,v 1.10.2.1 2001/06/28 19:15:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLStoredSceneHandler.cc,v 1.13 2001/08/14 18:03:17 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 10th February 1997
@@ -42,23 +42,10 @@
#include <GL/glx.h>
#include <GL/glu.h>
#include "G4OpenGLSceneHandler.hh"
#include "G4OpenGLViewer.hh"
#include "G4OpenGLTransform3D.hh"
#include "G4Point3D.hh"
#include "G4Normal3D.hh"
#include "G4Transform3D.hh"
#include "G4Polyline.hh"
#include "G4Text.hh"
#include "G4Circle.hh"
#include "G4Square.hh"
#include "G4Polyhedron.hh"
#include "G4VisAttributes.hh"
#include "G4VPhysicalVolume.hh"
#include "G4ModelingParameters.hh"
#include "G4VModel.hh"
#include "G4OpenGLStoredSceneHandler.hh"
#include "G4VPhysicalVolume.hh"
G4OpenGLStoredSceneHandler::G4OpenGLStoredSceneHandler (G4VGraphicsSystem& system,
const G4String& name):
G4OpenGLSceneHandler (system, fSceneIdCount++, name),
@@ -123,13 +110,53 @@ void G4OpenGLStoredSceneHandler::EndPrimitives () {
G4VSceneHandler::EndPrimitives ();
}
void G4OpenGLStoredSceneHandler::BeginModeling () {
G4VSceneHandler::BeginModeling();
if (fpViewer -> GetViewParameters ().GetDrawingStyle() == G4ViewParameters::hlr) {
initialize_hlr = true;
}
ClearStore(); // ...and all that goes with it.
}
void G4OpenGLStoredSceneHandler::EndModeling () {
// Make a List which calls the other lists.
fTopPODL = glGenLists (1);
if (!fTopPODL) {
G4cout <<
"ERROR: G4OpenGLStoredSceneHandler::EndModeling: Failure to allocate"
" display List for fTopPODL - suggest trying OpenGL Immediated mode."
<< G4endl;
}
else {
glNewList (fTopPODL, GL_COMPILE); {
for (size_t i = 0; i < fPODLList.size (); i++) {
glPushMatrix();
G4OpenGLTransform3D oglt (fPODLTransformList [i]);
glMultMatrixd (oglt.GetGLMatrix ());
glCallList (fPODLList[i]);
glPopMatrix();
}
}
glEndList ();
if (fpViewer -> GetViewParameters ().GetDrawingStyle() == G4ViewParameters::hlr) {
initialize_hlr = false;
// glDisable (GL_POLYGON_OFFSET_FILL);
}
}
G4VSceneHandler::EndModeling ();
}
void G4OpenGLStoredSceneHandler::ClearStore () {
G4VSceneHandler::ClearStore (); // Sets need kernel visit, etc.
size_t i;
// Delete OpenGL display lists.
// Delete OpenGL permanent display lists.
for (i = 0; i < fPODLList.size (); i++) {
if (fPODLList [i]) {
glDeleteLists (fPODLList [i], 1);
@@ -137,6 +164,34 @@ void G4OpenGLStoredSceneHandler::ClearStore () {
G4cerr << "Warning : NULL display List in fPODLList." << G4endl;
}
}
if (fTopPODL) glDeleteLists (fTopPODL, 1);
fTopPODL = 0;
// Clear other lists, dictionary, etc.
fPODLList.clear ();
fPODLTransformList.clear ();
fSolidMap.clear ();
// ...and clear transient store...
for (i = 0; i < fTODLList.size (); i++) {
if (fTODLList [i]) {
glDeleteLists (fTODLList [i], 1);
} else {
G4cerr << "Warning : NULL display List in fTODLList." << G4endl;
}
}
fTODLList.clear ();
fTODLTransformList.clear ();
}
void G4OpenGLStoredSceneHandler::ClearTransientStore () {
G4VSceneHandler::ClearTransientStore ();
size_t i;
// Delete OpenGL transient display lists.
for (i = 0; i < fTODLList.size (); i++) {
if (fTODLList [i]) {
glDeleteLists (fTODLList [i], 1);
@@ -145,56 +200,20 @@ void G4OpenGLStoredSceneHandler::ClearStore () {
}
}
if (fTopPODL) glDeleteLists (fTopPODL, 1);
fTopPODL = 0;
fMemoryForDisplayLists = glIsList (fTopPODL = glGenLists (1));
// Clear other lists, dictionary, etc.
fPODLList.clear ();
fTODLList.clear ();
fPODLTransformList.clear ();
fTODLTransformList.clear ();
fSolidMap.clear ();
}
void G4OpenGLStoredSceneHandler::BeginModeling () {
if (fpViewer -> GetViewParameters ().GetDrawingStyle() == G4ViewParameters::hlr) {
initialize_hlr = true;
}
G4VSceneHandler::BeginModeling();
}
void G4OpenGLStoredSceneHandler::EndModeling () {
// Make a List which calls the other lists.
// if (!(fTopPODL = glGenLists (1))) {
// G4Exception ("Unable to allocate display List for fTopPODL in G4OpenGLStoredSceneHandler");
// }
glNewList (fTopPODL, GL_COMPILE); {
for (size_t i = 0; i < fPODLList.size (); i++) {
glPushMatrix();
G4OpenGLTransform3D oglt (fPODLTransformList [i]);
glMultMatrixd (oglt.GetGLMatrix ());
glCallList (fPODLList[i]);
glPopMatrix();
}
}
glEndList ();
G4VSceneHandler::EndModeling ();
if (fpViewer -> GetViewParameters ().GetDrawingStyle() == G4ViewParameters::hlr) {
initialize_hlr = false;
// glDisable (GL_POLYGON_OFFSET_FILL);
// Make sure screen corresponds to graphical database...
if (fpViewer) {
fpViewer -> SetView ();
fpViewer -> ClearView ();
fpViewer -> DrawView ();
}
}
void G4OpenGLStoredSceneHandler::RequestPrimitives (const G4VSolid& solid) {
if (fReadyForTransients ||
GetModel () -> GetModelingParameters () -> GetRepStyle () ==
G4ModelingParameters::hierarchy) {
if (fReadyForTransients) {
G4VSceneHandler::RequestPrimitives (solid);
}
else {
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLStoredViewer.cc,v 1.5.2.1 2001/06/28 19:15:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLStoredViewer.cc,v 1.7 2001/08/14 18:03:19 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 7th February 1997
@@ -42,22 +42,36 @@
#include <assert.h>
#include <unistd.h>
class G4OpenGLStoredSceneHandler;
#include "G4OpenGLStoredSceneHandler.hh"
G4OpenGLStoredViewer::G4OpenGLStoredViewer (G4OpenGLStoredSceneHandler& scene):
G4VViewer (scene, -1),
G4OpenGLViewer (scene),
fSceneHandler (scene)
{}
G4OpenGLStoredViewer::G4OpenGLStoredViewer
(G4OpenGLStoredSceneHandler& sceneHandler):
G4VViewer (sceneHandler, -1),
G4OpenGLViewer (sceneHandler),
fG4OpenGLStoredSceneHandler (sceneHandler)
{
fLastVP = fDefaultVP; // Not sure if this gets executed before or
// after G4VViewer::G4VViewer!! Doesn't matter much.
}
G4OpenGLStoredViewer::~G4OpenGLStoredViewer () {}
void G4OpenGLStoredViewer::KernelVisitDecision () {
// Trigger a display List refresh if necessary. This is a checklist
// of relevant view parameters.
// If there's a significant difference with the last view parameters
// of either the scene handler or this viewer, trigger a rebuild.
if (!fG4OpenGLStoredSceneHandler.fTopPODL ||
CompareForKernelVisit(fG4OpenGLStoredSceneHandler.fLastVP) ||
CompareForKernelVisit(fLastVP)) {
NeedKernelVisit ();
}
fLastVP = fVP;
fG4OpenGLStoredSceneHandler.fLastVP = fVP;
}
G4bool G4OpenGLStoredViewer::CompareForKernelVisit(G4ViewParameters& lastVP) {
static G4ViewParameters lastVP; // Initialised to default.
G4bool need = false;
if (
@@ -86,23 +100,22 @@ void G4OpenGLStoredViewer::KernelVisitDecision () {
if (!need && lastVP.IsExplode () &&
(lastVP.GetExplodeFactor () != fVP.GetExplodeFactor ()))
need = true;
if (need) {
lastVP = fVP;
NeedKernelVisit ();
}
return need;
}
void G4OpenGLStoredViewer::DrawDisplayLists () {
if (fSceneHandler.fTopPODL) glCallList (fSceneHandler.fTopPODL);
if (fG4OpenGLStoredSceneHandler.fTopPODL)
glCallList (fG4OpenGLStoredSceneHandler.fTopPODL);
G4int nTODLs = fSceneHandler.fTODLList.size ();
G4int nTODLs = fG4OpenGLStoredSceneHandler.fTODLList.size ();
for (int i = 0; i < nTODLs; i++) {
glPushMatrix();
G4OpenGLTransform3D oglt (fSceneHandler.fTODLTransformList [i]);
G4OpenGLTransform3D oglt
(fG4OpenGLStoredSceneHandler.fTODLTransformList [i]);
glMultMatrixd (oglt.GetGLMatrix ());
glCallList (fSceneHandler.fTODLList[i]);
glCallList (fG4OpenGLStoredSceneHandler.fTODLList[i]);
glPopMatrix();
}
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLStoredWin32.cc,v 1.5.4.1 2001/06/28 19:15:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLStoredWin32.cc,v 1.6 2001/07/11 10:08:55 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// OpenGLStoredWin32 graphics system factory.
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.2.4.1 2001/06/28 19:15:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.4 2001/07/14 21:47:53 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Class G4OpenGLStoredWin32Viewer : a class derived from G4OpenGLWin32Viewer and
@@ -47,6 +47,9 @@ G4OpenGLStoredViewer (scene),
G4VViewer (scene, scene.IncrementViewCount ()) {
if (fViewId < 0) return; // In case error in base class instantiation.
}
void G4OpenGLStoredWin32Viewer::Initialse () {
//Check that G4OpenGLWin32Viewer got a double buffered colour visual
@@ -59,7 +62,6 @@ G4VViewer (scene, scene.IncrementViewCount ()) {
glDepthFunc (GL_LEQUAL);
glDepthMask (GL_TRUE);
}
void G4OpenGLStoredWin32Viewer::DrawView () {
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLStoredX.cc,v 1.6.4.1 2001/06/28 19:15:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLStoredX.cc,v 1.7 2001/07/11 10:08:55 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 10th February 1997
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLStoredXViewer.cc,v 1.4.4.1 2001/06/28 19:15:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLStoredXViewer.cc,v 1.7 2001/08/14 18:03:20 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 7th February 1997
@@ -59,6 +59,11 @@ G4VViewer (scene, scene.IncrementViewCount (), name) {
" G4OpenGLXViewer couldn't get a visual." << G4endl;
return;
}
}
G4OpenGLStoredXViewer::~G4OpenGLStoredXViewer () {}
void G4OpenGLStoredXViewer::Initialise () {
CreateGLXContext (vi_stored);
@@ -72,22 +77,20 @@ G4VViewer (scene, scene.IncrementViewCount (), name) {
glDepthFunc (GL_LEQUAL);
glDepthMask (GL_TRUE);
}
G4OpenGLStoredXViewer::~G4OpenGLStoredXViewer () {}
void G4OpenGLStoredXViewer::DrawView () {
//Make sure current viewer is attached and clean...
glXMakeCurrent (dpy, win, cx);
glViewport (0, 0, WinSize_x, WinSize_y);
if (white_background == true) {
glClearColor (1., 1., 1., 1.);
} else {
glClearColor (0., 0., 0., 1.);
}
//Make sure current viewer is attached and clean...
glXMakeCurrent (dpy, win, cx);
glViewport (0, 0, WinSize_x, WinSize_y);
ClearView ();
G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle();
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLStoredXm.cc,v 1.5.4.1 2001/06/28 19:15:43 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLStoredXm.cc,v 1.6 2001/07/11 10:08:55 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 10th February 1997
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLStoredXmViewer.cc,v 1.4.2.1 2001/06/28 19:15:44 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLStoredXmViewer.cc,v 1.6 2001/07/14 21:47:55 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 10th February 1997
@@ -56,6 +56,11 @@ G4VViewer (scene, scene.IncrementViewCount (), name) {
" G4OpenGLXmViewer couldn't get a visual." << G4endl;
return;
}
}
G4OpenGLStoredXmViewer::~G4OpenGLStoredXmViewer () {}
void G4OpenGLStoredXmViewer::Initialise () {
CreateGLXContext (vi_stored);
@@ -75,8 +80,6 @@ G4VViewer (scene, scene.IncrementViewCount (), name) {
glShadeModel (GL_FLAT);
}
G4OpenGLStoredXmViewer::~G4OpenGLStoredXmViewer () {}
void G4OpenGLStoredXmViewer::DrawView () {
if (white_background == true) {
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLTransform3D.cc,v 1.3.4.1 2001/06/28 19:15:44 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLTransform3D.cc,v 1.4 2001/07/11 10:08:56 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 24th October 1996
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLViewer.cc,v 1.11.2.1 2001/06/28 19:15:44 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLViewer.cc,v 1.12 2001/07/11 10:08:56 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 27th March 1996
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLWin32Viewer.cc,v 1.2.4.1 2001/06/28 19:15:44 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLWin32Viewer.cc,v 1.3 2001/07/11 10:08:56 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// G4OpenGLWin32Viewer : Class to provide WindowsNT specific
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXViewer.cc,v 1.10.2.1 2001/06/28 19:15:44 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXViewer.cc,v 1.13 2001/11/29 12:14:01 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 7th February 1997
@@ -540,8 +540,8 @@ G4float* G4OpenGLXViewer::spewPrimitiveEPS (FILE* file, GLfloat* loc) {
GLfloat dx, dy, dr, dg, db, absR, absG, absB, colormax;
G4int steps;
Feedback3Dcolor *vertex;
GLfloat xstep, ystep, rstep, gstep, bstep;
GLfloat xnext, ynext, rnext, gnext, bnext, distance;
GLfloat xstep(0.), ystep(0.), rstep(0.), gstep(0.), bstep(0.);
GLfloat xnext(0.), ynext(0.), rnext(0.), gnext(0.), bnext(0.), distance(0.);
token=G4int (*loc);
loc++;
@@ -863,13 +863,13 @@ GLXContext G4OpenGLXViewer::create_GL_print_context(XVisualInfo*& pvi, G4bool& d
XDefaultScreen (dpy),
snglBuf_RGBA);
if (pvi != NULL) {
if (pvi) {
db=false;
} else {
pvi = glXChooseVisual (dpy,
XDefaultScreen (dpy),
dblBuf_RGBA);
if (NULL) {
if (!pvi) {
db=true;
}
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmBox.cc,v 1.4.2.1 2001/06/28 19:15:44 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmBox.cc,v 1.5 2001/07/11 10:08:56 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Box container class
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmConvenienceRoutines.cc,v 1.5.2.1 2001/06/28 19:15:44 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmConvenienceRoutines.cc,v 1.7 2001/11/29 12:14:02 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 16th April 1997
@@ -191,7 +191,8 @@ void G4OpenGLXmViewer::Add_radio_box (char* label_string,
G4OpenGLXmViewer* pView)
{
XmString button_str;
XmString button_str = XmStringCreateLocalized(""); // ...to
// initialise to something to avoid pedantic warning.
Arg** args;
args = new Arg* [num_buttons];
Widget button;
@@ -368,7 +369,8 @@ void G4OpenGLXmViewer::Add_slider_box (char* label_string,
XtCallbackRec** slider_box_callbacks,
Widget* parent_widget)
{
XmString slider_name_str;
XmString slider_name_str = XmStringCreateLocalized(""); // ...to
// initialise to something to avoid pedantic warning.
Arg** slider_args;
slider_args = new Arg*[num_sliders];
Widget slider;
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmFourArrowButtons.cc,v 1.3.4.1 2001/06/28 19:15:44 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmFourArrowButtons.cc,v 1.4 2001/07/11 10:08:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Four arrow buttons class. Inherits from G4OpenGLXmVWidgetComponent
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmFramedBox.cc,v 1.4.2.1 2001/06/28 19:15:45 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmFramedBox.cc,v 1.5 2001/07/11 10:08:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Framed box container class
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmMainMenubarCallbacks.cc,v 1.8.2.1 2001/06/28 19:15:45 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmMainMenubarCallbacks.cc,v 1.9 2001/07/11 10:08:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 16th April 1997
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmPanningCallbacks.cc,v 1.5.2.1 2001/06/28 19:15:46 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmPanningCallbacks.cc,v 1.6 2001/07/11 10:08:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 16th April 1997
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmPushButton.cc,v 1.4.2.1 2001/06/28 19:15:46 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmPushButton.cc,v 1.5 2001/07/11 10:08:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Push button class. Inherits from G4OpenGLXmVWidgetComponent
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmRadioButton.cc,v 1.4.2.1 2001/06/28 19:15:46 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmRadioButton.cc,v 1.5 2001/07/11 10:08:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Radio button class. Inherits from G4OpenGLXmVWidgetComponent
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmRotationCallbacks.cc,v 1.10.2.1 2001/06/28 19:15:46 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmRotationCallbacks.cc,v 1.11 2001/07/11 10:08:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 16th April 1997
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmSeparator.cc,v 1.3.4.1 2001/06/28 19:15:46 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmSeparator.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Separator class. Inherits from G4OpenGLXmVWidgetComponent
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmSliderBar.cc,v 1.4.2.1 2001/06/28 19:15:46 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmSliderBar.cc,v 1.5 2001/07/11 10:08:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Slider bar class. Inherits from G4OpenGLXmVWidgetComponent
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmStyleCallbacks.cc,v 1.4.2.1 2001/06/28 19:15:46 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmStyleCallbacks.cc,v 1.6 2001/11/12 18:22:09 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 16th April 1997
@@ -65,6 +65,7 @@ void G4OpenGLXmViewer::drawing_style_callback (Widget w,
break;
default:
style = G4ViewParameters::wireframe;
G4Exception("Unrecognised case in drawing_style_callback.");
}
@@ -97,6 +98,7 @@ void G4OpenGLXmViewer::rep_style_callback (Widget w,
break;
default:
style = G4ViewParameters::polyhedron;
G4Exception("Unrecognised case in rep_style_callback.");
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmTextField.cc,v 1.5.2.1 2001/06/28 19:15:46 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmTextField.cc,v 1.6 2001/07/11 10:08:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Text field class. Inherits from G4OpenGLXmVWidgetComponent
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmTopLevelShell.cc,v 1.3.4.1 2001/06/28 19:15:47 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmTopLevelShell.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Top level shell class
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmVWidgetComponent.cc,v 1.3.4.1 2001/06/28 19:15:47 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmVWidgetComponent.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Base class for all Motif component widgets
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmVWidgetContainer.cc,v 1.3.4.1 2001/06/28 19:15:47 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmVWidgetContainer.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Base class for all Motif container widgets
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmVWidgetObject.cc,v 1.3.4.1 2001/06/28 19:15:47 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmVWidgetObject.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Virtual base class for all Motif widgets.
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmVWidgetShell.cc,v 1.3.4.1 2001/06/28 19:15:47 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmVWidgetShell.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//Base class for all Motif shell widgets
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmViewer.cc,v 1.8.2.1 2001/06/28 19:15:47 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmViewer.cc,v 1.10 2001/07/30 23:34:22 johna Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 10th February 1997
@@ -56,25 +56,12 @@
#include "G4Xt.hh"
#include <X11/Shell.h>
static G4ViewParameters viewingParameters;
void G4OpenGLXmViewerSecondaryLoopPostAction ();
void G4OpenGLXmViewer::ShowView () {
viewingParameters = fVP;
G4Xt::getInstance () -> SecondaryLoop ();
}
void G4OpenGLXmViewerSecondaryLoopPostAction ()
{
if(G4Xt::getInstance () -> GetExitSecondaryLoopCode ()==OGL_EXIT_CODE)
{
G4VisManager::GetInstance() -> SetCurrentViewParameters() = viewingParameters;
}
}
void G4OpenGLXmViewer::GetXmConnection () {
G4Xt* interactorManager = G4Xt::getInstance ();
@@ -109,7 +96,7 @@ void G4OpenGLXmViewer::GetXmConnection () {
*toplevel*primaryColorSetId: 3\n\
*toplevel*secondaryColorSetId: 3\n\
");
interactorManager->AddSecondaryLoopPostAction ((G4SecondaryLoopAction)G4OpenGLXmViewerSecondaryLoopPostAction);
// interactorManager->AddSecondaryLoopPostAction ((G4SecondaryLoopAction)G4OpenGLXmViewerSecondaryLoopPostAction);
shell = XtAppCreateShell ((String)fName.data(),(String)fName.data(),topLevelShellWidgetClass,XtDisplay(toplevel),NULL,0);
interactorManager->AddShell (shell);
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLXmWindowHandlingCallbacks.cc,v 1.4.2.1 2001/06/28 19:15:47 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4OpenGLXmWindowHandlingCallbacks.cc,v 1.5 2001/07/11 10:08:59 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Andrew Walkden 16th June 1997