.$Id: History 78838 2014-01-28 08:46:17Z gcosmo $
-------------------------------------------------------------------

     =========================================================
     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/HepRep sub-category
--------------------------------------------------

9th December 2013  John Allison  (vis-HepRep-V10-00-00)
- G4HepRep.cc, G4HepRepFile.cc: Declared as G4VGraphicsSystem::fileWriter.

16th June 2013  John Allison  (vis-HepRep-V09-06-06)
  o G4HepRepSceneHandler.cc: Added an assert to keep Coverity happy.

26th March 2013  Ben Morgan  (vis-HepRep-V09-06-05)
- sources.cmake:
  o BUGFIX #1322 : Update include paths/library linking to use new 
  ZLIB variables allowing transparent use of internal/external ZLIB
  as required.
- G4HepRepSceneHandler:
  o BUGFIX #1322 : Remove #ifndef block on G4LIB_USE_ZLIB as we now
  always have zlib available.

24th February 2013  John Allison  (vis-HepRep-V09-06-04)
- G4HepRepMessenger, G4HepRepSceneHandler:
  o Removed unused fields as warned by new clang compiler.

29th January 2013  John Allison  (vis-HepRep-V09-06-03)
- More Coverity fixes and un-doing of some previous ones.

12th and 13th January 2013  John Allison  (vis-HepRep-V09-06-02)
  o Coverity fixes.

2nd December 2012  John Allison  (vis-HepRep-V09-06-00)
- Remove NURBS.

8th August 2012  John Allison  (vis-HepRep-V09-05-05 and 06)
- G4HepRepSceneHandler.cc: Intercepted 2D primitives.

5th July 2012  Gabriele Cosmo  (vis-HepRep-V09-05-04)
- Explicitly use inclusion of headers for system of units and physical
  constants, in plan to remove implicit inclusion from globals.hh.

10th June 2012  John Allison  (vis-HepRep-V09-05-03)
- Fixed shadowing in the following files:
  o include/cheprep/AbstractXMLWriter.h
  o src/IndentPrintWriter.cc
  o src/XMLWriter.cc
  o src/DefaultHepRepAttDef.cc
  o src/DefaultHepRepTreeID.cc
  o src/ZipOutputStreamBuffer.cc
  o src/DeflateOutputStreamBuffer.cc
  o src/DefaultHepRepInstanceTree.cc
  o src/DefaultHepRepAttValue.cc
  o src/GZIPOutputStreamBuffer.cc
  o src/DefaultHepRepPoint.cc
  o src/BHepRepWriter.cc
  o src/DefaultHepRepAction.cc
  o src/G4HepRepSceneHandler.cc

8th June 2012  John Allison  (vis-HepRep-V09-05-02)
- G4HepRepFileSceneHandler.cc: Shadow clean.

23rd May 2012  John Allison  (vis-HepRep-V09-05-01)
- Health Check 2012: Migrated (see management/History):
  o G4HepRepFileSceneHandler::ClearTransientStore:
    . Removed call to G4VSceneHandler::ClearTransientStore.

28th February 2012  John Allison  (vis-HepRep-V09-05-00)
- Migrated to G4VScenehandler::fObjectTransformation.

28th October 2011  Joseph Perl  (vis-HepRep-V09-04-03)
- Add /vis/heprep/scale and /vis/heprep/center

13th October 2011  Andrea Dotti (vis-HepRep-V09-04-02)
- Solving "variable set but not used" warning in GCC 4.6 

26th September 2011  John Allison  (vis-HepRep-V09-04-01)
- Tagged.

17th September 2011  John Allison
- Migrated to new G4Exception.

25th March 2011 G.Cosmo  (vis-HepRep-V09-04-00)
- Use G4RotationMatrix typedef instead of native CLHEP type in
  G4HepRepFileSceneHandler.cc.

23th January 2011 L.Garnier
- GNUMakefile : Remove G4VIS_BUILD.gmk use

7th November 2010  Joseph Perl  (vis-HepRep-V09-03-04)
- G4HepRepFileSceneHandler.hh: Fix coverity warning about uninitialized variables. Turns out they were unneeded.

