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