Files
geant4/source/geometry/volumes/include/G4BlockingList.icc
T
2016-06-08 15:55:53 +02:00

67 lines
1.3 KiB
Plaintext

// This code implementation is the intellectual property of
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4BlockingList.icc,v 1.3 2000/11/20 18:59:14 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4BlockingList Inlined Implementation
//
inline G4BlockingList::G4BlockingList(G4int maxDefault,G4int stride)
: fStride(stride), fBlockingList(maxDefault)
{
FullyReset();
}
// Do nothing destructor
inline G4BlockingList::~G4BlockingList()
{
}
inline G4int G4BlockingList::Length() const
{
return fBlockingList.length();
}
inline void G4BlockingList::BlockVolume(const G4int v)
{
fBlockingList(v)=fBlockTagNo;
}
inline G4bool G4BlockingList::IsBlocked(const G4int v) const
{
return (fBlockingList(v)==fBlockTagNo) ? true:false;
}
inline void G4BlockingList::Reset()
{
if (fBlockTagNo!=kBlockTagNoMax)
{
fBlockTagNo+=1;
}
else
{
FullyReset();
}
}
inline void G4BlockingList::Enlarge(const G4int nv)
{
G4int len=fBlockingList.length();
if (len<nv)
{
G4int newlen=(nv/fStride+1)*fStride;
fBlockingList.reshape(newlen);
for (G4int i=len;i<newlen;i++)
{
fBlockingList(i)=0;
}
}
}