20th June 2010  Joseph Perl  (vis-HepRep-V09-03-03)
- G4HepRepMessenger: Correct default of new option renderCylAsPolygons

4th June 2010  Joseph Perl  (vis-HepRep-V09-03-02)
- G4HepRepMessenger: Add command renderCylAsPolygons
- G4HepRepFileSceneHandler: Use new command

30th May 2010  John Allison  (vis-HepRep-V09-03-00)
- G4HepRep[File}SceneHandler: Added AddCompound(const G4VDigi&).

22nd November 2009  Joseph Perl  (vis-HepRep-V09-02-03)
- Changed messenger to a singleton.
- Added messenger commands to HepRepFile.
- Render G4Tubs as polygons if G4Tubs is not at a standard angle.

21st October 2009  John Allison  (vis-HepRep-V09-02-02 coworks greps-V09-02-02)
- Added default AddCompound (const G4THitsMap<G4double>&) methods.
  o Prevents warnings about hiding - calls G4VSceneHandler base class.

8 May 2009  Gabriele Cosmo  (vis-HepRep-V09-02-00)
- Added inclusion of <cstdio> in DeflateOutputStreamBuffer.h to resolve
  compilation errors reported by gcc-4.4.0.

4 January 2008  John Allison  (vis-HepRep-V09-01-00)
- Adapted to new BeginPrimitives2D signature.

16 November 2007 Joseph Perl (vis-HepRep-V09-00-01)
- Adjust geometry hierarchy in G4HepRepFileSceneHandler to accomodate
  parallel worlds.  Where used to just have world at top of hierarchy,
  now have world or worlds as one level below top level of geometry.
- Cleaned up G4HepRepSceneHandler (just removing inaccurate old comment).

22 May 2007 John Allison (vis-HepRep-V08-03-00)
- Fixed memory leak in G4HepRepFile.

16 November 2006 Joseph Perl (vis-HepRep-V08-01-04)
- Omit Pos and Aux attributes for hits.
- Protect against null Region (as in parallel geometries).

14 November 2006 Joseph Perl (vis-HepRep-V08-01-03)
- Improve handling of Trajectory Points.

13 November 2006 Joseph Perl (vis-HepRep-V08-01-02)
- Corrected handling of Hits that come via AddSolids.

5 November 2006 John Allison  (vis-HepRep-V08-01-01)
- Protected against zero material pointer.
- Corrected material pointer - pick up from PVModel instead of logical volume
  so that it is correct for parameterised volumes.

1 November 2006 John Allison  (vis-HepRep-V08-01-00)
- G4HepRepFileSceneHandler.cc:
  o Exploit G4PhysicalVolumeModel::G4PhysicalVolumeNodeID::GetNonCulledDepth().
    (Saves some lines of code.)

4 June 2006 Joseph Perl  (vis-HepRep-V08-00-04)
- G4HepRepFileSceneHandler: Bring trajectory points under control of filtering.
- G4HepRepFileSceneHandler: Correct direction of G4Cons and G4Tubs.
- G4HepRepFileSceneHandler: Use GetMarkerSize for marks and text.
- G4HepRepFileSceneHandler: Apply correct units for Density and Radlen.
- G4HepRepFileSceneHandler: Use BeginPrimitives2D and EndPrimitives2D to be able to cleanly
  reject cases that don't apply to HepRep: 3D text and 2D lines and markers.
- G4HepRepFileSceneHandler: Improve handling for case of culled volumes.

2 June 2006 Joseph Perl  (vis-HepRep-V08-00-03)
- G4HepRepFileSceneHandler: Support 2D Text.
- G4HepRepFileSceneHandler: Avoid creating Traj or Hit instances if they
  have no primitives due to filtering.
- G4HepRepFileSceneHandler: Assign Hits to various HepRepTypes depending on
  attribute HitType.
- G4HepRepFileSceneHandler: Support G4VisTrajContext.
- G4HepRepFileSceneHandler: Include G4Version attribute in HepRep file.
- G4HepRepFileSceneHandler: Handle Axes and other primitives that are neither
  transients nor geometry.
