-------------------------------------------------------------------

     =========================================================
     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 graphics_reps category
---------------------------------------

28 October 2021 Guy Barrand (greps-V10-07-13)
- sources.cmake: declare G4Plotter.hh,.cc.
- G4VGraphicsScene: have:
    virtual void AddPrimitive (const G4Plotter&) = 0;
- G4Plotter.hh,.cc: some kind of "high level" primitive
  to capture "what is plotted" (tools::histo:h1d, h2d for the moment) and the style of a plotter.
  Style description is done by handing named lists of (parameter,value). It is sufficently
  generic to be usable by various implementations of a plotter. It is assumed that
  a plotter manages a grid of "regions" to visualize various histograms in a same
  representation/view/viewport (concept similar to the "zones" in the CERN-PAW plotter).

25 October 2021 Ben Morgan (greps-V10-07-12)
- Use G4StrUtil functions replacing deprecated G4String member functions

05 September 2021 Evgueni Tcherniaev (greps-V10-07-11)
- HepPolyhedron.cc: fixed defect ("resource leak") reported by Coverity
- G4Visible, G4VMarker, G4Text: implemented move constructor and
  move assignment, as suggested by Coverity

31 August 2021  John Allison  (greps-V10-07-10)
- Add G4VMarker::operator==.

30 June 2021  John Allison  (greps-V10-07-09)
- Revise vis models. See visualization/modeling/History for more details.
- Remove G4Scale. G4Scale is an anomaly. It is not a "primitive" (obviously),
  but somehow, from the long distant past, it was implemented as though it was.
  (/vis/scene/add/scale reimplemented with G4CallBackModel.)

29 June 2021 Evgueni Tcherniaev (greps-V10-07-08)
- HepPolyhedron.cc: minor fix for Coverity
- BooleanProcessor.src: redundant std::move(polyhedron) replaced with
  HepPolyhedron(polyhedron), it fixes complation warnings with c++20

07 June 2021 John Allison (greps-V10-07-07)
- G4VGraphicsScene.hh:
  o Introduce a new pure virtual function:
    virtual void AddCompound (const G4Mesh&) = 0;
- G4VisAttributes.cc:
  o Improve message in SetForceNumberOfCloudPoints.

05 June 2021 Evgueni Tcherniaev (greps-V10-07-06)
- RotateContourAroundZ(): fixed calculation of Nfaces

12 May 2021 Evgueni Tcherniaev (greps-V10-07-05)
- added TriangulatePolygon(), RotateContourAroundZ()
- added HepPolyhedronPgon, HepPolyhedronPcon given by rz-contour

06 May 2021 Gabriele Cosmo (greps-V10-07-04)
- Fixed shadowing compilation warning in G4Colours reported with gcc-11.

18 March 2021 Ben Morgan (greps-V10-07-03)
- Fix typo in geant4_add_module that prevented install of greps headers

15 March 2021 John Allison (greps-V10-07-02)
- Add G4Colour::operator<.
  o This is useful of you want to make a set or map based on
    G4colour as a key.

12 March 2021 Ben Morgan (greps-V10-07-01)
- Modernize CMake build

29 December 2020 John Allison (greps-V10-07-00)
- Remove deprecated G4VisAttributes::Invisible.

01 December 2020 Evgueni Tcherniaev (greps-V10-06-06)
- HepPolyhedron: revised HepPolyhedronHype,
  it addresses problem report #2295.

16 November 2020 Gabriele Cosmo (greps-V10-06-05)
- Fixed typos in printed-out text. Addressing problem report #2285.

24 July 2020  Evgueni Tcherniaev (greps-V10-06-04)
- BooleanProcessor::assembleFace(): fixed minor Coverity defect

04 March 2020. John Allison  (greps-V10-06-03)
- operator<<(...const std::map<G4String,G4AttDef>*):
  o Improve deprecation message.

22 February 2020  Evgueni Tcherniaev (greps-V10-06-02)
- HepPolyhedron: Added HepPolyhedronTet and HepPolyhedronHyberbolicMirror
- G4Polyhedron: Added G4PolyhedronTet and G4PolyhedronHyberbolicMirror

13 February 2020  John Allison  (greps-V10-06-01)
- G4VisAttributes:
  o Clarify that if number of cloud points (for cloud style drawing)
    is <= 0, this is to be interpreted as under control of the viewer,
    i.e., to be decided by the viewer. Otherwise this number is to be
    drawn.
  o Make 0 the default value.
  o It may be changed with SetForceNumberOfCloudPoints.
  o You may also force cloud drawing with SetForceCloud.

09 December 2019  Ben Morgan (greps-V10-06-00)
- Cleanup CMake build, removing obsolete granular library option and
  explicit include_directories.

07 November 2019  Evgueni Tcherniaev (greps-V10-05-06)
- HepPolyhedron: Added move constructor and move assignment
- BooleanProcessor::createPolyhedron(): Use return std::move()

04 October 2019  Evgueni Tcherniaev  (greps-V10-05-05)
- HepPolyhedron::SetSideFacets: Fixed false defect reported by Coverity

29 August 2019  John Allison  (greps-V10-05-04)
- Add G4TessellatedSolid to list of solids that may be specially treated

12 June 2019  John Allison (greps-V10-05-03)
- G4VisAttributes:
  o Add G4VisAttributes::cloud and methods to force:
    .  SetForceCloud
    .  SetForceNumberOfCloudPoints

24 February 2019  John Allison (greps-V10-05-02)
- Remove Get/SetDrawOverlapsFlag from G4VVisManager.

19 February 2019  John Allison
- Included in vis-V10-05-12
- G4VisExtent:
  o Replaced operator*(const G4Transform3D&) by
    Transform(const G4Transform3D&).
    (Note: operator* was only ever in a development version of Geant4.)

31 January 2019  Ivana Hrivnacova (greps-V10-05-01)
- Merged GitHub PR #4: all Boolean operators now return G4bool.

02 January 2018  John Allison (greps-V10-05-00)
- G4VisExtent: Add operator*(const G4Transform3D&).

