00001 # ifndef AXON_H
00002 # define AXON_H
00003
00004 # include <qglviewer.h>
00005
00006 using namespace qglviewer ;
00007
00008 class Neuron;
00009
00010 class Axon {
00011 private:
00012 Neuron *in, *out;
00013 double weight, lastWeight;
00014 int id;
00015 ManipulatedFrame * frame_ ;
00016
00017 public:
00018 Axon(int _id, Neuron *_in, Neuron *_out);
00019
00023 int getId();
00024 double getWeight(void);
00025 void setWeight( double weight ) ;
00026 Neuron* getNeuronIn();
00027 Neuron* getNeuronOut();
00028
00032 void draw(int selected, const bool names) ;
00033 void drawAxon( Vec from, Vec to, const bool names ) ;
00034
00038 void forwardPropagation();
00039 void gradientPropagation();
00040 void changeWeight(double convergenceCoeff);
00041
00045 float rad2deg( float rad ) ;
00046 float deg2rad( float deg ) ;
00047 } ;
00048
00049 # endif