C:/cmcintos/defOrgs/examples/vesselCrawler/source/DefOrgAdapter_VesselCrawler.h

00001 #ifndef __DefOrgAdapter_VesselCrawler_h
00002 #define __DefOrgAdapter_VesselCrawler_h
00003 
00004 #include "itkImageFileReader.h"
00005 #include "itkImageFileWriter.h"
00006 //#include "itkMeanImageFilter.h"
00007 //#include "itkBinaryThresholdImageFilter.h"
00008 //#include "itkCovariantVector.h"
00009 
00010 #include <iostream>
00011 #include "itkVesselCrawler.h"
00012 //#include "itkOrganism.h"
00013 //#include "Phys_Euler.h"
00014 //#include "Ctrl_ScheduleDriven.h"
00015 //#include "Beh_TranslateAll.h"
00016 //#include "Def_Translation.h"
00017 //#include "Sense_Gradient.h"
00018 //#include "Geom_MeshSpatialObject.h"
00019 //#include "Phys_LevelSet.h"
00020 
00021 #include "DefOrgViewerAdapterBaseTemplated.h"
00022 
00023 #include <vtksys/SystemTools.hxx>
00024 #include <vtksys/CommandLineArguments.hxx>
00025 
00026 namespace mial{
00027 #define N_DIMS 3
00028 typedef unsigned char                                                                   PixelType;
00029 typedef float                                                                                   DataType;
00030 
00032 
00038 class DefOrgAdapter_VesselCrawler:public DefOrgViewerAdapterBaseTemplated<PixelType,DataType>{
00039 public:
00040 
00041         //Overide base class to discount requirement of schedule/mesh
00042         virtual bool IsAllInputFilesSet(){
00043                 return vtksys::SystemTools::FileExists(m_ImageFileName.c_str());
00044         }
00045 
00046         // typedefs for the defOrg:
00047                 
00048         //typedef        Geom_MeshSpatialObject< DataType, N_DIMS >             GeometricType;
00049         typedef itk::CovariantVector< DataType, N_DIMS >                GradientPixelType;
00050         typedef itk::Image< GradientPixelType, N_DIMS >                 GradientImageType;
00051         /*typedef Phys_LevelSet< DataType, ImageType, N_DIMS >  LevelSetPhysicsType;
00052         typedef Phys_Euler< DataType, 
00053                 GradientImageType, N_DIMS >                                                     EulerPhysicsType;
00054         typedef Sense_Gradient< DataType, ImageType, 
00055                 GradientImageType, N_DIMS >                                                     GradientSensorType;
00056         typedef Ctrl_ScheduleDriven<DataType, N_DIMS>                   CognitiveType;
00057         typedef Beh_TranslateAll<DataType, N_DIMS>                              Beh_TranslateAllType;
00058         typedef Def_Translation<DataType, N_DIMS>                               Def_TranslateAllType;*/
00059 
00060         typedef itk::ItkVesselCrawler <ImageType, ImageType,GradientImageType, DataType>        VesselCrawlerType;
00061 
00062         /*typedef itk::DefaultDynamicMeshTraits<
00063                 DataType, N_DIMS, N_DIMS >                                                      MeshTrait;
00064         typedef  itk::Mesh< DataType, N_DIMS, MeshTrait >               MeshType;
00065         typedef  MeshType::Pointer                                                              MeshTypePointer;*/
00066 
00069         DefOrgAdapter_VesselCrawler();
00070 
00073         virtual void SetupOrganism();
00076         virtual void UpdateOrganism();
00078         virtual void PopulateVtkImage(); 
00081         virtual void PopulateVtkUnstructuredGrid(vtkUnstructuredGrid* vtkGrid /*in/out*/);
00083         virtual void PopulateItkScene();
00084 
00089         virtual void HandleUserMouseInteraction(vtkTransform* userTransformation);
00090 
00096         virtual int MaxNumberOfOutputItkSpatialObjects();
00102         virtual unsigned int MaxNumberOfOutputImages();
00103         
00104 private:
00105         VesselCrawlerType::Pointer              crawler;
00106         /*OrganismType::Pointer                 testOrg;
00107         LevelSetPhysicsType                             levelSetPhysLayer;
00108         EulerPhysicsType*                               eulerPhysLayerPointer;
00109         GradientSensorType::sensorIn    sensorInput;
00110         GradientSensorType                              gradientSensor;
00111         GeometricType*                                  geomLayerPointer;
00112         CognitiveType*                                  cognitiveLayerPointer;
00113         Beh_TranslateAllType*                   beh1;
00114         Def_TranslateAllType*                   def1;   */              
00115         int lock;
00116 
00117 };
00118 }
00119 
00120 #endif

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