14 #include "Foundation/Rng.h"
20 template <
typename TmplParticle>
21 ConstRadiusGen<TmplParticle>::ConstRadiusGen(
double radius)
26 template <
typename TmplParticle>
32 template <
typename TmplParticle>
35 return this->getParticleRadius();
38 template <
typename TmplParticle>
41 return this->getParticleRadius();
44 template <
typename TmplParticle>
45 typename ConstRadiusGen<TmplParticle>::Particle
48 return Particle(posn, getParticleRadius());
51 template <
typename TmplParticle>
52 typename ConstRadiusGen<TmplParticle>::Particle
55 const double &maxRadius
58 return getParticle(posn);
61 template <
typename TmplParticle>
63 const double &fitRadius
66 return (fitRadius == getParticleRadius());
71 template <
typename TmplParticle>
76 : m_minFitRadius(minFitRadius),
77 m_maxFitRadius(maxFitRadius)
81 template <
typename TmplParticle>
82 RangeRadiusGen<TmplParticle>::~RangeRadiusGen()
86 template <
typename TmplParticle>
89 return m_minFitRadius;
92 template <
typename TmplParticle>
95 return m_maxFitRadius;
98 template <
typename TmplParticle>
100 const double &fitRadius
105 (fitRadius >= this->getMinFitRadius())
107 (fitRadius <= this->getMaxFitRadius())
113 template <
typename TmplParticle>
117 ) : Inherited(minFitRadius, maxFitRadius)
121 template <
typename TmplParticle>
125 this->getMinFitRadius()
127 (this->getMaxFitRadius()-this->getMinFitRadius())
129 rng::s_zeroOneUniform();
132 template <
typename TmplParticle>
133 typename RndRadiusGen<TmplParticle>::Particle
136 return Particle(posn, getRandomRadius());
139 template <
typename TmplParticle>
140 typename RndRadiusGen<TmplParticle>::Particle
141 RndRadiusGen<TmplParticle>::getParticle(
143 double suggestedRadius
146 return getParticle(posn);
151 template <
typename TmplGrain>
152 GrainRndRadiusGen<TmplGrain>::GrainRndRadiusGen(
153 double minGrainRadius,
154 double maxGrainRadius
155 ) : Inherited(minGrainRadius, maxGrainRadius)
159 template <
typename TmplGrain>
160 GrainRndRadiusGen<TmplGrain>::~GrainRndRadiusGen()
164 template <
typename TmplGrain>
165 const double &GrainRndRadiusGen<TmplGrain>::getMinGrainRadius()
const
167 return this->getMinFitRadius();
170 template <
typename TmplGrain>
171 const double &GrainRndRadiusGen<TmplGrain>::getMaxGrainRadius()
const
173 return this->getMaxFitRadius();
180 template <
typename TmplGrain>
181 SingleParticleGrainGen<TmplGrain>::SingleParticleGrainGen(
182 double minGrainRadius,
183 double maxGrainRadius
184 ) : Inherited(minGrainRadius, maxGrainRadius)
188 template <
typename TmplGrain>
189 const double &SingleParticleGrainGen<TmplGrain>::getMinParticleRadius()
const
191 return this->getMinGrainRadius();
194 template <
typename TmplGrain>
195 const double &SingleParticleGrainGen<TmplGrain>::getMaxParticleRadius()
const
197 return this->getMaxGrainRadius();
200 template <
typename TmplGrain>
201 typename SingleParticleGrainGen<TmplGrain>::Grain
202 SingleParticleGrainGen<TmplGrain>::getGrain(
const Particle &p)