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.1 2000/04/07 10:58:50 gcosmo Exp $ >> 9 // GEANT4 tag $Name: geant4-02-00 $ >> 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 << 37 // ------------------------------------------- 26 // -------------------------------------------------------------------- 38 #ifndef G4SOLIDEXTENTLIST_HH << 39 #define G4SOLIDEXTENTLIST_HH << 40 27 41 #include "G4Types.hh" << 28 #ifndef G4SolidExtentList_hh >> 29 #define G4SolidExtentList_hh >> 30 >> 31 #include "globals.hh" 42 32 43 #include "G4ClippablePolygon.hh" 33 #include "G4ClippablePolygon.hh" 44 34 45 class G4SolidExtentList << 35 class G4SolidExtentList { 46 { << 36 public: 47 public: << 37 48 << 38 G4SolidExtentList(); 49 G4SolidExtentList(); << 39 G4SolidExtentList( const EAxis targetAxis, const G4VoxelLimits &voxelLimits ); 50 G4SolidExtentList( const EAxis targetAxis, << 40 ~G4SolidExtentList(); 51 const G4VoxelLimits& vo << 41 52 ~G4SolidExtentList(); << 42 53 << 43 void AddSurface( const G4ClippablePolygon &surface ); 54 void AddSurface( const G4ClippablePolygon& << 44 55 << 45 G4bool GetExtent( G4double &min, G4double &max ) const; 56 G4bool GetExtent( G4double& min, G4double& << 46 57 << 47 protected: 58 protected: << 48 59 << 49 EAxis axis; // Target axis 60 EAxis axis; // Target axis << 50 G4bool limited; // True if limited 61 G4bool limited = false; // True if limi << 51 G4double minLimit; // ... min limit 62 G4double minLimit; // ... min limit << 52 G4double maxLimit; // ... max limit 63 G4double maxLimit; // ... max limit << 53 64 << 54 G4ClippablePolygon minSurface, // Minimum surface within limits 65 G4ClippablePolygon minSurface, // Minimum << 55 maxSurface, // Maximum 66 maxSurface, // Maximum << 56 minAbove, // Minimum surface totally above max limit 67 minAbove, // Minimum << 57 maxBelow; // Maximum surface totally below min limit 68 maxBelow; // Maximum << 69 }; 58 }; >> 59 70 60 71 #endif 61 #endif 72 62