ergo
|
Class that allows to find in NLogN time all shells that overlap with a given box. More...
Public Member Functions | |
ShellTree (const BasisInfoStruct &bis_, const real *rShells_) | |
root node constructor. | |
ShellTree (const BasisInfoStruct &bis_, const real *rshell, const std::list< int > &activeShells, const Box &bb) | |
Constructs the ShellTree. | |
~ShellTree () | |
void | init (const BasisInfoStruct &bis_, const real *rShells_, const std::list< int > &activeShells, const Box &bb) |
void | getOverlappingWith (const real *center, real cellsz, std::map< int, int > &res) const |
Private Attributes | |
const ShellSpecStruct * | shells |
ShellTree * | smaller |
ShellTree * | larger |
ergo_real | dividingValue |
int | dividingDimension |
std::map< int, ergo_real > | ownShells |
set only for leaves, i.e. | |
ergo_real | maxRadius |
upper limit of ownShell radius. |
Class that allows to find in NLogN time all shells that overlap with a given box.
ShellTree::ShellTree | ( | const BasisInfoStruct & | bis_, |
const real * | rShells | ||
) |
root node constructor.
It does some initalization work and passes on the ball to the leave constructors.
References BasisInfoStruct::noOfShells, BasisInfoStruct::shellList, ShellSpecStruct_::centerCoords, getBoundingBox(), shells, and init().
Referenced by init().
ShellTree::ShellTree | ( | const BasisInfoStruct & | bis_, |
const real * | rShells, | ||
const std::list< int > & | activeShells, | ||
const Box & | bb | ||
) |
void ShellTree::getOverlappingWith | ( | const real * | center, |
real | cellsz, | ||
std::map< int, int > & | res | ||
) | const |
References dividingDimension, dividingValue, smaller, maxRadius, getOverlappingWith(), larger, ownShells, distance(), and shells.
Referenced by getOverlappingWith(), and ErgoMolInfo::getBlocks().
void ShellTree::init | ( | const BasisInfoStruct & | bis_, |
const real * | rShells_, | ||
const std::list< int > & | activeShells, | ||
const Box & | bb | ||
) |
References Box::lo, Box::hi, dividingDimension, Box::getMaxDim(), dividingValue, ownShells, maxRadius, shells, smaller, ShellTree(), and larger.
Referenced by ShellTree().
int ShellTree::dividingDimension [private] |
Referenced by init(), and getOverlappingWith().
ergo_real ShellTree::dividingValue [private] |
Referenced by init(), and getOverlappingWith().
ShellTree* ShellTree::larger [private] |
Referenced by ~ShellTree(), init(), and getOverlappingWith().
ergo_real ShellTree::maxRadius [private] |
upper limit of ownShell radius.
Referenced by init(), and getOverlappingWith().
std::map<int,ergo_real> ShellTree::ownShells [private] |
set only for leaves, i.e.
such ShellTree objects that have smaller and larger fields set to NULL. Tree node contains a shell
Referenced by init(), and getOverlappingWith().
const ShellSpecStruct* ShellTree::shells [private] |
Referenced by ShellTree(), init(), and getOverlappingWith().
ShellTree* ShellTree::smaller [private] |
Referenced by ~ShellTree(), init(), and getOverlappingWith().