Go to the documentation of this file.
14 #ifndef ESYS_LSMRANDOMBOXPACKER_H
15 #define ESYS_LSMRANDOMBOXPACKER_H
24 #include <boost/shared_ptr.hpp>
30 template <
typename TmplFitterTraits>
37 typedef typename FitterTraits::Packer
Packer;
61 int maxInsertionFailures,
110 template <
typename TmplParticleGenerator,
template <
typename TmplPartGen>
class TmplCubicBoxPackerWrap>
111 class RandomBoxPacker :
public TmplCubicBoxPackerWrap<TmplParticleGenerator>::CubicBoxPackerBase
115 typename TmplCubicBoxPackerWrap<TmplParticleGenerator>::CubicBoxPackerBase
120 typedef typename Inherited::NTable
NTable;
143 double cubicPackRadius,
144 int maxInsertionFailures
154 double cubicPackRadius,
155 int maxInsertionFailures,
167 double getRandom(
double min,
double max)
const;
TwoDPlaneSphereFitter< FitTraits > TwoDPlaneFitter
Definition: RandomBoxPacker.h:56
PlaneVector getDefaultFitPlaneVector() const
Definition: RandomBoxPacker.hpp:343
Plane3D getClosestFitPlane(const Particle &particle) const
Definition: RandomBoxPacker.hpp:144
boost::shared_ptr< Fitter > FitterPtr
Definition: RandomBoxPacker.h:51
Packer::Particle Particle
Definition: RandomBoxPacker.h:45
MoveToSurfaceFitter< FitTraits > Move2SurfaceFitter
Definition: RandomBoxPacker.h:53
FitterTraits::Packer Packer
Definition: RandomBoxPacker.h:37
TmplCubicBoxPackerWrap< TmplParticleGenerator >::CubicBoxPackerBase Inherited
Definition: RandomBoxPacker.h:116
Definition: RandomBoxPacker.h:42
const PlaneVector & getFitPlaneVector() const
Definition: RandomBoxPacker.hpp:394
bool hasNext()
Definition: RandomBoxPacker.hpp:227
Definition: RandomBoxPacker.h:112
Definition: SphereFitter.h:654
virtual ~RandomBoxPacker()
Definition: RandomBoxPacker.hpp:378
Vec3 getRandomPoint() const
Definition: RandomBoxPacker.hpp:158
int m_successCount
Definition: RandomBoxPacker.h:102
RandomBoxPacker(ParticleGeneratorPtr particleGeneratorPtr, ParticlePoolPtr particlePoolPtr, NTablePtr nTablePtr, const BoundingBox &bBox, const BoolVector &periodicDimensions, double tolerance, double cubicPackRadius, int maxInsertionFailures)
Definition: RandomBoxPacker.hpp:316
Definition: SphereFitter.h:563
::Plane3D Plane3D
Definition: Plane3D.h:60
double getRandom(double min, double max) const
Packer::ParticleVector ParticleVector
Definition: RandomBoxPacker.h:46
Definition: RandomBoxPacker.h:128
Vec3 getRandomPoint() const
Definition: RandomBoxPacker.hpp:401
Packer * m_pPacker
Definition: RandomBoxPacker.h:98
Particle getCandidateParticle(const Vec3 &point)
Definition: RandomBoxPacker.hpp:165
const Packer & getPacker() const
Definition: RandomBoxPacker.hpp:92
Inherited::ParticlePoolPtr ParticlePoolPtr
Definition: RandomBoxPacker.h:124
int getMaxInsertionFailures() const
Definition: RandomBoxPacker.hpp:471
Definition: RandomBoxPacker.h:32
Class representing a Plane3D.
Definition: Plane3D.h:29
esys::lsm::Plane3D Plane3D
Definition: RandomBoxPacker.h:131
SphereFitter< FitTraits > Fitter
Definition: RandomBoxPacker.h:50
Definition: SphereFitter.h:30
ParticleVector getClosestNeighbours(const Particle &particle, int numClosest)
Definition: RandomBoxPacker.hpp:174
int m_maxInsertionFailures
Definition: RandomBoxPacker.h:183
std::vector< Plane3D > PlaneVector
Definition: GougeBlock3D.h:32
TmplFitterTraits FitterTraits
Definition: RandomBoxPacker.h:34
PlaneVector m_fitPlaneVector
Definition: RandomBoxPacker.h:182
ThreeDPlaneSphereFitter< FitTraits > ThreeDPlaneFitter
Definition: RandomBoxPacker.h:57
Plane3D getClosestFitPlane(const Particle &particle) const
3D bounding box
Definition: BoundingBox.h:28
Definition: CheckPointable.cpp:17
Packer Validator
Definition: RandomBoxPacker.h:44
Inherited::NTablePtr NTablePtr
Definition: RandomBoxPacker.h:121
void initialiseFitterPtrVector()
Definition: RandomBoxPacker.hpp:106
std::vector< Plane3D > PlaneVector
Definition: RandomBoxPacker.h:125
void logInfo()
Definition: RandomBoxPacker.hpp:246
int m_maxInsertionFailures
Definition: RandomBoxPacker.h:100
ParticleVector getClosestNeighbours(const Particle &particle, int numClosest)
Definition: RandomBoxPacker.hpp:413
Definition: SphereFitter.h:192
FitterTraits::Plane3D Plane3D
Definition: RandomBoxPacker.h:47
Inherited::ParticleGeneratorPtr ParticleGeneratorPtr
Definition: RandomBoxPacker.h:118
Inherited::Particle Particle
Definition: RandomBoxPacker.h:119
const FitterPtrVector & getFitterPtrVector() const
Definition: RandomBoxPacker.hpp:137
Definition: SphereFitter.h:278
FitterTraits::Plane3D Plane3D
Definition: RandomBoxPacker.h:35
Particle m_next
Definition: RandomBoxPacker.h:103
virtual void generate()
Definition: RandomBoxPacker.hpp:494
std::vector< bool > BoolVector
Definition: BlockGenerator.h:28
void generateRandomFill()
Definition: RandomBoxPacker.hpp:477
NTable::ParticleVector ParticleVector
Definition: RandomBoxPacker.h:122
FitterPtrVector m_fitterPtrVector
Definition: RandomBoxPacker.h:104
PlaneVector m_fitPlaneVector
Definition: RandomBoxPacker.h:99
ParticleCollection::Particle Particle
Definition: Packer.h:38
Particle next()
Definition: RandomBoxPacker.hpp:234
Inherited::ParticleGenerator ParticleGenerator
Definition: RandomBoxPacker.h:117
double getRandom(double min, double max) const
Definition: RandomBoxPacker.hpp:384
ThreeDSphereFitter< FitTraits > ThreeDFitter
Definition: RandomBoxPacker.h:54
std::vector< FitterPtr > FitterPtrVector
Definition: RandomBoxPacker.h:52
Packer::PlaneVector PlaneVector
Definition: RandomBoxPacker.h:132
Definition: ParticleFitter.h:109
Inherited::ParticlePool ParticlePool
Definition: RandomBoxPacker.h:123
int getMaxInsertionFailures() const
Definition: RandomBoxPacker.hpp:85
std::vector< SimpleParticle > ParticleVector
Definition: SimpleNTable3D.h:22
Packer::ParticleVector ParticleVector
Definition: RandomBoxPacker.h:39
bool particleIsValid(const Particle &particle) const
Definition: RandomBoxPacker.hpp:458
FittedParticleIterator(Packer &packer, int maxInsertionFailures, const PlaneVector &fitPlaneVector)
Definition: RandomBoxPacker.hpp:52
const PlaneVector & getFitPlaneVector() const
Definition: RandomBoxPacker.hpp:79
FitterTraits::PlaneVector PlaneVector
Definition: RandomBoxPacker.h:36
Inherited::NTable NTable
Definition: RandomBoxPacker.h:120
RandomBoxPacker Packer
Definition: RandomBoxPacker.h:130
Particle & generateNext()
Definition: RandomBoxPacker.hpp:184
Packer::Particle Particle
Definition: RandomBoxPacker.h:38
TwoDSphereFitter< FitTraits > TwoDFitter
Definition: RandomBoxPacker.h:55
int m_lastFailCount
Definition: RandomBoxPacker.h:101
FittedParticleIterator< StufferTraits > StuffedParticleIterator
Definition: RandomBoxPacker.h:134