Salome HOME
copy tag mergefrom_BR_V0_1_CC_Salome_04oct07
[modules/yacs.git] / src / engine / Plugin / aleas.hxx
1 // --- C++ ---
2 // --- coding: latin_1 ---
3 //
4 //    File
5 //      creation : 2007-02-21.09.46.36
6 //      revision : $Id$
7 //
8 //    Copyright © 2007 Commissariat à l'Energie Atomique
9 //      par Gilles ARNAUD (DM2S/SFME/LETR)
10 //        C.E. Saclay; Bat 454; 91191 GIF/YVETTE CEDEX; France
11 //        Tel: 01 69 08 38 86; Fax : 33 1 69 08 85 68 
12 //        Gilles.Arnaud@cea.fr
13 // 
14 //    Object
15 //      différent tirage aleatoire
16 // 
17 //___________________________________________________________________
18
19 #ifndef __ALEAS__
20 #define __ALEAS__
21
22 #include <vector>
23
24
25 class Aleatoire {
26     private :
27     protected :
28         long size;
29     public :
30         Aleatoire(long);
31         virtual std::vector<double> *gen(void);
32         virtual void fill(std::vector<double> &);
33         virtual double tire(void) = 0;
34 };
35
36 class Cube : public Aleatoire {
37     public :
38         Cube(long s) : Aleatoire(s) {};
39         virtual double tire(void);
40 };
41
42 class Normale : public Aleatoire {
43     public :
44         Normale(long s) : Aleatoire(s) {};
45         virtual double tire(void);
46 };
47
48 class NormalePositif : public Aleatoire {
49     public :
50         NormalePositif(long s) : Aleatoire(s) {};
51         virtual double tire(void);
52 };
53
54 class Sphere : public Normale {
55     public:
56         Sphere(long s) : Normale(s) {};
57         virtual void fill(std::vector<double> &);
58 };
59
60 class SpherePositif : public Sphere {
61     public:
62         SpherePositif(long s) : Sphere(s) {};
63         virtual void fill(std::vector<double> &);
64 };
65
66 #endif