14 #ifndef ESYS_LSMRANDOMBLOCKGENERATOR_H
15 #define ESYS_LSMRANDOMBLOCKGENERATOR_H
17 #include <Geometry/BlockGenerator.h>
18 #include <Geometry/Plane.h>
21 #include <boost/shared_ptr.hpp>
29 typedef std::vector<Plane> PlaneVector;
30 typedef boost::shared_ptr<ParticleFitter> FitterPtr;
31 typedef std::vector<FitterPtr> FitterPtrVector;
41 ParticlePool &particlePool,
43 const BoolVector &periodicDimensions,
45 double minSphereRadius,
46 double maxSphereRadius,
47 const PlaneVector &fitPlaneVector,
48 int maxInsertionFailures
55 virtual void generate();
57 double getRandom(
double min,
double max)
const;
59 virtual double getRadius()
const;
61 virtual double getGridRadius()
const;
63 Vec3 getRandomPoint()
const;
65 ParticleVector getClosestNeighbors(
const SimpleParticle& particle,
int numClosest);
67 int getMaxInsertionFailures()
const;
69 FitterPtrVector getFitterPtrVector();
71 void generateFillParticles();
73 const PlaneVector &getFitPlaneVector()
const;
80 PlaneVector m_fitPlaneVector;
81 int m_maxInsertionFailures;