$Id: History,v 1.79 2010/11/23 15:15:11 gcosmo Exp $
----------------------------------------------------------------------------

     =========================================================
     Geant4 - an Object-Oriented Toolkit for Simulation in HEP
     =========================================================

             History file for geometry/solids/BREPS
	     --------------------------------------
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 *
     ----------------------------------------------------------

23/11/2010 : G.Cosmo           breps-V09-03-07 and V09-03-06
- Fixed remaining cases of pointer handling in experimental G4BezierSurface
  code.

01/11/2010 : G.Cosmo           breps-V09-03-05
- Fixed cases of null pointer forward in G4BREPSolid, G4BREPSolidPolyhedra
  and G4BezierSurface classes.

20/10/2010 : G.Cosmo           breps-V09-03-04
- Implemented Clone() virtual method for all solids, returning a pointer
  to a dynamically allocated copy of the solid. To be used by Geant4-MT.

22/09/2010 : G. Cosmo          breps-V09-03-03
- Implemented copy-constructor and assignment operator for solids classes
  to facilitate conversion to Geant4-MT.

06/09/2010 : G. Cosmo          breps-V09-03-02
- Fixed possible leak in G4BREPSolid::IsConvex() method.
- Corrected possible dereferencing of null pointer in method
  G4BREPSolidSphere::DistanceToOut().
- Corrected deletion of internal data in G4BSplineCurve::Project() method.
- Fixed possible leak in G4BezierSurface::ClipSurface() method, and fixed
  case of dereferenciation of null pointer.
- Fixed leak in destructor of G4ToroidalSurface.
- Added dummy initialisation of static data in G4BoundingBox3D,
  G4ProjectedSurface and G4Surface.

13/07/2010 : G. Cosmo          breps-V09-03-01
- Fixed compilation warning on Linux for G4Surface...

05/07/2010 : G. Cosmo          breps-V09-03-00
- G4Hyperbola: corrected signature to internal Init() function to avoid
  parameter passed by value.
- G4Assembly: corrected case of invalid iterator in destructor.
- G4BREPSolid: corrected logic in IsConvex(), avoiding explicit memory leak.
- G4BSplineCurve: corrected initialization of null pointer in Project();
  removed useless typedef.
- G4CompositeCurve, G4SurfaceBoundary: corrected cases of invalid iterator.
- G4OsloMatrix: fixed leak in construction of G4PointMatrix.
- Added fake initializations to constructors in G4BREPSolid, G4Assembly,
  G4BREPSolidPCone, G4BREPSolidPolyhedra, G4BSplineSurface, G4BezierSurface,
  G4BoundingBox3D, G4CircularCurve, G4Curve, G4CurvePoint, G4Ellipse,
  G4FCylindricalSurface, G4FPlane, G4Hyperbola, G4KnotVector, G4OsloMatrix,
  G4Parabola, G4ProjectedSurface, G4Ray, G4RectangularTrimmedSurface,
  G4Surface, G4ToroidalSurface.
- Code cleanup in G4ConicalSurface, GCylindricalSurface and G4SpericalSurface.

08/07/2008 : G. Cosmo          breps-V09-01-02
- Replaced exit() statement with G4Exception in G4Ray.

13/03/2008 : G. Cosmo          breps-V09-01-01
- Cleared compilation warnings on gcc-4.3.0 for ambiguous use of parentheses
  in condition statements, if-else constructs and empty for-loops.

22/01/2008 : T. Nikitina       breps-V09-01-00
- Fixed bug in G4BREPSolidPolyhedra::DistanceToOut() for cases of particle
  passing the border of two touching surfaces.
- G4BREPSolidBox: fixed problem in the constructor in definition of the
  side for the normal to surface.

16/07/2007 : G. Cosmo          breps-V09-00-00
- Added missing initialisations of kCarTolerance in alternative constructors
  for G4BoundingBox3D, G4Curve, G4CurveRayIntersection, G4KnotVector.
  Addressing problem report #959.

