2 // ********************************************************************
 
    3 // * License and Disclaimer                                           *
 
    5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
 
    6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
 
    7 // * conditions of the Geant4 Software License,  included in the file *
 
    8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
 
    9 // * include a list of copyright holders.                             *
 
   11 // * Neither the authors of this software system, nor their employing *
 
   12 // * institutes,nor the agencies providing financial support for this *
 
   13 // * work  make  any representation or  warranty, express or implied, *
 
   14 // * regarding  this  software system or assume any liability for its *
 
   15 // * use.  Please see the license in the file  LICENSE  and URL above *
 
   16 // * for the full disclaimer and the limitation of liability.         *
 
   18 // * This  code  implementation is the result of  the  scientific and *
 
   19 // * technical work of the GEANT4 collaboration.                      *
 
   20 // * By using,  copying,  modifying or  distributing the software (or *
 
   21 // * any work based  on the software)  you  agree  to acknowledge its *
 
   22 // * use  in  resulting  scientific  publications,  and indicate your *
 
   23 // * acceptance of all terms of the Geant4 Software license.          *
 
   24 // ********************************************************************
 
   27 // $Id: G4VoxelLimits.icc 66356 2012-12-18 09:02:32Z gcosmo $
 
   30 // G4VoxelLimits Inline implementation
 
   32 // --------------------------------------------------------------------
 
   35 G4double G4VoxelLimits::GetMaxXExtent() const
 
   41 G4double G4VoxelLimits::GetMaxYExtent() const
 
   47 G4double G4VoxelLimits::GetMaxZExtent() const
 
   53 G4double G4VoxelLimits::GetMinXExtent() const
 
   59 G4double G4VoxelLimits::GetMinYExtent() const
 
   65 G4double G4VoxelLimits::GetMinZExtent() const
 
   71 G4double G4VoxelLimits::GetMaxExtent(const EAxis pAxis) const
 
   75     return GetMaxXExtent();
 
   77   else if (pAxis==kYAxis)
 
   79     return GetMaxYExtent();
 
   83     assert(pAxis==kZAxis);
 
   84     return GetMaxZExtent();
 
   89 G4double G4VoxelLimits::GetMinExtent(const EAxis pAxis) const
 
   93     return GetMinXExtent();
 
   95   else if (pAxis==kYAxis)
 
   97     return GetMinYExtent();
 
  101     assert(pAxis==kZAxis);
 
  102     return GetMinZExtent();
 
  107 G4bool G4VoxelLimits::IsXLimited() const
 
  109   return (fxAxisMin==-kInfinity&&fxAxisMax==kInfinity) ? false : true;
 
  113 G4bool G4VoxelLimits::IsYLimited() const
 
  115   return (fyAxisMin==-kInfinity&&fyAxisMax==kInfinity) ? false : true;
 
  119 G4bool G4VoxelLimits::IsZLimited() const
 
  121   return (fzAxisMin==-kInfinity&&fzAxisMax==kInfinity) ? false : true;
 
  125 G4bool G4VoxelLimits::IsLimited() const
 
  127   return (IsXLimited()||IsYLimited()||IsZLimited());
 
  131 G4bool G4VoxelLimits::IsLimited(const EAxis pAxis) const
 
  137   else if (pAxis==kYAxis)
 
  143     assert(pAxis==kZAxis);
 
  149 G4bool G4VoxelLimits::Inside(const G4ThreeVector& pVec) const
 
  151   return ((GetMinXExtent()<=pVec.x()) &&
 
  152      (GetMaxXExtent()>=pVec.x()) &&
 
  153      (GetMinYExtent()<=pVec.y()) &&
 
  154      (GetMaxYExtent()>=pVec.y()) &&
 
  155      (GetMinZExtent()<=pVec.z()) &&
 
  156      (GetMaxZExtent()>=pVec.z()) ) ? true : false;