Go to the documentation of this file.
26 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
34 double cubicPackRadius,
35 int maxInsertionFailures,
50 m_grainCollectionPtr(new
GrainCollection(particlePoolPtr, grainPoolPtr))
54 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
62 double cubicPackRadius,
63 int maxInsertionFailures
79 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
84 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
88 return *(m_grainCollectionPtr.get());
91 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
95 return *(m_grainCollectionPtr.get());
98 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
102 return getGrainCollection().getGrainIterator();
105 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
109 return getGrainCollection().getGrainIterator();
112 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
116 return getGrainCollection().getNumGrains();
119 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
123 return Inherited::getParticleGenerator();
126 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
130 return Inherited::getParticleGenerator();
133 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
139 this->setParticleGenerator(particleGrainGen);
142 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
148 setParticleGenerator(particleGrainGenPtr);
151 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
155 return m_grainCollectionPtr->getNumGrains();
158 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
162 return m_grainCollectionPtr->createGrain();
165 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
171 Grain &g = constructGrain();
172 g.setId(getNextGrainId());
176 g.insertRef(this->createAndInsertParticle(it.next()));
181 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
187 this->getCandidateParticle(pointIt.
next(), this->getCubicPackingRadius());
188 if (this->particleFitsInBBoxWithNeighbours(candidate)) {
189 createAndInsertGrain(getParticleGrainGen().getGrain(candidate));
194 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
200 this->getMaxInsertionFailures(),
201 this->getFitPlaneVector()
205 createAndInsertGrain(getParticleGrainGen().getGrain(it.next()));
210 template <
typename TGrainGen,
typename TGrainCol,
template <
typename TTGrainGen>
class TRndPackWrap>
213 generateCubicPackingGrains();
214 generateRandomFillGrains();
Definition: GrainCollection.h:71
GrainConstIterator getGrainIterator() const
Definition: GrainRandomBoxPacker.hpp:107
GrainId getNextGrainId() const
Definition: GrainRandomBoxPacker.hpp:153
GrainCollection::GrainPoolPtr GrainPoolPtr
Definition: GrainRandomBoxPacker.h:41
void generateCubicPackingGrains()
Definition: GrainRandomBoxPacker.hpp:182
void generateRandomFillGrains()
Definition: GrainRandomBoxPacker.hpp:195
Inherited::ParticleConstIterator ParticleConstIterator
Definition: Grain.h:35
Inherited::Particle Particle
Definition: GrainRandomBoxPacker.h:48
GrainCollection::Grain Grain
Definition: GrainRandomBoxPacker.h:38
Inherited::ParticleGenerator ParticleGrainGen
Definition: GrainRandomBoxPacker.h:46
int getNumGrains() const
Definition: GrainRandomBoxPacker.hpp:114
3D bounding box
Definition: BoundingBox.h:28
Definition: CheckPointable.cpp:17
TmplRndBoxPackerWrap< TmplParticleGrainGen >::RandomBoxPackerBase Inherited
Definition: GrainRandomBoxPacker.h:44
TmplGrainCollection GrainCollection
Definition: GrainRandomBoxPacker.h:34
Inherited::PlaneVector PlaneVector
Definition: GrainRandomBoxPacker.h:54
Grain & constructGrain()
Definition: GrainRandomBoxPacker.hpp:160
void setParticleGrainGen(ParticleGrainGen &particleGrainGen)
Definition: GrainRandomBoxPacker.hpp:135
ParticleGrainGen & getParticleGrainGen()
Definition: GrainRandomBoxPacker.hpp:121
Grain::Id GrainId
Definition: GrainRandomBoxPacker.h:39
Inherited::StuffedParticleIterator StuffedParticleIterator
Definition: GrainRandomBoxPacker.h:55
const GrainCollection & getGrainCollection() const
Definition: GrainRandomBoxPacker.hpp:86
Inherited::ParticleGeneratorPtr ParticleGrainGenPtr
Definition: GrainRandomBoxPacker.h:47
std::vector< bool > BoolVector
Definition: BlockGenerator.h:28
Definition: GrainCollection.h:51
virtual void generate()
Definition: GrainRandomBoxPacker.hpp:211
Inherited::ParticlePoolPtr ParticlePoolPtr
Definition: GrainRandomBoxPacker.h:53
GrainRandomBoxPacker(ParticleGrainGenPtr particleGrainGenPtr, ParticlePoolPtr particlePoolPtr, NTablePtr nTablePtr, const BoundingBox &bBox, const BoolVector &periodicDimensions, double tolerance, double cubicPackRadius, int maxInsertionFailures)
Definition: GrainRandomBoxPacker.hpp:55
bool hasNext() const
Definition: GridIterator.h:207
Inherited::NTablePtr NTablePtr
Definition: GrainRandomBoxPacker.h:50
Grain & createAndInsertGrain(const Grain &grain)
Definition: GrainRandomBoxPacker.hpp:167
Vec3 next()
Definition: GridIterator.h:255
BoundingBox getBBox(const std::string &arg)
Definition: Main.cpp:24
virtual ~GrainRandomBoxPacker()
Definition: GrainRandomBoxPacker.hpp:80
Definition: GridIterator.h:29