19 October 2018  John Allison (greps-V10-04-08)
- G4VisExtent: Add GetNullExtent.

16 October 2018  John Allison (greps-V10-04-07)
- G4VisExtent: Add operator==.

12 September 2018  John Allison (greps-V10-04-06)
- G4VVisManager: Add fDrawOverlapsFlag and access functions.
  o This is intended to be inspected by methods capable of drawing
    overlaps. See for example, CheckOverlaps in G4PVPlacement and
    G4PVParameterised.

22 May 2018  Gabriele Cosmo (greps-V10-04-05)
- Disabled deprecated static data member G4VisAttributes::Invisible for
  Windows systems.

24 April 2018  John Allison (greps-V10-04-04)
- Co-works vis-V10-04-04.
- G4VisAttributes: Cosmetic improvements.

23 April 2018  John Allison (greps-V10-04-03)
- Co-works vis-V10-04-04.
- Replaced DBL_MAX by G4VisAttributes::veryLargeTime = 1.e100*CLHEP::ns,
  about 1.e75 billion years!! The problem is that DBL_MAX (1.79769e+308)
  is dimensionless, so we compromise with something a little less vast,
  but which is in G4 internal units.

18th January 2018  Gabriele Cosmo (greps-V10-04-01)
- Updated GNUmakefile to add G4GREPS_ALLOC_EXPORT definition.

18th January 2018  Ben Morgan (greps-V10-04-00)
- Fix unexported global data for WINDOWS_EXPORT_ALL_SYMBOLS
- New DLL build method identified that G4VisAttributes has a
  static const member that is not declared dllexport/import.
- graphics_reps_defs.hh: New header to configure the needed
  export/import keywords, using a macro G4GREPS_DLL
- CMakeLists.txt: Add -D flag G4GREPS_ALLOC_EXPORT when
  building the library to make export mode.
- G4VisAttributes.hh: Mark static const G4VisAttributes data
  using G4GREPS_DLL to ensure export/import.

6th October 2017  John Allison  (greps-V10-03-07)
- Rationalised:
  o Colour map no longer G4ThreadLocal (no need). May be used from
    non-master threads.
  o Move InitialiseColourMap from private to public. In future vis tags
    the map will be initialised from the vis manager.

13th September 2017  John Allison  (greps-V10-03-06)
- HepPolyhedron.h: Reverted default number of line segments per circle:
  #define DEFAULT_NUMBER_OF_STEPS 24
  (72 lines per circle gives trouble in the Boolean Processor, so until that
  is fixed we revert to 24.)

1st August 2017  John Allison  (greps-V10-03-05)
- G4AttDefStore: Shared (i.e., no longer thread local). Added mutex.

10th May 2017  John Allison  (greps-V10-03-04)
- G4Colour: Added Set functions for components.

25th April 2017  John Allison  (greps-V10-03-03)
- G4Colour& operator += (const G4Colour& rhs) {*this = rhs; return *this;}
  // Note: This is required by RayTracer in its use of G4THitsMap.
  // Adding colours, without also taking brightness into account, does not make
  // sense, so let us make it synonymous with operator=, which is, I guess,
  // equivalent to covering the old colour with the new, like a coat of paint.

22nd February 2017  John Allison  (greps-V10-03-01)
- Requires visman-V10-03-03.
- Removed G4VisExtent::NullExtent.

3rd November 2016  John Allison  (greps-V10-02-10)
- Fix typo in previous tag.

3rd November 2016  John Allison  (greps-V10-02-09)
- BooleanProcessor.src: Fix warnings on -O3 on Linux.

3rd November 2016  John Allison  (greps-V10-02-08)
- HepPolyhedron.h: Changed default number of line segments per circle:
  #define DEFAULT_NUMBER_OF_STEPS 72

6th September 2016  Makoto Asai (greps-V10-02-07)
- Co-works with digits_hits-V10-02-06, vis-V10-02-12
- include/G4VGraphicsScene.hh
     It accepts both G4TMitsMap<G4StatDouble> and G4THitsMap<G4double>.

2nd September 2016  Makoto Asai (greps-V10-02-06)
- Co-works with digits_hits-V10-02-05, vis-V10-02-10
- include/G4VGraphicsScene.hh
     Build-in scorer now uses G4TMitsMap<G4StatDouble> instead of
     G4THitsMap<G4double>.

31st August 2016  John Allison  (greps-V10-02-05)
- Co-works vis-V10-02-09.
- G4VGraphicsScene.hh:
  o Added
    virtual void AddSolid (const G4Orb&) = 0;
    virtual void AddSolid (const G4Ellipsoid&) = 0;
  o Tidied.

7th August 2016  John Allison  (greps-V10-02-03)
- G4VisAttributes.icc: Removed extraneous semi-colon.

7th August 2016  John Allison  (greps-V10-02-02)
- G4VisAttributes:
  o Added flag for force auxiliary edge visibility, i.e., to record
    if the user has asked for forcing, while the value forced - visible
    or invisible - is recorded in another flag.
  o Introduced default argument - "true" - for:
    SetVisibility, SetDaughtersInvisible, SetForceWireframe,
    SetForceSolid, SetForceAuxEdgeVisible.
  o Improved logic for setting force drawing style and auxiliary edge
    visibility.
  o Moved above methods from .icc to .cc.
  o Moved static inline method GetMinLineSegmentsPerCircle to .icc.

14th July 2016  John Allison  (greps-V10-02-01)
- G4VisAttributes::GetInvisible():
  o Changed to use a static instance instead of G4VisAttributes::Invisible.
  o Moved implementation to .cc file.  Now it is non-inline.
- G4VisAttributes::Invisible:
  o Deprecated. It is a static instance and does not always instantiate
    properly on Windows.

1st March 2016  Gabriele Cosmo  (greps-V10-02-00)
- Use "" instead of <> for internal header inclusion in
  HepPolyhedronProcessor.h.

26th April 2015  John Allison  (greps-V10-01-03)
- HepPolyhedron: Minor fix for Coverity.

