C:/cmcintos/defOrgs/source/organism/Organism.h

00001 #if defined (_MSC_VER) && (_MSC_VER >= 1000)
00002 #pragma once
00003 #endif
00004 #ifndef _INC_ORGANISM
00005 #define _INC_ORGANISM
00006 
00007 #include "ControlCenter.h"
00008 
00009 #include "Physics.h"
00010 
00011 #include "Geometric.h"
00012 
00013 namespace mial
00014 {
00015 
00017 
00057 template<class DataType,int nDims>
00058 class Organism
00059 {
00060 protected:
00061         
00063         typename Physics<DataType,nDims>::Pointer physLayer;
00064 
00066         typename Geometric<DataType,nDims>::Pointer geomLayer;
00067         
00069         typename ControlCenter<DataType,nDims>::Pointer cgLayer;
00070 
00071         DataType runTime;
00072         
00073 public:
00074 
00076         typedef Geometric<DataType,nDims> GeometricType;
00077         
00078         //virtual void addNode(DataType* )=0;
00079 
00081 
00085         virtual bool addBehaviour( Behavior<DataType,nDims> * b,bool replacePhys=true ){if(b!=NULL){if(replacePhys){b->setPhysLayer(physLayer);}return cgLayer->addBehavior(b);}else{ return false;}};  // inline
00086 
00088 
00091         virtual bool addDeformation( Deformation<DataType,nDims> * d ){ return physLayer->addDeformation(d); }; // inline
00092 
00094 
00097         virtual  bool setCognitiveLayer( ControlCenter<DataType,nDims> *c ){ if(c!=NULL){cgLayer = c;return true;}else{return false;}};                 // inline
00098 
00099 
00101 
00104         virtual bool setPhysicsLayer( Physics<DataType,nDims> * p ){if(p!=NULL){physLayer = p; return true;}else{ return false;} };                                     // inline
00105 
00107 
00110         virtual bool setGeometricLayer( Geometric<DataType,nDims> * g ){if(g!=NULL){geomLayer = g; return true;}else{return false;} };                                  // inline
00111         
00112         //virtual  bool setDefaultBehaviour() =0;
00113 
00114         
00115         //virtual  bool setSchedule() =0;
00116 
00117         
00118         //virtual  bool postMessage() =0;
00119 
00120         
00121         //virtual  char* checkMessages() =0;
00122 
00124 
00127         virtual  int run() =0;
00128 
00129         virtual void setRunTime(DataType r){runTime = r;};
00130 
00131 private:
00132 
00133 };
00134 
00135 } // end namespace mial
00136 #include "Organism.cxx"
00137 #endif /* _INC_ORGANISM*/

Generated on Wed Jul 19 13:05:18 2006 for IDO by  doxygen 1.4.7