$Id: History,v 1.37 2002/06/24 07:15:27 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 !

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

June 24, 2002  G. Cosmo                    geommng-V04-00-08
- G4AssemblyVolume[.hh.cc]:
  o Moved accessors to assembly counters to public.
  o Added support for user definable count base for generated physical volumes.
  Fixes problem report #382.

June 7, 2002  G. Cosmo                     geommng-V04-00-07
- G4AssemblyVolume[.hh.cc]:
  o Fixed inconsistent handling of input rotation matrices by caching them
    with corresponding deallocation at destruction time.
    Comments updated accordingly with a warning about foreseen changes
    in methods' interfaces expected by next major release 5.0.
  o Correctly handle cases when pointer to rotation matrix is zero.
  o Updated unit test.

May 17, 2002  G. Cosmo                     geommng-V04-00-06
- Added ability to optionally optimise/non-optimise detector regions
  using logical volumes:
  o G4LogicalVolume:
    - Introduced additional bool argument to constructor,
      set to 'true' by default.
    - Added method IsToOptimise() with corresponding bool flag attribute.
  o G4GeometryManager:
    - Adapted BuildOptimisations() method to consider optional optimisation
      flag from G4LogicalVolume.

May 15, 2002  G. Cosmo                     geommng-V04-00-05
- G4SmartVoxelHeader:
  o Added utility method GetParamAxis() to retrieve suggested axis for
    optimisation of parametrised geometry.
  o Enhanced BuildReplicaVoxels() to apply 3D voxelisation for non-consuming
    nodes if undefined axis is specified for parametrised volumes. In such
    case, optimisation for parameterised volumes is applied similarly to
    normal placements.
- G4PVReplica.cc: deal with 'kUndefined' EAxis.
- Co-works with "global-V04-00-06".

May 13, 2002  G. Cosmo                     geommng-V04-00-04
- G4VSolid: use polygon clipping for limited voxel when != pAxis (V.Grichine).
- G4GeometryManager: added method IsGeometryClosed() for detecting geometry
  closed or open.
- G4LogicalVolumeStore, G4PhysicalVolumeStore, G4SolidStore: added protection
  to Clean() method for checking if geometry is closed.
- G4SmartVoxelHeader.cc: cosmetics and formatting cleanup.

April 19, 2002  G. Cosmo                   geommng-V04-00-03
- Moved inline constructors/destructors to no inline.
  Affected files: G4DrawVoxels[.hh.cc], G4SmartVoxelNode[.hh.cc],
                  G4SmartVoxelProxy[.hh.cc], G4VoxelLimits[.hh.cc].
- Enhanced behavior for destructors of volumes/solids stores.
  o Added locking mechanism for preventing conflicts when destroying stores
    and deregistering pointers. Now destructors of stores will also
    explicitely delete pointers (and therefore allocated volumes/solids)
    dynamically allocated in the user application.
  o Added Clean() static method to volumes/solids stores to explicitely
    delete pointed objects in the stores and clear all entries.
  o Modified files: G4LogicalVolumeStore[.hh.cc], G4SolidStore[.hh.cc],
                    G4PhysicalVolumeStore[.hh.cc].

April 16, 2002  V. Grichine                geommng-V04-00-02
- G4VSolid[.hh.cc]: fixed bug in G4VSolid::ClipPoligon() to consider
  clipping related to a single axis.
- G4VoxelLimits.cc: cosmetics changes and debug printouts ...

February 26, 2002  G. Cosmo                geommng-V04-00-01
- G4GeometryManager.cc: fixed handling of ios manipulators and precision to reset
  to their original state in G4GeometryManager::ReportVoxelStats().
  Fixes problem report #343.

January 08, 2002  G. Cosmo                 geommng-V04-00-00
- G4AffineTransform.icc: fixed trivial compilation warning for gcc-2.95.2.
- Included latest cosmetics changes to TestAssemblyVolume/TstVADetectorConstruction.cc.

November 23, 2001  G. Cosmo                geommng-V03-02-03
- Initialise noNodes to 1 in G4SmartVoxelHeader::BuildNodes() in case
  computed nodes for smartless happen to be zero (J.Apostolakis).

November 08, 2001  G. Cosmo                geommng-V03-02-02
- Fixed comments for reference manual in G4TouchableHandle.hh.
 
October 26, 2001  G. Cosmo                 geommng-V03-02-01
- Improved printout in G4GeometryManager::ReportVoxelStats().

October 22, 2001  G. Cosmo                 geommng-V03-02-00
- Added definition of G4TouchableHandle (R.Chytracek)
- Added class G4SmartVoxelStat for statistics on geometry optimisation
  of volumes through voxelisation (courtesy of D.C.Williams).
- Modified G4GeometryManager to make use of G4SmartVoxelStat when run in
  verbose mode.

May 31, 2001  G. Cosmo                     geommng-V03-01-04
- Adopt explicit initialisation for 'minExtents' and 'maxExtents'
  in G4SmartVoxelHeader::BuildNodes(...), to allow porting on ObjectSpace STL.

May 23, 2001  G. Cosmo                     geommng-V03-01-03
- G4SmartVoxelHeader.cc: minor fix for removing pedantic warnings
  detected on Linux-g++ with ISO/ANSI setup.

