BALL
1.5.0
include
BALL
DOCKING
GENETICDOCK
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 <
BALL/MATHS/quaternion.h
>
10
11
#include <vector>
12
#include <random>
13
14
namespace
BALL
15
{
18
class
BALL_EXPORT
BALL_DEPRECATED
GenericGene
19
{
20
public
:
21
24
GenericGene
();
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
:
47
double
randomGeneValue();
48
int
randomGenePosition(
int
from,
int
to);
49
50
private
:
51
std::mt19937 rng_;
52
std::uniform_real_distribution<double> dist_;
53
};
54
57
class
BALL_EXPORT
BALL_DEPRECATED
DoubleGene
:
public
GenericGene
58
{
59
public
:
60
63
DoubleGene
();
64
67
virtual
~
DoubleGene
();
68
71
DoubleGene
(
Size
i);
72
75
virtual
GenericGene
*mate(
GenericGene
* gg);
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
107
class
BALL_EXPORT
BALL_DEPRECATED
QuaternionGene
:
public
GenericGene
108
{
109
public
:
110
113
QuaternionGene
();
114
117
virtual
~
QuaternionGene
();
118
121
virtual
GenericGene
*mate(
GenericGene
*gg);
122
125
virtual
void
mutate();
126
129
Quaternion
getValue();
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 */
BALL::TQuaternion< float >
BALL::GenericGene
Definition:
genes.h:18
BALL::QuaternionGene
Definition:
genes.h:107
BALL::GenericGene::~GenericGene
virtual ~GenericGene()
Definition:
genes.h:28
BALL_EXPORT
#define BALL_EXPORT
Definition:
COMMON/global.h:50
BALL
Definition:
constants.h:12
quaternion.h
BALL_DEPRECATED
#define BALL_DEPRECATED
Definition:
COMMON/global.h:64
BALL::DoubleGene
Definition:
genes.h:57
BALL_SIZE_TYPE
Generated by
1.8.13