67 lines
1.3 KiB
Plaintext
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;
|
|
}
|
|
}
|
|
}
|