- G4HepRepFileViewer: Call ShowView from destructor to assure file is
  properly terminated.

22nd May 2006 John Allison (vis-HepRep-V08-00-02)
- Removed dependency on Run.  (G4HepRepSceneHandler.cc: Version string
  now obtained directly from G4Version.hh.)

4th May 2006 John Allison (vis-HepRep-V08-00-01)
- Improved protection for null models and parameters.

19 April 2006 John Allison (vis-HepRep-V08-00-00)
- G4HepRepSceneHandler and G4HepRepFileSceneHandler: Migrated to direct
  access to G4PhysicalVolumeModel.

31 October 2005 Mark Donszelmann (vis-HepRep-V07-01-04)
- Further fix for GEANT-61.

13 October 2005 John Allison (vis-HepRep-V07-01-03)
- Migrated to <sstream>.

12 October 2005 Mark Donszelmann (vis-HepRep-V07-01-02)
- Fixed compilation warning on MacOSX
- Further fix for GEANT-61.

27 September 2005 Mark Donszelmann (vis-HepRep-V07-01-01)
- Fixed GEANT-61: Cones face wrong way.

4 August 2005 Mark Donszelmann (vis-HepRep-V07-01-00)
- Fixed GEANT-60: DrawAs value wrong for solids that use Geant4 primitives.

28 June 2005 Gabriele Cosmo (vis-HepRep-V07-00-04)
- Fixed GNUmakefile to include ZLIB module for DLLs build on Windows.

2 June 2005 Mark Donszelmann (vis-HepRep-V07-00-03)
- HepRepXML (heprep2) handles: Solids, Attributes on Hits and Tracks.
- cheprep at 2.0.5, fix for g++ 4.0.

1 June 2005 Joseph Perl
- For HeRepFile, use attributes from hits.

1 June 2005 Mark Donszelmann (vis-HepRep-V07-00-02)
- updated documentation.

31 May 2005 Joseph Perl
- For HeRepFile, use G4AttCheck to standardize attribute units.

30 May 2005 Joseph Perl
- For HeRepFile, respect Drawing Mode.

30 May 2005 Joseph Perl
- For HeRepFile, make trajectory color come from visible->GetColour.

28 May 2005 Joseph Perl
- For HeRepFile, implement G4HEPREPFILE_CULL.

28 May 2005 Joseph Perl
- For HeRepFile, correct heprep xmlns reference.

25 May 2005 Joseph Perl
- For HeRepFile, allow user to specify output directory, filename
  and whether to overwrite.

25 May 2005 Mark Donszelmann (vis-HepRep-V07-00-01 against geant4-07-00-ref-03)
- optionally needs externals/zlib (vis-zlib-V07-00-00)
- HEPREP at version 2.0.1
- cheprep at version 2.0.4
- Added writing an EOF marker for each binary HepRep file.
- Added version files to the copied filesets from FreeHEP.

24 May 2005 Joseph Perl
- Improve handling of solids (in HepRepFile).

16 May 2005 Mark Donszelmann
- Fixed problems with sequential heprep files, gz files, 
  too much info in the heprep file and some compilation mistakes.

12 May 2005 Mark Donszelmann
- Renamed zconf.h, zlib.h and zutil.h back into their old names.
- Removed -DZ_PREFIX from the zlib compilation step.
- Added G4LIB_BUILD_ZLIB for building zlib and G4LIB_USE_ZLIB for using zlib.
- Removed all files belonging to zipios++ from include and src.
- Removed all files from the ref include directory.
- Moved zlib to the externals/zlib package.
- Added cheprep src and include files and changed GNUmakefile.

