00001 #ifndef Ctrl_VesselCrawler_txx
00002 #define Ctrl_VesselCrawler_txx
00003 #include "Ctrl_VesselCrawler.h"
00004 namespace mial{
00005
00006
00007
00008
00009
00010
00011 template<class Type,int nDims,class CrawlerPhysType>
00012 bool Ctrl_VesselCrawler<Type,nDims, CrawlerPhysType>::decideNextBehavior()
00013 {
00014
00015 if( behaviorToRun == NULL || (behaviorToRun!=NULL && behaviorToRun->isFinished()) )
00016 {
00017 if(!terminate())
00018 {
00019 if(bifurcation())
00020 {
00021
00022 behaviorToRun = findBehavior("Beh_Spawning");
00023 return true;
00024 }
00025 else
00026 {
00027
00028
00029
00030 behaviorToRun = &growing;
00031 Beh_GrowingType::behaviorIn * input = new Beh_GrowingType::behaviorIn;
00032
00033
00034
00035 input->newAxis.fill(5);
00036
00037 input->locXYZ.fill(5);
00038 input->radius =5;
00039 input->growDistance = 3;
00040 input->vesselGeom = geomLayer;
00041
00042 behaviorToRunStruct = input;
00043
00044
00045 return true;
00046 }
00047 }
00048 else
00049 return false;
00050 }
00051 else
00052 return true;
00053 }
00054 template<class Type,int nDims,class CrawlerPhysType>
00055 bool Ctrl_VesselCrawler<Type,nDims, CrawlerPhysType>::terminate()
00056 {
00057 return false;
00058 }
00059 template<class Type,int nDims,class CrawlerPhysType>
00060 bool Ctrl_VesselCrawler<Type,nDims, CrawlerPhysType>::bifurcation()
00061 {
00062 return false;
00063 }
00064 }
00065 #endif