Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 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 // 26 // 27 // 28 // 29 30 // class description: 31 // 32 // This is a concrete class of G4VTrajectoryP 33 // a ray crosses upon a surface of a volume re 34 // of this class are created by G4RayTrajector 35 // 36 37 ///////////////////////// 38 //G4RayTrajectoryPoint.hh 39 ///////////////////////// 40 41 #ifndef G4RayTrajectoryPoint_h 42 #define G4RayTrajectoryPoint_h 1 43 44 class G4VisAttributes; 45 #include "globals.hh" 46 #include "G4VTrajectoryPoint.hh" 47 #include "G4Allocator.hh" 48 #include "G4ThreeVector.hh" 49 50 class G4RayTrajectoryPoint :public G4VTrajecto 51 { 52 public: 53 G4RayTrajectoryPoint(); 54 virtual ~G4RayTrajectoryPoint(); 55 56 inline void *operator new(size_t); 57 inline void operator delete(void *aTraject 58 // inline G4bool operator==(const G4RayTr 59 // { return (this==&right); }; 60 61 private: 62 const G4VisAttributes* preStepAtt; 63 const G4VisAttributes* postStepAtt; 64 G4ThreeVector surfaceNormal; 65 G4double stepLength; 66 67 public: 68 inline void SetPreStepAtt(const G4VisAttri 69 inline const G4VisAttributes* GetPreStepAt 70 inline void SetPostStepAtt(const G4VisAttr 71 inline const G4VisAttributes* GetPostStepA 72 inline void SetSurfaceNormal(const G4Three 73 inline G4ThreeVector GetSurfaceNormal() co 74 inline void SetStepLength(G4double val) { 75 inline G4double GetStepLength() const { re 76 77 inline const G4ThreeVector GetPosition() c 78 // Dummy function (not used) to satisfy ba 79 }; 80 81 #if defined G4RAYTRACER_ALLOC_EXPORT 82 extern G4DLLEXPORT G4Allocator<G4RayTrajecto 83 #else 84 extern G4DLLIMPORT G4Allocator<G4RayTrajecto 85 #endif 86 87 inline void* G4RayTrajectoryPoint::operator ne 88 { 89 if(!rayTrajectoryPointAllocator()) 90 { rayTrajectoryPointAllocator() = new G4All 91 return (void *) rayTrajectoryPointAllocator 92 } 93 94 inline void G4RayTrajectoryPoint::operator del 95 { 96 rayTrajectoryPointAllocator()->FreeSingle(( 97 } 98 99 #endif 100 101