6th March 2015  John Allison  (greps-V10-01-02)
- HepPolyhedron: Corrected a long-standing spelling mistake:
  o indeces should be indices;
  o verteces should be vertices.
  This is reflected in the method names, but the old names have been
  kept for backwards compatibility.

14th August 2014  John Allison  (greps-V10-01-01)
- G4VisAttributes.cc: Eliminated a nonsensical “if(&a)” in operator<<.

24th August 2014  Laurent Garnier (greps-V10-00-10)
- G4VisAttributes: Fix the fMinLineSegmentsPerCircle for SetForceLineSegmentsPerCircle

23th August 2014  Laurent Garnier (greps-V10-00-09)
- G4VisAttributes: Better implementation of fMinLineSegmentsPerCircle

23th August 2014  Laurent Garnier
- G4VisAttributes: Change fMinLineSegmentsPerCircleto a static member

22th August 2014  Laurent Garnier  (greps-V10-00-08)
- G4VisAttributes: Add fMinLineSegmentsPerCircle parameter

14th August 2014  John Allison  (greps-V10-00-07)
- HepPolyhedron::SetReferences: Protected against a null pointer.
- BooleanProcessor::execute: Corrected spelling mistake in message.
- G4Scale: Changed default annotation size to 12 pixels.

11th August 2014  John Allison  (greps-V10-00-06)
- G4Scale: Added annotation size (text size).

4th February 2014  John Allison  (greps-V10-00-05)
- Replaced tabs by 8 spaces.

4th February 2014  John Allison  (greps-V10-00-04)
- Reverted to greps-V10-00-01.
- greps-V10-00-03: Was incorrectly tagged.

20th December 2013  Mathieu Karamitros  (greps-V10-00-02)
- G4VisExtent: Enable accessing data using indexes

11th December 2013  John Allison  (greps-V10-00-01)
- Introduced operator<< for const reference G4AttDefs map.
- Deprecated const pointer equivalent.

9th December 2013  John Allison  (greps-V10-00-00)
- Another change suggested by PVS.

28th November 2013  John Allison
- G4VVisManager.hh: Cosmetics.

15th November 2013  John Allison
- Some changes as suggested by PVS.

25th October 2013  John Allison  (greps-V09-06-12)
- Cosmetic changes to code layout and comments.

19th September 2013  Makoto Asai (greps-V09-06-11)
- Fix compilation error for sequential mode.

19th September 2013  Makoto Asai (greps-V09-06-10)
- Introducing G4VVisManager::IgnoreStateChanges() virtual method.
  This method should be invoked by a class that has its own event loop,
  such as the RayTracer, material scanner, etc. If the argument is true,
  the following state changes among Idle, GeomClosed and EventProc are
  caused by such a class, and thus not by the ordinary event simulation.
  The same method with false should be invoked once such an event loop
  is over.

17th September 2013  Makoto Asai (greps-V09-06-09)
- G4Colour now has a dummy += operator.

12th September 2013  Makoto Asai (greps-V09-06-08)
- Introducing G4VVisManager::SetUpForAThread(). This method is invoked
  by G4WorkerRunManager so that G4VisManager will get noticed at the
  end of event of each worker thread.

12th September 2013  Makoto Asai (greps-V09-06-07)
- Remove G4ThreadLocal keyword from G4VVisManager.

18th August 2013  John Allison  (greps-V09-06-06)
- G4VGraphicsScene: Added GetExtent.

15th May 2013  Gabriele Cosmo (greps-V09-06-05)
- Cleanup of automatic changes for MT in G4AttCheck, G4AttDefStore,
  G4TypeKey, G4TypeKeyT, G4Colour, HepPolyhedron and BooleanProcessor.

6th March 2013  John Allison (greps-V09-06-04)
- HepPolyhedron.cc:
  o Introduced const G4double spatialTolerance = 0.01*nm;
  o Used in RotateAroundZ and in HepPolyhedronSphere and HepPolyhedronTorus
    constructors.
  o Allows creation of nm-sized objects.
  o Fixes bug report 1452.

14th February 2013 Jean Jacquemier
- Removed modifcations G4AttCheck.cc and G4DimentionedTypeUtil.cc for G4UnitTable
  ( see  TAG greps-V09-06-02 ). These modifications will be done once
  MultiThreading performance loss will be recover

8th February 2013 Jean Jacquemier (greps-V09-06-02)
- Modify G4AttCheck.cc and G4DimentionedTypeUtil.cc for G4UnitTable
  modification

14th December 2012  John Allison (greps-V09-06-01)
- Added dollar-Id expansion into first line of this file.

3rd December 2012  John Allison (greps-V09-06-00)
- Removed NURBS and i_mode.

1st October 2012  John Allison (greps-V09-05-14)
- G4DimensionedType: Another attempt to keep compilers happy:
  o Created G4DimensionedTypeUtils.cc.
  o Moved "Helper class" HasName and utility function GetUnitValue from
    G4DimensionedType.hh to G4DimensionedTypeUtils.cc inside a new
    namespace, G4DimensionedTypeUtils.

27th September 2012  John Allison (greps-V09-05-13)
- G4DimensionedType.hh:
  o Reverted to r53697.
  o The last 3 tags cure the clang warning but cause run-time problems with
    x86_64-slc5-gcc43-staticlibs

25th September 2012  John Allison (greps-V09-05-12)
- G4DimensionedType.hh: using namespace G4DimensionedTypeNameSpace, but changed
  the name of the function to GetTheUnitValue (there is another GetUnitValue elsewhere).

19th September 2012  John Allison (greps-V09-05-11)
- G4DimensionedType.hh: Specifically defined G4DimensionedTypeNameSpace::GetUnitValue,
  which keeps clang happy.  Hopefully other compilers too.

15th August 2012  John Allison (greps-V09-05-10)
- G4DimensionedType.hh: Introduced G4DimensionedTypeNameSpace to replace an
  un-name namespace to keep the clang compiler happy and improve the lives
  of system testers.

