
$Id: History,v 1.62 2007/10/24 08:19:11 gcosmo 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 !

   Please keep a summary of these message in geometry/History!

     ----------------------------------------------------------
     * Reverse chronological order (last date on top), please *
     ----------------------------------------------------------

 Oct 24, 2007  V.Grichine                 geom-bool-V09-00-00
  - Improved response of Inside() for G4SubtractionSolid and G4UnionSolid
    according to suggestion in problem report #979.

 May 18, 2007  G.Cosmo                    geom-bool-V08-03-00
  - Use kAngTolerance and kRadTolerance from G4GeometryTolerance class.
  - Updated unit tests.
  - Coworks with tag "global-V08-03-03".

 Nov 08, 2006  G.Cosmo                    geom-bool-V08-01-02
  - Fixed compilation problems on SUN-CC for changes in the last tag.
    Added inclusion of <sstream> header in G4IntersectionSolid.cc and
    G4UnionSolid.cc.

 Nov 06, 2006  J.Allison                  geom-bool-V08-01-01
  - G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid:
    fixed CreatePolyhedron() for case of component that does
    not have a G4Polyhedron representation.
  - Added checks for point on boolean surface to unit tests
    testG4DisplacedSolid and testG4SubtractionSolid (V.Grichine).

 Oct 19, 2006  G.Cosmo                    geom-bool-V08-01-00
  - Added GetSurfaceArea() method, accessors and modifiers to base class
    G4BooleanSolid, implementing the caching mechanism as for volumes.

 May 03, 2006  V.Grichine                 geom-bool-V08-00-00
  - Fix in G4IntersectionSolid::CalculateExtent() for the correctly handling
    extent computation for nested intersections and always respect the rule
    pMax > pMin.

 Nov 09, 2005  G.Cosmo                    geom-bool-V07-01-01
  - Added fake default constructor for concrete solids types and relevant
    utility classes, for usage of direct object persistency.

 Sep 15, 2005  V.Grichine                 geom-bool-V07-01-00
  - Added concrete implementation for GetPointOnSurface() to
    G4BooleanSolid and G4DisplacedSolid.
  - Updated unit tests testG4DisplacedSolid and testG4IntersectionSolid.

 May 04, 2005  V.Grichine                 geom-bool-V07-00-03
  - Make the new implementation of Inside() with surface-normal for
    edges/vertices the deafult one.
    Removed G4NEW_SURF_NORMAL compilation flag.

 Mar 23, 2005  J.Allison                  geom-bool-V07-00-02
  - Added test for Number-Of-Rotation-Steps in GetPolyhedron()
    for G4DisplacedSolid and G4BooleanSolid. Requires tag "greps-V07-00-02".

 Mar 10, 2005  V.Grichine                 geom-bool-V07-00-01
  - Modified Inside(p) G4SubtractionSolid and G4UnionSolid, to fix
    inconsistency for non-zero sum of surface-normals.
    Available only through activation of G4NEW_SURF_NORMAL compilation flag.
  - Updated unit tests.

 Mar 03, 2005  J.Allison
  - Changed AddThis() to AddSolid() in the concrete implementations of
    DescribeYourselfTo(G4VGraphicsScene&) for all solids. Use the
    newly available CreatePolyhedron() for components of Boolean
    solids, instead of GetPolyhedron().

 Feb 22, 2005  V.Grichine                 geom-bool-V07-00-00
  - Fix in G4IntersectionSolid::DistanceToIn(p,v) to allow for correct
    simmetrical treatment of the solids' intersection. Algorithm reviewed
    as proposed by D.Bazzacco in problem report #723.
  - New unit test testBoolSurfaceInOut.cc for checking dIn-dOut and AB,
    BA booleans on surface.

 Oct 10, 2004  J.Allison                  geom-bool-V06-02-01
  - Added GetPolyhedron, a smart access function that creates a G4Polyhedron
    on request and stores for future access.  A null pointer means "not
    available".

 Sep 22, 2004   V.Grichine                geom-bool-V06-02-00
  - Added specific implementation for G4BooleanSolid::GetCubicVolume()
    to cache the computed value.
  - Moved inline methods for G4BooleanSolid to .icc file.

 May 07, 2004   G.Cosmo                   geom-bool-V06-01-00
  - Moved G4ReflectedSolid class to "management" module.
  - Moved G4ReflectionFactory class to "volumes" module.
  - Moved unit test for reflection to "volumes" module.
  - Coworks with tags: geommng-V06-01-00, geomvol-V06-01-00 and
                       geomdiv-V06-01-00.

 Feb 27, 2004   V.Grichine                geom-bool-V06-00-00
  - G4UnionSolid.cc, G4SubtractionSolid.cc: fix in debug printout for
    SurfaceNomal().

 Dec 01, 2003   G.Cosmo                   geom-bool-V05-02-04
  - G4ReflectedSolid.cc: fixed trivial leak in constructor.

 Nov 03, 2003   G.Cosmo                   geom-bool-V05-02-03
  - Code cleanup and headers inclusion review
    (replaced by forward declarations where necessary).

 Oct 28, 2003   G.Cosmo                   geom-bool-V05-02-02
  - Migration to new G4Exception scheme.

 Oct 28, 2003   J.Apostolakis
  - Modified test/GNUmakefile to delete un-necessary directories.
    It no longer refers to navigator (old volumes), but includes
    intercoms (for G4VVisManager).

 Oct  9, 2003   V.Grichine                geom-bool-V05-02-01
  - Fixes to default safety to zero in DistIn/Out(p) methods.
    Note: Using previous test GNUmakefile (to be corrected).

 Sep 30, 2003   G.Cosmo                   geom-bool-V05-02-00
  - Updated GNUmakefile for unit tests, according to new structure
    introduced in "geometry-V05-02-00".

 Jun 12, 2003   G.Cosmo                   geom-bool-V05-01-02
  - G4ReflectionFactory:
    o Made public accessors: GetConstituentLV(), GetReflectedLV(),
      IsConstituent() and IsReflected().
    o Added accessor GetReflectedVolumesMap() to access list of
      reflected volumes.

 May 22, 2003   G.Cosmo                   geom-bool-V05-01-01
  - Implementations for Set/GetScalePrecision() in G4ReflectionFactory
    missing! Now fixed.

 May 12, 2003   G.Cosmo                   geom-bool-V05-01-00
  - Added set/get methods for scale precision in G4ReflectionFactory.

 Mar 25, 2003   G.Cosmo                   geom-bool-V05-00-01
  - Fixed trivial strict pedantic warnings in G4ReflectedSolid.cc and
    G4ReflectionFactory.cc.
  - Minor fixes to unit tests.

 Jan 27, 2003   G.Cosmo                   geom-bool-V05-00-00
  - G4ReflectionFactory[.hh.cc] (courtesy of I.Hrivnacova):
    o Added set/get functions Set/GetVolumesNameExtension() for volume-name
      extension. By default now the factory assigns "_refl" postfix to name
      of reflected volumes.
    o Assumed less strict condition in the CheckScale() method, to avoid
      precision problems with imported rotation matrices.

 Oct 29  2002  Gabriele Cosmo       geom-bool-V04-01-01
  - Added method CleanTransformations() to G4DisplacedSolid and corrected
    implementation in destructor of G4BooleanSolid to not call for deletion
    of G4VSolid in the case where displacement is used.
    This fixes a problem noticed on Linux-g++ at application closeout for
    double deletion of a solid in such special case.

 Oct 28  2002  Gabriele Cosmo       geom-bool-V04-01-00
  - Added implementation of StreamInfo() to comply with new interface for
    G4VSolid in "geommng-V04-01-03".
  - Some cosmetic changes to code formatting.
  - Extended unit tests to include new user test-cases (V.Grichine).

 May 11  2002  Vladimir Grichine    geom-bool-V04-00-05
  - G4ReflectedSolid.cc: bounding-box like algorithm for CalculateExtent().

 Apr 16  2002  Vladimir Grichine    geom-bool-V04-00-04
  - G4ReflectedSolid.cc: enhanced algorithm for CalculateExtent(), now
    passing all basic unit tests.
  - Updated unit test for G4ReflectedSolid, testG4ReflectedSolid.cc

 Mar 26  2002  Vladimir Grichine    geom-bool-V04-00-03
  - G4ReflectedSolid.cc: modified implementation of CalculateExtent() to
    properly consider transformation of reflected extent.

 Feb 15  2002  Vladimir Grichine    geom-bool-V04-00-02
  - G4ReflectedSolid[.hh.cc]:
    o Defined new methods Set/GetTransform3D() and Set/GetDirectTransform3D()
      for defining/accessing the real reflected transformation
    o Moved methods for G4AffineTransform to protected.

 Feb 07  2002  Gabriele Cosmo       geom-bool-V04-00-01
  - G4ReflectionFactory.cc: fixed bug causing repetition of daughter volumes.

 Jan 10  2002  Gabriele Cosmo       geom-solid-bool-V04-00-00
  - Moved all verbosity mode warnings to G4BOOLDEBUG and commented exceptions.
  - Activated G4BOOLDEBUG mechanism in GNUmakefile.
  - Fixed unit tests.

 Nov 08  2001  Gabriele Cosmo       geom-solid-bool-V03-02-02
  - Fix for verbosity in G4ReflectionFactory.cc. Reduced of one level.

 Oct 18  2001  Gabriele Cosmo       geom-solid-bool-V03-02-01
  - Introduced first implementation of classes G4ReflectedSolid and
    G4ReflectionFactory for reflections of positioned volumes
    (courtesy of V.Grichine and I.Hrivnacova).
  - Fixed bug in G4ReflectedSolid::CreatePolyhedron().

 Aug 13  2001  Vladimir Grichine    geom-solid-bool-V03-02-00
  - Introduced G4BOOLDEBUG flag and replaced G4Exception statements with
    simple warnings to G4cerr for rare occurences of anomalous conditions.

 May 30  2001  Vladimir Grichine    geom-solid-bool-V03-01-00
  - G4IntersectionSolid: fix in DistanceToIn(p,v) resolving bug observed
    in problem report #153.

 Mar 19  2001  Gabriele Cosmo       geom-solid-bool-V03-00-03

  - G4IntersectionSolid:
    o fix in CalculateExtent() for computation of pMin and pMax, to avoid
      assignment in case CalculateExtent() of one component solid fails.
    o fix in Inside() to return kOutside in case first component solid's
      Inside() returns kOutside.
  - G4UnionSolid:
    o fix in CalculateExtent() for computation of pMin and pMax: initialised
      local variables.

 Jan 31  2001  Gabriele Cosmo       geom-solid-bool-V03-00-02

  - Fix in G4UnionSolid::DistanceToOut(p,v,...) for assignment of
    argument *n. Previous fix was incomplete!

 Jan 23  2001  Gabriele Cosmo       geom-solid-bool-V03-00-01
 
  - Fixed wrong labels for G4Exception calls in G4UnionSolid.cc and
    G4SubtractionSolid.cc to identify the correct class.
    Fixes bug report #200.

 Jan 08  2001  Vladimir Grichine    geom-solid-bool-V03-00-00

  - Fix in G4UnionSolid::DistanceToOut(p,v,...) for assignment of
    argument *n to happen only if calcNorm is false.
    (courtesy of D.Williams)
  - Updated unit tests testG4IntersectionSolid.cc, testG4SubtractionSolid.cc
    and test/testG4UnionSolid.cc.

 Nov 22  2000  Vladimir Grichine    geom-solid-bool-V02-00-03

  - Added new set methods for matrix/vectors to G4DisplacedSolid:
      SetTransform(G4AffineTransform&),
      SetDirectTransform(G4AffineTransform&),
      SetFrameRotation(const G4RotationMatrix&),
      SetFrameTranslation(const G4ThreeVector&),
      SetObjectRotation(const G4RotationMatrix&),
      SetObjectTranslation(const G4ThreeVector&).

 Nov 20  2000  Gabriele Cosmo       geom-solid-bool-V02-00-02

  - Fixes to remove warnings from "-Wall -ansi -pedantic" g++ compiler options:
    o commented out variables declared and not used.
    o fixed declaration of variables used before being initialised.
    o fixed order of initialisation of member data in constructors.
    o fixed usage of unsigned-int (size_t) for array indeces.

 Nov 2   2000  Gabriele Cosmo       geom-solid-bool-V02-00-01

  - QA code revision and cleanup (+fixes from CodeWizard filtering):
    o Added (private) declarations of copy constructor and assignment
      operator where needed.
    o Changed virtual functions to non-inline wherever's the case.

 Sep 13  2000  Vladimir Grichine    geom-solid-bool-V02-00-00

  - G4SubtractionSolid.cc: relaxed behavior in SurfaceNormal(p), where
    it is allowed for a point to be inside the solid. A message is thrown
    to cerr instead of a G4Exception.

 Jun 26  2000  Vladimir Grichine    geom-solid-bool-V01-01-03

  - Fixed bug in G4SubtractionSolid::DistanceToOut(p,v,...). validNorm
    flag was uncorrectly set to true. Fixes report #102.

 Jun 6   2000  John Apostolakis     geom-solid-bool-V01-01-02

  - Protecting the use of pointers validNorm and n, if calcNorm is false

 Jun 6   2000  John Allison         geom-solid-bool-V01-01-01

  - Re-enabled CreatePolyhedron() method from G4UnionSolid, G4IntersectionSolid
    and G4SubtractionSolid.  Coworks with greps-V01-01-04.

 May 26  2000  John Allison         geom-solid-bool-V01-01-00

  - Disabled CreatePolyhedron() method from G4UnionSolid, G4IntersectionSolid
    and G4SubtractionSolid. It now temporarly returns a NULL pointer.
    Visualisation of Boolean solids is therefore temporarly disabled, pending
    a definitive fix in graphics_reps.
    Files G4UnionSolid.cc, G4SubtractionSolid.cc and G4IntersectionSolid.cc
    are included in the branch-tag "boolean_nopoly_branch".

 Apr 27  2000  Gabriele Cosmo

  - Reorganised comments for the Software Reference Manual.
  - Added CVS headers and standard G4 header where missing.

 Apr 11  2000  John Allison

  - CreatePolyhedron implemented for BooleanSolids.
  - G4DisplacedSolid: reversed implementation of GetFrameRotation and
    GetObjectRotation, removing inappropriate invertion.
  - G4DisplacedSolid::GetConstituentMovedSolid() made const.

 Jan 19  2000	Gabriele Cosmo	    geom-solid-bool-V01-00-00

  - Syncronized file versions with HEAD (essentially CVS headers changes)
  - Fixed cases of G4std::min which were not migrated on the HEAD in files:
    G4UnionSolid.cc and G4IntersectionSolid.cc

 Nov 24  1999 			    geom-solid-bool-V00-01-05

  - Small fix in src/G4DisplacedSolid.cc to the return type 
         (const G4AffineTransform --> G4AffineTransform)
    to conform with the specification of the class.

 Nov 19  1999                       geom-solid-bool-V00-01-04

  -  Fixes from Vladimir, and additional tests

 Nov 10  1999                       geom-solid-bool-V00-01-03b

  - Renamed  GetConstituentSolid to GetConstituentMovedSolid in G4DisplacedSolid
     to avoid clashing with method that gets the contituents of a G4BooleanSolid.

 Nov 10  1999                       geom-solid-bool-V00-01-03a

  - Tag with additional methods for Persistency

 Nov 10  1999                       geom-solid-bool-V00-01-03-cand

  New method: Get Object Rotation/Translation methods in Displaced Solid

 Nov  9  1999                       geom-solid-bool-V00-01-02-cand
  
  - Tag with additional methods for Visualisation

   G4DisplacedSolid,  G4BooleanSolid

      Added methods to access data members:
          Get Constituent Solid  (int) for Boolean   Solid 
          Get Constituent Solid        for Displaced Solid 
          Get Frame Rotation/Translation methods in Displaced Solid



  Dec  1  1998   John Apostolakis   geom-boolean-4-ja

    Code portability changes.

  Nov 27  1998   J.Apostolakis & V.Grichine   geom-boolean-3-vg

    Fixes agreed in code review were implemented.