18/05/2007 : G. Cosmo          breps-V08-03-01
- Use kAngTolerance and kRadTolerance from G4GeometryTolerance class.
- Coworks with tag "global-V08-03-03".

11/05/2007 : G. Cosmo          breps-V08-03-00
- Use call to G4GeometryTolerance instead of kCarTolerance where needed.
- Requires tag "global-V08-03-00" and related tag set.

19/10/2006 : G. Cosmo          breps-V08-01-00
- Added GetSurfaceArea() method, accessors and modifiers to base class
  G4BREPSolid, implementing the caching mechanism as for volumes.

21/12/2005 : G. Cosmo          breps-V08-00-00
- Use explicit 'HepGeom' namespace for 'Identity', to allow for porting
  on Windows/VC++ when using CLHEP-2.0.X.

09/11/2005 : G. Cosmo          breps-V07-01-01
- Added fake default constructor for concrete solids and G4BREPSolid,
  for usage of direct object persistency.
- Implemented changes to support CLHEP-2.0.X for explicit usage of the
  CLHEP/HepGeom namespaces for CLHEP types.
- Implemented migration to <sstream> for affected classes:
  G4BREPSolidPCone and G4BREPSolidPolyhedra.

02/08/2005 : O. Link           breps-V07-01-00
- Fixed problem of double-deletion in G4BREPSolidPolyhedra and
  G4BREPSolidPCone destructors.

23/03/2005 : J. Allison        breps-V07-00-01
- Added test for Number-Of-Rotation-Steps in G4BREPSolid::GetPolyhedron().
  Requires tag "greps-V07-00-02".

03/03/2005 : J. Allison        breps-V07-00-00
- Changed AddThis() with AddSolid() for all solids in DescribeYourselfTo()
  implementation for G4BREPSolid and G4BREPSolidOpenPCone.

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

22/09/2004 : V. Grichine       breps-V06-02-01
- G4BREPSolid[.hh.icc.cc]: added specific implementation for GetCubicVolume()
  to cache the computed value.

02/07/2004 : G. Cosmo          breps-V06-02-00
- G4BREPSolidPolyhedra.cc, G4BREPSolidPCone.cc:
  o Use squared-half-tolerance for handling with surface distances instead
    of 0.5*kCarTolerance, in Inside(p), SurfaceNormal(p), DistanceToIn(p,v),
    DistanceToOut(p,v,...).
  o Implemented SurfaceNormal(p) to follow specifications for G4VSolid,
    i.e. return the normal to the closest surface if the point is not on
    boundary.
  o Some code cleanup ...
- G4BREPSolid.cc:
  o Use squared-half-tolerance for handling with surface distances instead
    of 0.5*kCarTolerance, in Inside(p), SurfaceNormal(p), DistanceToIn(p,v),
    DistanceToOut(p,v,...), Intersert(r), FinalEvaluation(r,i).
  o Some code cleanup ...

28/10/2003 : G. Cosmo          breps-V05-02-01
- Migrated to use new G4Exception scheme.

30/09/2003 : G. Cosmo          breps-V05-02-00
- Archived unit tests for STEP.

04/06/2003 : G. Cosmo          breps-V05-01-01
- Fixes for inclusion of <strstream> in G4BREPSolidPCone.cc in view
  of the g4std wrappers migration.

21/05/2003 : G. Cosmo          breps-V05-01-00
- G4BREPSolidPCone.cc: commented out verbose-mode in SurfaceNormal().
  Temporary solution to problem reports #425, #431 and #474.

28/03/2003 : G. Cosmo          breps-V05-00-00
- Fixed strict pedantic warnings and updated unit tests.

03/12/2002 : G. Cosmo          breps-V04-01-04
- Fix to concrete BREPS for porting code on Windows: explicitely name the
  internal struct type holding the solid parameters.

21/11/2002 : G. Cosmo          breps-V04-01-03
- G4Ray[.hh.icc.cc], G4Surface[.hh.icc.cc]: made static inline methods not
  inlined to allow porting on Windows DLLs.

