00001
00006 #ifndef GENETIK_GP_ST_GENE
00007 #define GENETIK_GP_ST_GENE
00008
00009
00010 #include <vector>
00011 #include <list>
00012 using namespace std;
00013
00014 #include "../Gene.h"
00015
00016
00017
00018 namespace genetiK
00019 {
00020 namespace gp
00021 {
00022 namespace st
00023 {
00024
00025 typedef unsigned char GeneType;
00026
00033 class Gene : public gp::Gene
00034 {
00035 private:
00036 GeneType type;
00037 GeneType* argumentType;
00038
00039 public:
00047 Gene(GeneType type,unsigned char arity,...);
00050 virtual ~Gene();
00051
00057 GeneType getType() const{ return type; }
00058
00065 GeneType getArgumentType(unsigned char i) const{ return argumentType[i]; }
00071 virtual list<Gene*> extractListByType(GeneType geneType);
00072
00073 };
00074
00075 }
00076 }
00077 }
00078
00079 #endif