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

00001 #if defined (_MSC_VER) && (_MSC_VER >= 1000)
00002 #pragma once
00003 #endif
00004 #ifndef _INC_Org_LevelSetSchedule
00005 #define _INC_Org_LevelSetSchedule
00006 
00007 #include "itkOrganism.h"
00008 
00009 #include "itkImageToImageFilter.h"
00010 #include "itkImage.h"
00011 #include "itkNumericTraits.h"
00012 
00013 #include "itkImageRegionIterator.h"
00014 
00015 //#include "itkImage.h"
00016 #include <iostream>
00017 #include "Phys_LevelSet.h"
00018 #include "Ctrl_ScheduleDriven.h"
00019 #include "Beh_TranslateAll.h"
00020 #include "Def_Translation.h"
00021 #include "Beh_UniformScale.h"
00022 #include "Def_UniformScale.h"
00023 #include "Sense_Gradient.h"
00024 #include "Geom_MeshSpatialObject.h"
00025 
00026 using namespace mial;
00027 namespace itk
00028 {
00029 
00031 
00043         template <class TInputImage, class TOutputImage,class TExternalForceImage, class DataType, int nDims>
00044         class ITK_EXPORT Org_LevelSetSchedule : public ItkOrganism<TInputImage,TOutputImage,TExternalForceImage,DataType,nDims>
00045         {
00046         public:
00048                 itkStaticConstMacro(InputImageDimension, unsigned int,TInputImage::ImageDimension);
00049 
00050                 itkStaticConstMacro(OutputImageDimension, unsigned int,TOutputImage::ImageDimension);
00051 
00052                 typedef Org_LevelSetSchedule Self;
00053                 typedef SmartPointer<Self> Pointer;
00054                 typedef SmartPointer<const Self>  ConstPointer;
00055                 itkNewMacro(Self);
00056 
00058                 itkTypeMacro(Org_LevelSetSchedule, ItkOrganism);
00059 
00060                 typedef Geom_MeshSpatialObject<DataType,3> GeometricType;
00061                 typedef Phys_LevelSet<DataType,TInputImage,3> PhysLayerType;
00062                 typedef Sense_Gradient<DataType,TInputImage,TExternalForceImage,3> gradientSensorType;
00063 
00065                 virtual bool setSchedule(std::string scheduleFileName){return cgL->setSchedule(scheduleFileName);};
00066 
00068                 virtual void setTopologyFromBinaryImage(typename GeometricType::BinaryImageType::Pointer img){geomLayer->generateTopologyFromBinaryImage(img);};
00069 
00071                 virtual bool setTopology(std::string fName){
00072                         return geomLayer->readTopologyFromFile(fName);};
00073                 virtual void setUp()
00074                 {
00075                         //itk::Image<typename TInputImage::TPixel,typename TInputImage::VImageDimension> tp = this->GetInput();
00076                         //const TInputImage* tp = this->GetInput();
00077                         physLayer->setInput(this->GetInput());
00078                 }
00079 
00080 
00081         protected:
00082                 typename Ctrl_ScheduleDriven<DataType, 3>::Pointer cgL;
00083                 typename GeometricType::Pointer geomLayer;
00084                 typename PhysLayerType::Pointer physLayer;
00085                 typename gradientSensorType::sensorIn::Pointer input;
00086                 typename gradientSensorType::Pointer gradientSensor;
00087 
00088                 Org_LevelSetSchedule();
00089                 virtual ~Org_LevelSetSchedule() {}
00090                 //      void PrintSelf(std::ostream& os, Indent indent) const;
00091 
00092         };
00093 }//end mial namespace
00094 #include "Org_LevelSetSchedule.cxx"
00095 #endif /* _INC_Org_LevelSetSchedule*/

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