Geant4 Cross Reference |
>> 1 // This code implementation is the intellectual property of >> 2 // the GEANT4 collaboration. 1 // 3 // 2 // ******************************************* << 4 // By copying, distributing or modifying the Program (or any work 3 // * License and Disclaimer << 5 // based on the Program) you indicate your acceptance of this statement, 4 // * << 6 // and all its terms. 5 // * The Geant4 software is copyright of th << 6 // * the Geant4 Collaboration. It is provided << 7 // * conditions of the Geant4 Software License << 8 // * LICENSE and available at http://cern.ch/ << 9 // * include a list of copyright holders. << 10 // * << 11 // * Neither the authors of this software syst << 12 // * institutes,nor the agencies providing fin << 13 // * work make any representation or warran << 14 // * regarding this software system or assum << 15 // * use. Please see the license in the file << 16 // * for the full disclaimer and the limitatio << 17 // * << 18 // * This code implementation is the result << 19 // * technical work of the GEANT4 collaboratio << 20 // * By using, copying, modifying or distri << 21 // * any work based on the software) you ag << 22 // * use in resulting scientific publicati << 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* << 25 // 7 // 26 // G4IntersectionSolid << 8 // $Id: G4IntersectionSolid.hh,v 1.3 2000/04/27 09:59:36 gcosmo Exp $ >> 9 // GEANT4 tag $Name: geant4-02-00 $ >> 10 // >> 11 // >> 12 // class G4IntersectionSolid 27 // 13 // 28 // Class description: 14 // Class description: 29 // 15 // 30 // Class for description of intersection of tw << 16 // Class for description of intersection of two CSG solids. >> 17 >> 18 // History: >> 19 // >> 20 // 12.09.98 V. Grichine, initial design according to J.Apostolakis's >> 21 // recommendations >> 22 // 28.10.98 V. Grichine, addition of two constructors with G4PlacedSolid 31 23 32 // 12.09.98 V.Grichine: initial design and imp << 33 // ------------------------------------------- << 34 #ifndef G4INTERSECTIONSOLID_HH 24 #ifndef G4INTERSECTIONSOLID_HH 35 #define G4INTERSECTIONSOLID_HH 25 #define G4INTERSECTIONSOLID_HH 36 26 37 #include "G4BooleanSolid.hh" 27 #include "G4BooleanSolid.hh" 38 #include "G4VSolid.hh" 28 #include "G4VSolid.hh" 39 29 40 #include "G4RotationMatrix.hh" 30 #include "G4RotationMatrix.hh" 41 #include "G4ThreeVector.hh" 31 #include "G4ThreeVector.hh" 42 #include "G4Transform3D.hh" 32 #include "G4Transform3D.hh" 43 #include "G4AffineTransform.hh" 33 #include "G4AffineTransform.hh" 44 34 45 class G4IntersectionSolid : public G4BooleanSo 35 class G4IntersectionSolid : public G4BooleanSolid 46 { 36 { 47 public: << 37 public: // with description 48 38 49 G4IntersectionSolid( const G4String& pName 39 G4IntersectionSolid( const G4String& pName, 50 G4VSolid* pSoli 40 G4VSolid* pSolidA , 51 G4VSolid* pSoli 41 G4VSolid* pSolidB ) ; 52 42 53 G4IntersectionSolid( const G4String& pName 43 G4IntersectionSolid( const G4String& pName, 54 G4VSolid* pSoli 44 G4VSolid* pSolidA , 55 G4VSolid* pSoli 45 G4VSolid* pSolidB, 56 G4RotationMatri 46 G4RotationMatrix* rotMatrix, 57 const G4ThreeVector& 47 const G4ThreeVector& transVector ) ; 58 48 59 G4IntersectionSolid( const G4String& pName 49 G4IntersectionSolid( const G4String& pName, 60 G4VSolid* pSoli 50 G4VSolid* pSolidA , 61 G4VSolid* pSoli 51 G4VSolid* pSolidB, 62 const G4Transform3D& 52 const G4Transform3D& transform ) ; 63 53 64 ~G4IntersectionSolid() override ; << 54 virtual ~G4IntersectionSolid() ; 65 << 66 G4GeometryType GetEntityType() const over << 67 55 68 G4VSolid* Clone() const override; << 56 virtual G4GeometryType GetEntityType() const; 69 57 70 G4IntersectionSolid(__void__&); << 58 public: // without description 71 // Fake default constructor for usage re << 72 // persistency for clients requiring pre << 73 // persistifiable objects. << 74 << 75 G4IntersectionSolid(const G4IntersectionSo << 76 G4IntersectionSolid& operator=(const G4Int << 77 // Copy constructor and assignment opera << 78 << 79 void BoundingLimits(G4ThreeVector& pMin, G << 80 59 81 G4bool CalculateExtent( const EAxis pAxis, 60 G4bool CalculateExtent( const EAxis pAxis, 82 const G4VoxelLimit << 61 const G4VoxelLimits& pVoxelLimit, 83 const G4AffineTran << 62 const G4AffineTransform& pTransform, 84 G4double& pM << 63 G4double& pMin, G4double& pMax) const ; 85 64 86 EInside Inside( const G4ThreeVector& p ) c << 65 EInside Inside( const G4ThreeVector& p ) const ; 87 66 88 G4ThreeVector SurfaceNormal( const G4Three << 67 G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const ; 89 68 90 G4double DistanceToIn( const G4ThreeVector 69 G4double DistanceToIn( const G4ThreeVector& p, 91 const G4ThreeVector << 70 const G4ThreeVector& v ) const ; 92 71 93 G4double DistanceToIn( const G4ThreeVector << 72 G4double DistanceToIn( const G4ThreeVector& p) const ; 94 73 95 G4double DistanceToOut( const G4ThreeVecto 74 G4double DistanceToOut( const G4ThreeVector& p, 96 const G4ThreeVecto << 75 const G4ThreeVector& v, 97 const G4bool calcN << 76 const G4bool calcNorm=false, 98 G4bool *vali << 77 G4bool *validNorm=0, 99 G4ThreeVecto << 78 G4ThreeVector *n=0 ) const ; 100 79 101 G4double DistanceToOut( const G4ThreeVecto << 80 G4double DistanceToOut( const G4ThreeVector& p ) const ; 102 81 103 82 104 void ComputeDimensions( G4VPVParamet << 83 void ComputeDimensions( G4VPVParameterisation* p, 105 const G4int n, << 84 const G4int n, 106 const G4VPhysicalV << 85 const G4VPhysicalVolume* pRep ) ; 107 86 108 void DescribeYourselfTo ( G4VGraphicsScene << 87 void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ; 109 G4Polyhedron* CreatePolyhedron () const ov << 88 G4Polyhedron* CreatePolyhedron () const ; 110 }; << 89 G4NURBS* CreateNURBS () const ; >> 90 >> 91 } ; >> 92 >> 93 inline G4GeometryType G4IntersectionSolid::GetEntityType() const >> 94 { >> 95 return G4String("G4IntersectionSolid"); >> 96 } 111 97 112 #endif 98 #endif 113 99 114 100