00001 #if defined (_MSC_VER) && (_MSC_VER >= 1000) 00002 #pragma once 00003 #endif 00004 #ifndef _CTRL_VESSELCRAWLER_ 00005 #define _CTRL_VESSELCRAWLER_ 00006 00007 #include "ControlCenter.h" 00008 #include "Beh_Growing.h" 00009 #include "Geom_VesselCrawler.h" 00010 00011 00012 namespace mial 00013 { 00015 00021 template<class Type, int nDims,class CrawlerPhysType> class Ctrl_VesselCrawler 00022 : public ControlCenter<Type,nDims> 00023 { 00024 public: 00025 virtual bool decideNextBehavior(); 00026 bool terminate(); 00027 bool bifurcation(); 00028 virtual bool setAllPhysics(Physics<Type,nDims> *p){ 00029 growing.setPhysLayer(p); 00030 ControlCenter::setAllPhysics(p); 00031 return false; 00032 }; 00033 virtual bool setGeom(Geom_VesselCrawler<Type,nDims> *g){ 00034 geomLayer = g; 00035 return false; 00036 }; 00037 00038 private: 00039 //The geometric layer to be used for built in behaviors requiring it 00040 Geom_VesselCrawler<Type,nDims> *geomLayer; 00041 00042 //The behaviors 00043 typedef Beh_Growing<Type,CrawlerPhysType> Beh_GrowingType; 00044 Beh_GrowingType growing; 00045 }; 00046 }//end mial 00047 #include "Ctrl_VesselCrawler.cxx" 00048 #endif