20 #include <boost/limits.hpp>
26 template <
typename TmplParticle>
28 : m_particlePoolPtr(),
34 template <
typename TmplParticle>
38 : m_particlePoolPtr(particlePoolPtr),
43 template <
typename TmplParticle>
45 : m_particlePoolPtr(p.m_particlePoolPtr),
46 m_particleVector(p.m_particleVector)
50 template <
typename TmplParticle>
58 template <
typename TmplParticle>
62 m_particleVector.push_back(&p);
65 template <
typename TmplParticle>
69 if (m_particlePoolPtr->is_from(&p))
77 "ParticleCollection<TmplParticle>::insertRef: Tried to insert"
78 " reference to non-created particle."
83 template <
typename TmplParticle>
87 Particle *newP = m_particlePoolPtr->construct(p);
88 noCheckInsertRef(*newP);
92 template <
typename TmplParticle>
97 template <
typename TmplParticle>
100 return m_particleVector.size();
103 template <
typename TmplParticle>
109 it.
next().translateBy(vec);
113 template <
typename TmplParticle>
115 const Vec3 &rotation,
122 it.
next().rotate(rotation, posn);
126 template <
typename TmplParticle>
128 typename Particle::Id idIncr
135 p.setId(p.getId() + idIncr);
139 template <
typename TmplParticle>
142 Vec3 minPt =
Vec3(std::numeric_limits<double>::max());
148 minPt =
cmin(minPt, next.getPos() - next.getRad());
149 maxPt =
cmax(maxPt, next.getPos() + next.getRad());
void translateBy(const Vec3 &vec)
Definition: ParticleCollection.hpp:104
Definition: ParticleCollection.h:68
virtual ~ParticleCollection()
Definition: ParticleCollection.hpp:93
void incrementIdBy(typename Particle::Id idIncr)
Definition: ParticleCollection.hpp:127
boost::shared_ptr< ParticlePool > ParticlePoolPtr
Definition: ParticleCollection.h:39
ParticleVector m_particleVector
Definition: ParticleCollection.h:162
void insertRef(Particle &p)
Definition: ParticleCollection.hpp:67
Definition: CheckPointable.cpp:16
BoundingBox getParticleBBox() const
Definition: ParticleCollection.hpp:140
Particle & createParticle(const Particle &p)
Definition: ParticleCollection.hpp:85
ParticlePoolPtr m_particlePoolPtr
Definition: ParticleCollection.h:161
3D bounding box
Definition: BoundingBox.h:27
int getNumParticles() const
Definition: ParticleCollection.hpp:98
TmplParticle Particle
Definition: ParticleCollection.h:37
ParticleCollection()
Definition: ParticleCollection.hpp:27
VEC3_INLINE Vec3 cmax(const Vec3 &v1, const Vec3 &v2)
Definition: vec3.hpp:231
bool hasNext() const
Definition: StlIterator.h:100
Definition: ParticleCollection.h:48
VEC3_INLINE Vec3 cmin(const Vec3 &v1, const Vec3 &v2)
Definition: vec3.hpp:240
ParticleCollection & operator=(const ParticleCollection &p)
Definition: ParticleCollection.hpp:52
void noCheckInsertRef(Particle &p)
Definition: ParticleCollection.hpp:60
value_type next()
Definition: ParticleCollection.h:57
value_type next()
Definition: ParticleCollection.h:82
void rotate(const Vec3 &rotation, const Vec3 &posn)
Definition: ParticleCollection.hpp:114
bool hasNext() const
Definition: StlIterator.h:48
boost::object_pool< Particle > ParticlePool
Definition: ParticleCollection.h:38
Definition: ParticleCollection.h:34