June 11, 2012 G.Cosmo (greps-V09-05-09)
- Explicitly use inclusion of headers for system of units and physical
  constants, in plan to remove implicit inclusion from globals.hh.

29th May 2012  John Allison  (greps-V09-05-08)
- G4VisExtent: Cached radius and centre for improved efficiency.

24th May 2012  Gabriele Cosmo  (greps-V09-05-07)
- Fixed trivial cases of variable shadowing.

23rd March 2012  John Allison  (greps-V09-05-06)
- G4Colour: Added brown (colour of G4 logo).
- G4Text: Added operator<<(...,G4Text::Layout).  This produces meaningful
  word instead of the integer value of the enumerator.

7th February 2012  John Allison  (greps-V09-05-05)
- G4VisAttributes:
  o Added copy constructor and assignment operator.
- G4Visible.cc:
  o Fixed bug in copy constructor and assignment operator.

4th February 2012  John Allison  (greps-V09-05-04)
- Added G4Text::G4Text(const G4Text& text) (copy contructor).
- Added G4Text& operator=(const G4Text& text) (assignment operator).

1st February 2012  John Allison  (greps-V09-05-03)
- BooleanProcessor.src:
  o Explicit conversion from size_t to int when using ExtEdge constructor.

30th December 2011  John Allison  (greps-V09-05-02)
- G4VVisManager.hh: Improved comments for Added Begin/EndDraw(2D).

28th December 2011  John Allison  (greps-V09-05-01)
- G4VVisManager.hh: Added Begin/EndDraw(2D), optional methods for
  bracketing Draw methods to improve drawing speed.

15th December 2011  John Allison  (greps-V09-05-00)
- G4Colour.hh: Cosmetics.
- Tagged.

8th December 2011  John Allison
- G4Visible.hh: Cosmetic improvement to comments.
- G4NURBS.cc: G4Exception id's changed to 900x.
- HepPolyhedron.cc: G4Exception id's changed to 100x.

17th November 2011  John Allison
- G4Colour: operator<<:
  o Added colour name if in colour map, e.g., (1,0,0,1) (red).
- BooleanProcessor.src: Saved one instruction.
  o No need to evaluate "point *= (1./nnode)" unless nnode > 1.
  o (Also suppresses Coverity warning about division by zero.)

11th November 2011  John Allison  (greps-V09-04-10)
- Fixed most Coverity warnings.

2nd November 2011  John Allison  (greps-V09-04-09)
- G4Colour.hh:
  o Removed "using std::map" statement.
  o Addwd GetMap so that current colour map options can be listed.
- G4Colour.cc:
  o Made std scope explicit.
  o Implemented GetMap.

29th September 2011  John Allison  (greps-V09-04-08)
- G4DimensionedType.hh:
  o Reversed action of 27th Sep.  Warnings are false.  Function is needed.

27th September 2011  John Allison  (greps-V09-04-07)
- G4DimensionedType.hh:
  o Commented out unused function to suppress project warnings.
- G4Polymarker: Added constructor G4Polymarker(const G4VMarker&).
- G4VMarker: Added constructor G4VMarker(const G4VMarker&);
- G4VMarker.hh, G4Circle.hh, G4Square.hh, G4Polymarker.hh, G4Text.hh:
  o Tidied.
- greps-V09-04-06: Inadvertent tag.

16th September 2011  John Allison  (greps-V09-04-05)
- Migrated to new G4Exception.

2nd August 2011  John Allison  (greps-V09-04-04)
- G4PolyhedronArbitrary:  Added SetReferences and InvertFacets.
  SetReferences is necessary at the end to complete the polyhedron.
  It particularly matters if the polyhedron suffers subsequent
  boolean operations.
  InvertFacets can be useful.

1st March 2011  John Allison  (greps-V09-04-03)
- BooleanProcessor.cc:
  o Changed cout to G4cout, etc.
  o Fixed Coverity warnings.

24th March 2011  Gabriele Cosmo  (greps-V09-04-02)
- Consistently make use of G4 types in HepPolyhedron and BooleanProcessor,
  to allow for centralized control of CLHEP classes.

1st March 2011  John Allison  (greps-V09-04-01)
- Fixed Coverity warnings.

27th December 2010  John Allison  (greps-V09-04-00)
- Tagged.

7th December 2010  John Allison
- Fixed Coverity warnings.

6th December 2010  John Allison
- G4Visible.cc::operator!=: protect zero vis attributes pointers.
- G4Visible.cc::operator=: delete allocated vis attributes (fixes
  memory leak).

30th May 2010  John Allison  (greps-V09-03-02)
- G4VVisManager: Added Draw(const G4VDigi&) and FilterDigi(const G4VDigi&).
- G4VGraphicsScene: Added AddCompound (const G4VDigi&).

29th May 2010  John Allison  (greps-V09-03-01)
- G4VVisManager:
  o Removed IsDefaultDrawTrajectory.  A better way is...
  o Added DispatchToModel(const G4VTrajectory&), i.e., without i_mode, to
    distinguish usage and in preparation for i_mode migration.

7th May 2010  John Allison  (greps-V09-03-00)
- G4VVisManager: Added a public static boolean flag,
  IsDefaultDrawTrajectory, to assist deprecation of i-mode trajectory
  drawing parameter.  After 10.0, it can be removed.

28th October 2009  John Allison  (greps-V09-02-03 coworks vis-V09-02-10)
- HepPolyhedron:
  o Removed static instance of BooleanProcessor.
  o Removed IsErrorBooleanProcess.  (Use HepPolyhedronProcessor instead -
    see, e.g., G4PhysicalVolumeModel.)
- HepPolyhedronProcessor.src: Replaced printf with G4cout.

20th October 2009  Guy Barrand  (greps-V09-02-02 coworks vis-V09-02-09)
- HepPolyhedronProcessor : class to handle "overall shifting" in case
  of doing multiple boolean operations. This permited to solve most
  tricky cases in LHCb visualization.
