18 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
26 double cubicPackRadius
34 m_cubicPackRadius(cubicPackRadius),
35 m_particleGeneratorPtr(particleGeneratorPtr),
36 m_pParticleGenerator(particleGeneratorPtr.get())
40 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
45 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
49 return *m_pParticleGenerator;
52 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
56 return *m_pParticleGenerator;
59 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
65 m_pParticleGenerator = &particleGenerator;
69 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
75 m_particleGeneratorPtr = particleGeneratorPtr;
76 m_pParticleGenerator = m_particleGeneratorPtr.get();
79 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
83 return m_cubicPackRadius;
86 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
93 return getParticleGenerator().getParticle(point, radius);
96 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
102 return getParticleGenerator().getParticle(point);
105 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
112 getCandidateParticle(pointIt.
next(), getCubicPackingRadius());
113 if (this->particleFitsInBBoxWithNeighbours(candidate)) {
114 this->createAndInsertParticle(candidate);
119 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
123 generateCubicPacking();