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());