- HepPolyhedron : handle the ierr variable on the BooleanProcessor.execute.
- BooleanProcessor.src : modifs coming from LHCb to "loop on shifts"
  to attempt solving the "coplanar faces cases".
- BooleanProcessor.src : modifs coming from LHCb to optmize the code.

20th October 2009  John Allison  (greps-V09-02-02 coworks vis-V09-02-07)
- G4VGraphicsScene: Added AddCompound (const G4THitsMap<G4double>&).

25th February 2009  John Allison  (greps-V09-02-01)
- G4VVisManager: Added NotifyHandlers.
  Notify scene handlers (G4VGraphicsScene objects) that the scene
  has changed so that they may rebuild their graphics database, if
  any, and redraw all views.

24th February 2009  John Allison  (greps-V09-02-00)
- G4VMarker:
  o Added enum SizeType {none, world, screen};
  o Added GetSizeType and SetSize/Diameter/Radius(SizeType, G4double).

13th November 2008  Gabriele Cosmo  (greps-V09-01-06)
- HepPolyhedronHype: fixed arrays upper-bound in constructor, responsible
  for memory corruption in visualization of G4Hype shape.

28th April 2008  John Allison  (greps-V09-01-05)
- HepPolyhedronEllipticalCone: correct visibility of auxiliary edges.

14th April 2008  Tatiana Nikitina  (greps-V09-01-04)
- Added G4Hype representation to HepPolyhedron and G4Polyhedron.
- Coworks with tag "geom-specific-V09-01-08".

13th March 2008  Gabriele Cosmo  (greps-V09-01-03)
- Added inclusion of <cstdlib> in HepPolyhedron.cc for porting on gcc-4.3.0.

29th January 2008  John Allison  (greps-V09-01-01)
- HepPolyhedronParaboloid: bug fix and improvement.

4th January 2008  John Allison  (greps-V09-01-00 with vis-V09-01-00)
- G4VVisManager::Draw2D methods, already available for G4Text, extended to:
  G4Circle, G4Polyhedron, G4Polyline, G4Polymarker, G4Square.

21th August 2007  Tatiana Nikitina  (greps-V09-00-02)
- Fixed bug in scaling parameter for G4EllipticalCone representation in
  HepPolyhedron class.

18th July 2007  Tatiana Nikitina  (greps-V09-00-01)
- Added G4Paraboloid to HepPolyhedron and G4Polyhedron.
- Coworks with tag "geom-specific-V09-00-02".

17th July 2007  John Allison  (greps-V09-00-00)
- G4VGraphicsScene: Added constructor and virtual destructor.

8th June 2007  Gabriele Cosmo  (greps-V08-03-00)
- G4AttHolder: replaced forward declarations in header with explicit inclusions
  to allow for porting on Intel-icc compiler.

3rd April 2007  John Allison  (greps-V08-02-01)
- G4AttDefStore: now comprises utility functions in namespace
  G4AttDefStore.  (Used to be a class with only static functions and
  data members.)
- G4AttHolder: Made copy constructor and assignment private to enforce
  proper usage.

5th January 2007  John Allison  (greps-V08-02-00)
- G4VisAttributes:
  o SetForceLineSegmentsPerCircle: Bug fix: Now correctly implements reset.
  o Minor refinement: Introduced IsForceLineSegmentsPerCircle().
- G4Colour: Replaced static data members by static functions that
  create and copy out the relevant colours.  (Static data members make
  a lot of noise in the gdb debugger.  Anyway, are best avoided.)

7th November 2006  John Allison  (greps-V08-01-11)
- HepPolyhedronEllipticalCone: Bug fix.
- G4Visible: Fixed possible minor (subsidiary) memory leak in SetVisAttributes.
- G4AttCheck: Cosmetic.

2nd November 2006  John Allison  (greps-V08-01-10)
- G4Visible: Fixed copy constructor and assignment operator for deep copies.

1st November 2006  John Allison  (greps-V08-01-09; co-works: vis-V08-01-09)
- Tidied G4Att checking and storing:
  o G4AttCheck: Added store key to printing in operator<<.
  o G4AttDef: Improved printing of store key in operator<<.
  o G4AttDefStore: Removed GetName, introduced GetStoreKey.
  o G4AttHolder:
    ~ Removed GetAttDefsName.
    ~ Replaced AddAttValues and AddAttDefs by a combined AddAtts.

24th October 2006  John Allison  (greps-V08-01-08; co-works: vis-V08-01-08)
- G4VisAttributes: Change GetAttValues to CreateAttValues.  It creates
  an expendable copy on the heap, thus following the behaviour of
  CreateAttValues in trajectories, hits, etc.  This achieves consistency
  of behaviour and user expectation; the user must delete after use.
- G4AttHolder: Remove CopyAndAddAttValues.  No longer needed after
  above change to G4VisAttributes.

21st October 2006  John Allison  (greps-V08-01-07)
- Added G4AttHolder.
- G4AttDefStore: Changed GetName type from G4String to const G4String&.

17th October 2006  John Allison  (greps-V08-01-06)
- Moved below operator<< from G4AttCheck.hh/cc to G4AttDef.hh/cc.

16th October 2006  John Allison  (greps-V08-01-05)
- Added operator<< for G4AttDefs:
  std::ostream& operator<<
    (std::ostream& os, const std::map<G4String,G4AttDef>* definitions)
- Improved output diagnostics.

---------------------------------------------------------------------------
15th September 2006  John Allison  (greps-V08-01-04 - coworks vis-V08-01-06)
- G4Visible: Added fAllocatedVisAttributes to prevent memory leak.

12th September 2006 Jane Tinslay
- Remove trailing white spaces in G4ConversionUtils
- Add FilterHit method to G4VVisManager

11th September 2006 Jane Tinslay
- Add templated G4AttDef's and various utilities

11th September 2006  John Allison
- Fixed G4AttCheck for dimensionless "Physics" attributes (were
  previously "Bookkeeping").

6th September 2006 Jane Tinslay
- Add G4TypeKey & G4TypeKeyT classes