07/11/2002 : R. Chytracek      breps-V04-01-02
- All BREP solids + G4PlacedSolids now implement virtual StreamInfo(...) method
  end properly expose their construction parameters via this interface to an
  std::ostream instance.

28/10/2002 : G. Cosmo          breps-V04-01-01
- G4BREPSolid[.hh.cc]: added implementation of StreamInfo() to comply with ne interface
  for G4VSolid in "geommng-V04-01-03".

16/10/2002 : R. Chytracek      breps-V04-01-00
- G4BREPSolidPCone.cc: fixed creation of begin & end planar surfaces in the case where
  [RMIN[0] == 0.0 && RMAX[0] > 0.0] and/or [RMIN[sections] == 0.0 && RMAX[sections] > 0.0].
  Fixes problem report #419.

19/04/2002 : R. Chytracek      breps-V04-00-05
- G4BREPSolidPCone.cc: added sanity check of delta phi section value and
  exception is thrown saying about this unsupported feature if delta phi
  is less than 2*PI.

26/02/2002 : G. Cosmo          breps-V04-00-04
- G4ConvexHull.hh: moved initialisation of 'next' to constructor's body.

14/02/2002 : R. Chytracek      breps-V04-00-03
- G4BREPSolidPolyhedra.cc: final commit after series of bug fixes and enhancements:
  o Added more preconditions checks
  o Added code forbidding "teeth" in polyhedra as it brings
    high complexity into its implementation
  o Fixing comments, removal of debug print-outs

13/02/2002 : R. Chytracek      breps-V04-00-02
- Bug fix #354, G4BREPSolidPolyhedra:
  o Added new private method for creation of planar surfaces gained
    after code refactoring in constructor.
  o Fixed bug for problem report #354 by adding the code handling the cases
    where user supplies for the same z-section different RMIN or RMAX values.
  o This is temporary commit as there is still the problem when user asks for
    polyhedra phi segment and z[a] > z[a+1]. This leads to a wrong surface.

12/02/2002 : R. Chytracek
- Bug fixes of G4BREPSolidPolyhedra:
  o Added enhancement allowing to define RMIN and RMAX to be zero with the
    exception of forbidden two consecutive zero RMAX values.
  o Refactoring in constructor gained two new private methods for creation of
    trapezoidal and triangular side planes of G4BREPSolidPolyhedra.
  o Rewritten code for delta phi >= 2*PI case with full classification of
    possible cases.
  o Fixed sense of end planes.
  o Fixed delta phi < 2*PI case where some old code remained after bug fix #266.

28/01/2002 : R. Chytracek	breps-V04-00-01
- G4BREPSolidPCone::Inside() method restored back due to the fixes
  in G4FPlane + fixes in constructor and ComputePlanarSurface helper
  method.
- Fixed first constructor of G4FPlane which now takes another argument
  for setting explicitly the sense of a surface if required.
- Fixed G4FPlane::Intersect() method which incorrectly ignored a special
  case of a hit on surface point with ray direction opposite to surface
  normal.

22/01/2002 : R. Chytracek
- Temporary fix of Inside() method in BREPSolidPCone.
- Updated BREPSolidPCone unit test.

16/01/2001 : R. Chytracek        breps-V04-00-00
- G4BREPSolidPCone: bugfix for problem report #320.
  o Fixed missing use-case in constructor when RMAX and RMIN have been
    changed for 2 consecutive equal z-values. Now it creates correctly
    2 planar surfaces as expected.
  o Along with that added private method ComputePlanarSurface() gained
    by refactoring of some part of the code in the constructor.
  o Added useful comments analysing problems with planar surfaces and
    showing possible use-cases + some cosmetics.

01/08/2001 : R. Chytracek        breps-V03-02-03
- G4BREPSolidPolyhedra.cc: fixed situation when phi1 = 0 dphi1 = 2*pi and
  all RMINs = 0.0. In this case the inner planes are not created.
  More than 2 z-planes and inner planes are not created whenever two
  consecutive RMINs are = 0.0.
  Fixes problem report #266.

