Import Geant4 1.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:28:20 +02:00
parent aaa409b6ee
commit ca1c8cb059
2995 changed files with 106830 additions and 299600 deletions
+4 -3
View File
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 1.2 1999/04/15 12:23:38 johna Exp $
# $Id: GNUmakefile,v 1.3 1999/10/28 09:13:57 japost Exp $
# ------------------------------------------------------------
# GNUmakefile for BREPS library. Gabriele Cosmo, 15/11/96.
# ------------------------------------------------------------
@@ -12,9 +12,10 @@ endif
include $(G4INSTALL)/config/architecture.gmk
CPPFLAGS += \
-I$(G4BASE)/geometry/solids/STEP/include \
-I$(G4BASE)/geometry/management/include \
-I$(G4BASE)/geometry/volumes/include \
-I$(G4BASE)/geometry/solids/STEP/include \
-I$(G4BASE)/geometry/solids/Boolean/include \
-I$(G4BASE)/geometry/solids/CSG/include \
-I$(G4BASE)/global/management/include \
-I$(G4BASE)/global/HEPGeometry/include \
-I$(G4BASE)/graphics_reps/include \
+40 -16
View File
@@ -1,22 +1,45 @@
History file for geometry/solids/BREPS
$Id: History,v 1.7 1999/11/08 09:50:26 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 *
----------------------------------------------------------
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.
----------------------------
28/05/1999 : J. Apostolakis breps-01-00-03a
Tagged.
- Tagged.
28/05/1999 : S. Giani
G4BREPSolidPolyhedra.cc
G4BREPSolidPolyhedra.cc
DistanceToOut: Introduced treatment for ray leaving from a boundary.
27/05/1999 : J. Apostolakis breps-01-00-03
- Tagged.
Cosmetic change to G4FCylindricalSurface.cc
25/05/1999 : S. Giani
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 <.
@@ -26,20 +49,21 @@ G4BREPSolidPolyhedra.cc
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 : 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,
@@ -49,12 +73,13 @@ G4BREPSolidPolyhedra.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
19/05/1999 : S. Magni
G4BREPSolidPCone: Corrected several methods
- constructor to take into account the changed G4FPlane
@@ -71,8 +96,8 @@ G4BREPSolidPolyhedra.cc
- Intersect
- HowNear
12/05/1999 : S.Giani
12/05/1999 : S.Giani
G4BREPSolidPolyhedra Corrections by S.Giani:
- Xaxis now corresponds to phi=0
- partial angle = phiTotal / Nsides
@@ -93,7 +118,6 @@ G4BREPSolidPolyhedra.cc
27/01/1999 : L. Broglia ( new tag : breps-01-00-01 )
- functions Inside, DistanceToIn and DistanceToOut
are re-written to satisfy requirements
@@ -18,7 +18,7 @@
#include "G4OrderedTable.hh"
#include "G4BREPSolid.hh"
typedef RWTPtrOrderedVector<G4PlacedSolid> G4PlacedVector;
typedef G4RWTPtrOrderedVector<G4PlacedSolid> G4PlacedVector;
// End Interface Dependencies ---------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidBox.hh,v 1.1 1999/01/07 16:07:24 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidBox.hh,v 1.1.10.1 1999/12/07 20:48:16 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4BREPSolidBOX
#define __G4BREPSolidBOX
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidCone.hh,v 1.1 1999/01/07 16:07:24 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidCone.hh,v 1.1.10.1 1999/12/07 20:48:16 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4BREPSolidCone
#define __G4BREPSolidCone
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidCylinder.hh,v 1.1 1999/01/07 16:07:25 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidCylinder.hh,v 1.1.10.1 1999/12/07 20:48:16 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4BREPSolidCylinder
#define __G4BREPSolidCylinder
@@ -0,0 +1,34 @@
// This code implementation is the intellectual property of
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
#ifndef G4BREPSolidOpenPCone_hh
#define G4BREPSolidOpenPCone_hh
#include "G4IntersectionSolid.hh"
class G4BREPSolidOpenPCone : public G4IntersectionSolid {
public:
G4BREPSolidOpenPCone ( G4String name,
const G4double start_angle,
const G4double opening_angle,
const int num_z_planes, // sections,
const G4double z_start,
const G4double z_values[],
const G4double RMIN[],
const G4double RMAX[]
);
void DescribeYourselfTo (G4VGraphicsScene& scene) const;
private:
};
#endif
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidPCone.hh,v 1.2 1999/01/27 16:15:08 broglia Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidPCone.hh,v 1.2.8.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// The polyconical solid G4BREPSolidPCone is a shape defined by a set of
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidPolyhedra.hh,v 1.2 1999/01/27 16:15:08 broglia Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidPolyhedra.hh,v 1.2.8.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// The polygonal solid G4BREPSolidPolyhedra is a shape defined by an inner
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidSphere.hh,v 1.1 1999/01/07 16:07:25 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidSphere.hh,v 1.1.10.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4BREPSolidSphere
#define __G4BREPSolidSphere
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidTorus.hh,v 1.1 1999/01/07 16:07:25 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidTorus.hh,v 1.1.10.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4BREPSolidTorus
#define __G4BREPSolidTorus
@@ -1,17 +1,17 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BSplineCurve.hh,v 1.3 1999/01/19 10:12:56 broglia Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BSplineCurve.hh,v 1.4.2.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __BSPLINECURVE_H
#define __BSPLINECURVE_H
#include <rw/tvvector.h>
#include "g4rw/tvvector.h"
#include "G4Curve.hh"
class G4ControlPoints;
@@ -21,8 +21,8 @@ class G4BSplineCurve : public G4Curve
{
public:
typedef RWTValVector<G4double> G4doubleVector;
typedef RWTValVector<G4Point3D> G4Point3DVector;
typedef G4RWTValVector<G4double> G4doubleVector;
typedef G4RWTValVector<G4Point3D> G4Point3DVector;
public:
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BSplineCurveWithKnots.hh,v 1.1 1999/01/07 16:07:26 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BSplineCurveWithKnots.hh,v 1.1.10.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __B_SPLINECURVEWITHKNOTS_H
#define __B_SPLINECURVEWITHKNOTS_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BSplineSurface.hh,v 1.2 1999/05/21 18:40:16 japost Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BSplineSurface.hh,v 1.2.8.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __BSPLINESURFACE_H
#define __BSPLINESURFACE_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BezierSurface.hh,v 1.1 1999/01/07 16:07:26 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BezierSurface.hh,v 1.1.10.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __BEZIERSURFACE_H
#define __BEZIERSURFACE_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4CircularCurve.hh,v 1.2 1999/01/14 15:59:57 broglia Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4CircularCurve.hh,v 1.2.8.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __CIRCULARCURVE_H
#define __CIRCULARCURVE_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ConicalSurface.hh,v 1.1 1999/01/07 16:07:28 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ConicalSurface.hh,v 1.1.10.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
/* /usr/local/gismo/repo/geometry/G4ConicalSurface.h,v 1.5 1993/12/30 02:13:59 rensing Exp */
// File: G4ConicalSurface.h
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ControlPoints.hh,v 1.1 1999/01/07 16:07:28 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ControlPoints.hh,v 1.1.10.1 1999/12/07 20:48:17 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// Modif 8 oct 98 : A.Floquet
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ConvexHull.hh,v 1.1 1999/01/07 16:07:28 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ConvexHull.hh,v 1.1.10.1 1999/12/07 20:48:18 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __CONVEXHULL_H
#define __CONVEXHULL_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Curve.hh,v 1.2 1999/01/14 16:01:07 broglia Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Curve.hh,v 1.2.8.1 1999/12/07 20:48:18 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __CURVE_H
#define __CURVE_H
@@ -1,10 +1,10 @@
#ifndef included_G4CurveVector
#define included_G4CurveVector
#include <rw/tpordvec.h>
#include "g4rw/tpordvec.h"
#include "G4Curve.hh"
typedef RWTPtrOrderedVector<G4Curve> G4CurveVector;
typedef G4RWTPtrOrderedVector<G4Curve> G4CurveVector;
#endif
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4CylindricalSurface.hh,v 1.1 1999/01/07 16:07:30 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4CylindricalSurface.hh,v 1.1.10.1 1999/12/07 20:48:18 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
/* /usr/local/gismo/repo/geometry/G4CylindricalSurface.h,v 1.16 1993/12/30 02:14:08 rensing Exp */
// File: G4CylindricalSurface.h
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Ellipse.hh,v 1.2 1999/01/14 16:01:08 broglia Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Ellipse.hh,v 1.2.8.1 1999/12/07 20:48:18 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __ELLIPTICCURVE_H
#define __ELLIPTICCURVE_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4FConicalSurface.hh,v 1.3 1999/05/19 16:54:47 magni Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4FConicalSurface.hh,v 1.3.8.1 1999/12/07 20:48:18 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __FCONIC_H
#define __FCONIC_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4FCylindricalSurface.hh,v 1.4 1999/05/19 16:55:46 magni Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4FCylindricalSurface.hh,v 1.4.8.1 1999/12/07 20:48:18 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __FCYLINDER_H
#define __FCYLINDER_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4FPlane.hh,v 1.4 1999/05/12 13:56:33 sgiani Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4FPlane.hh,v 1.4.8.1 1999/12/07 20:48:18 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// L. Broglia
//
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Globals.hh,v 1.1 1999/01/07 16:07:31 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Globals.hh,v 1.1.10.1 1999/12/07 20:48:18 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
/* /usr/local/gismo/repo/support/globals.h,v 1.8 1994/04/18 18:29:03 atwood Exp */
// File: globals.h
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Hyperbola.hh,v 1.2 1999/01/14 16:01:08 broglia Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Hyperbola.hh,v 1.2.8.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __HYPERBOLICCURVE_H
#define __HYPERBOLICCURVE_H
@@ -1,17 +1,17 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4KnotVector.hh,v 1.1 1999/01/07 16:07:32 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4KnotVector.hh,v 1.2.4.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __KNOTVECTOR_H
#define __KNOTVECTOR_H
#include <math.h>
#include "STEPaggregate.h"
//#include "STEPaggregate.h"
#include "geomdefs.hh"
@@ -20,8 +20,8 @@ class G4KnotVector
public:
G4KnotVector();
G4KnotVector(const int Size, const int* MultiList, STEPaggregate& Aggr);
G4KnotVector(const int Size, STEPaggregate& Aggr);
// G4KnotVector(const int Size, const int* MultiList, STEPaggregate& Aggr);
// G4KnotVector(const int Size, STEPaggregate& Aggr);
G4KnotVector(const int sz);
G4KnotVector(const G4KnotVector& old_kv);
~G4KnotVector();
@@ -76,36 +76,3 @@ class G4KnotVector
};
#endif
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Line.hh,v 1.2 1999/01/14 16:05:26 broglia Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Line.hh,v 1.2.8.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __LINE_H
#define __LINE_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4OsloMatrix.hh,v 1.1 1999/01/07 16:07:33 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4OsloMatrix.hh,v 1.1.10.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4OsloMatrix_h
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Parabola.hh,v 1.2 1999/01/14 16:01:38 broglia Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Parabola.hh,v 1.2.8.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __PARABOLICCURVE_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PlacedSolid.hh,v 1.1 1999/01/07 16:07:33 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PlacedSolid.hh,v 1.1.10.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef G4PLACEDSOLID_HH
@@ -1,9 +1,9 @@
#ifndef included_G4PlacementVector
#define included_G4PlacementVector
#include <rw/tpordvec.h>
#include "g4rw/tpordvec.h"
#include "G4Axis2Placement3D.hh"
typedef RWTPtrOrderedVector<G4Axis2Placement3D> G4PlacementVector;
typedef G4RWTPtrOrderedVector<G4Axis2Placement3D> G4PlacementVector;
#endif
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Plane.hh,v 1.1 1999/01/07 16:07:33 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Plane.hh,v 1.1.10.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4Plane
#define __G4Plane
@@ -1,19 +1,19 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Point3DVector.hh,v 1.1 1999/01/07 16:07:34 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Point3DVector.hh,v 1.2.2.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef included_G4Point3DVector
#define included_G4Point3DVector
#include <rw/tvvector.h>
#include "g4rw/tvvector.h"
#include "G4Point3D.hh"
typedef RWTValVector<G4Point3D> G4Point3DVector;
typedef G4RWTValVector<G4Point3D> G4Point3DVector;
#endif
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PointRat.hh,v 1.2 1999/05/21 18:40:34 japost Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PointRat.hh,v 1.3.4.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// Modif 8 oct 98 : A.Floquet
@@ -25,10 +25,7 @@
// L. Broglia
// Before included in G4Point.hh
#include "STEPentity.h"
#include "STEPaggregate.h"
#include "STEPcomplex.h"
#include "instmgr.h"
#include "G4Plane.hh"
#include "G4UVHit.hh"
#define SQRT_SMALL_FASTF 1.0e-18
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ProjectedSurface.hh,v 1.1 1999/01/07 16:07:34 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ProjectedSurface.hh,v 1.1.10.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4ProjectedSurface_h
#define __G4ProjectedSurface_h 1
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Ray.hh,v 1.1 1999/01/07 16:07:34 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Ray.hh,v 1.1.10.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4Ray_h
#define __G4Ray_h 1
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4RectangularTrimmedSurface.hh,v 1.1 1999/01/07 16:07:35 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4RectangularTrimmedSurface.hh,v 1.1.10.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4FCylindricalSurface.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Sort.hh,v 1.1 1999/01/07 16:07:35 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Sort.hh,v 1.1.10.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// File: G4Sort.h
// Author: Alan Breakstone
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4SphericalSurface.hh,v 1.1 1999/01/07 16:07:35 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SphericalSurface.hh,v 1.1.10.1 1999/12/07 20:48:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4SpheShell_H
#define __G4SpheShell_H
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4SurfaceList.hh,v 1.1 1999/01/07 16:07:36 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SurfaceList.hh,v 1.1.10.1 1999/12/07 20:48:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4SurfaceList_h
#define __G4SurfaceList_h 1
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ThreeMat.hh,v 1.1 1999/01/07 16:07:36 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ThreeMat.hh,v 1.1.10.1 1999/12/07 20:48:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
/* G4ThreeMat.h,v 1.7 1993/12/30 02:15:55 rensing Exp */
// File: G4ThreeMat.h
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ToroidalSurface.hh,v 1.1 1999/01/07 16:07:36 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ToroidalSurface.hh,v 1.1.10.1 1999/12/07 20:48:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4TOROIDALSURAFCE
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4UVHit.hh,v 1.1 1999/01/07 16:07:37 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4UVHit.hh,v 1.1.10.1 1999/12/07 20:48:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef __G4UV_Hit
#define __G4UV_Hit
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolid.cc,v 1.8 1999/06/10 09:49:30 sgiani Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolid.cc,v 1.9.4.1 1999/12/07 20:48:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
#include "G4BREPSolid.hh"
#include "G4VoxelLimits.hh"
@@ -19,6 +19,7 @@
#include "G4BSplineSurface.hh"
#include "G4ToroidalSurface.hh"
#include "G4SphericalSurface.hh"
#include "instmgr.h"
G4Ray G4BREPSolid::Track;
G4double G4BREPSolid::ShortestDistance= kInfinity;
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidBox.cc,v 1.1 1999/01/07 16:07:38 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidBox.cc,v 1.1.10.1 1999/12/07 20:48:21 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4BREPSolidBox.hh"
#include "G4FPlane.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidCone.cc,v 1.1 1999/01/07 16:07:38 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidCone.cc,v 1.1.10.1 1999/12/07 20:48:21 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4BREPSolidCone.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidCylinder.cc,v 1.1 1999/01/07 16:07:38 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidCylinder.cc,v 1.1.10.1 1999/12/07 20:48:21 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4BREPSolidCylinder.hh"
@@ -0,0 +1,55 @@
// This code implementation is the intellectual property of
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
#include "G4BREPSolidOpenPCone.hh"
#include "G4BREPSolidPCone.hh"
#include "G4Tubs.hh"
#include "G4VGraphicsScene.hh"
G4BREPSolidOpenPCone::G4BREPSolidOpenPCone (G4String name,
const G4double start_angle,
const G4double opening_angle,
const int num_z_planes, // sections,
const G4double z_start,
const G4double z_values[],
const G4double RMIN[],
const G4double RMAX[]
) :
G4IntersectionSolid ( name,
new G4BREPSolidPCone ( name, start_angle, opening_angle,
num_z_planes,
z_start, z_values, RMIN, RMAX ) ,
new G4Tubs( "IntersectionTubs", 0, 1*cm, 1*cm, 0*deg,
360*deg ) )
{
// compute max radius
G4double MaxRMAX = 0;
for ( int i = 0; i < num_z_planes; i++ )
if ( RMAX[i] > MaxRMAX ) MaxRMAX = RMAX[i];
G4double length = z_values[num_z_planes-1] - z_values[0];
G4Tubs *ptrTubs = (G4Tubs*) fPtrSolidB; // To be modified: TODO
ptrTubs->SetInnerRadius ( 0 );
ptrTubs->SetOuterRadius ( MaxRMAX );
ptrTubs->SetZHalfLength ( length );
ptrTubs->SetStartPhiAngle ( start_angle );
ptrTubs->SetDeltaPhiAngle ( opening_angle );
}
#include "G4Polyhedron.hh"
void G4BREPSolidOpenPCone::DescribeYourselfTo (G4VGraphicsScene& scene) const {
scene.AddThis ( *fPtrSolidA );
}
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidPCone.cc,v 1.12 1999/05/24 13:51:56 magni Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidPCone.cc,v 1.12.8.1 1999/12/07 20:48:21 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// The polyconical solid G4BREPSolidPCone is a shape defined by a set of
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidPolyhedra.cc,v 1.9 1999/05/28 08:49:12 sgiani Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidPolyhedra.cc,v 1.10.6.1 1999/12/07 20:48:22 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// Corrections by S.Giani:
// - Xaxis now corresponds to phi=0
@@ -16,7 +16,9 @@
// - 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.
// - some comparison between doubles avoided by using tolerances
// - visualisation parameters made consistent with the use made by constructor
// of the input arguments (i.e. circumscribed radius).
//
//
// The polygonal solid G4BREPSolidPolyhedra is a shape defined by an inner
@@ -218,8 +220,8 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(G4String name,
}
// Store the original parameters, to be used in visualisation
// Note radii are scaled because this BREP uses the radius of the
// inscribed circle but graphics_reps/G4Polyhedron uses the radius of
// Note radii are not scaled because this BREP uses the radius of the
// circumscribed circle and also graphics_reps/G4Polyhedron uses the radius of
// the circumscribed circle.
original_parameters.Start_angle= phi1;
original_parameters.Opening_angle= dphi;
@@ -228,7 +230,8 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(G4String name,
original_parameters.Z_values= new G4double[num_z_planes];
original_parameters.Rmin= new G4double[num_z_planes];
original_parameters.Rmax= new G4double[num_z_planes];
G4double rFactor = cos(dphi/(2*sides));
G4double rFactor = 1.;
for(int is=0;is<num_z_planes;is++)
{
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidSphere.cc,v 1.1 1999/01/07 16:07:39 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidSphere.cc,v 1.1.10.1 1999/12/07 20:48:22 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4BREPSolidSphere.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BREPSolidTorus.cc,v 1.1 1999/01/07 16:07:39 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BREPSolidTorus.cc,v 1.1.10.1 1999/12/07 20:48:22 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4BREPSolidTorus.hh"
#include "G4ToroidalSurface.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BSplineCurve.cc,v 1.1 1999/01/07 16:07:39 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BSplineCurve.cc,v 1.1.10.1 1999/12/07 20:48:22 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4BSplineCurve.hh"
#include "G4ControlPoints.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BSplineCurveWithKnots.cc,v 1.1 1999/01/07 16:07:39 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BSplineCurveWithKnots.cc,v 1.1.10.1 1999/12/07 20:48:22 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4BSplineCurveWithKnots.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BSplineSurface.cc,v 1.2 1999/05/20 17:39:21 japost Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BSplineSurface.cc,v 1.2.8.1 1999/12/07 20:48:22 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "EntityInst.h"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BezierSurface.cc,v 1.1 1999/01/07 16:07:40 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4BezierSurface.cc,v 1.1.10.1 1999/12/07 20:48:22 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// L. Broglia, 10/10/98
// Error in line 331 and replaced addition of coordinates by
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4CircularCurve.cc,v 1.1 1999/01/07 16:07:41 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4CircularCurve.cc,v 1.1.10.1 1999/12/07 20:48:22 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4CircularCurve.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ConicalSurface.cc,v 1.1 1999/01/07 16:07:41 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ConicalSurface.cc,v 1.1.10.1 1999/12/07 20:48:23 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
/* /usr/local/gismo/repo/geometry/G4ConicalSurface.cc,v 1.6 1994/08/03 17:15:01 burnett Exp */
// File: G4ConicalSurface.cc
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ControlPoints.cc,v 1.1 1999/01/07 16:07:41 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ControlPoints.cc,v 1.1.10.1 1999/12/07 20:48:23 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// Modif 8 oct 98 : A.Floquet
+3 -3
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Curve.cc,v 1.1 1999/01/07 16:07:41 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Curve.cc,v 1.1.10.1 1999/12/07 20:48:23 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4Curve.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4CylindricalSurface.cc,v 1.1 1999/01/07 16:07:42 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4CylindricalSurface.cc,v 1.1.10.1 1999/12/07 20:48:23 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
/* /usr/local/gismo/repo/geometry/G4CylindricalSurface.cc,v 1.24 1994/08/03 17:15:09 burnett Exp */
// File: G4CylindricalSurface.cc
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Ellipse.cc,v 1.1 1999/01/07 16:07:42 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Ellipse.cc,v 1.1.10.1 1999/12/07 20:48:23 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4Ellipse.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4FConicalSurface.cc,v 1.8 1999/05/19 16:57:11 magni Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4FConicalSurface.cc,v 1.8.8.1 1999/12/07 20:48:24 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
/* /usr/local/gismo/repo/geometry/G4FConicalSurface.cc,v 1.2 1993/02/05 00:38:39 alanb Exp */
// File: G4FConicalSurface.cc
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4FCylindricalSurface.cc,v 1.8 1999/05/27 10:44:55 japost Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4FCylindricalSurface.cc,v 1.8.8.1 1999/12/07 20:48:24 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
/* /usr/local/gismo/repo/geometry/FG4Cylinder.cc,v 1.1 1992/10/27 22:02:29 alanb Exp */
// File: FG4Cylinder.cc
+3 -3
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4FPlane.cc,v 1.6 1999/06/08 11:22:07 sgiani Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4FPlane.cc,v 1.6.8.1 1999/12/07 20:48:24 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// Corrections by S.Giani:
// - The constructor using iVec now properly stores both the internal and
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Hyperbola.cc,v 1.1 1999/01/07 16:07:43 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Hyperbola.cc,v 1.1.10.1 1999/12/07 20:48:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4Hyperbola.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4KnotVector.cc,v 1.1 1999/01/07 16:07:43 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4KnotVector.cc,v 1.1.10.1 1999/12/07 20:48:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4KnotVector.hh"
+3 -3
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Line.cc,v 1.3 1999/05/20 09:35:35 sgiani Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Line.cc,v 1.3.8.1 1999/12/07 20:48:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4Line.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4OsloMatrix.cc,v 1.1 1999/01/07 16:07:44 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4OsloMatrix.cc,v 1.1.10.1 1999/12/07 20:48:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4OsloMatrix.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Parabola.cc,v 1.1 1999/01/07 16:07:44 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Parabola.cc,v 1.1.10.1 1999/12/07 20:48:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4Parabola.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PlacedSolid.cc,v 1.1 1999/01/07 16:07:44 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PlacedSolid.cc,v 1.1.10.1 1999/12/07 20:48:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4PlacedSolid.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PointRat.cc,v 1.1 1999/01/07 16:07:45 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PointRat.cc,v 1.1.10.1 1999/12/07 20:48:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// Modif 8 oct 98 : A.Floquet
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ProjectedSurface.cc,v 1.2 1999/05/20 17:39:22 japost Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ProjectedSurface.cc,v 1.2.8.1 1999/12/07 20:48:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4ProjectedSurface.hh"
+3 -3
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Ray.cc,v 1.1 1999/01/07 16:07:45 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Ray.cc,v 1.1.10.1 1999/12/07 20:48:26 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4Ray.hh"
#include "G4PointRat.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4RectangularTrimmedSurface.cc,v 1.1 1999/01/07 16:07:45 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4RectangularTrimmedSurface.cc,v 1.1.10.1 1999/12/07 20:48:26 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "SdaiCONFIG_CONTROL_DESIGN.h"
#include "G4RectangularTrimmedSurface.hh"
+3 -3
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Sort.cc,v 1.1 1999/01/07 16:07:46 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Sort.cc,v 1.1.10.1 1999/12/07 20:48:26 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// File: G4Sort.cc
// Author: Alan Breakstone
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4SphericalSurface.cc,v 1.1 1999/01/07 16:07:46 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SphericalSurface.cc,v 1.1.10.1 1999/12/07 20:48:27 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
/* $Header: /private/Net/unixhub/u1/ea/liml/gismo/gismo-0.2/geometry/RCS/G4SphericalSurface.cc,v 1.10 1992/08 */
// File: G4SphericalSurface.cc
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4SurfaceList.cc,v 1.1 1999/01/07 16:07:47 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SurfaceList.cc,v 1.1.10.1 1999/12/07 20:48:27 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4SurfaceList.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ThreeMat.cc,v 1.1 1999/01/07 16:07:47 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ThreeMat.cc,v 1.1.10.1 1999/12/07 20:48:27 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
/* G4ThreeMat.cc,v 1.5 1993/08/02 22:21:27 atwood Exp */
// File: G4ThreeMat.cc
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ToroidalSurface.cc,v 1.1 1999/01/07 16:07:48 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ToroidalSurface.cc,v 1.1.10.1 1999/12/07 20:48:27 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#include "G4ToroidalSurface.hh"
+37 -2
View File
@@ -1,5 +1,5 @@
$Id: History,v 1.1 1999/01/07 16:07:48 gunter Exp $
$Id: History,v 1.4 1999/11/24 20:17:20 japost Exp $
-------------------------------------------------------------------
=========================================================
@@ -19,6 +19,41 @@ committal in the CVS repository !
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
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
@@ -26,4 +61,4 @@ committal in the CVS repository !
Nov 27 1998 John Apostolakis & Vladimir Grichine geom-boolean-3-vg
Fixes agreed in code review were implemented.
Fixes agreed in code review were implemented.
@@ -1,10 +1,13 @@
// Class Description
//
// Abstract base class for solids created by boolean operations
// between other solids
//
// History:
//
// 10.09.98 V.Grichine, creation according J. Apostolakis's recommendations
#ifndef G4BOOLEANSOLID_HH
#define G4BOOLEANSOLID_HH
@@ -19,7 +22,7 @@
class G4BooleanSolid: public G4VSolid
{
public:
public: // With Description
G4BooleanSolid( const G4String& pName,
G4VSolid* pSolidA ,
G4VSolid* pSolidB ) ;
@@ -37,6 +40,12 @@ public:
virtual ~G4BooleanSolid() ;
public: // With Description
// If Solid is made up from a Boolean operation of two solids,
// return the corresponding solid (for no=0 and 1)
// If the solid is not a "Boolean", return 0
virtual const G4VSolid* GetConstituentSolid(G4int no) const;
virtual G4VSolid* GetConstituentSolid(G4int no);
protected:
G4VSolid* fPtrSolidA ;
@@ -1,5 +1,8 @@
// Class describing solid placements for boolean operations
//
// Class description
//
// A displaced solid is a solid that has been shifted from its original
// frame of reference to a new one. It is meant to be used only for
// simplifying the implementation of "Boolean solids".
//
// History:
//
@@ -16,7 +19,7 @@
class G4DisplacedSolid : public G4VSolid
{
public:
public: // With description
G4DisplacedSolid( const G4String& pName,
G4VSolid* pSolid ,
G4RotationMatrix* rotMatrix,
@@ -26,16 +29,24 @@ public:
G4VSolid* pSolid ,
const G4Transform3D& transform ) ;
public:
G4DisplacedSolid( const G4String& pName,
G4VSolid* pSolid ,
const G4AffineTransform directTransform );
// For use in instantiating a transient instance from a persistent one:
public: // With description
virtual ~G4DisplacedSolid() ;
//
// It also has all the methods that a solid requires, eg.
EInside Inside( const G4ThreeVector& p ) const ;
public:
G4bool CalculateExtent(const EAxis pAxis,
const G4VoxelLimits& pVoxelLimit,
const G4AffineTransform& pTransform,
G4double& pMin, G4double& pMax) const ;
EInside Inside( const G4ThreeVector& p ) const ;
G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const ;
@@ -57,9 +68,31 @@ public:
const G4int n,
const G4VPhysicalVolume* pRep ) ;
public: // With description
virtual G4GeometryType GetEntityType() const
{ return G4String("G4DisplacedSolid"); }
// If the Solid is a "G4DisplacedSolid", return a self pointer
// else return 0
virtual const G4DisplacedSolid* GetDisplacedSolidPtr() const ;
virtual G4DisplacedSolid* GetDisplacedSolidPtr();
// Access methods
G4VSolid* GetConstituentMovedSolid();
G4AffineTransform GetTransform() const;
G4AffineTransform GetDirectTransform() const;
// Get the rotation/translation, as applied to the frame of reference
G4RotationMatrix GetFrameRotation() const;
G4ThreeVector GetFrameTranslation() const;
// Get the rotation/translation, as applied to the object
G4RotationMatrix GetObjectRotation() const;
G4ThreeVector GetObjectTranslation() const;
public:
// For creating graphical representations (ie for visualisation)
void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ;
G4VisExtent GetExtent () const ;
G4Polyhedron* CreatePolyhedron () const ;
@@ -66,7 +66,7 @@ public:
const G4VPhysicalVolume* pRep ) ;
virtual G4GeometryType GetEntityType() const
{ return G4String("G4IntersectionSolid"); }
{ return G4String("G4UnionSolid"); }
void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ;
G4VisExtent GetExtent () const ;
@@ -67,6 +67,37 @@ G4BooleanSolid::~G4BooleanSolid()
if(createdDisplacedSolid) delete fPtrSolidB ;
}
///////////////////////////////////////////////////////////////
//
// If Solid is made up from a Boolean operation of two solids,
// return the corresponding solid (for no=0 and 1)
// If the solid is not a "Boolean", return 0
const G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) const
{
const G4VSolid* subSolid;
if( no == 0 )
subSolid = fPtrSolidA;
else if( no == 1 )
subSolid = fPtrSolidB;
else
G4Exception("G4BooleanSolid::GetConstituentSolid()const invalid subsolid index");
return subSolid;
}
G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no)
{
G4VSolid* subSolid;
if( no == 0 )
subSolid = fPtrSolidA;
else if( no == 1 )
subSolid = fPtrSolidB;
else
G4Exception("G4BooleanSolid::GetConstituentSolid invalid subsolid index");
return subSolid;
}
@@ -4,6 +4,7 @@
// History:
//
// 28.10.98 V.Grichine, creation according J. Apostolakis's recommendations
// 14.11.99 V.Grichine, modifications in CalculateExtent(...) method
#include "G4DisplacedSolid.hh"
@@ -37,23 +38,40 @@ G4DisplacedSolid( const G4String& pName,
fDirectTransform = new G4AffineTransform(rotMatrix,transVector) ;
}
///////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
//
//
G4DisplacedSolid::G4DisplacedSolid( const G4String& pName,
G4VSolid* pSolid ,
const G4Transform3D& transform ) :
G4VSolid(pName)
{
fPtrSolid = pSolid ;
fDirectTransform = new G4AffineTransform(transform.getRotation().inverse(),
transform.getTranslation()) ;
fPtrTransform = new G4AffineTransform(transform.getRotation().inverse(),
transform.getTranslation()) ;
fPtrTransform->Invert() ;
}
/////////////////////////////////////////////////////////////////////////////////
// Constructor for use with creation of Transient object from Persistent object
//
G4DisplacedSolid::G4DisplacedSolid( const G4String& pName,
G4VSolid* pSolid ,
const G4Transform3D& transform ) :
const G4AffineTransform directTransform ) :
G4VSolid(pName)
{
fPtrSolid = pSolid ;
fPtrTransform = new G4AffineTransform(transform.getRotation().inverse(),
transform.getTranslation()) ;
fPtrTransform->Invert() ;
fDirectTransform = new G4AffineTransform(transform.getRotation().inverse(),
transform.getTranslation()) ;
fDirectTransform = new G4AffineTransform( directTransform );
fPtrTransform = new G4AffineTransform( directTransform.Inverse() ) ;
}
///////////////////////////////////////////////////////////////////
//
G4DisplacedSolid::~G4DisplacedSolid()
{
if(fPtrTransform)
@@ -63,20 +81,64 @@ G4DisplacedSolid::~G4DisplacedSolid()
}
}
const G4DisplacedSolid* G4DisplacedSolid::GetDisplacedSolidPtr() const
{ return this; }
G4DisplacedSolid* G4DisplacedSolid::GetDisplacedSolidPtr()
{ return this; }
G4VSolid* G4DisplacedSolid::GetConstituentMovedSolid()
{ return fPtrSolid; }
G4AffineTransform G4DisplacedSolid::GetTransform() const
{
G4AffineTransform aTransform= *fPtrTransform;
return aTransform;
}
G4AffineTransform G4DisplacedSolid::GetDirectTransform() const
{
G4AffineTransform aTransform= *fDirectTransform;
return aTransform;
}
G4RotationMatrix G4DisplacedSolid::GetFrameRotation() const
{
G4RotationMatrix InvRotation= fPtrTransform->NetRotation();
InvRotation.invert();
return InvRotation;
}
G4ThreeVector G4DisplacedSolid::GetFrameTranslation() const
{
return fPtrTransform->NetTranslation();
}
///////////////////////////////////////////////////////////////
G4RotationMatrix G4DisplacedSolid::GetObjectRotation() const
{
G4RotationMatrix Rotation= fDirectTransform->NetRotation();
return Rotation;
}
G4ThreeVector G4DisplacedSolid::GetObjectTranslation() const
{
return fDirectTransform->NetTranslation();
}
///////////////////////////////////////////////////////////////
//
//
G4bool
G4DisplacedSolid::CalculateExtent(const EAxis pAxis,
const G4VoxelLimits& pVoxelLimit,
const G4AffineTransform& pTransform,
G4double& pMin, G4double& pMax) const
G4DisplacedSolid::CalculateExtent( const EAxis pAxis,
const G4VoxelLimits& pVoxelLimit,
const G4AffineTransform& pTransform,
G4double& pMin,
G4double& pMax ) const
{
return fPtrSolid->CalculateExtent(pAxis,pVoxelLimit,pTransform,
G4AffineTransform sumTransform ;
sumTransform.Product(*fDirectTransform,pTransform) ;
return fPtrSolid->CalculateExtent(pAxis,pVoxelLimit,sumTransform,
pMin,pMax) ;
}
@@ -218,3 +280,5 @@ G4DisplacedSolid::CreateNURBS () const
@@ -3,6 +3,7 @@
// History:
//
// 12.09.98 V.Grichine
// 29.07.99 V.Grichine, modifications in DistanceToIn(p,v)
#include "G4IntersectionSolid.hh"
// #include "G4DisplacedSolid.hh"
@@ -177,7 +178,7 @@ G4double
G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p,
const G4ThreeVector& v ) const
{
G4double dist = 0.0, disTmp ;
G4double dist = 0.0, disTmp = 0.0 ;
if( Inside(p) == kInside )
{
G4Exception("Invalid call in G4IntersectionSolid::DistanceToIn(p,v), point p is inside") ;
@@ -186,7 +187,7 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p,
{
if( fPtrSolidA->Inside(p) != kOutside )
{
while( Inside(p+dist*v) == kOutside )
do
{
disTmp = fPtrSolidB->DistanceToIn(p+dist*v,v) ;
@@ -215,10 +216,12 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p,
return kInfinity ;
}
}
while( Inside(p+dist*v) == kOutside ) ;
// while( fPtrSolidB->Inside(p) != kOutside ) ;
}
else if( fPtrSolidB->Inside(p) != kOutside )
{
while( Inside(p+dist*v) == kOutside )
do
{
disTmp = fPtrSolidA->DistanceToIn(p+dist*v,v) ;
@@ -247,10 +250,11 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p,
return kInfinity ;
}
}
while( Inside(p+dist*v) == kOutside ) ;
}
else
{
while( Inside(p+dist*v) == kOutside )
do
{
disTmp = fPtrSolidB->DistanceToIn(p+dist*v,v) ;
@@ -279,6 +283,7 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p,
return kInfinity ;
}
}
while( Inside(p+dist*v) == kOutside ) ;
}
}
return dist ;
@@ -334,9 +339,12 @@ G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p,
{
G4Exception("Invalid call in G4IntersectionSolid::DistanceToOut(p,v), point p is outside") ;
}
return min(fPtrSolidA->DistanceToOut(p,v,calcNorm,validNorm,n),
fPtrSolidB->DistanceToOut(p,v,calcNorm,validNorm,n) ) ;
G4double distA = fPtrSolidA->DistanceToOut(p,v,calcNorm,validNorm,n) ;
G4double distB = fPtrSolidB->DistanceToOut(p,v,calcNorm,validNorm,n) ;
G4double dist = min(distA,distB) ;
return dist ;
// return min(fPtrSolidA->DistanceToOut(p,v,calcNorm,validNorm,n),
// fPtrSolidB->DistanceToOut(p,v,calcNorm,validNorm,n) ) ;
}
//////////////////////////////////////////////////////////////
@@ -2,9 +2,11 @@
//
// History:
//
// 14.10.98 V.Grichine
// 19.10.98 V.Grichine new algorithm of DistanceToIn(p,v) according to
// J.Apostolakis recommendations
// 14.10.98 V.Grichine, implementation of the first version
// 19.10.98 V.Grichine, new algorithm of DistanceToIn(p,v) according to
// J.Apostolakis recommendations (while loops)
// 02.08.99 V.Grichine, bugs fixed in DistanceToOut(p,v,...)
// while -> do-while & surfaceA limitations
//
#include "G4SubtractionSolid.hh"
@@ -157,32 +159,38 @@ G4double
G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p,
const G4ThreeVector& v ) const
{
G4double dist,dist2 ;
G4double dist = 0.0,disTmp = 0.0 ;
if( Inside(p) == kInside )
{
G4Exception("Invalid call in G4SubtractionSolid::DistanceToIn(p,v), point p is inside") ;
}
if( ( fPtrSolidA->Inside(p) != kOutside) && // case1:p in both A&B
if( // ( fPtrSolidA->Inside(p) != kOutside) && // case1:p in both A&B
( fPtrSolidB->Inside(p) != kOutside) ) // start: out of B
{
dist = fPtrSolidB->DistanceToOut(p,v) ; // ,calcNorm,validNorm,n) ;
while( Inside(p+dist*v) == kOutside )
if( fPtrSolidA->Inside(p+dist*v) != kInside )
{
dist2 = fPtrSolidA->DistanceToIn(p+dist*v,v) ;
do
{
disTmp = fPtrSolidA->DistanceToIn(p+dist*v,v) ;
if(dist2 == kInfinity)
{
return kInfinity ;
}
dist += dist2 ;
if(disTmp == kInfinity)
{
return kInfinity ;
}
dist += disTmp ;
if( Inside(p+dist*v) == kOutside )
{
dist += fPtrSolidB->DistanceToOut(p+dist*v,v) ;
}
if( Inside(p+dist*v) == kOutside )
{
disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v) ;
dist += disTmp ;
}
}
while( Inside(p+dist*v) == kOutside ) ;
}
}
else // p outside A, start in A
@@ -195,21 +203,24 @@ G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p,
}
else
{
while( Inside(p+dist*v) == kOutside ) // pushing loop
while( Inside(p+dist*v) == kOutside ) // pushing loop
// do
{
dist += fPtrSolidB->DistanceToOut(p+dist*v,v) ;
disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v) ;
dist += disTmp ;
if( Inside(p+dist*v) == kOutside )
{
dist2 = fPtrSolidA->DistanceToIn(p+dist*v,v) ;
disTmp = fPtrSolidA->DistanceToIn(p+dist*v,v) ;
if(dist2 == kInfinity) // past A, hence past A\B
if(disTmp == kInfinity) // past A, hence past A\B
{
return kInfinity ;
}
dist += dist2 ;
dist += disTmp ;
}
}
// while( Inside(p+dist*v) == kOutside ) ;
}
}
@@ -2,7 +2,10 @@
//
// History:
//
// 12.09.98 V.Grichine
// 12.09.98 V.Grichine, implementation
// 28.11.98 V.Grichine, J. Apostolakis, while loops in DistToIn/Out
// 27.07.99 V.Grichine, modifications in Distance ToOut(p,v,...)
// while -> do-while
#include "G4UnionSolid.hh"
// #include "G4PlacedSolid.hh"
@@ -94,7 +97,9 @@ G4UnionSolid::CalculateExtent(const EAxis pAxis,
/////////////////////////////////////////////////////
//
//
// Important comment: When solids A and B touch together along flat
// surface the surface points will be considered as kSurface, while points
// located around will correspond to kInside
EInside G4UnionSolid::Inside(const G4ThreeVector& p) const
{
@@ -197,7 +202,7 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p,
G4bool *validNorm,
G4ThreeVector *n ) const
{
G4double disTmp = 0.0, dist = 0.0 ;
G4double dist = 0.0, disTmp = 0.0 ;
G4ThreeVector normTmp;
G4ThreeVector* nTmp= &normTmp;
@@ -209,46 +214,45 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p,
{
EInside positionA = fPtrSolidA->Inside(p) ;
EInside positionB = fPtrSolidB->Inside(p) ;
if( positionA != kOutside )
{
while( Inside(p+dist*v) == kInside )
do
{
disTmp = fPtrSolidA->DistanceToOut(p+dist*v,v,calcNorm,
validNorm,nTmp) ;
dist += disTmp ;
if( Inside(p+dist*v) == kInside )
if(fPtrSolidB->Inside(p+dist*v) != kOutside)
{
disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v,calcNorm,
validNorm,nTmp) ;
dist += disTmp ;
}
else
{
break ;
}
}
// while( Inside(p+dist*v) == kInside ) ;
while( fPtrSolidA->Inside(p+dist*v) != kOutside &&
disTmp > 0.5*kCarTolerance ) ;
*n = *nTmp ;
}
else
else // if( positionB != kOutside )
{
while( Inside(p+dist*v) == kInside )
do
{
disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v,calcNorm,
validNorm,nTmp) ;
validNorm,nTmp) ;
dist += disTmp ;
if( Inside(p+dist*v) == kInside )
if(fPtrSolidA->Inside(p+dist*v) != kOutside)
{
disTmp = fPtrSolidA->DistanceToOut(p+dist*v,v,calcNorm,
validNorm,nTmp) ;
dist += disTmp ;
}
else
{
break ;
}
}
// while( Inside(p+dist*v) == kInside ) ;
while( fPtrSolidB->Inside(p+dist*v) != kOutside &&
disTmp > 0.5*kCarTolerance ) ;
*n = *nTmp ;
}
}
+28 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 1.6 1999/05/21 19:32:36 japost Exp $
$Id: History,v 1.8 1999/11/19 16:22:52 grichine Exp $
-------------------------------------------------------------------
=========================================================
@@ -17,6 +17,33 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
Nov 17, 99 J. Apostolakis geom-solids-csg-01-00-03
- Tagged
Nov 17, 99 V. Grichine
Added initialisation to Eside "side" variable in DistanceToOut(p,v)
in CSG solids.
--> Problem report from D.C. Williams, BaBaR
A check in G4Trap Makeplane added.
Nov 10, 99 J. Apostolakis geom-solids-csg-01-00-02-cand
- Included David Williams' modifications to
G4IntersectingCone.cc, G4PolyconeSide.cc and G4VCSGfaceted.cc
and to test/SBT/SBT.cc and test/SBT/polycone.geant4
Nov 10, 99 J. Apostolakis geom-solids-csg-01-00-01
- Tagged
May 18, 99 David Wiliams
Replaced 1/DBL_MAX with DBL_MIN (valid correction, seen in tests for STL)
in G4PolyPhiFace.cc, G4PolyconeSide.cc and G4PolyhedraSide.cc
+15 -5
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Box.hh,v 1.1 1999/01/07 16:07:51 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Box.hh,v 1.2.2.1 1999/12/07 20:48:29 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4Box
@@ -47,14 +47,18 @@
// 22.07.96 J.Allison Changed G4VGraphicsModel to G4VGraphicsScene.
// and SendPolyhedronTo to CreatePolyhedron.
// 27.03.98 J.Apostolakis Inherit from G4CSGSolid (not G4VSolid).
// 18.11.99 J.Apostolakis, V.Grichine: kUndefined was added to ESide
#ifndef G4BOX_HH
#define G4BOX_HH
#include "G4CSGSolid.hh"
class G4Box : public G4CSGSolid {
class G4Box : public G4CSGSolid
{
public:
G4Box(const G4String& pName, G4double pX,
G4double pY, G4double pZ);
@@ -69,6 +73,7 @@ public:
const G4AffineTransform& pTransform,
G4double& pmin, G4double& pmax) const;
// Access functions
G4double GetXHalfLength() const
{
return fDx;
@@ -104,10 +109,13 @@ public:
G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const;
G4double DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) const;
G4double DistanceToIn(const G4ThreeVector& p) const;
G4double DistanceToOut(const G4ThreeVector& p,const G4ThreeVector& v,
const G4bool calcNorm=false,
G4bool *validNorm=0,G4ThreeVector *n=0) const;
G4double DistanceToOut(const G4ThreeVector& p) const;
virtual G4GeometryType GetEntityType() const { return G4String("G4Box"); }
@@ -123,9 +131,11 @@ protected:
CreateRotatedVertices(const G4AffineTransform& pTransform) const;
// Codes for faces (kPX=plus x face,kMY= minus y face etc)
enum ESide {kPX,kMX,kPY,kMY,kPZ,kMZ};
enum ESide {kUndefined,kPX,kMX,kPY,kMY,kPZ,kMZ};
private:
G4double fDx,fDy,fDz;
};
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4CSGSolid.hh,v 1.1 1999/01/07 16:07:51 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4CSGSolid.hh,v 1.1.10.1 1999/12/07 20:48:29 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4CSGSolid
@@ -25,8 +25,8 @@ class G4AffineTransform;
class G4AffineTransform;
class G4VoxelLimits;
#include <rw/tvordvec.h>
typedef RWTValOrderedVector<G4ThreeVector> G4ThreeVectorList;
#include "g4rw/tvordvec.h"
typedef G4RWTValOrderedVector<G4ThreeVector> G4ThreeVectorList;
class G4ClippablePolygon {
public:
+3 -3
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Cons.hh,v 1.1 1999/01/07 16:07:52 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Cons.hh,v 1.1.10.1 1999/12/07 20:48:29 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4Cons
//
+7 -4
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Hype.hh,v 1.1 1999/01/07 16:07:52 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Hype.hh,v 1.2.2.1 1999/12/07 20:48:29 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
//
@@ -58,6 +58,9 @@
// Create the List of transformed vertices in the format required
// for G4VSolid:: ClipCrossSection and ClipBetweenSections.
//
// History:
// 1998/06/09 F.Safai, first version
// 18.11.99 , V.Grichine, kUndefined was added in ESide
#ifndef G4HYPE_HH
#define G4HYPE_HH
@@ -170,7 +173,7 @@ protected:
double endOuterRadius; // endcap Outer Radius
// Used by distanceToOut
enum ESide {outerFace,innerFace,leftCap, rightCap};
enum ESide {kUndefined,outerFace,innerFace,leftCap, rightCap};
};
#endif
+13 -3
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Para.hh,v 1.1 1999/01/07 16:07:52 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Para.hh,v 1.2.2.1 1999/12/07 20:48:30 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4Para
//
@@ -40,6 +40,7 @@
// History:
// 21.3.94 P.Kent Old C++ code converted to tolerant geometry
// 31.10.96 V.Grichine Modifications according G4Box/Tubs before to commit
// 18.11.99 V.Grichine , kUndefined was added to ESide
#ifndef G4Para_HH
#define G4Para_HH
@@ -167,3 +168,12 @@ private:
};
#endif
@@ -68,6 +68,8 @@ class G4ReduciblePolygon {
G4bool RemoveDuplicateVertices( const G4double tolerance );
G4bool RemoveRedundantVertices( const G4double tolerance );
void ReverseOrder();
//
// Tests

Some files were not shown because too many files have changed in this diff Show More