------------------------------------------------
26th August 2006  John Allison  (greps-V08-01-03)
- G4VisAttributes: Added time range.

25th August 2006 Jane Tinslay
- Make G4VFilter Accept method const

14th August 2006  John Allison  (greps-V08-01-02)
- G4AttCheck: Improved error checking.

10th July 2006  John Allison  (greps-V08-01-01)
- Co-works with vis-V08-01-01.
- G4VGraphicsScene.hh: Removed Establish/DecommissionSpecials.
- G4VisAttributes:
  o Added ForceLineSegmentsPerCircle.
  o Cosmetic re-ordering of methods,

3rd July 2006  John Allison  (greps-V08-01-00)
- G4AttCheck.cc:
  o Added G4bool to the list of allowed G4AttValue value types.
  o Added Density to the list of units categories.
- G4AttDefStore: Added GetName.

2nd May 2006 Jane Tinslay (greps-V08-00-03)
- Add FilterTrajectory method to G4VVisManager

19th April 2006  John Allison  (greps-V08-00-02 - needs vis-V08-00-04)
- G4VGraphicsScene: Added Begin/EndPrimitives2D.
- G4VVisManager: Added Draw2d(const G4Text&).

28th March 2006 Jane Tinslay (jst28032006)
- Add G4VFilter and G4SmartFilter

13th March 2006  John Allison  (greps-V08-00-01)
- Added operator<< for G4Text, G4Circle, G4Square, G4Polyhedron.
- Improved/tidied operator<< for G4Polyline, G4VMarker, G4VisAttributes.
- Improved comments in G4VVisManager.

13th January 2006  John Allison  (greps-V08-00-00)
- Added G4PolyhedronArbitrary:
  o Moved from geometry/solids/specific, where it was part of a
    development by Peter Truscott and Fan Lei of QinetiQ.
    G4PolyhedronArbitrary is a way of creating arbitrary G4Polyhedron
    objects out of vertices and indices.
  o Removed unnecessary operator= functions.

23rd November 2005  Jane Tinslay
- Update documentation in G4Colour

10th November 2005  Jane Tinslay (greps-V07-01-09)
- G4VVisManager: Fix Dispatch method name to "DispatchToModel".
- G4Colour: Use public static member functions instead of public
  static data members to avoid problems with dynamic libraries.

10th November 2005  John Allison
- G4VVisManager and G4VGraphicsScene: Replaced default arguments
  G4Transform3D::Identity by G4Transform3D().  (This is a avoid
  initialisation problems with static objects with dynamic libraries.)

9th November 2005  Gabriele Cosmo
- Implemented migration to support CLHEP-2.0.X, adding explicit namespace
  to CLHEP types. Affected files: HepPolyhedron[.h.cc], BooleanProcessor.src.

24th October 2005  John Allison (greps-V07-01-08)
- Moved G4VTrajectoryDrawer to modeling (renamed G4VTrajectoryModel).
- G4VVisManager.hh: Changed DispatchToCurrentDrawer to DispatchToCurrentModel.

21st October 2005 Jane Tinslay (greps-V07-01-07)
- Add G4VTrajectoryDrawer, an abstract base class for trajectory drawers
- Add "DispatchToCurrentDrawer" method to G4VVisManager

20th October 2005  John Allison (greps-V07-01-06)
- G4Colour.cc: Added #include <sstream>.

17th October 2005 Jane Tinslay (greps-V07-01-05)
- intercoms->graphics_reps migration for G4VGraphicsScene and G4VVisManager

13th October 2005 Jane Tinslay  (greps-V07-01-04)
- Additions to G4Colour
  o Add static data members for common colours.
  o Add G4String->G4Colour colour map.

3rd October 2005  John Allison
- G4NURBStubesector.cc: Replaced <strstream> by <sstream>.

16th September 2005  John Allison  (greps-V07-01-03)
- G4AttCheck.cc: Added time to legal G4AttValues.

10th August 2005  Gabriele Cosmo  (greps-V07-01-02)
- Added Polyhedron description for new G4EllipticalCone shape.
  Implementation by D.Anninos (CERN).
  Requires tag "geom-specific-V07-01-03" for geometry/solids/specific module.

5th July 2005  John Allison  (greps-V07-01-01)
- Big clean-up:
  o Removed redundant intermediate class, G4VVisPrim.
  o Removed redundant virtual assignments and similar oddities.

20th Jun 2005  Gabriele Cosmo  (greps-V07-01-00)
- Added Polyhedron description for new G4Ellipsoid shape.
  Contribution of G.Guerrieri (INFN Genova).

26th May 2005  John Allison  (greps-V07-00-07)
- Fixed bug introduced in greps-V07-00-05.
- Removed DEPRECATION of G4Visible::SetVisAttributes(const G4VisAttributes&)
  pending a resolution of the issues for a future release.

22nd May 2005  John Allison  (greps-V07-00-05)
- DEPRECATED G4Visible::SetVisAttributes (const G4VisAttributes&).
  Meanwhile created copy of G4VisAttributes object on the heap.

3rd May 2005  John Allison  (greps-V07-00-04)
- Improved G4AttCheck.

7th April 2005  John Allison  (greps-V07-00-03)
- Needs g3tog4-V07-00-00 and geometry-gmk-V07-00-00.
- Consolidated G4AttCheck.

28th March 2005  John Allison  (johna-050328a)
- G4AttCheck: Corrected for Extra and ValueType fields.  Augmented
  test of more fields.

28th March 2005  John Allison  (johna-050328)
- G4AttCheck: Added check of Extra field.

26th March 2005  John Allison  (johna-050326)
- G4AttCheck: Implemented prototype conversion from G4AttValue/Defs to
  "standard" versions.  Needs G4UIcommand, so makes a new category
  dependency.  Requires one to make a new lib map.  Seems OK, but
  must check with Gabriele.

22nd March 2005  John Allison  (greps-V07-00-02)
- G4Polyhedron: Added fNumberOfRotationStepsAtTimeOfCreation.
- G4VisAttributes: Changed std::vector<G4AttDef> to map<G4String,G4AttDef>.
- Added first version of G4AttCheck.

9th March 2005  John Allison  (greps-V07-00-01)
- HepPolyhedron: Added IsErrorBooleanProcess().
- BooleanProcessor: Added get_processor_error().
- G4Visible: Moved SetVisAttributes (const G4VisAttributes&) from .icc
  to .cc file and added warning message.

19th February 2005  John Allison  (greps-V07-00-00)
- Needed for vis-V07-00-06.
- Added G4VisExtent::NullExtent.

10th December 2004  G.Cosmo  (greps-V06-02-04)
- Replaced M_PI with CLHEP's pi.

8th December 2004  G.Cosmo  (greps-V06-02-03)
- HepPolyhedron, BooleanProcessor: replaced occurrences of HepStd::
  with std::
- Added inclusion of <cmath> in HepPolyhedron.cc.

7th December 2004  G.Cosmo  (greps-V06-02-02)
- Implemented migration to <cmath>.

11th November 2004  J.Allison  (greps-V06-02-01 - requires vis-V06-02-05)
- Removed G4Polymarker::line.  Use G4Polyline instead.
- Improved commenting of G4AttDef.

28th July 2004  J.Allison  (greps-V06-02-00)
- Introduced force auxiliary edge visible.

7th June 2004  G.Cosmo  (greps-V06-01-01)
- Fixed compilation problem on WIN32-VC for G4AttDefStore.
- Added definition of GLOBLIBS in GNUmakefile for DLLs build on Windows.

30th March 2004  G.Cosmo  (greps-V06-01-00)
- Implemented constructor and destructor for G4AttDefStore, to properly
  delete objects in the static map, allocated through explicit calls to
  GetInstance(). Made G4AttDefStore a singleton.

18th September 2003  J.Allison  (greps-V05-02-00)
- Introduced G4Colour<->G4ThreeVector conversion operators.

3rd April 2003  G.Cosmo  (greps-V05-00-00)
- Cleared trivial pedantic warnings.

27th November 2002  J.Allison  (greps-V04-01-05)
- Small revison of G4Scale and improvements in G4VMarker class description.

20th November 2002  G.Cosmo  (greps-V04-01-04)
- Patched access to public static data in G4Scale and G4VisAttributes.
  Added static accessors to be used in the kernel to allow porting on
  Windows DLLs.
- HepPolyhedron[.hh.cc]: changed inline static methods to not inlined.

11th November 2002  E.Chernaev  (greps-V04-01-03)
- Minor bug fix in HepPolyhedron::GetFacet().
- HepDouble, HepBoolean --> double, bool in HepPolyhedron

7th November 2002  E.Chernaev  (greps-V04-01-02)
- Added createTwistedTrap() and createPolyhedron() to HepPolyhedron.

28th October 2002  J.Allison  (greps-V04-01-01)
- Changed AttDefStore to return a map.

24th October 2002  John Allison  (greps-V04-01-00)
- Added G4AttDefStore.
- Further improved G4AttDef/Value.
- Added const G4std::vector<G4AttValue>* fAttValues/Defs to G4VisAttributes.

23rd October 2002  John Allison
- G4Colour class description corrected.
- G4VisAttributes comments slightly improved.
- G4AttDef and G4AttValue headers changed to follow G4 conventions.

27th September 2002  Joseph Perl
- Added first versions of headers for G4AttDef and G4AttValue.

10th September 2001  John Allison  (greps-V03-02-04)
- Added G4Scale::GuidanceString.

20th August 2001  John Allison  (greps-V03-02-03)
- Made typedef's public in G4Point3DList.hh and G4Polyline.hh.

14th August 2001  John Allison  (greps-V03-02-02)
- Coworks with vis-V03-02-11 and intercoms-V03-02-03.
- Added G4Polyline::transform.
- Fixed pedantic warnings in G4NURBS.

24th July May 2001  John Allison  (greps-V03-02-01)
- Improvements to comments and layout in G4VisExtent.
- Cosmetic improvements to G4Scale, small change of interface.

21st July May 2001  John Allison  (greps-V03-02-00)
- Added G4Scale.

25th May 2001  John Allison  (greps-V03-01-02)
- Added GetSurfaceArea() and GetVolume() to HepPolyhedron (Evgeni).
- Bug fix in BooleanProcessor.src (Guy, Evgeni).

3rd May 2001  John Allison  (greps-V03-01-01)
- Replaced G4RWTValOrderedVector by G4std::vector in G4PlacedPolyhedron
  and G4Point3DList.  Forces co-working tags in categories:
    geommng-V03-01-02
    tracking-V03-01-00
    vis-V03-01-01

11th April 2001  John Allison  (greps-V03-01-00)
- Some code has been added to cover unforeseen earlier situation
  during preselection of faces without intersection (Evgeni).
- Moved #include <CLHEP/config/TemplateFunctions.h> and others from
  HepPolyhedron.h to HepPolyhedron.cc (Evgeni).
- Fixed stupid warnings about possible use of uninitialized variables (Evgeni).
- Made GetNumberOfRotationSteps() static and public (John).

6th February 2001  John Allison  (greps-V03-00-01)
- More tidying for CodeWizard.  Added virtual destructors to
  HepPolyhedronBox, etc.  Also made all constructors non-inline.

3rd February 2001  John Allison  (greps-V03-00-00)
- Tidied for CodeWizard.  Note: G4Circle.icc and G4VVisPrim.icc removed, so
  "gmake clean" all relevant directories before updating.

5th June May 2000  Evgeni Chernaev (greps-V01-01-04)
- Bug fix in BooleanProcessor.src.
- Graceful recovery from caseIE() and caseEE() non-implementation
  (first polygon returned).

20th May 2000  Evgeni Chernaev (greps-V01-01-03)
- Temporary workaround to avoid caseIE() and caseEE.

13th May 2000  John Allison (greps-V01-01-02)
- Changed std:: to HepStd:: for ISO compatibility (Evgeni Chernaev).

