ESyS-Particle  2.3.4
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< ParticleVectorParticleIterator
 
typedef ForwardConstIterator< ParticleVectorParticleConstIterator
 

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< ParticleVectorParticleVectorArrayPtr
 

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

◆ Particle

template<class TmplParticle >
typedef TmplParticle esys::lsm::NeighbourTable< TmplParticle >::Particle

◆ ParticleConstIterator

template<class TmplParticle >
typedef ForwardConstIterator<ParticleVector> esys::lsm::NeighbourTable< TmplParticle >::ParticleConstIterator

◆ ParticleIterator

template<class TmplParticle >
typedef ForwardIterator<ParticleVector> esys::lsm::NeighbourTable< TmplParticle >::ParticleIterator

◆ ParticleVector

template<class TmplParticle >
typedef std::vector<Particle *> esys::lsm::NeighbourTable< TmplParticle >::ParticleVector

◆ ParticleVectorArrayPtr

template<class TmplParticle >
typedef boost::shared_array<ParticleVector> esys::lsm::NeighbourTable< TmplParticle >::ParticleVectorArrayPtr
private

Constructor & Destructor Documentation

◆ NeighbourTable() [1/2]

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:

◆ NeighbourTable() [2/2]

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

◆ ~NeighbourTable()

template<class TmplParticle >
esys::lsm::NeighbourTable< TmplParticle >::~NeighbourTable
virtual

Member Function Documentation

◆ addInserted()

template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::addInserted ( Particle pParticle)
protected

◆ clear()

template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::clear

◆ clearAndRecomputeGrid()

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

◆ getBBox()

template<class TmplParticle >
const BoundingBox & esys::lsm::NeighbourTable< TmplParticle >::getBBox

◆ getDimensions()

template<class TmplParticle >
const Vec3L & esys::lsm::NeighbourTable< TmplParticle >::getDimensions

◆ getGridSpacing()

template<class TmplParticle >
double esys::lsm::NeighbourTable< TmplParticle >::getGridSpacing

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

Here is the caller graph for this function:

◆ getInsertedParticles()

template<class TmplParticle >
NeighbourTable< TmplParticle >::ParticleVector esys::lsm::NeighbourTable< TmplParticle >::getInsertedParticles
protected

◆ getMaxVecIndex()

template<class TmplParticle >
const Vec3L & esys::lsm::NeighbourTable< TmplParticle >::getMaxVecIndex

◆ getMinPt()

template<class TmplParticle >
const Vec3 & esys::lsm::NeighbourTable< TmplParticle >::getMinPt

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

Here is the call graph for this function:

◆ getMinVecIndex()

template<class TmplParticle >
const Vec3L & esys::lsm::NeighbourTable< TmplParticle >::getMinVecIndex

◆ getNeighbourVector() [1/2]

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

◆ getNeighbourVector() [2/2]

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:

◆ getNumCells()

template<class TmplParticle >
int esys::lsm::NeighbourTable< TmplParticle >::getNumCells
protected

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

Here is the caller graph for this function:

◆ getParticleIterator() [1/2]

template<class TmplParticle >
NeighbourTable< TmplParticle >::ParticleIterator esys::lsm::NeighbourTable< TmplParticle >::getParticleIterator

◆ getParticleIterator() [2/2]

template<class TmplParticle >
NeighbourTable< TmplParticle >::ParticleConstIterator esys::lsm::NeighbourTable< TmplParticle >::getParticleIterator

◆ getScalarIndex() [1/3]

template<class TmplParticle >
int esys::lsm::NeighbourTable< TmplParticle >::getScalarIndex ( const Vec3 pt) const

◆ getScalarIndex() [2/3]

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:

◆ getScalarIndex() [3/3]

template<class TmplParticle >
int esys::lsm::NeighbourTable< TmplParticle >::getScalarIndex ( int  xIdx,
int  yIdx,
int  zIdx 
) const

◆ getUniqueNeighbourVector()

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

◆ getVecIndex()

template<class TmplParticle >
Vec3L esys::lsm::NeighbourTable< TmplParticle >::getVecIndex ( const Vec3 pt) const

References Vec3::X(), Vec3::Y(), and Vec3::Z().

Here is the call graph for this function:

◆ insert() [1/2]

template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::insert ( Particle particle)

◆ insert() [2/2]

template<class TmplParticle >
void esys::lsm::NeighbourTable< TmplParticle >::insert ( Particle pParticle)

◆ insertInTable()

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:

◆ resize()

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:

◆ size()

template<class TmplParticle >
size_t esys::lsm::NeighbourTable< TmplParticle >::size

Return the number of particles inserted into this table.

Member Data Documentation

◆ m_bBox

template<class TmplParticle >
BoundingBox esys::lsm::NeighbourTable< TmplParticle >::m_bBox
private

◆ m_dimensions

template<class TmplParticle >
Vec3L esys::lsm::NeighbourTable< TmplParticle >::m_dimensions
private

◆ m_gridSpacing

template<class TmplParticle >
double esys::lsm::NeighbourTable< TmplParticle >::m_gridSpacing
private

◆ m_insertedParticles

template<class TmplParticle >
ParticleVector esys::lsm::NeighbourTable< TmplParticle >::m_insertedParticles
private

◆ m_maxIndex

template<class TmplParticle >
Vec3L esys::lsm::NeighbourTable< TmplParticle >::m_maxIndex
private

◆ m_minIndex

template<class TmplParticle >
Vec3L esys::lsm::NeighbourTable< TmplParticle >::m_minIndex
private

◆ m_tablePtr

template<class TmplParticle >
ParticleVectorArrayPtr esys::lsm::NeighbourTable< TmplParticle >::m_tablePtr
private

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