May 03, 2001  G. Cosmo                     geommng-V03-01-02
- G4DrawVoxels.cc: migration to STL vector according to changes in
  graphics_reps module (greps-V03-01-01), now migrated as well.

April 27, 2001  G. Cosmo                   geommng-V03-01-01
- G4LogicalVolume.cc, G4SmartVoxelHeader.cc: fixed compilation warnings
  on HP-UX, concerning potential uninitialised vector elements.

April 20, 2001  G. Cosmo                   geommng-V03-01-00
- Migration to STL vector:
  o G4VSolid: migrated G4ThreeVectorList typedef.
  o G4SolidStore, G4LogicalVolumeStore, G4PhysicalVolumeStore: migrated
    inheritance from base collection of pointers.
  o G4LogicalVolume: migrated data member "fDaughters".
  o G4SmartVoxelHeader: migrated typedefs G4ProxyVector, G4NodeVector,
    G4VolumeNosVector and G4VolumeExtentVector.
  o G4SmartVoxelNode: migrated G4SliceVector typedef.

March 07, 2001  G. Cosmo                   geommng-V03-00-01
- G4PVPlacement.hh: corrected comments to constructor with G4RotationMatrix*
  as argument, to correspond to specifications in the User's Manual.
- G4AssemblyVolume.cc: corrected comments about unique PV identifiers
  (by R.Chytracek).

February 07, 2001  G. Cosmo                geommng-V03-00-00
- Introduced first implementation of G4AssemblyVolume, a helper class to
  combine several volumes together in an arbitrary way in the 3D space.
  Added files: G4AssemblyVolume[.hh.icc.cc], G4AssemblyTriplet[.hh.icc]
  (by R.Chytracek).
- Added unit test suite for G4AssemblyVolume class: TestAssemblyVolume
  (by R.Chytracek).

December 04, 2000  G. Cosmo
- Minor fix to private assignment operator.

November 20, 2000  G. Cosmo                geommng-V02-00-04
- 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.

November 16, 2000  V.Grichine              geommng-V02-00-03
- Fix in G4VSolid::CalculateClippedPoligonExtent(): removed assumption
  that pMin<pMax by eliminating "else" condition. (D.Williams)

November 9, 2000   G.Cosmo                 geommng-V02-00-02
- Included test directory containing "voxel" test by L.Grainac.

November 1, 2000   G.Cosmo                 geommng-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 Added "const" qualifier to accessor methods, wherever needed.
  o Added equality check on operator= where needed.
  o Made destructor "virtual" for classes having virtual methods,
    wherever missing.
  o Changed virtual functions to non-inline wherever's the case.
  o Added "inline" qualifier to methods' declarations.
  o Replaced usage of "do-loops" with "while-loops" in
    G4VoxelLimits::ClipToLimits().
  o General cosmetics

September 11, 2000   G.Cosmo               geommng-V02-00-00
- G4SolidStore.cc: fixed bug in destructor causing memory corruption at
  application exit when Boolean solids are involved (bug #154).

June 06, 2000   G.Cosmo                    geommng-V01-01-00

- G4DrawVoxels.hh: removed line '#define G4DrawVoxelsDebug' left in place
  accidentally in the code...

April 20, 2000   G. Cosmo

- Reorganised comments for the Software Reference Manual.
- Moved inlined definition to .icc files, where needed.
  Created: G4SmartVoxelHeader.icc, G4SmartVoxelNode.icc,
           G4SmartVoxelProxy.icc, G4VoxelLimits.icc.

April 11, 2000   J. Allison

- Made virtual G4VisExtent G4VSolid::GetExtent() non-pure and implemented
    a default in terms of CalculateExtent.

January 19, 00       G. Cosmo              geommng-V01-00-00

Syncronized file versioning with HEAD (several CVS headers changed
due to the recent migration for ISO C++)

January 19, 00       J. Allison

G4DrawVoxels.cc:

Assured GetSlice(slice_no) is called for slice_no < no_slices.

November 30, 99      G. Cosmo              geommng-V00-01-01a

G4DrawVoxels.cc:

Fixed initialization of (const G4VPhysicalVolume*) in method
GetAbsoluteTransformation(). Fix needed for NT/VC++ compiler.

November 09, 99      J. Apostolakis        geommng-V00-01-01

G4VPhysicalVolume:
  i) Made G4RotationMatrix G4VPhysicalVolume::GetObjectRotation() const
      non-inline and moved it to source file from inline file.
 ii) Added GetObjectRotationValue() method.
iii) Minimal changes of comments for Software Ref. Manual in header file

  [ Change i) caused problem with HP aCC compiler A.01.19.  Atlas 
     was patching the code to try to get around this, but this 
     resolution is much better ] 

March    17, 99      J. Apostolakis        geommng-01-00-02

G4AffineTransform.icc:  
 
  Corrected a typo in InverseProduct (rzy->ryz) that caused the incorrect 
calculation of a compound transformation (if tf1.tz*tf2.ryz != 0). 

  [ This problem was seen in the code of two Atlas Geant4 collaborators:
     Andrea del' Acqua and Maya Stavrinakou ] 