11th April 2000  John Allison (greps-V01-01-01)
- Added operator = (const HepPolyhedron&) to ExtPolyhedron.

6th April 2000  John Allison (greps-V01-01-00)
- Tagged.

4th April 2000  Evgeni Chernaev
- Added boolean operations (add, subtract, intersect) on HepPolyhedron objects.
- Added BooleanProcessor.src.

30th March 2000  John Allison
- Added virtual operator= to G4Polyhedron.hh and HepPolyhedron.h to avoid
  warnings about hiding.

23rd February 2000  John Allison
- Moved G4Polyhedron constructors and destructor to .cc.

22nd February 2000  Evgeni Chernaev (greps-V01-00-03)
- Re-instated edge flags for "invisible" edges of HepPolyhedronCons and Torus.

22nd February 2000  John Allison  (greps-V01-00-02)
- Added HepPolyhedron (Evgeni Chernaev).  Re-implemented G4Polyhedron.

11th January 2000  John Allison  (greps-V01-00-01)
- Fix for spheres with small dtheta.

16th December 1999  John Allison (greps-V01-00-00)
- Added G4Polyhedron::Transform and G4Polyhedron::InvertFacets (Evgeni
  Chernaev).

17th November 1999 Satoshi Tanaka (greps-V00-01-01)
- Header comments for software reference manual

4th October 1999  John Allison  (greps-V00-01-00)
- Improved comments in G4Visible.hh.

23rd July 1999  John Allison
- Added base class copy to copy contructor of G4Polyhedron.

21st July 1999  John Allison
- Added G4PlacedPolyhedron, which includes G4PlacedPolyhedronList.

greps-01-00-08  5th June John Allison
- Added virtual operator = and overrides to G4Circle and G4Square.

greps-01-00-07  25th May 1999  John Allison
- Moved operator != to member function.

greps-01-00-06  19th May 1999  John Allison
- Fixed compilation warnings, mainly overriding virtual functions.

greps-01-00-05  12th May 1999  John Allison
- Made destructors virtual where applicable.

greps-01-00-04  28th April 1999  John Allison
- Moved G4VVisManager and G4VGraphicsScene to intercoms.

greps-01-00-03  7th February 1999  John Allison
- Removed GNU_GCC from G4Polymarker.cc.
- Added G4VGraphicsScene::AddThis (G4Polycone and G4Polyhedra.

greps-01-00-02  6th January 1999  John Allison
- Very minor change in G4VisExtent.cc - 2 -> 2.
- Inclusion of test/ in tag.

greps-01-00-01  6th January 1999  John Allison
- Corrected constructors of G4VisAttributes for initialisation of
  fDaughtersInvisible.

greps-00-04-02 02 December 1998 Evgeni Tcherniaev
- Added G4NURBS::CalcPoint() for calculation coordinates of a
point lying on the nurbs surface.

greps-00-04-01  25th November 1998  John Allison
- Added void G4VisAttributes::SetDaughtersInvisible (G4bool).

greps-00-03-03  9th November 1998 Satoshi Tanaka
Added G4String fInfo and its access functions to G4VMarker

greps-00-03-02  6th November 1998  John Allison
- Cleaned up GNUmakefile - no longer includes unnecesary -I's

greps-00-03-01  26th September 1998  John Allison
- Removed SetWorldVolume from G4VVisManager - no longer used.

greps-00-02-03  21st August 1998  John Allison
- Rationalised G4VisExtent::G4VisExtent (const G4Point3D& centre,
  G4double radius) so that iit is a true "inverse" of GetExtentRadius.
- Added global target to GNUmakefile (Gabriele Cosmo).

greps-00-02-02  14th August 1998  John Allison
- Added GeometryHasChanged() to G4VVisManager.  To be used by the run manager.

greps-00-02-01  6th August 1998  John Allison
- Removed Draw, ClearView and Show in G4VVisManager.

greps-00-06-03  26th June 1998  Gabriele Cosmo
- Updated test/GNUmakefile to new electromagnetics.

greps-00-06-02  10th June 1998  John Allison
- Changed defaults in G4VisExtent to 0.

1st June 1998  Satoshi Tanaka
- Added Draw(), ClearView(), Show() to G4VVisManager.

greps-00-06-01  29th April 1998  John Allison
- Introduced Establish/DecommissionSpecials (G4PhysicalVolumeModel&)
  in place of BeginModeling (G4PhysicalVolumeModel&).

April 21st, 98 G.Cosmo (greps-00-05-03)
- Tagged.

April 9th, 98 G.Cosmo
- Porting on DEC-cxx 6.0.
  Removed meaningless usage of "const" qualifier from functions
  return type for basic types by value. Modified files: G4NURBS.cc

greps-00-05-02  4th April 1998  John Allison
- Re-engineered maintenance of current depth, etc.  Needed new method
  G4VGraphicsScene::BeginModeling (G4PhysicalVolumeModel&) in
  graphics_reps.  The result is much cleaner model and modeling
  parameters classes.  Also, the current depth, physical volume and
  logical volume are immediately available as protected pointers in
  G4VScene.

HEAD  3rd April 1998  John Allison
- Added GetWorld/ScreenDiameter/Radius to G4VMarker.

April 2, 1998 G.Barrand :
- G4Polyhedron.cc : add a G4double cast to help NT/Visual compiler.

greps-00-05-01  26th March 1998  John Allison
- Removed #if defined(__DECCXX) || defined(WIN32) from G4NURBS.hh.
- Improved comments in G4VMarker.hh

7th January 1998  John Allison
- Added arguments to PreAddThis in G4VGraphicsScene.hh.
- Added virtual destructor to G4VVisManager.

December 19, 97 G. Cosmo - (alpha03)

- Created.

- Previous history (from README)

vis-00-01-02  13th July 1997  John Allison
- Consolidation of previous tag.

vis-00-01-01  8th June 1997  John Allison
- First systematic tag.
- G4Polyhedron - can now set number of sides for circle polygon approximation
