biota.h

Ir para a documentação deste ficheiro.
00001 
00005 #ifndef _BIOTA__H_
00006 #define _BIOTA__H_
00007 
00008 #include <stdio.h>
00009 #include <QDomNode>
00010 
00011 #include "definicoes.h"
00012 #include "vetor.h"
00013 
00014 /******************************************************************************/
00015 
00020 struct GenesSegmento
00021 {
00022     float arco;
00023     int comprimento;
00024     int massa;
00025     float angulo;
00026     unsigned int cor[3];
00027     float fa, fb;
00028 };
00029 
00030 /******************************************************************************/
00031 
00036 struct GenesBiota
00037 {
00038     struct GenesSegmento *segmentos;
00039     unsigned int cor_cabeca[3];
00040     int massa_cabeca;
00041     int limiar_reproducao;
00042     float distribuicao_energia;
00043     float angulo_reproducao;
00044     float angulo_colisao;
00045 };
00046 
00047 /******************************************************************************/
00048 
00053 struct EstadoBiota
00054 {
00055     float *posicaoSegmentos;
00056     Vetor<float> posicao;
00057     Vetor<float> velocidade;
00058     float velocidade_angular;
00059     float angulo;
00060     float energia;
00061     unsigned int idade;
00062     unsigned int geracao;
00063     unsigned int filhos;
00064 };
00065 
00066 /******************************************************************************/
00067 
00072 class Biota
00073 {
00074 
00075 public:
00076     unsigned int lineage;
00077 
00079     struct GenesBiota genes;
00080 
00082     struct EstadoBiota estado;
00083 
00084     unsigned int numero_segmentos;
00085 
00087     void *mundo;
00088 
00089 //public:
00090 
00091     /* Construtores */
00092     Biota();
00093     Biota(void*);
00094     Biota(const Biota&);
00095     Biota(void*, Vetor<float>, FILE*);
00096 
00097     /* Metodos */
00098     enum ResultadoAtualizacao atualizar(void*);
00099     void mutacao();
00100     bool selecionar(Vetor<float>);
00101     void salvar(FILE*, bool saveState=false, int ident=0);
00102     void abrir(FILE*);
00103     void abrir(QDomNode xmlNode);
00104     void posicionar(Vetor<float>);
00105     void acelerar(Vetor<float>);
00106     void destroy();
00107     void refletir();
00108 
00109     /* Amigos */
00110     friend class Mundo;
00111 };
00112 
00113 /******************************************************************************/
00114 
00115 #endif /* #ifndef _BIOTA__H_ */

Gerado em Mon May 4 14:52:59 2009 para Simvida por  doxygen 1.5.8