399 lines
18 KiB
Plaintext
399 lines
18 KiB
Plaintext
$Id: History,v 1.69 2006/05/31 02:25:23 perl Exp $
|
|
-------------------------------------------------------------------
|
|
|
|
=========================================================
|
|
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
|
=========================================================
|
|
|
|
Category History file
|
|
---------------------
|
|
This file should be used by G4 developers and category coordinators
|
|
to briefly summarize all major modifications introduced in the code
|
|
and keep track of all category-tags.
|
|
It DOES NOT substitute the CVS log-message one should put at every
|
|
committal in the CVS repository !
|
|
|
|
----------------------------------------------------------
|
|
* Reverse chronological order (last date on top), please *
|
|
----------------------------------------------------------
|
|
|
|
History file for visualization/OpenGL
|
|
-------------------------------------
|
|
|
|
30th May 2006 Joseph Perl (opengl-V08-00-08)
|
|
- G4OpenGLImmediateWin32Viewer: Removed tests on doublebuffer since that
|
|
variable seems to have random behavior and should be assumed false for
|
|
this viewer.
|
|
|
|
29th May 2006 Joseph Perl (opengl-V08-00-07)
|
|
- G4OpenGLWin32Viewer, G4OpenGLImmediateWin32Viewer, G4OpenGLStoredWin32Viewer:
|
|
Removed common FinishView and instead made separate FinishView for the two different
|
|
versions of this viewer since each wants a different buffer swapping behaviour.
|
|
|
|
12th May 2006 John Allison (opengl-V08-00-06)
|
|
- G4OpenGLWin32Viewer: Fixed buffer swapping behaviour.
|
|
|
|
28th April 2006 John Allison (opengl-V08-00-05 - needs visman-V08-00-14)
|
|
- G4OpenGLStoredX/Xm/Win32Viewer.cc: Fixed buffer swapping problem when
|
|
recomputing transients.
|
|
|
|
24th April 2006 John Allison (opengl-V08-00-04)
|
|
- Fixed compilation problem on Windows.
|
|
|
|
19th April 2006 John Allison (opengl-V08-00-03)
|
|
- G4OpenGLSceneHandler, G4OpenGLStoredSceneHandler and
|
|
G4OpenGLImmediateSceneHandler:
|
|
o Implemented Begin/EndPrimitives2D (needs visman-V08-00-12 and
|
|
greps-V08-00-02).
|
|
o Migrated to direct access to G4PhysicalVolumeModel.
|
|
- G4OpenGLStoredX/Xm/Win32Viewer.cc: bug fix for conditional drawing
|
|
of display lists in DrawView.
|
|
|
|
14th March 2006 John Allison (opengl-V08-00-02)
|
|
- Refined display list building and re-drawing algorithm.
|
|
o G4OpenGLStoredSceneHandler::EndModeling: Changed to GL_COMPILE_AND_EXECUTE.
|
|
o Avoided unnecessary re-execution in DrawView (X, Xm and Win32).
|
|
- G4OpenGLStoredSceneHandler::RequestPrimitives: Refined display list
|
|
re-use algorithm. In test19 with global culling off, numbers of
|
|
display lists used are:
|
|
o 191 No re-use:
|
|
o 73 Before this change: re-use except replicas (includes parameterised).
|
|
o 33 After this change: re-use except parameterised and replicas in radius.
|
|
|
|
26th January 2006 John Allison (opengl-V08-00-01)
|
|
- Coworks with visman-V08-00-04 (removed fModified).
|
|
- Removed references to fModified.
|
|
- Tidying: Removed unnecessary ClearView.
|
|
- G4OpenGLSceneHandler.cc: Added some (commented out) code for
|
|
possible future implementation of 2D drawing.
|
|
- G4OpenGLXViewer.cc: Improved exception printing.
|
|
|
|
11th January 2006 John Allison (opengl-V08-00-00)
|
|
- Improved efficiency: all DrawView's:
|
|
o Don't call ClearView.
|
|
o Set flag so SetView will not be called in ProcessView.
|
|
o Leave background colour to ClearView.
|
|
- Used dynamic_cast<G4OpenGLViewer*>, no need for G4OpenGLViewerDataStore.
|
|
- G4OpenGLXmViewerMessenger: Made a smart singleton; interrogates vis manager
|
|
for current viewer.
|
|
|
|
24th November 2005 John Allison (opengl-V07-01-09)
|
|
- Protected G4OpenGLXmViewerMessenger with #ifdef G4VIS_BUILD_OPENGLXM_DRIVER.
|
|
|
|
22nd November 2005 John Allison (opengl-V07-01-08)
|
|
- Added G4OpenGLXmViewerMessenger.
|
|
- Corrected text position.
|
|
- Made depth test for polyhedron GL_LEQUAL (slightly dominant).
|
|
|
|
17th November 2005 Gabriele Cosmo
|
|
- Fixed settings of background style for WIN32 viewers.
|
|
|
|
13th November 2005 John Allison (opengl-V07-01-07)
|
|
- Implemented X-Window-style geometry hints in G4OpenGLXViewer.
|
|
|
|
13th October 2005 John Allison (opengl-V07-01-06)
|
|
- Allowed any colour background.
|
|
- Implemented non-uniform scaling.
|
|
- Migration to <sstream>.
|
|
|
|
29th September 2005 John Allison (opengl-V07-01-05)
|
|
- Added G4OpenGLViewerDataStore to facilitate access of viewer data by
|
|
scene handler.
|
|
- Re-implemented transparency button in OpenGLXm.
|
|
|
|
13th September 2005 John Allison (opengl-V07-01-04 - needs visman-V07-01-02)
|
|
- Implemented white background for all OGL viewers.
|
|
- G4OpenGLSceneHandler.cc:
|
|
o Fixed hidden line removal (bug introduced in opengl-V07-01-02).
|
|
o Fixed treatment of triangular polygons for drawing of auxiliary/soft lines.
|
|
o Corrected GetTextColour(text).
|
|
o Corrected GetColour(polyhedron).
|
|
|
|
5th September 2005 John Allison (opengl-V07-01-03)
|
|
- Bug fix: stored transparent objects were being lost.
|
|
|
|
2nd September 2005 John Allison (opengl-V07-01-02 - needs visman-V07-01-01)
|
|
- Bug fix: edgeflags problem introduced with smooth shading in
|
|
opengl-V07-01-00.
|
|
- Implementation of a "better algorithm" for the rendering of
|
|
transparent polyhedron objects. It renders all opaque objects
|
|
first, then renders the transparent objects with the depth buffer in
|
|
read-only mode (see OpenGL Programming Guide). It uses the new
|
|
facility in G4VSceneHandler::ProcessScene for an optional second pass
|
|
of the run-duration models in the scene. Note this algorithm is
|
|
still only an approximation. It will still give the wrong blended
|
|
colour if two transparent objects are rendered front first. For
|
|
nested transparent objects, this is unfortunate, because
|
|
G4PhysicalVolumeModel traverses Geant4's mother-daughter hierarchy
|
|
in such a way that mothers come first. Also, there is no guaranteed
|
|
relationship between the order of rendering and the depth of two
|
|
transparent objects if they are at the same level or in different
|
|
branches of the hierarchy. Still, the only error will be an
|
|
incorrect colour - the objects will still give the appearance of
|
|
transparency, so it's a pretty good algorithm. (An even better
|
|
algorithm would be to attempt to render the facets in depth order,
|
|
deepest first. But how do you calculate the depth - centre of area,
|
|
deepest corner? One can still imagine pathalogical cases that would
|
|
sometimes give the wrong colour. Also, for stored mode, the order
|
|
is fixed in a display list so when the user rotates the view, one
|
|
would lose the depth ordering. I think we have to accept that
|
|
blending in OpenGL is only ever an approximation. For accurate
|
|
blending, use RayTracer.)
|
|
|
|
28th August 2005 John Allison (opengl-V07-01-01)
|
|
- Half-way implementation of rendering of transparent polyhedron
|
|
objects. In this implementation, no account is taken of the order
|
|
of rendering. Transparent objects are rendered with depth testing
|
|
off so that objects behind can still be seen. But this means that
|
|
opaque objects in front do not obscure them - and they jolly well
|
|
should! A better algorithm is to render all opaque objects first,
|
|
then render the transparent objects with the depth buffer in
|
|
read-only mode (see OpenGL Programming Guide). This is going to
|
|
take a little more thought - see opengl-V07-01-02.
|
|
|
|
20th July 2005 John Allison (opengl-V07-01-00)
|
|
- Introduced smooth shading, taking advantage of hitherto un-noticed
|
|
feature of HepPolyhedron::GetNextFacet that calculates the normals
|
|
at each vertex so that curved surfaces are rendered more
|
|
realistically (Gouraud shading).
|
|
- G4OpenGLImmediateSceneHandler.cc: Removed unnecessary #include's.
|
|
- G4OpenGLXmViewer.cc: Fixed to use window size hints. This changes
|
|
the default window size. It used to be 400x400, hardcoded in
|
|
G4OpenGLXmViewer.cc, but now it picks up the
|
|
G4ViewParameters::GetWindowSizeHintX/Y, which defaults to 600x600.
|
|
The user may change it on the command line, e.g:
|
|
/vis/open OGLSXm 500
|
|
or
|
|
/vis/viewer/create ! ! 500
|
|
|
|
30th May 2005 John Allison (opengl-V07-00-03)
|
|
- Fixed compilation problem in OpenGL on SUN. (Replaced multimap by
|
|
map of vectors in G4OpenGLFontBaseStore.)
|
|
|
|
4th May 2005 John Allison (opengl-V07-00-02)
|
|
- Restored sequence Set/Clear/DrawView in ClearTransientStore. (It
|
|
was taken out to prevent recursive calling, but that seems to be OK,
|
|
and it is needed to implement refresh at end of event/run.)
|
|
|
|
22nd April 2005 John Allison (opengl-V07-00-01)
|
|
- Rationalised work of opengl-V07-00-00. Functionality unchanged.
|
|
o G4OpenGLViewer.hh: Created virtual void CreateFontLists(){}.
|
|
o In all concrete viewers, added call to CreateFontLists().
|
|
o Moved font code for X to G4OpenGLXViewer::CreateFontLists().
|
|
o There is no longer a need to implement in the XmViewer, since it
|
|
now inherits. Thus the font code now only appears once for X.
|
|
o Awaiting implementation for WIN32.
|
|
|
|
17th April 2005 John Allison (opengl-V07-00-00)
|
|
- Based on vis-V07-00-13.
|
|
- Implemented text for X-Windows viewers. Uses glXUseXFont, which
|
|
creates display lists for nominated fonts. Simple-minded scheme in
|
|
which each viewer creates its own font display lists for a variety
|
|
of sizes, which are accessed by the scene handler through a new
|
|
class, G4OpenGLFontBaseStore. Affected methods:
|
|
G4OpenGLXViewer::CreateMainWindow()
|
|
G4OpenGLXmViewer::CreateMainWindow()
|
|
G4OpenGLSceneHandler::AddPrimitive (const G4Text& text)
|
|
|
|
18th November 2004 John Allison (opengl-V06-02-07)
|
|
- Removed redundant fLastVP from G4OpenGLStoredSceneHandler.
|
|
|
|
15th November 2004 Guy Barrand
|
|
- G4OpenGLWin32Viewer::ShowView : glFlush was not sufficient
|
|
to see trajectories (for example with N03). Correct so that
|
|
ShowView do a FinishView that does : glFlush, wglSwapBuffer
|
|
and empty the Windows message queue.
|
|
|
|
22nd September 2004 John Allison (opengl-V06-02-06)
|
|
- doxygen output to tmp area.
|
|
- Trap non-regular polyhedrons.
|
|
|
|
13th September 2004 Gabriele Cosmo (opengl-V06-02-05)
|
|
- G4OpenGLTransform3D.cc: simplified implementation for GetMatrix()
|
|
to allow for porting on CLHEP-1.9.X series.
|
|
|
|
23rd July 2004 John Allison
|
|
- Draws auxiliary edges if required.
|
|
- Added auxiliary edge button.
|
|
|
|
16th July 2004 John Allison (opengl-V06-02-04)
|
|
- Refinements to hidden line, hidden surface removal.
|
|
|
|
14th July 2004 John Allison (opengl-V06-02-03)
|
|
- Removed superfluous #include "G4VisManager.hh" from G4OpenGLXmViewer.cc.
|
|
|
|
13th July 2004 John Allison (opengl-V06-02-02)
|
|
- Hidden line *and* hidden surface removal now works.
|
|
|
|
9th July 2004 John Allison (opengl-V06-02-01)
|
|
- Fixed long-standing problem with hidden line removal.
|
|
- Improved messages on failure to get visual.
|
|
- Added GLX_STENCIL_SIZE explicit request to visual attributes - most
|
|
systems provided by default anyway, so no effect.
|
|
|
|
1st July 2004 John Allison (opengl-V06-02-00)
|
|
- Rationalised G4OpenGLSceneHandler ready for hidden line removal.
|
|
- Bug fix in G4OpenGLXmPanningCallbacks.cc for dolly control.
|
|
|
|
18th June 2004 Gunter Folger (geant4-06-02)
|
|
9th June 2004 Gabriele Cosmo (vis-V06-01-03)
|
|
7th June 2004 Gabriele Cosmo (vis-V06-01-02)
|
|
- GNUmakefile and disclaimer changes - see visualization/History.
|
|
|
|
9th April 2004 John Allison (vis-V06-01-01 + interfaces-V06-01-00)
|
|
- Tagged OpenGL as below. Joint with interfaces-V06-01-00.
|
|
|
|
7th April 2004 Guy Barrand
|
|
- visualization/OpenGL/* : use the G4OpenGL.hh file.
|
|
- Added : visualization/OpenGL/include/G4OpenGL.hh to encapsulate
|
|
the include of gl/gl.h and gl/glu.h that may be platform dependant.
|
|
It permits to rm some #ifdef WIN32 spread in the code. It opens also
|
|
the way to the usage of the Apple OpenGL on a Mac.
|
|
|
|
17th February 2004 John Allison (opengl-V06-00-00)
|
|
- Fixed bug #581: wrong order of statements in
|
|
G4OpenGLXViewer::~G4OpenGLXViewer (see bug report).
|
|
|
|
4th October 2003 Gabriele Cosmo (vis-V05-02-01)
|
|
- GNUmakefile:
|
|
o replaced "digits+hits" with "digits_hits".
|
|
- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00".
|
|
|
|
22nd September 2003 John Allison (vis-V05-02-00, greps-V05-02-00)
|
|
- Cosmetic change to regularise names:
|
|
o changed _Feedback3Dcolo to G4OpenGLXViewerFeedback3Dcolor.
|
|
o changed _DepthIndex to G4OpenGLXViewerDepthIndex.
|
|
|
|
23rd June 2003 Guy Barrand (opengl-V05-01-02)
|
|
- Commit a first implementation of G4OpenGLWin32Viewer.
|
|
|
|
10th June 2003 Gabriele Cosmo (opengl-V05-01-01)
|
|
- More fixes for warnings in viewers classes.
|
|
- Added inclusion of <windows.h> for WIN32 platforms when GL headers
|
|
are included.
|
|
|
|
05th June 2003 Gabriele Cosmo (opengl-V05-01-00)
|
|
- Fixes for porting compilation on WIN32:
|
|
o G4OpenGLWin32Viewer[.hh.cc]: removed inclusion of <GL/glx.h>.
|
|
o G4OpenGLViewer.cc: replaced local variables near/far with pnear/pfar
|
|
since declared 'obsolete' in WIN32 platforms.
|
|
|
|
27th November 2002 John Allison (vis-V04-01-08)
|
|
- Improved algorithm of CompareForKernelVisit.
|
|
|
|
11th November 2002 John Allison (opengl-V04-01-02)
|
|
- Corrected inclusion of G4OpenGLXViewer #ifdef X_DRIVER.
|
|
- Added G4OpenGLSceneHandler::AddThis for trajectories and hits - simply
|
|
call default but there as a marker and encourager.
|
|
- Added tracking and digits+hits/hits to GNUmakefile.
|
|
|
|
16th October 2002 John Allison (opengl-V04-01-01)
|
|
- Fix for WIN32. Now compiles but viewer not implemented.
|
|
|
|
24th June 2002 John Allison (opengl-V04-01-00)
|
|
- Further cosmetic changes in G4OpenGLXViewer.cc for DEC compiler.
|
|
|
|
10th June 2002 John Allison (opengl-V04-00-03)
|
|
- Cosmetic changes for SUN-CC in G4OpenGLXmConvenienceRoutines.cc.
|
|
|
|
6th June 2002 John Allison (opengl-V04-00-02)
|
|
- Cosmetic changes for GNU compiler in G4OpenGLXViewer.cc.
|
|
|
|
23rd February 2002 John Allison (opengl-V04-00-01)
|
|
- Changes to encourage compilation on Windows in preparation for
|
|
implementation of G4OpenGLWin32Viewer. Removed spurious includes of
|
|
glx.h, unistd.h and assert.h.
|
|
|
|
24th August 2001 John Allison (vis-V03-02-13)
|
|
- Limited the printing of warnings in
|
|
G4OpenGLSceneHandler::AddPrimitive (const G4Text& text).
|
|
|
|
14th August 2001 John Allison (vis-V03-02-11)
|
|
- Improved KernelVisitDecision.
|
|
- Fixed a few small bugs in multiple "stored" viewers, but see next item.
|
|
- There's an outstanding bug in OpenGL Stored. If there is more than
|
|
one viewer controlled by a scene handler, after a ClearStore on the
|
|
scene handler, e.g., with /vis/scene/notifyHandlers, the first
|
|
viewer to get refreshed should trigger the display list rebuild, but
|
|
the second need not. However, when the second viewer's turn comes,
|
|
the display lists are there, and are called, e.g.,
|
|
G4OpenGLStoredXViewer::DrawView calls
|
|
G4OpenGLStoredViewer::DrawDisplayLists that calls glCallList, but
|
|
nothing appears on the screen. To overcome this there is some
|
|
temporary code in G4VViewer::NeedKernelVisit which marks *all*
|
|
viewers to force a rebuild. To see the symptoms, comment out that
|
|
temporary code and issue these commands:
|
|
/vis/verbose c
|
|
/control/verbose 2
|
|
/vis/scene/create
|
|
/vis/scene/add/volume
|
|
/vis/sceneHandler/create OGLSX
|
|
/vis/viewer/create ! ! 1
|
|
/run/beamOn
|
|
/vis/viewer/create ! ! 1
|
|
/vis/viewer/select viewer-0
|
|
/vis/viewer/viewpointThetaPhi 20 20
|
|
/vis/viewer/select viewer-1
|
|
/vis/viewer/viewpointThetaPhi 40 40
|
|
/vis/viewer/set/style surface
|
|
/vis/viewer/refresh
|
|
/vis/viewer/select viewer-0
|
|
/vis/viewer/refresh
|
|
/vis/viewer/select viewer-1
|
|
/vis/viewer/set/style wireframe
|
|
/vis/scene/notifyHandlers
|
|
You may have to do this too:
|
|
/vis/viewer/select viewer-0
|
|
/vis/scene/notifyHandlers
|
|
One of the viewers is empty. Curious!!
|
|
|
|
9th August 2001 John Allison (vis-V03-02-10-00)
|
|
- Implemented G4OpenGLStoredSceneHandler::ClearTransientStore()
|
|
- Removed G4OpenGLSceneHandler::AddPrimitive (const G4Polymarker&) (it only
|
|
invoked G4VSceneHandler::AddPrimitive (const G4Polymarker&) which is
|
|
picked up by inheritance anyway.
|
|
- Removed lots of unnecessary header files from G4OpenGLStoredSceneHandler.cc.
|
|
- Corrected order of calling base class functions in
|
|
G4OpenGLStoredSceneHandler::Begin/EndModeling.
|
|
|
|
24th July 2001 John Allison (vis-V03-02-06)
|
|
- G4OpenGLSceneHandler::AddPrimitive (const G4Text&) handles transformation.
|
|
|
|
14th July 2001 John Allison (opengl-V03-02-00)
|
|
- Fixed crash in optimised mode: added Initialise() to viewers so
|
|
that windows are opened after viewers are fully constructed.
|
|
|
|
2nd April 2001 John Allison (opengl-V03-00-01 wrt vis-V03-00-09)
|
|
- Tidied G4OpenGLXmViewer callback code. Removed superfluous header files.
|
|
|
|
7th March 2001 John Allison
|
|
- Changed char* to const char* in many places and that gave problems in
|
|
calls to Xt and Xm. Hope all's OK. Differences:
|
|
cvs diff -r vis-V03-00-06 vis-V03-00-07
|
|
|
|
25th January 2001 John Allison (opengl-V03-00-00)
|
|
- Implemented running re-calculation of up-vector in the case of "object
|
|
rotation" (lights move with camera) to prevent "flipping" of view when
|
|
camera passes through up-vector. Note that the default is "camera
|
|
rotation" (lights do not move with camera, i.e., remain fixed relative
|
|
to object) so the default is that this "flipping" can happen. To set
|
|
"object rotation" (lights move with camera) use
|
|
/vis/lights/move_with_camera true (soon to be
|
|
/vis/viewer/set/lights move-with-camera) or click "Object" radio button
|
|
on Rotation Panel in OpenGLXm mode.
|
|
- Changed some objects to references for efficiency. E.g.:
|
|
const G4Vector3D& vp = pView->fVP.GetViewpointDirection ().unit ();
|
|
|
|
22nd May 2000 John Allison (opengl-V01-01-00)
|
|
- Fixed slow response of 2nd window of OpenGLXm. Worked around Mesa bug
|
|
by sharing static visuals in G4OpenGLXViewer (Guy Barrand):
|
|
static XVisualInfo* vi_single_buffer;
|
|
static XVisualInfo* vi_double_buffer;
|
|
- Removed ChooseVisual from G4OpenGLXmViewer.cc - done in base class
|
|
G4OpenGLXViewer.
|
|
- Protected double deletion of window in destructors of G4OpenGLXmViewer
|
|
and G4OpenGLXViewer (Guy Barrand).
|
|
- Changed requested bits per colour to r,g,b = 1,1,1 in G4OpenGLViewer.cc.
|
|
- Corrected order of CreateMainWindow() and InitializeGLView() in X*Viewer
|
|
constructors.
|