14 #ifndef ESYS_LSMSPHERENEIGHBOURS_H
15 #define ESYS_LSMSPHERENEIGHBOURS_H
20 #include <boost/shared_ptr.hpp>
21 #include <boost/pool/object_pool.hpp>
34 template <
typename TmplSphere,
typename TmplIdPairVector>
41 typedef typename IdPairVector::value_type
IdPair;
53 (c1.first == c2.first)
56 (c1.second < c2.second)
63 return (*
this)(*c1, *c2);
97 template<
typename TmplSphereIterator>
IdPairVector getNeighbours(TmplSphereIterator it)
int Id
Definition: SphereNeighbours.h:38
Definition: VectorPy.h:25
Vec3 m_maxPt
Definition: SphereNeighbours.h:146
NTable::BoolVector BoolVector
Definition: SphereNeighbours.h:75
Definition: SphereNeighbours.h:43
const IdPair & value_type
Definition: SphereNeighbours.h:105
std::set< IdPair *, Cmp > IdPairSet
Definition: SphereNeighbours.h:67
IdPairSet m_connectionSet
Definition: SphereNeighbours.h:140
double m_minRadius
Definition: SphereNeighbours.h:142
reference current() const
Definition: StlIterator.h:105
~SphereNeighbours()
Definition: SphereNeighbours.hpp:59
Definition: StlIterator.h:26
IdPairPoolPtr m_connectionPoolPtr
Definition: SphereNeighbours.h:139
const IdPair & createIdPair(const Sphere &p1, const Sphere &p2)
Definition: SphereNeighbours.hpp:96
boost::shared_ptr< IdPairPool > IdPairPoolPtr
Definition: SphereNeighbours.h:137
TmplSphere Sphere
Definition: SphereNeighbours.h:39
CircularNeighbourTable< Sphere > NTable
Definition: SphereNeighbours.h:70
int getNumSpheres() const
Definition: SphereNeighbours.hpp:64
double getMaxRadius() const
Definition: SphereNeighbours.hpp:82
Vec3 m_minPt
Definition: SphereNeighbours.h:145
SphereConstIterator getSphereIterator() const
Definition: SphereNeighbours.hpp:89
value_type next()
Definition: SphereNeighbours.h:112
std::vector< Sphere * > SphereVector
Definition: SphereNeighbours.h:69
int getNumIdPairs() const
Definition: SphereNeighbours.hpp:70
3D bounding box
Definition: BoundingBox.h:27
double m_maxDist
Definition: SphereNeighbours.h:144
Definition: SphereNeighbours.h:102
Definition: SphereNeighbours.h:35
NTable::ParticleIterator SphereIterator
Definition: SphereNeighbours.h:71
NTable::ParticleConstIterator SphereConstIterator
Definition: SphereNeighbours.h:72
TmplIdPairVector IdPairVector
Definition: SphereNeighbours.h:40
ConstIterator(const IdPairSet &set)
Definition: SphereNeighbours.h:107
value_type current() const
Definition: SphereNeighbours.h:117
std::vector< bool > BoolVector
Definition: CircularNeighbourTable.h:42
BoundingBox getSphereBBox() const
Definition: SphereNeighbours.hpp:271
void insert(Sphere &p)
Definition: SphereNeighbours.hpp:240
Definition: StlIterator.h:29
std::set< const IdPair *, Cmp > ConstIdPairSet
Definition: SphereNeighbours.h:68
Definition: CircularNeighbourTable.h:33
ConstIterator Iterator
Definition: SphereNeighbours.h:122
bool operator()(const IdPair *c1, const IdPair *c2) const
Definition: SphereNeighbours.h:61
double m_maxRadius
Definition: SphereNeighbours.h:143
IdPairVector::value_type IdPair
Definition: SphereNeighbours.h:41
reference next()
Definition: StlIterator.h:112
const IdPair & reference
Definition: SphereNeighbours.h:106
ForwardConstIterator< IdPairSet > IdPairConstIterator
Definition: SphereNeighbours.h:100
boost::object_pool< IdPair > IdPairPool
Definition: SphereNeighbours.h:136
Iterator getIterator() const
Definition: SphereNeighbours.h:124
NTablePtr m_nTablePtr
Definition: SphereNeighbours.h:141
double getMinRadius() const
Definition: SphereNeighbours.hpp:76
boost::shared_ptr< NTable > NTablePtr
Definition: SphereNeighbours.h:135
SphereNeighbours(double maxDist, const BoundingBox &bBox=BoundingBox(Vec3(-10,-10,-10), Vec3(10, 10, 10)), const BoolVector &circDimensions=BoolVector(3, false))
Definition: SphereNeighbours.hpp:23
bool operator()(const IdPair &c1, const IdPair &c2) const
Definition: SphereNeighbours.h:46
TmplIteratable::value_type value_type
Definition: StlIterator.h:78