20/07/2001 : G. Cosmo            breps-V03-02-02
- Still fixed for ambiguous use of casts for G4Point3D, G4ThreeVector
  and G4Vector3D types. Fixed compilation warnings detected with gcc-2.95-3.
  Modified files: G4Axis2Placement3D.icc, G4BREPSolid.cc, G4BREPSolidBox.cc,
                  G4BREPSolidPCone.cc, G4BREPSolidPolyhedra.cc

17/07/2001 : G. Cosmo            breps-V03-02-01
- Fix in G4BSplineCurve::Init() for initialisation of point vector. Replaced
  usage of 'reserve' with explicit initialisation of components in collection.

11/07/2001 : G. Cosmo            breps-V03-02-00
- Fixes for overloading ambiguity on SUN-CC with new CLHEP-1.7, files:
  G4BREPSolidPolyhedra.cc, G4BREPSolidPCone.cc, G4BREPSolidCylinder.cc
  and G4BREPSolidCone.cc.
- Synchronized with HEAD.

15/06/2001 : G. Cosmo            breps-V03-01-02
- Fixes to allow -ansi compilation on Linux-g++, gcc-2.95-2 compiler:
  o G4Ray.cc: changed usage of hypot(x,y) to sqrt(x*x+y*y).
  o G4Hyperbola[.icc.cc]: changed usage of atanh(x) to 0.5*log((1+x)/(1-x)).
- G4ProjectedSurface.cc: corrected initialisation of temporary G4Point3D
  objects, to use the correct CLHEP constructor.

27/04/2001 : G. Cosmo            breps-V03-01-01
- G4BSplineCurve.cc: fixed compilation warnings on HP-UX, concerning
  potential uninitialised vector elements.

20/04/2001 : G. Cosmo            breps-V03-01-00
- Migration to STL vector:
  o G4Assembly: migrated G4PlacedVector typedef.
  o G4PlacementVector: migrated G4PlacementVector typedef.
  o G4Point3DVector: migrated G4Point3DVector typedef.
  o G4CurveVector: migrated G4CurveVector typedef.
  o G4BSplineCurve: migrated G4doubleVector typedef and removed
    redefinition of G4Point3DVector.

05/01/2001 : G. Cosmo            breps-V03-00-00
- Removed useless inclusion of G4OrderedTable.hh from G4Assembly.hh and
  G4STEPEntity.hh.

20/11/2000 : G. Cosmo            breps-V02-00-03
- 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.

10/11/2000 : G. Cosmo            breps-V02-00-02
- Still minor QA fixes in G4Axis2Placement3D, G4BREPSolid, G4FConicalSurface.
- Fix in G4Ellipse::Project() for computation of u as function of atan2().
- Fix unit test STEPTest.cc.

09/11/2000 : G. Cosmo            breps-V02-00-01
- QA code revision and cleanup (+fixes from CodeWizard filtering):
  o Added (private) declarations of copy constructor and assignment operator
    where needed: all surfaces, BREP solids, G4CompositeCurve G4OsloMatrix,
    G4PlacedSolid, G4SurfaceList.
  o Defined/fixed copy contructor and assignment operator to curves/conics,
    G4Axis2Placement3D. Added equality check on operator= where needed.
  o Added "const" qualifier to accessor methods, wherever needed.
  o Made destructor "virtual" wherever missing and added empty destructor
    to all BREP solids.
  o Changed virtual functions to non-inline wherever's the case.
  o Moved "public" data members to protected or private and defined
    accessors methods for them: G4BREPSolid, G4BezierSurface, G4ConvexHull,
    G4OsloMatrix, G4Surface, G4SurfaceBoundary, G4SurfaceList, G4UVHit.
    Changed classes involved to invoke accessors.
  o Changed return value to be "const" pointer to functions:
    - G4BREPSolid::GetPlace()
    - G4BREPSolid::GetBBox()
  o G4Assembly: fix in destructor, added call to clearAndDestroy().
  o G4BREPSolid: changed method NumberOfFaces() to GetNumberOfFaces().
  o G4Curve: fixed obsolete workaround for XlC compiler.
  o G4OsloMatrix: changed internal class "Matrix" to "G4PointMatrix" and
    updated classes making use of it.
  o G4ThreeMat: removed unused overloaded operators =, +, -, +=, -=, *.
  o Added "inline" qualifier to methods' declarations where missing.
  o Added more description to BREP solid classes for the Software Reference
    Manual.

