14 #ifndef ESYS_LSMBOXPACKER_H
15 #define ESYS_LSMBOXPACKER_H
17 #include <Geometry/Packer.h>
18 #include <Foundation/vec3.h>
19 #include <Foundation/BoundingBox.h>
27 typedef std::vector<bool> BoolVector;
31 template <
typename TmplPackerBase>
35 typedef TmplPackerBase Inherited;
36 typedef typename Inherited::Particle Particle;
37 typedef typename Inherited::NTable NTable;
38 typedef typename Inherited::NTablePtr NTablePtr;
39 typedef typename Inherited::ParticlePool ParticlePool;
40 typedef typename Inherited::ParticlePoolPtr ParticlePoolPtr;
43 ParticlePoolPtr particlePoolPtr,
46 const BoolVector &periodicDimensions,
52 virtual void generate() = 0;
54 bool particleFitsInBBox(
const Particle &particle)
const;
58 bool particleFitsInBBoxWithNeighbours(
const Particle &particle)
const;
60 bool particleFitsWithNeighbours(
const Particle &particle)
const;
62 double getTolerance()
const;
67 const BoolVector &getPeriodicDimensions()
const;
71 BoolVector m_periodicDimensions;
77 #include "Geometry/BoxPacker.hpp"