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();