28/08/2000 : G. Cosmo            breps-V02-00-00
- General reorganisation and code cleanup. No functional changes.
  Created .icc files and moved inline methods implementation therein.
- Added comments to headers for the Software Reference Manual.
- Fixes for virtual destructors, inline virtual functions and operators,
  const methods and arguments.
- Updated reference outputs for unit tests (tests run on DEC-cxx with
  ObjectSpace STL). Random generation changed since release 2.0.

13/05/2000 : G. Cosmo            breps-V01-01-00
- Added protection to arguments fed to atan2(x,y) in G4Ellipse::Project().

11/04/2000 : J. Allison
- Removed implementations of G4VisExtent GetExtent() in most sub-classes
  of G4VSolid (a default implementation exists in G4VSolid).
  Files changed: G4BREPSolid[.hh.cc].
- All implementations of DescribeYourselfTo (G4VGraphicsScene& scene) const
  now correctly written: scene.AddThis(*this).
  Files changed: G4BREPSolidOpenPCone.cc.

25/02/2000 : G. Cosmo		  breps-V01-00-02
 G4BSplineSurface[.hh.cc]
   - fixed dynamic memory allocation problem with creation of temporary
     hits and manipulation of knots.
   - rationalized dependencies over G4UVHit, G4ControlPoints and
     G4BoundingBox3D classes.
   - added initialization of pointers in constructor where missing.
 G4BSplineSurfaceWithKnots[.hh.cc]
   - created dummy classes.
 G4ConicalSurface.cc
   - Modified diagnostic message.
 G4PointRat.hh
   - Removed useless inclusion of G4UVHit.hh.
 G4UVHit.hh
   - Added missing initialization of data-members where needed.
   - Initialized 'next' pointer to zero in costructor.
 test/stepfiles
   - G4msgc_barrel_solid.stp was corrupted. Fixed.
   - Enhanced PERL script correct.pl to parse more complex STEP files.

14/02/2000 : G. Cosmo		  breps-V01-00-01
 G4BSplineSurface.cc - fixed warnings on HP-aCC
   - removed cast of G4Surface* to G4SurfaceList* (!) in function
     FinalIntersection().
   - replaced wherever needed explicit cast to G4PointRat from G4Point3D
     and viceversa, by using appropriate access functions instead.
 G4SurfaceList.cc
   - initialised 'next' and 'temp' pointers in default constructor.
 Changed 'char*' to 'const char*' as return-type for methods returning the
 concrete type name; removed temporary cast to char*. Updated files:
   - G4ThreeMat.hh, G4Surface.hh, G4SphericalSurface.hh, 
     G4RectangularTrimmedSurface.hh, G4FPlane.hh, G4FCylindricalSurface.hh,
     G4FConicalSurface.hh, G4CylindricalSurface.hh, G4ConicalSurface.hh,
     G4Curve.hh, G4BSplineSurface[.hh.cc].

