Code_TYMPAN  4.4.0
Industrial site acoustic simulation
UniformCircularSampler.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012-2024> <EDF-DTG> <FRANCE>
3  * This file is part of Code_TYMPAN (R).
4  * Code_TYMPAN (R) is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * Code_TYMPAN (R) is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  * You should have received a copy of the GNU General Public License along
13  * with Code_TYMPAN (R). If not, see <https://www.gnu.org/licenses/>.
14  */
15 
16 #include "Sampler.h"
17 
18 #ifndef __UNIFORM_CIRCULAR_SAMPLER__
19  #define __UNIFORM_CIRCULAR_SAMPLER__
20 
26 {
27 public:
28  UniformCircularSampler(unsigned int nbRays = 1, const vec3& normal = vec3{0., 0., 1.});
29 
31 
33 
34  Sampler* Clone() override;
35 
36  void init() override;
37 
38  vec3 getSample() override;
39 
40  bool isAcceptableSample(vec3 v) override;
41 
42 protected:
44  unsigned int _i;
46 };
47 
48 #endif // __UNIFORM_CIRCULAR_SAMPLER__
Sampler class and its sub-classes describe ray generators used in AcousticRayTracer....
Definition: Sampler.h:30
Sampler providing directions uniformly distributed on a circle. This circle is in the plane defined b...
UniformCircularSampler(unsigned int nbRays=1, const vec3 &normal=vec3{0., 0., 1.})
void init() override
Initialize the sample.
vec3 getSample() override
Return the sample.
Sampler * Clone() override
Clone a sample.
bool isAcceptableSample(vec3 v) override
Return true for an acceptable sample.
float decimal
Definition: mathlib.h:45
base_vec3< decimal > vec3
Definition: mathlib.h:387