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,
62 const PlaneVector &fitPlaneVector
81 double getRandom(
double min,
double max)
const;
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;
137 ParticleGeneratorPtr particleGeneratorPtr,
138 ParticlePoolPtr particlePoolPtr,
143 double cubicPackRadius,
144 int maxInsertionFailures
148 ParticleGeneratorPtr particleGeneratorPtr,
149 ParticlePoolPtr particlePoolPtr,
154 double cubicPackRadius,
155 int maxInsertionFailures,
156 const PlaneVector &fitPlaneVector
167 double getRandom(
double min,
double max)
const;
Plane3D getClosestFitPlane(const Particle &particle) const
FittedParticleIterator(Packer &packer, int maxInsertionFailures, const PlaneVector &fitPlaneVector)
Definition: RandomBoxPacker.hpp:52
TmplFitterTraits FitterTraits
Definition: RandomBoxPacker.h:34
Inherited::Particle Particle
Definition: RandomBoxPacker.h:119
Particle next()
Definition: RandomBoxPacker.hpp:234
Definition: SphereFitter.h:191
Plane3D getClosestFitPlane(const Particle &particle) const
Definition: RandomBoxPacker.hpp:144
Particle getCandidateParticle(const Vec3 &point)
Definition: RandomBoxPacker.hpp:165
boost::shared_ptr< Fitter > FitterPtr
Definition: RandomBoxPacker.h:51
esys::lsm::Plane3D Plane3D
Definition: RandomBoxPacker.h:131
FitterTraits::Packer Packer
Definition: RandomBoxPacker.h:37
ParticleVector getClosestNeighbours(const Particle &particle, int numClosest)
Definition: RandomBoxPacker.hpp:174
PlaneVector m_fitPlaneVector
Definition: RandomBoxPacker.h:99
std::vector< Plane3D > PlaneVector
Definition: RandomBoxPacker.h:125
std::vector< Plane3D > PlaneVector
Definition: GougeBlock3D.h:32
const PlaneVector & getFitPlaneVector() const
Definition: RandomBoxPacker.hpp:79
Inherited::ParticleGeneratorPtr ParticleGeneratorPtr
Definition: RandomBoxPacker.h:118
MoveToSurfaceFitter< FitTraits > Move2SurfaceFitter
Definition: RandomBoxPacker.h:53
RandomBoxPacker Packer
Definition: RandomBoxPacker.h:130
Class representing a Plane3D.
Definition: Plane3D.h:28
Definition: CheckPointable.cpp:16
Packer::Particle Particle
Definition: RandomBoxPacker.h:38
double getRandom(double min, double max) const
Definition: RandomBoxPacker.hpp:384
::Plane3D Plane3D
Definition: Plane3D.h:60
void logInfo()
Definition: RandomBoxPacker.hpp:246
int getMaxInsertionFailures() const
Definition: RandomBoxPacker.hpp:471
Inherited::ParticleGenerator ParticleGenerator
Definition: RandomBoxPacker.h:117
Definition: SphereFitter.h:653
FittedParticleIterator< StufferTraits > StuffedParticleIterator
Definition: RandomBoxPacker.h:134
3D bounding box
Definition: BoundingBox.h:27
Packer Validator
Definition: RandomBoxPacker.h:44
Definition: ParticleFitter.h:108
Definition: SphereFitter.h:277
virtual void generate()
Definition: RandomBoxPacker.hpp:494
FitterTraits::Plane3D Plane3D
Definition: RandomBoxPacker.h:35
bool hasNext()
Definition: RandomBoxPacker.hpp:227
int getMaxInsertionFailures() const
Definition: RandomBoxPacker.hpp:85
Definition: RandomBoxPacker.h:41
void generateRandomFill()
Definition: RandomBoxPacker.hpp:477
const FitterPtrVector & getFitterPtrVector() const
Definition: RandomBoxPacker.hpp:137
const PlaneVector & getFitPlaneVector() const
Definition: RandomBoxPacker.hpp:394
void initialiseFitterPtrVector()
Definition: RandomBoxPacker.hpp:106
Packer * m_pPacker
Definition: RandomBoxPacker.h:98
Particle m_next
Definition: RandomBoxPacker.h:103
int m_maxInsertionFailures
Definition: RandomBoxPacker.h:183
ParticleVector getClosestNeighbours(const Particle &particle, int numClosest)
Definition: RandomBoxPacker.hpp:413
int m_successCount
Definition: RandomBoxPacker.h:102
ParticleCollection::Particle Particle
Definition: Packer.h:38
int m_maxInsertionFailures
Definition: RandomBoxPacker.h:100
std::vector< FitterPtr > FitterPtrVector
Definition: RandomBoxPacker.h:52
bool particleIsValid(const Particle &particle) const
Definition: RandomBoxPacker.hpp:458
virtual ~RandomBoxPacker()
Definition: RandomBoxPacker.hpp:378
Definition: SphereFitter.h:562
Particle & generateNext()
Definition: RandomBoxPacker.hpp:184
TmplCubicBoxPackerWrap< TmplParticleGenerator >::CubicBoxPackerBase Inherited
Definition: RandomBoxPacker.h:116
std::vector< bool > BoolVector
Definition: BlockGenerator.h:28
Vec3 getRandomPoint() const
Definition: RandomBoxPacker.hpp:158
Packer::ParticleVector ParticleVector
Definition: RandomBoxPacker.h:39
TwoDPlaneSphereFitter< FitTraits > TwoDPlaneFitter
Definition: RandomBoxPacker.h:56
FitterTraits::Plane3D Plane3D
Definition: RandomBoxPacker.h:47
RandomBoxPacker(ParticleGeneratorPtr particleGeneratorPtr, ParticlePoolPtr particlePoolPtr, NTablePtr nTablePtr, const BoundingBox &bBox, const BoolVector &periodicDimensions, double tolerance, double cubicPackRadius, int maxInsertionFailures)
Definition: RandomBoxPacker.hpp:316
Inherited::NTablePtr NTablePtr
Definition: RandomBoxPacker.h:121
Packer::PlaneVector PlaneVector
Definition: RandomBoxPacker.h:132
ThreeDPlaneSphereFitter< FitTraits > ThreeDPlaneFitter
Definition: RandomBoxPacker.h:57
int m_lastFailCount
Definition: RandomBoxPacker.h:101
SphereFitter< FitTraits > Fitter
Definition: RandomBoxPacker.h:50
Definition: SphereFitter.h:29
Definition: RandomBoxPacker.h:127
Definition: RandomBoxPacker.h:111
Inherited::NTable NTable
Definition: RandomBoxPacker.h:120
Vec3 getRandomPoint() const
Definition: RandomBoxPacker.hpp:401
FitterTraits::PlaneVector PlaneVector
Definition: RandomBoxPacker.h:36
TwoDSphereFitter< FitTraits > TwoDFitter
Definition: RandomBoxPacker.h:55
Inherited::ParticlePoolPtr ParticlePoolPtr
Definition: RandomBoxPacker.h:124
Inherited::ParticlePool ParticlePool
Definition: RandomBoxPacker.h:123
FitterPtrVector m_fitterPtrVector
Definition: RandomBoxPacker.h:104
Definition: RandomBoxPacker.h:31
const Packer & getPacker() const
Definition: RandomBoxPacker.hpp:92
PlaneVector getDefaultFitPlaneVector() const
Definition: RandomBoxPacker.hpp:343
Packer::ParticleVector ParticleVector
Definition: RandomBoxPacker.h:46
Packer::Particle Particle
Definition: RandomBoxPacker.h:45
double getRandom(double min, double max) const
NTable::ParticleVector ParticleVector
Definition: RandomBoxPacker.h:122
std::vector< SimpleParticle > ParticleVector
Definition: SimpleNTable3D.h:22
ThreeDSphereFitter< FitTraits > ThreeDFitter
Definition: RandomBoxPacker.h:54
PlaneVector m_fitPlaneVector
Definition: RandomBoxPacker.h:182