21/01/2000 : G. Cosmo		  breps-V01-00-00
 Decoupling from NIST STEP reader completed:
   - G4RectangularTrimmedSurface.cc: removed inclusion of
     SdaiCONFIG_CONTROL_DESIGN.h
   - G4PointRat[.hh.cc]: removed unused function
     CopyRationalValue(const RealNode&).
   - G4Conic[.hh.cc]: removed constructor G4Conic(STEPentity&).
   - G4BREPSolid[.hh.cc]: removed unused function CreateSTEPData() and
     any references to STEP/instmgr.h.
   - G4Parabola.hh: removed declared and NOT defined constructors
     G4Parabola(STEPentity&) and G4Parabola(STEPentity&, InstMgr&).
   - G4Hyperbola.hh: removed declared and NOT defined constructors
     G4Hyperbola(STEPentity&) and G4Hyperbola(STEPentity&, InstMgr&).
   - G4Ellipse.hh: removed declared and NOT defined constructors
     G4Ellipse(STEPentity&) and G4Ellipse(STEPentity&, InstMgr&).
   - G4ControlPoints.hh: removed declared and NOT defined constructor
     G4ControlPoints(STEaggregate&, const int).
 Temporary fixes for porting on SUN-CC 5.0 compiler. Casts to char*:
   - G4ThreeMat.hh, G4Surface.hh, G4SphericalSurface.hh, 
     G4RectangularTrimmedSurface.hh, G4FPlane.hh, G4FCylindricalSurface.hh,
     G4FConicalSurface.hh, G4CylindricalSurface.hh, G4ConicalSurface.hh.

08/11/1999 : G. Cosmo             breps-V00-01-00
 First step for decoupling BREPS from NIST STEP reader:
   - Moved G4NISTStepReader[.hh.cc] and G4StepFileReader[.hh] to
     STEPinterface.
   - Removed unused references to STEP in G4KnotVector and G4PointRat.
   >> Still remaining: reference to STEPaggregate in G4PointRat;
                       reference to instMgr in G4BREPSolid.cc.

10/06/1999 : J. Apostolakis       breps-01-00-04

G4FPlane.cc:  
  Rays and planes are now considered parallel if dot product with plane's 
  normal less than perMillion rather than perThousand (in the Intersect method).

28/05/1999 : J. Apostolakis       breps-01-00-03a
 Tagged.


28/05/1999 : S. Giani 
 G4BREPSolidPolyhedra.cc  
   DistanceToOut: Introduced treatment for ray leaving from a boundary. 


27/05/1999 : J. Apostolakis       breps-01-00-03
 Cosmetic change to G4FCylindricalSurface.cc


25/05/1999 : S. Giani
 G4BREPSolidPolyhedra.cc(1.8) 
	Modified comparison of square distance to use the squared tolerance 
        (rather than the tolerance).          And used <=, instead of <.
 G4FPlane.cc(1.5): 
        Corrected the use of the tolerance in the intersect function
 G4SurfaceBoundary.cc(1.4): Return 1 by convention if on surface.


25/05/1999 : S. Magni
 G4BREPSolidPCone.cc v1.12: 
	New version of Inside function, 
      	     that uses first intersection & dot prod with normal 
             (instead of counting the number of distinct intersections)


21/05/1999 : J. Apostolakis       breps-01-00-02
 Tagged.


21/05/1999 : S. Magni
 G4BREPSolidPCone: Further minor corrections several methods
        - protecting HowNear with fabs when cheching against tolearance ..


21/05/1999 : J. Apostolakis
 G4BSplineSurface.hh,
 G4PointRat.hh,
 G4BREPSolid.cc,
 G4ProjectedSurface.cc
 G4Surface.cc
 G4BREPSolid.cc
        - changed INFINITY to kInfinity


20/05/1999 : S. Giani
 G4Line.cc:
        - A preliminary fix to avoid 0-lenght segments has been introduced.


19/05/1999 : S. Magni
 G4BREPSolidPCone: Corrected several methods 
        - constructor          to take into account the changed G4FPlane 

	- Inside
	- SurfaceNormal
	- DistanceToIn( p, v)
	- DistanceToOut( p, v) 
            for 
                corrected behaviour of HowNear, which is for finite surfaces.
		...
 G4FCylindricalSurface, 
 G4FConicalSurface.cc: 
        Corrected the following methods:
	- Intersect
	- HowNear


