16 #ifndef RANDOM_SPHERIC_SAMPLER
17 #define RANDOM_SPHERIC_SAMPLER
27 #include <boost/random/mersenne_twister.hpp>
28 #include <boost/random/uniform_real.hpp>
87 return static_cast<unsigned int>(
A Sampler class for random spherical sampling.
virtual vec3 getSample()
Return the sample.
virtual unsigned int computeDiffractionNbr(const decimal &thetaCalcul)
Return the number of rays to launch after a diffraction event.
RandomSphericSampler(const RandomSphericSampler &other)
RandomSphericSampler(const unsigned int &nbRays=0, const decimal &Theta=(decimal) M_PIDIV2, const decimal &Phi=(decimal) M_2PI)
Constructors.
static boost::mt19937 random_generator
virtual Sampler * Clone()
Clone a sample.
boost::uniform_real bounded_sampler
RandomSphericSampler(RandomSphericSampler *sampler)
virtual bool isAcceptableSample(vec3 v)
Return true for an acceptable sample.
virtual ~RandomSphericSampler()
Destructor.
Sampler class and its sub-classes describe ray generators used in AcousticRayTracer....
decimal _phi
Global equatorial angle.
decimal _theta
Global polar angle.
unsigned int _nb_rays
Number of rays to launch.
base_vec3< decimal > vec3