3 May 2005 Mark Donszelmann
- Removed the following zlib and zipios files which are not necessary for writing
  zip or gz files: include/zipios++/basicentry.h, include/zipios++/collcoll.h, 
  include/zipios++/dircoll.h, include/zipios++/filepath.h, 
  include/zipios++/filterinputstreambuf.h, include/zipios++/inflateinputstreambuf.h, 
  include/zipios++/zipfile.h, include/zipios++/zipinputstream.h, 
  include/zipios++/zipinputstreambuf.h, 
  include/zlib/inffast.h, include/zlib/inffixed.h, include/zlib/inflate.h, 
  include/zlib/inftrees.h, src/basicentry.cc, src/collcoll.cc, src/filepath.cc, 
  src/filterinputstreambuf.cc, src/infback.cc, src/inffast.cc, src/inflate.cc, 
  src/inflateinputstreambuf.cc, src/inftrees.cc, src/uncompr.cc, src/zipfile.cc, 
  src/zipinputstream.cc, src/zipinputstreambuf.cc

16 February 2005 Mark Donszelmann (vis-HepRep-V07-00-00 against geant4-07-00-ref-00)
- Fix for g++ compiler 2.95.2 on Linux.

22 November 2004 Mark Donszelmann (vis-HepRep-V06-02-02 against geant4-06-02-ref)
- Upgraded to latest version C++ HepRep driver from FreeHEP.
- Fixed GEANT-51, upgrade zlib to version 1.2.2 (for AMD64 compatibility).

22 August 2004 Mark Donszelmann (vis-HepRep-V06-02-01)
- Fixed a compilation problem in zlib for AMD64, reported by Peter Niessen.

17 June 2004 Mark Donszelmann (vis-HepRep-V06-01-05 against geant4-06-02-cand-02)
- Fixed GEANT-50:
  - Renamed zlib prefix from z_ to heprep_z_
  - Added symbol z_errmsg to list for renaming to avoid conflicts with other
    programs who contain a copy of zlib (such as Root).
  
4 June 2004 Mark Donszelmann (vis-HepRep-V06-01-04 against geant4-06-01-ref-02)
- Fixed compilation problem with G4RunManagerKernel

27 May 2004 Joseph Perl (vis-HepRep-V06-01-02)
- Added attributes for Region and Root Region to both HepRep drivers.

27 May 2004 Mark Donszelmann (vis-HepRep-V06-01-01)
- Fixed GEANT17: geometry files can be written separately.
- Updated README with instructions
  see http://bugs.freehep.org/secure/BrowseProject.jspa?id=10041

26 May 2004 Mark Donszelmann (vis-HepRep-V06-01-00)
- Fixed GEANT-47: Added initial viewpoint settings and a command to set the 
  coordinate system.
- Fixed GEANT-41: copied new interfaces for HepRep, which uses fewer pointers,
  see http://bugs.freehep.org/secure/BrowseProject.jspa?id=10041

14 March 2004 Joseph Perl (vis-HepRep-V06-00-06)
- HepRepFile handle duplicate ShowView.
- HepRepFile improve layering and hierarchy for hits.

1 March 2004 Mark Donszelmann (vis-HepRep-V06-00-05)
- Fixed compilation warnings for the Linux-icc (8.0) compiler.

18 February 2004 Mark Donszelmann
- Removed appendzip.cc file, since it is strictly not necessary.

12 Febryary 2004 Mark Donszelmann
- GEANT-42: Renamed the HepRep schema locator to 
  http://java.freehep.org/schemas/heprep/2.0
  
5 February 2004 Mark Donszelmann (vis-HepRep-V06-00-04)
- Fixed compilation problems for the Linux-icc (7.0) compiler.

3 February 2004 Mark Donszelmann (vis-HepRep-V06-00-03)
- Further fix to GEANT-40, renamed zutil.h, zlib.h and zconf.h
  into HepRep-zutil.h, ... to avoid conflicts with those files
  on Unix systems if /usr/include or /usr/local/include is
  on the include search path.

28 January 2004 Mark Donszelmann (vis-HepRep-V06-00-01)
- Attempted to fix GEANT-40. For some unclear reason the symbols zcalloc and zcfree
  of the zlib library were being called as C++ mangled names. 
  To get rid of the situation of a mix of C++ and C names, we took
  out the 'extern "C"' declarations from our zlib.h and zutil.h.
  All names are C++ mangled now.