12/05/1999 : S.Giani  
 G4BREPSolidPolyhedra Corrections by S.Giani:
        - Xaxis now corresponds to phi=0
        - partial angle = phiTotal / Nsides
        - end planes exact boundary calculation for phiTotal < 2pi 
           (also including case with RMIN=RMAX) 
        - Xaxis now properly rotated to compute correct scope of vertixes
        - corrected surface orientation for outer faces parallel to Z
        - completed explicit setting of the orientation for all faces
        - some comparison between doubles avoided by using tolerances. 

  G4FPlane corrections 
	- The constructor using iVec now properly stores both the internal
	  and external boundaries in the bounds vector.
	- Proper initialization of sameSense in both the constructors. 
	- Addition of third argument (sense) in the second constructor 
	  to ensure consistent setting of the normal in all the client code.



27/01/1999 : L. Broglia ( new tag : breps-01-00-01 )
 - functions Inside, DistanceToIn and DistanceToOut
   are re-written to satisfy requirements

 - these functions are identical into G4BREPSolid
   and into G4BREPSolidPCone & Polyhedra because
   there are general (see ToDo.txt)

 - corrections of G4BREPSolid::CalculExtent by
   Stefano Magni 



14/01/1999 : L. Broglia
 - modification of the IntersectRay2D function

     before : void IntersectRay2D(const G4Ray& ray,  
                                  G4CurveRayIntersection& is)

     now :  G4int IntersectRay2D(const G4Ray& ray)

  return the number of intersections into the curve boundaries,

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

December, 1998 : L. Broglia

 - bugs fixed in order to run correctly test05 
   for the first product version 

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

November 11, 1998 : L. Broglia

 - correct Inside function for G4SphericalSurface
 - create (but now is empty) Inside function for
   G4CylindricalSurface
 - new implementation into G4CylindricalSurface::Intersect


November 04, 1998  L. Broglia    geometry-00-03-04

- Cleaned up trivial errors on DEC (undefined loop variables).
- Removed old CurveTest, now separate in G4BREPSolidxxxTest files
- Changing the name of the output files. All the tests run correctly with
  Linux, Sun, HP and DEC compilers

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

date: 1998/10/30 22:20:16;  author: japost;  state: Exp;  lines: +11 -5
Changed

<           HitDistance = closest_point.distance2(RayStart);

to
>           HitDistance = closest_point.distance2((G4Point3D &)RayStart);

   because
              distance2( HepPoint3D &p )
   in CLHEP/Point3D
   should be
              distance2( const HepPoint3D &p )
   as it is const!


October 29, 1998  L. Broglia

 - Changed all the occurences of G4Placement into G4Axis2Placement3D.
 - Modified G4FPlane - new implementation, inheriting from G4Axis2Placement3D
 - Create in G4PointRat INFINITY which is a double and PINFINITY which is a 
   HepVector3D
 - Corrected a bug into G4BREPSolidCylinder
 - Created  a test for the curves
 - Created tests for all BREP solids.
   For the moment, only test for the sphere and test for the torus 
   run correctly
 - Created a test which read a STEP file and created the BREP solid




October 20, 1998  L. Broglia    Breps-lionel-tag1-point3D

- Changed all the occurences of G4Point3d, G4Point2d into G4Point3D, which 
  is a HepPoint3D.
- Modified G4PointRat - new implementation, inheriting from G4Point3D.
- Changed ThreeVec into Vector3D or Point3D, depending on its use.

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

October 13, 1998  J. Apostolakis  geometry-00-03-01

- Tag created.

October 12, 1998  J. Apostolakis  geometry-00-03-01

- Small (cosmetic) changes to aid in compilation on Sun, HP.  
   Renamed local variables, whose name was the same as a class variable or method.

July   9, 1998: J. Apostolakis  breps-00-01-02

- Fixes to G4Assembly, to aid STEPinterface.  (Jari).
- Fix to G4Placement equality operator.   (J.A.)
  Compiles on AIX.


