13 #ifndef ESYS_LSMPARTICLECOLLECTION_H
14 #define ESYS_LSMPARTICLECOLLECTION_H
16 #include "Foundation/BoundingBox.h"
17 #include "Foundation/StlIterator.h"
18 #include "Geometry/Vec3L.h"
20 #include <boost/shared_ptr.hpp>
21 #include <boost/pool/object_pool.hpp>
33 template <
typename TmplParticle>
37 typedef TmplParticle Particle;
38 typedef boost::object_pool<Particle> ParticlePool;
39 typedef boost::shared_ptr<ParticlePool> ParticlePoolPtr;
42 typedef std::vector<Particle *> ParticleVector;
51 typedef Particle& value_type;
59 return *(VectorIterator::next());
62 value_type current()
const
64 return *(VectorIterator::current());
71 typedef const Particle& value_type;
84 return *(VectorConstIterator::next());
87 value_type current()
const
89 return *(VectorConstIterator::current());
103 int getNumParticles()
const;
112 ParticleConstIterator getParticleIterator()
const
114 return ParticleConstIterator(VectorConstIterator(m_particleVector));
161 ParticlePoolPtr m_particlePoolPtr;
162 ParticleVector m_particleVector;
167 #include "Geometry/ParticleCollection.hpp"