11 December 2003 Mark Donszelmann
- Removed the HepRep2 driver from FreeHEP, so the HepRep2 sources now live
  in this directory. Modified the copyfreehep scripts, and the READMEs.
  Re-added the cvs expand keywords to show revision and tagname.

05 December 2003 Joseph Perl (vis-HepRep-V05-02-09)
- Fix bug with CalHits by moving faces to separate HepRepType

19 November 2003 Joseph Perl (vis-HepRep-V05-02-07)
- Set two additional attributes to get correct pick response within client,
  PickParent and ShowParentAttributes.
  Fixes GEANT-38

17 November 2003 Mark Donszelmann (vis-HepRep-V05-02-06)
- Removed dependency on sstream which made compilation fail on Linux-g++2.95.2
  and on Solaris 5.2. 
- Added flags for zipios++ to compile OutputStringStream using sstream only on
  g++ 3.x (Linux/MacOS X) and on WIN32. 
- Added include to OutputStringStream.h to make it work on Solaris.
- Removed our own sstream since it is no longer used.
- Fixed GEANT-34  
  
14 November 2003 Mark Donszelmann 
- Fixed GEANT-25, GEANT-35 and GEANT-36 (vis-HepRep-V05-02-05)
  see http://bugs.freehep.org/secure/BrowseProject.jspa?id=10041

14 November 2003 Joseph Perl
- Fixed GEANT-30

14 November 2003 Mark Donszelmann and Joseph Perl (vis-HepRep-05-02-03)
- Fixed GEANT-32

13 November 2003 Mark Donszelmann
- Fixed GEANT-29, GEANT-33

12 November 2003 Joseph Perl
- Added G4HepRepFileSceneHandler::ClearTransientStore to make geometry
  be properly included with each event of a /run/beamOn n.

12 November 2003 Mark Donszelmann
- Fixed GEANT-18, GEANT-19, GEANT-28

11 November 2003 Mark Donszelmann
- Fixed GEANT-23, GEANT-26, GEANT-27

10 November 2003 Mark Donszelmann
- Fixed GEANT-22, GEANT-24

6 November 2003 Mark Donszelmann
- Fixed GEANT-14, GEANT-20

5 November 2003 Mark Donszelmann
- Fixed GEANT-16

4 November 2003 Mark Donszelmann
- Fixed GEANT-15

30 October 2003 Mark Donszelmann
- Fixed GEANT-10, WIRED-170

28 October 2003 Mark Donszelmann
- Several fixes (GEANT-11, GEANT-12, GEANT-3 and GEANT-13)
  
24 October 2003 Mark Donszelmann
- Several fixes (GEANT-2, GEANT-4, GEANT-8 and GEANT-9)

22 October 2003 Mark Donszelmann
- Added latest HepRep2 driver.

12th July 2003 Mark Donszelmann
- Renamed XMLHepRepWriter to G4HepRepFileXMLWriter and moved its header to include.
  Fixed initialization of some variabled in G4HepRep and G4HepRepSceneHandler, found
  by valgrind. Removed dependency in gzio.cc of fdopen (platform specific).

11th July 2003 Mark Donszelmann
- Removed the HepRepStreamer and replaced it by a fully functional HepRep implementation
  in C++. Added compression using ZLIB and ZIPIOS++. Moved private header files to
  subdirectories of include so that they do not get copied by the "gmake includes"
  command.
  The current HepRep files are invalid, but we first need to get rid of some memory
  leaks, using Linux, so we check this in.

30th May 2003  John Allison
- Eliminated pedantic warnings at head (johna-030530) and on
  geant4-05-01-ref-02 (vis-V05-00-02).

29th May 2003 Mark Donszelmann and Joseph Perl (mark-joseph-050329)
- Modified G4HepRepSceneHandler (HEPREP2) to write more complete heprep, including
  attributes.
- Copied new Streamer from FREEHEP library.

28th February 2003  Joseph Perl
- Modified G4HepRepFileSceneHandler to allow some volumes to be initially invisible.

24th January 2003  Joseph Perl
- Modified G4HepRepFileSceneHandler:AddThis (const G4VTrajectory& traj)
  to incorporate G4Attributes into the HepRep1 file.