July   8, 1998: J. Apostolakis  breps-00-01-01

- Tagged. 


July   5, 1998: P. Urban

  - Fixes to compile on AIX-AFS.


July   2, 1998: J. Apostolakis (for P. Urban)

- All of Peter Urban's development of Curves is added from 
  the head of the alpha repository.


July   1, 1998: J. Apostolakis (pre-beta01-01)

- Geant4beta created from alpha07 tag (which was on a branch).


-----------------------------------------------------------------
These fixes were added to alpha07 - which was on a branch from
  the head

June  12, 1998: J. Apostolakis (for J. Sulkimo) 

- Correction to constructor of BREPSolidPCone. 
   (An out-of-date version was mistakenly included in fix to
    Conical Surface). 

June  10, 1998: J. Apostolakis (for J. Sulkimo) 

- Bug fixes to Conical Surface (FConical and Conical) to get
 PCone to work.  

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

June   8, 1998: J. Apostolakis breps-00-06-01

- Tagged what seems to be the last version before the merge 
of Peter Urban's code. Found this by using day before merge,
May 27th. 

April 28, 1998: G. Cosmo, breps-00-05-07

- Cleaned up trivial warnings on DEC (Extraneous semicolons).
- Removed -cfront option from GNUmakefile for DEC. -cfront
  overrides ANSI standard rules in cxx-6.0.

April 24, 1998: J. Sulkimo, breps-00-05-06

- fixed scope bugs in for loops

April 24, 1998: J. Sulkimo, breps-00-05-05-assembly

- G4Assembly.cc bug fixes in STEP file interaction & placed solids
  creation. Heavy changes in method G4Assembly::CopySTEPData

April 24, 1998: J. Sulkimo, breps-00-05-05-point3d

- rerenamed G4Point3d.hh to G4Point3d.h to avoid file name conflict on
  NT

April 23, 1998: G. Cosmo
- Added missing canonical implementation of operator== in G4PlacedSolid.hh


April 22, 1998: J. Sulkimo, breps-00-05-03-assembly (recorded by J.Apostolakis)

- Bug Fixes to G4Assembly, requiring changes to the files:

  include/G4Assembly.hh
  include/G4PlacedSolid.hh
  include/G4StepFileReader.hh
  src/G4Assembly.cc
  src/G4BREPSolid.cc
  src/G4CurveBoundary.cc
  src/G4PlacedSolid.cc
  src/G4Surface.cc


March 18, 1998: P. Urban, breps-00-05-02

- Names of lots of member functions changed:

  BoxOrNo to IsBox
  ConvexOrConcave to IsConvex
  + removing _ and capitalization.

  Cleanup of the code will continue later.


March 18, 1998: P. Urban, breps-00-05-01d

- Some member functions were removed. Renamed G4B_SplineCurve.

March 18, 1998: P. Urban, breps-00-05-01c

- the following classes have been renamed:

  from to

  G4B_SplineCurve G4BSplineCurve
  G4B_SplineCurve_With_Knots G4BSplineCurveWithKnots
  G4B_SplineSurface G4BSplineSurface
  G4Conic G4ConicalSurface
  G4Cylinder G4CylindricalSurface
  G4EllipticCurve G4Ellipse
  G4FConic G4FConicalSurface
  G4FCylinder G4FCylindricalSurface
  G4HyperbolicCurve G4Hyperbola
  G4ParabolicCurve G4Parabola
  G4PlaneSurface G4FPlane
  G4Rational_B_SplineCurve G4RationalBSplineCurve
  G4SpheShell G4SphericalSurface
  plane G4Plane
  uv_hit G4UVHit

March 18, 1998: P. Urban, breps-00-05-01b

- some class names will be changed; renaming the files (but not the classes!)
  was done.

March 18, 1998: P. Urban, breps-00-05-01a

- *.h files renamed to *.hh.

March 18, 1998: P. Urban, breps-00-05-01

- Modifications made before alpha05 which are not part of alpha05
  for some reason.











