BALL 1.5.0
Loading...
Searching...
No Matches
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
10
11#include <vector>
12#include <random>
13
14namespace BALL
15{
19 {
20 public:
21
25
28 virtual ~GenericGene(){};
29
32 virtual GenericGene* mate(GenericGene* gg) = 0;
33
36 virtual void mutate() = 0;
37
40 virtual GenericGene* clone() = 0;
41
44 virtual void randomize() = 0;
45
46 protected:
48 int randomGenePosition(int from, int to);
49
50 private:
51 std::mt19937 rng_;
52 std::uniform_real_distribution<double> dist_;
53 };
54
58 {
59 public:
60
64
67 virtual ~DoubleGene();
68
72
76
79 virtual void mutate();
80
83 std::vector<double> getValues();
84
87 void setValue(std::vector<double> v);
88
91 virtual GenericGene *clone();
92
95 void randomize();
96
97 private:
98
101 std::vector<double> values_;
102 };
103
104
108 {
109 public:
110
114
118
122
125 virtual void mutate();
126
130
133 virtual GenericGene *clone();
134
137 void randomize();
138
139 private:
140
143 Quaternion quat_;
144 };
145}
146
147#endif /* BALL_DOCKING_GENETICDOCK_GENES_H */
virtual void randomize()=0
virtual void mutate()=0
virtual GenericGene * clone()=0
int randomGenePosition(int from, int to)
virtual ~GenericGene()
Definition genes.h:28
virtual GenericGene * mate(GenericGene *gg)=0
double randomGeneValue()
virtual void mutate()
std::vector< double > getValues()
virtual ~DoubleGene()
virtual GenericGene * clone()
void setValue(std::vector< double > v)
virtual GenericGene * mate(GenericGene *gg)
virtual GenericGene * clone()
virtual void mutate()
virtual GenericGene * mate(GenericGene *gg)
Quaternion getValue()
virtual ~QuaternionGene()
#define BALL_DEPRECATED
#define BALL_EXPORT