BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
genes.h
Go to the documentation of this file.
1 // ----------------------------------------------------
2 // $Maintainer: Marcel Schumann $
3 // $Authors: Jan Fuhrmann, Marcel Schumann $
4 // ----------------------------------------------------
5 
6 #ifndef BALL_DOCKING_GENETICDOCK_GENES_H
7 #define BALL_DOCKING_GENETICDOCK_GENES_H
8 
9 #include <vector>
10 #include <BALL/MATHS/quaternion.h>
11 
12 namespace BALL
13 {
14  class RandomNumberGenerator;
15 
19  {
20  public:
21 
24  virtual ~GenericGene(){};
25 
28  virtual GenericGene* mate(GenericGene* gg) = 0;
29 
32  virtual void mutate() = 0;
33 
36  virtual GenericGene* clone() = 0;
37 
40  virtual void randomize() = 0;
41 
44  static void initializeRNG();
45 
46  protected:
47 
51 
52  };
53 
57  {
58  public:
59 
62  DoubleGene();
63 
66  virtual ~DoubleGene();
67 
70  DoubleGene(Size i);
71 
74  virtual GenericGene* mate(GenericGene* gg);
75 
78  virtual void mutate();
79 
82  std::vector<double> getValues();
83 
86  void setValue(std::vector<double> v);
87 
90  virtual GenericGene* clone();
91 
94  void randomize();
95 
96  private:
97 
100  std::vector<double> values_;
101  };
102 
103 
107  {
108  public:
109 
112  QuaternionGene();
113 
116  virtual ~QuaternionGene();
117 
120  virtual GenericGene* mate(GenericGene* gg);
121 
124  virtual void mutate();
125 
128  Quaternion getValue();
129 
132  virtual GenericGene* clone();
133 
136  void randomize();
137 
138  private:
139 
142  Quaternion quat_;
143 
144  };
145 
146 
147 }
148 
149 #endif /* BALL_DOCKING_GENETICDOCK_GENES_H */
virtual ~GenericGene()
Definition: genes.h:24
static RandomNumberGenerator rng_
Definition: genes.h:50
#define BALL_EXPORT
Definition: COMMON/global.h:50