- Moved some of HepRepXMLWriter's warning messages into ifdef debug blocks.

11th December 2002  John Allison  (vis-V04-01-10)
- Fixed default view parameters (global culling false).

9th December 2002 Mark Donszelmann
- Fixed bug that files were left open. Will close now, apart from stdin/stderr
- Fixed color call not to use array creation.
- Fixed HepRep standard (reader related), G4 is a writer.
- Fixed include file now to only include HepRep.h (which includes all others)

3rd December 2002 Mark Donszelmann
- Fixed bug that XML Output can be routed to stdout or stderr.

27th November 2002 Mark Donszelmann
- Fixed core dump (Solaris) if open HepRepXML and closed it w/o writing anything

27th November 2002  John Allison  (vis-V04-01-08)
- Changed mickname of HepRep to HepRepXML.
- Fixed description of HepRepFile.

26th November 2002 Mark Donszelmann
- Fixed FillStyle, LineStyle, LineWidth, HasFrame and Symbol Names
- Fixed parent-child relationship  for calorimeter hits
- Fixed material state number, now a string
- Fixed fillColor to be equal to color

25th November 2002 Mark Donszelmann
- Fixed HepRep1 warnings in HepRepFileSceneHandler
- Fixed HepRep2 radius of markers to be non-zero
- Fixed HepRep2 attributes some of which had wrong names, especially the markers
- Fixed HepRep2 filename to have sequence number

13th November 2002 Mark Donszelmann
- Added HepRep2 Driver

4th February 2002  Joseph Perl  (vis-V04-00-01)
- Check for missing hierarchy layers in HepRepXMLWriter.
  (Not strictly needed since have a culled layer check in SceneHandler,
  but may be useful in other applications of HepRepXMLWriter).

3rd February 2002  Joseph Perl
- Detect transient data by testing for
  !fpCurrentPV || fReadyForTransients
  rather than just fReadyForTransients

1st February 2002  Joseph Perl
- Defer file opening until first real HepRepType is to be written.
- Moved HepRep code from AddThis to AddPrimitive.
- Add additional levels to hierarchy if any appear to have been
  removed by culling.
- Add visibility attribute.

29th January 2002  Joseph Perl
- Relocate file-opening logic to constructor and ShowView
  (had been in SetView).

28th January 2002  Joseph Perl
- Produce hierarchical output rather than flat HepRepType structure.
- Handle trajectories as well as detector geometry.
- Output files now named G4Data<n>.heprep where n increments with each open.

19th November 2001  John Allison  (vis-V03-02-19)
- Added G4HEPREPFILEDEBUG to control debug code.
- Changed <fstream.h> to "g4std/fstream".
- Changed cout to G4cout, endl to G4endl.
- Changed G4HepRep.xml to G4HepRepFile.xml in hepRepXMLWriter->open("..."");

8th November 2001  Joseph Perl
- HepRep Type names now come from Physical Volume names.
- Added many HepRep Attributes for other volume properties.

6th November 2001  John Allison  (HepRep-pure-C++-1st-version)
- Removed HepRep files G4HepRep.hh, G4HepRepSceneHandler.hh,
  G4HepRepViewer.hh, G4HepRep.cc, G4HepRepSceneHandler.cc and
  G4HepRepViewer.cc (recoverable with tag HepRep-Java-version).
- Added HepRepFile from version of 27th September 2001  Joseph Perl.
  First pure C++ version (eliminates need for Java jni or freehep).
  Named as HepRepFile rather than HepRep.
- GNUmakefile: removed CPPFLAGS += -DHEPREP and CPPFLAGS += -DDEBUG.
- README: completely re-written for HepRepFile.

6th November 2001  John Allison  (HepRep-Java-version)
- Tagged before major revision.

4th September 2001  Joseph Perl
- minor improvements to README.

26th August 2001  Joseph Perl
- handle PolyHedron.getNoFacets()==0 and improve README.

24th August 2001  Joseph Perl  (vis-V03-02-13-00)
- First version of HepRep Graphics Driver
