ESyS-Particle  2.3.2
esys::lsm::NeighbourTable< TmplParticle > Class Template Reference

#include <NeighbourTable.h>

Inheritance diagram for esys::lsm::NeighbourTable< TmplParticle >:
Collaboration diagram for esys::lsm::NeighbourTable< TmplParticle >:

Public Types

typedef TmplParticle Particle
typedef std::vector< Particle * > ParticleVector
typedef ForwardIterator
< ParticleVector
ParticleIterator
typedef ForwardConstIterator
< ParticleVector
ParticleConstIterator

Public Member Functions

 NeighbourTable (const BoundingBox &bBox, double gridSpacing)
 NeighbourTable (const NeighbourTable &nTable)
virtual ~NeighbourTable ()
void clear ()
double getGridSpacing () const
void resize (const BoundingBox &bBox, double gridSpacing)
const Vec3LgetDimensions () const
const BoundingBoxgetBBox () const
const Vec3getMinPt () const
size_t size () const
int getScalarIndex (int xIdx, int yIdx, int zIdx) const
int getScalarIndex (const Vec3L &index) const
int getScalarIndex (const Vec3 &pt) const
const Vec3LgetMinVecIndex () const
const Vec3LgetMaxVecIndex () const
Vec3L getVecIndex (const Vec3 &pt) const
ParticleVector getNeighbourVector (const Vec3 &pt, double radius) const
ParticleVector getUniqueNeighbourVector (const Vec3 &pt, double radius) const
ParticleVector getNeighbourVector (const Vec3 &pt) const
void insert (Particle *pParticle)
void insert (Particle &particle)
ParticleIterator getParticleIterator ()
ParticleConstIterator getParticleIterator () const

Protected Member Functions

void insertInTable (Particle *pParticle, const Vec3L &minIdx, const Vec3L &maxIdx)
void addInserted (Particle *pParticle)
int getNumCells () const
ParticleVector getInsertedParticles () const
void clearAndRecomputeGrid (const BoundingBox &bBox, double gridSpacing)

Private Types

typedef boost::shared_array
< ParticleVector
ParticleVectorArrayPtr

Private Attributes

Vec3L m_dimensions
Vec3L m_minIndex
Vec3L m_maxIndex
double m_gridSpacing
BoundingBox m_bBox
ParticleVector m_insertedParticles
ParticleVectorArrayPtr m_tablePtr

Member Typedef Documentation

template<class TmplParticle>
typedef TmplParticle esys::lsm::NeighbourTable< TmplParticle >::Particle
template<class TmplParticle>
typedef ForwardConstIterator<ParticleVector> esys::lsm::NeighbourTable< TmplParticle >::ParticleConstIterator
template<class TmplParticle>
typedef ForwardIterator<ParticleVector> esys::lsm::NeighbourTable< TmplParticle >::ParticleIterator
template<class TmplParticle>
typedef std::vector<Particle *> esys::lsm::NeighbourTable< TmplParticle >::ParticleVector
template<class TmplParticle>
typedef boost::shared_array<ParticleVector> esys::lsm::NeighbourTable< TmplParticle >::ParticleVectorArrayPtr
private

Constructor & Destructor Documentation

template<class TmplParticle >
esys::lsm::NeighbourTable< TmplParticle >::NeighbourTable ( const BoundingBox bBox,
double  gridSpacing 
)

References esys::lsm::NeighbourTable< TmplParticle >::resize().

Here is the call graph for this function:

template<class TmplParticle >
esys::lsm::NeighbourTable< TmplParticle >::NeighbourTable ( const NeighbourTable< TmplParticle > &  nTable)
template<class TmplParticle >
esys::lsm::NeighbourTable< TmplParticle >::~NeighbourTable ( )
virtual

Member Function Documentation

template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::addInserted ( Particle pParticle)
protected
template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::clear ( )
template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::clearAndRecomputeGrid ( const BoundingBox bBox,
double  gridSpacing 
)
protected
template<class TmplParticle >
const BoundingBox & esys::lsm::NeighbourTable< TmplParticle >::getBBox ( ) const
template<class TmplParticle >
const Vec3L & esys::lsm::NeighbourTable< TmplParticle >::getDimensions ( ) const
template<class TmplParticle >
double esys::lsm::NeighbourTable< TmplParticle >::getGridSpacing ( ) const

Referenced by esys::lsm::CircularNeighbourTable< TmplParticle >::CircularNeighbourTable().

Here is the caller graph for this function:

