ESyS-Particle  2.3
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 
)

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: