14 #ifndef ESYS_LSMCUBICBOXPACKER_H
15 #define ESYS_LSMCUBICBOXPACKER_H
17 #include <Geometry/BoxPacker.h>
23 typedef std::vector<bool> BoolVector;
27 template <
typename TmplParticleGenerator,
typename TmplBoxPackerBase>
31 typedef TmplParticleGenerator ParticleGenerator;
32 typedef boost::shared_ptr<ParticleGenerator> ParticleGeneratorPtr;
33 typedef TmplBoxPackerBase Inherited;
34 typedef Inherited BoxPackerBase;
35 typedef typename Inherited::Particle Particle;
36 typedef typename Inherited::NTable NTable;
37 typedef typename Inherited::NTablePtr NTablePtr;
38 typedef typename Inherited::ParticlePool ParticlePool;
39 typedef typename Inherited::ParticlePoolPtr ParticlePoolPtr;
42 ParticleGeneratorPtr particleGeneratorPtr,
43 ParticlePoolPtr particlePoolPtr,
46 const BoolVector &periodicDimensions,
48 double cubicPackRadius
53 Particle getCandidateParticle(
const Vec3 &point);
55 Particle getCandidateParticle(
const Vec3 &point,
double radius);
57 double getCubicPackingRadius()
const;
59 const ParticleGenerator &getParticleGenerator()
const;
61 ParticleGenerator &getParticleGenerator();
63 void setParticleGenerator(ParticleGenerator &particleGenerator);
65 void setParticleGenerator(ParticleGeneratorPtr particleGenerator);
67 void generateCubicPacking();
69 virtual void generate();
72 double m_cubicPackRadius;
73 ParticleGeneratorPtr m_particleGeneratorPtr;
74 ParticleGenerator *m_pParticleGenerator;
79 #include "Geometry/CubicBoxPacker.hpp"