Import Geant4 9.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 16:25:56 +02:00
parent 74cad5e589
commit 89a9605df1
4440 changed files with 379508 additions and 189225 deletions
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4OpenGLImmediateQtViewer.cc,v 1.17 2009/11/03 11:02:32 lgarnier Exp $
// GEANT4 tag $Name: geant4-09-03 $
// $Id: G4OpenGLImmediateQtViewer.cc,v 1.22 2010/06/23 13:29:23 lgarnier Exp $
// GEANT4 tag $Name: geant4-09-04 $
//
//
// Class G4OpenGLImmediateQtViewer : a class derived from G4OpenGLQtViewer and
@@ -52,7 +52,8 @@ G4OpenGLImmediateQtViewer::G4OpenGLImmediateQtViewer
#else
setFocusPolicy(Qt::StrongFocus); // enable keybord events
#endif
fHasToRepaint =false;
fHasToRepaint = false;
fIsRepainting = false;
if (fViewId < 0) return; // In case error in base class instantiation.
}
@@ -96,19 +97,8 @@ void G4OpenGLImmediateQtViewer::initializeGL () {
}
/** To ensure compatibility with DrawView method
*/
void G4OpenGLImmediateQtViewer::DrawView() {
#ifdef G4DEBUG_VIS_OGL
printf("G4OpenGLImmediateQtViewer::DrawView VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n");
#endif
// That's no the same logic as Stored Viewer, I don't know why...
// see G4OpenGLStoredQtViewer::DrawView for more informations
updateQWidget();
#ifdef G4DEBUG_VIS_OGL
printf("G4OpenGLImmediateQtViewer::DrawView ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
#endif
}
@@ -130,7 +120,7 @@ void G4OpenGLImmediateQtViewer::ComputeView () {
HaloingFirstPass ();
NeedKernelVisit ();
ProcessView ();
glFlush ();
FinishView();
#ifdef G4DEBUG_VIS_OGL
printf("G4OpenGLImmediateQtViewer::ComputeView First ProcessView ok\n");
#endif
@@ -151,19 +141,6 @@ void G4OpenGLImmediateQtViewer::ComputeView () {
fHasToRepaint = true;
}
void G4OpenGLImmediateQtViewer::FinishView()
{
#ifdef G4DEBUG_VIS_OGL
printf("G4OpenGLImmediateQtViewer::FinishView() BEGIN\n");
#endif
glFlush ();
#ifdef G4DEBUG_VIS_OGL
printf("G4OpenGLImmediateQtViewer::FinishView() END\n");
#endif
}
/**
- Lors du resize de la fenetre, on doit non pas redessiner le detecteur, mais aussi les evenements
*/
@@ -171,24 +148,32 @@ void G4OpenGLImmediateQtViewer::resizeGL(
int aWidth
,int aHeight)
{
ResizeWindow(aWidth,aHeight);
fHasToRepaint = sizeHasChanged();
if ((aWidth > 0) && (aHeight > 0)) {
ResizeWindow(aWidth,aHeight);
fHasToRepaint = sizeHasChanged();
}
}
void G4OpenGLImmediateQtViewer::paintGL()
{
#ifdef G4DEBUG_VIS_OGL
printf("\n\nG4OpenGLImmediateQtViewer::paintGL ??\n");
#endif
if (fIsRepainting) {
// return ;
}
if (!fReadyToPaint) {
fReadyToPaint= true;
return;
}
if ((getWinWidth() == 0) && (getWinHeight() == 0)) {
return;
}
// DO NOT RESIZE IF SIZE HAS NOT CHANGE
if ( !fHasToRepaint) {
#if QT_VERSION < 0x040000
if (((getWinWidth() == (unsigned int)width())) &&(getWinHeight() == (unsigned int) height())) {
return;
}
#else
// L. Garnier : Trap to get the size with mac OSX 10.6 and Qt 4.6(devel)
// Tested on Qt4.5 on mac, 4.4 on windows, 4.5 on unbuntu
@@ -202,9 +187,14 @@ void G4OpenGLImmediateQtViewer::paintGL()
sh = frameGeometry().height();
}
if ((getWinWidth() == (unsigned int)sw) &&(getWinHeight() == (unsigned int)sh)) {
#endif
return;
} else if ((sw == 0) && (sh == 0)) { // NOT A TOP LEVEL WIDGET
if (((getWinWidth() == (unsigned int)width())) &&(getWinHeight() == (unsigned int) height())) {
return;
}
}
#endif
}
#ifdef G4DEBUG_VIS_OGL
printf("G4OpenGLImmediateQtViewer::paintGL VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ready %d\n",fReadyToPaint);
@@ -220,6 +210,7 @@ void G4OpenGLImmediateQtViewer::paintGL()
#ifdef G4DEBUG_VIS_OGL
printf("G4OpenGLImmediateQtViewer::paintGL ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ready %d\n\n\n",fReadyToPaint);
#endif
fIsRepainting = false;
}
void G4OpenGLImmediateQtViewer::mousePressEvent(QMouseEvent *event)
@@ -237,6 +228,12 @@ void G4OpenGLImmediateQtViewer::wheelEvent (QWheelEvent * event)
G4wheelEvent(event);
}
void G4OpenGLImmediateQtViewer::showEvent (QShowEvent *)
{
fHasToRepaint = true;
}
/**
* This function was build in order to make a zoom on double clic event.
* It was think to build a rubberband on the zoom area, but never work fine
@@ -262,9 +259,17 @@ void G4OpenGLImmediateQtViewer::contextMenuEvent(QContextMenuEvent *e)
G4manageContextMenuEvent(e);
}
void G4OpenGLImmediateQtViewer::paintEvent(QPaintEvent *) {
if ( fHasToRepaint) {
updateGL();
}
}
void G4OpenGLImmediateQtViewer::updateQWidget() {
fHasToRepaint= true;
updateGL();
repaint();
fHasToRepaint= false;
}
@@ -274,6 +279,7 @@ void G4OpenGLImmediateQtViewer::ShowView (
//////////////////////////////////////////////////////////////////////////////
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
{
fHasToRepaint = true;
#if QT_VERSION < 0x040000
setActiveWindow();
#else