Geant4 Cross Reference |
>> 1 // This code implementation is the intellectual property of >> 2 // the GEANT4 collaboration. >> 3 // >> 4 // By copying, distributing or modifying the Program (or any work >> 5 // based on the Program) you indicate your acceptance of this statement, >> 6 // and all its terms. >> 7 // >> 8 // $Id: G4SolidExtentList.hh,v 1.3 2000/11/02 16:54:49 gcosmo Exp $ >> 9 // GEANT4 tag $Name: geant4-03-01 $ >> 10 // >> 11 // >> 12 // -------------------------------------------------------------------- >> 13 // GEANT 4 class header file 1 // 14 // 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 // 15 // 26 // G4SolidExtentList 16 // G4SolidExtentList 27 // 17 // 28 // Class description: 18 // Class description: 29 // 19 // 30 // Defines a list of (voxel) extents along o 20 // Defines a list of (voxel) extents along one axis. 31 // 21 // 32 // This utility class is designed for one sp 22 // This utility class is designed for one specific purpose: 33 // to calculate the extent of a CSG-like sol << 23 // to calculate the extent of a CSG solid for a voxel 34 // (G4VSolid::CalculateExtent). 24 // (G4VSolid::CalculateExtent). 35 25 36 // Author: David C. Williams (davidw@scipp.ucs << 26 // Author: >> 27 // David C. Williams (davidw@scipp.ucsc.edu) 37 // ------------------------------------------- 28 // -------------------------------------------------------------------- 38 #ifndef G4SOLIDEXTENTLIST_HH << 39 #define G4SOLIDEXTENTLIST_HH << 40 29 41 #include "G4Types.hh" << 30 #ifndef G4SolidExtentList_hh >> 31 #define G4SolidExtentList_hh >> 32 >> 33 #include "globals.hh" 42 34 43 #include "G4ClippablePolygon.hh" 35 #include "G4ClippablePolygon.hh" 44 36 45 class G4SolidExtentList 37 class G4SolidExtentList 46 { 38 { 47 public: 39 public: 48 << 40 49 G4SolidExtentList(); << 41 G4SolidExtentList(); 50 G4SolidExtentList( const EAxis targetAxis, << 42 G4SolidExtentList( const EAxis targetAxis, const G4VoxelLimits &voxelLimits ); 51 const G4VoxelLimits& vo << 43 ~G4SolidExtentList(); 52 ~G4SolidExtentList(); << 44 53 << 45 54 void AddSurface( const G4ClippablePolygon& << 46 void AddSurface( const G4ClippablePolygon &surface ); 55 << 47 56 G4bool GetExtent( G4double& min, G4double& << 48 G4bool GetExtent( G4double &min, G4double &max ) const; 57 << 49 58 protected: << 50 protected: 59 << 51 60 EAxis axis; // Target axis << 52 EAxis axis; // Target axis 61 G4bool limited = false; // True if limi << 53 G4bool limited; // True if limited 62 G4double minLimit; // ... min limit << 54 G4double minLimit; // ... min limit 63 G4double maxLimit; // ... max limit << 55 G4double maxLimit; // ... max limit 64 << 56 65 G4ClippablePolygon minSurface, // Minimum << 57 G4ClippablePolygon minSurface, // Minimum surface within limits 66 maxSurface, // Maximum << 58 maxSurface, // Maximum 67 minAbove, // Minimum << 59 minAbove, // Minimum surface totally above max limit 68 maxBelow; // Maximum << 60 maxBelow; // Maximum surface totally below min limit 69 }; 61 }; >> 62 70 63 71 #endif 64 #endif 72 65