14 #ifndef ESYS_LSMRANDOMSPHEREPACKER_H
15 #define ESYS_LSMRANDOMSPHEREPACKER_H
26 #include <boost/shared_ptr.hpp>
32 template <
typename TmplFitterTraits>
39 typedef typename FitterTraits::Packer
Packer;
63 int maxInsertionFailures,
81 double getRandom(
double min,
double max)
const;
110 template <
typename TmplParticleGenerator,
template <
typename TmplPartGen>
class TmplCubicBoxPackerWrap>
115 typename TmplCubicBoxPackerWrap<TmplParticleGenerator>::CubicBoxPackerBase
120 typedef typename Inherited::NTable
NTable;
136 ParticleGeneratorPtr particleGeneratorPtr,
137 ParticlePoolPtr particlePoolPtr,
141 double cubicPackRadius,
142 int maxInsertionFailures,
152 double getRandom(
double min,
double max)
const;
const FitterPtrVector & getFitterPtrVector() const
Definition: RandomSpherePacker.hpp:109
int getMaxInsertionFailures() const
Definition: RandomSpherePacker.hpp:55
SphereFittedPIterator(Packer &packer, int maxInsertionFailures, const BoundingSphere &bSphere)
Definition: RandomSpherePacker.hpp:29
Inherited::NTablePtr NTablePtr
Definition: RandomSpherePacker.h:121
TwoDSphereSphereFitter< FitTraits > TwoDSSphereFitter
Definition: RandomSpherePacker.h:58
bool hasNext()
Definition: RandomSpherePacker.hpp:180
Inherited::ParticleGenerator ParticleGenerator
Definition: RandomSpherePacker.h:117
const Packer & getPacker() const
Definition: RandomSpherePacker.hpp:62
Definition: SphereFitter.h:191
void logInfo()
Definition: RandomSpherePacker.hpp:199
const BoundingSphere & getBSphere() const
Definition: RandomSpherePacker.hpp:274
Inherited::Particle Particle
Definition: RandomSpherePacker.h:119
double getRandom(double min, double max) const
Definition: SphereFitter.h:361
Vec3 getRandomPoint() const
Definition: RandomSpherePacker.hpp:291
SphereFitter< FitTraits > Fitter
Definition: RandomSpherePacker.h:52
FitterTraits::Plane3D Plane3D
Definition: RandomSpherePacker.h:49
Packer::ParticleVector ParticleVector
Definition: RandomSpherePacker.h:41
FitterPtrVector m_fitterPtrVector
Definition: RandomSpherePacker.h:99
int m_maxInsertionFailures
Definition: RandomSpherePacker.h:172
Packer::ParticleVector ParticleVector
Definition: RandomSpherePacker.h:48
Definition: RandomSpherePacker.h:126
ThreeDSphereSphereFitter< FitTraits > ThreeDSSphereFitter
Definition: RandomSpherePacker.h:59
TmplFitterTraits FitterTraits
Definition: RandomSpherePacker.h:36
std::vector< Plane3D > PlaneVector
Definition: GougeBlock3D.h:32
esys::lsm::Plane3D Plane3D
Definition: RandomSpherePacker.h:130
int m_lastFailCount
Definition: RandomSpherePacker.h:101
NTable::ParticleVector ParticleVector
Definition: RandomSpherePacker.h:122
Particle getCandidateParticle(const Vec3 &point)
Definition: RandomSpherePacker.hpp:122
Definition: RandomSpherePacker.h:111
virtual ~RandomSpherePacker()
Definition: RandomSpherePacker.hpp:268
TmplCubicBoxPackerWrap< TmplParticleGenerator >::CubicBoxPackerBase Inherited
Definition: RandomSpherePacker.h:116
Definition: CheckPointable.cpp:16
int m_successCount
Definition: RandomSpherePacker.h:102
Vec3 getRandomPoint() const
Definition: RandomSpherePacker.hpp:115
bool particleFitsInBSphereWithNeighbours(const Particle &particle) const
Definition: RandomSpherePacker.hpp:380
::Plane3D Plane3D
Definition: Plane3D.h:60
void initialiseFitterPtrVector()
Definition: RandomSpherePacker.hpp:83
Inherited::ParticlePool ParticlePool
Definition: RandomSpherePacker.h:123
RandomSpherePacker Packer
Definition: RandomSpherePacker.h:129
Packer Validator
Definition: RandomSpherePacker.h:46
boost::shared_ptr< Fitter > FitterPtr
Definition: RandomSpherePacker.h:53
Particle & generateNext()
Definition: RandomSpherePacker.hpp:141
BoundingSphere m_bSphere
Definition: RandomSpherePacker.h:104
Inherited::NTable NTable
Definition: RandomSpherePacker.h:120
Definition: ParticleFitter.h:108
Definition: SphereFitter.h:277
void generateRandomFill()
Definition: RandomSpherePacker.hpp:349
std::vector< Plane3D > PlaneVector
Definition: RandomSpherePacker.h:131
bool particleFitsInBSphere(const Particle &particle) const
Definition: RandomSpherePacker.hpp:367
void generateCubicPackingInSphere()
Definition: RandomSpherePacker.hpp:393
Particle m_next
Definition: RandomSpherePacker.h:103
ParticleCollection::Particle Particle
Definition: Packer.h:38
virtual void generate()
Definition: RandomSpherePacker.hpp:406
const BoundingSphere & getBSphere() const
Definition: RandomSpherePacker.hpp:76
Packer * m_pPacker
Definition: RandomSpherePacker.h:98
FitterTraits::PlaneVector PlaneVector
Definition: RandomSpherePacker.h:38
TwoDSphereFitter< FitTraits > TwoDSFitter
Definition: RandomSpherePacker.h:57
SphereFittedPIterator< StufferTraits > StuffedParticleIterator
Definition: RandomSpherePacker.h:133
double getRandom(double min, double max) const
Definition: RandomSpherePacker.hpp:282
FitterTraits::Packer Packer
Definition: RandomSpherePacker.h:39
Particle next()
Definition: RandomSpherePacker.hpp:187
ThreeDSphereFitter< FitTraits > ThreeDFitter
Definition: RandomSpherePacker.h:56
Definition: RandomSpherePacker.h:43
Packer::Particle Particle
Definition: RandomSpherePacker.h:47
int getMaxInsertionFailures() const
Definition: RandomSpherePacker.hpp:343
Definition: BoundingSphere.h:27
ParticleVector getClosestNeighbours(const Particle &particle, int numClosest)
Definition: RandomSpherePacker.hpp:131
Definition: RandomSpherePacker.h:33
Definition: SphereFitter.h:29
int m_maxInsertionFailures
Definition: RandomSpherePacker.h:100
Packer::Particle Particle
Definition: RandomSpherePacker.h:40
Definition: SphereFitter.h:460
ParticleVector getClosestNeighbours(const Particle &particle, int numClosest)
Definition: RandomSpherePacker.hpp:303
RandomSpherePacker(ParticleGeneratorPtr particleGeneratorPtr, ParticlePoolPtr particlePoolPtr, NTablePtr nTablePtr, const BoundingSphere &bSphere, double tolerance, double cubicPackRadius, int maxInsertionFailures, bool do2d)
Definition: RandomSpherePacker.hpp:243
bool particleIsValid(const Particle &particle) const
Definition: RandomSpherePacker.hpp:330
std::vector< FitterPtr > FitterPtrVector
Definition: RandomSpherePacker.h:54
FitterTraits::Plane3D Plane
Definition: RandomSpherePacker.h:37
Inherited::ParticlePoolPtr ParticlePoolPtr
Definition: RandomSpherePacker.h:124
Inherited::ParticleGeneratorPtr ParticleGeneratorPtr
Definition: RandomSpherePacker.h:118
BoundingSphere m_bSphere
Definition: RandomSpherePacker.h:171
std::vector< SimpleParticle > ParticleVector
Definition: SimpleNTable3D.h:22
MoveToSurfaceFitter< FitTraits > Move2SurfaceFitter
Definition: RandomSpherePacker.h:55