template<class TmplParticle >
NeighbourTable< TmplParticle >::ParticleVector esys::lsm::NeighbourTable< TmplParticle >::getInsertedParticles ( ) const
protected
template<class TmplParticle >
const Vec3L & esys::lsm::NeighbourTable< TmplParticle >::getMaxVecIndex ( ) const
template<class TmplParticle >
const Vec3 & esys::lsm::NeighbourTable< TmplParticle >::getMinPt ( ) const

References getBBox(), and esys::lsm::BoundingBox::getMinPt().

Here is the call graph for this function:

template<class TmplParticle >
const Vec3L & esys::lsm::NeighbourTable< TmplParticle >::getMinVecIndex ( ) const
template<class TmplParticle >
NeighbourTable< TmplParticle >::ParticleVector esys::lsm::NeighbourTable< TmplParticle >::getNeighbourVector ( const Vec3 pt,
double  radius 
) const

References esys::lsm::Vec3L::X(), esys::lsm::Vec3L::Y(), and esys::lsm::Vec3L::Z().

Referenced by esys::lsm::BlockGenerator::particleFitsWithNeighbours().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class TmplParticle >
NeighbourTable< TmplParticle >::ParticleVector esys::lsm::NeighbourTable< TmplParticle >::getNeighbourVector ( const Vec3 pt) const
template<class TmplParticle >
int esys::lsm::NeighbourTable< TmplParticle >::getNumCells ( ) const
protected

Referenced by esys::lsm::NeighbourTable< TmplParticle >::NeighbourTable().

Here is the caller graph for this function:

template<class TmplParticle >
NeighbourTable< TmplParticle >::ParticleIterator esys::lsm::NeighbourTable< TmplParticle >::getParticleIterator ( )
template<class TmplParticle >
NeighbourTable< TmplParticle >::ParticleConstIterator esys::lsm::NeighbourTable< TmplParticle >::getParticleIterator ( ) const
template<class TmplParticle >
int esys::lsm::NeighbourTable< TmplParticle >::getScalarIndex ( int  xIdx,
int  yIdx,
int  zIdx 
) const
template<class TmplParticle >
int esys::lsm::NeighbourTable< TmplParticle >::getScalarIndex ( const Vec3L index) const

References esys::lsm::Vec3L::X(), esys::lsm::Vec3L::Y(), and esys::lsm::Vec3L::Z().

Here is the call graph for this function:

template<class TmplParticle >
int esys::lsm::NeighbourTable< TmplParticle >::getScalarIndex ( const Vec3 pt) const
template<class TmplParticle >
NeighbourTable< TmplParticle >::ParticleVector esys::lsm::NeighbourTable< TmplParticle >::getUniqueNeighbourVector ( const Vec3 pt,
double  radius 
) const
template<class TmplParticle >
Vec3L esys::lsm::NeighbourTable< TmplParticle >::getVecIndex ( const Vec3 pt) const

References esys::lsm::Vec3L::max(), Vec3::X(), Vec3::Y(), and Vec3::Z().

Here is the call graph for this function:

template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::insert ( Particle pParticle)
template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::insert ( Particle particle)
template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::insertInTable ( Particle pParticle,
const Vec3L minIdx,
const Vec3L maxIdx 
)
protected

References esys::lsm::Vec3L::X(), esys::lsm::Vec3L::Y(), and esys::lsm::Vec3L::Z().

Here is the call graph for this function:

template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::resize ( const BoundingBox bBox,
double  gridSpacing 
)

Reimplemented in esys::lsm::CircularNeighbourTable< TmplParticle >.

Referenced by esys::lsm::NeighbourTable< TmplParticle >::NeighbourTable().

Here is the caller graph for this function:

template<class TmplParticle >
size_t esys::lsm::NeighbourTable< TmplParticle >::size ( ) const

Return the number of particles inserted into this table.

Member Data Documentation

template<class TmplParticle>
BoundingBox esys::lsm::NeighbourTable< TmplParticle >::m_bBox
private
template<class TmplParticle>
Vec3L esys::lsm::NeighbourTable< TmplParticle >::m_dimensions
private
template<class TmplParticle>
double esys::lsm::NeighbourTable< TmplParticle >::m_gridSpacing
private
template<class TmplParticle>
ParticleVector esys::lsm::NeighbourTable< TmplParticle >::m_insertedParticles
private
template<class TmplParticle>
Vec3L esys::lsm::NeighbourTable< TmplParticle >::m_maxIndex
private
template<class TmplParticle>
Vec3L esys::lsm::NeighbourTable< TmplParticle >::m_minIndex
private
template<class TmplParticle>
ParticleVectorArrayPtr esys::lsm::NeighbourTable< TmplParticle >::m_tablePtr
private

The documentation for this class was generated from the following files: