#ifndef __BasicDefOrg_DefOrgViewerAdapter_h #define __BasicDefOrg_DefOrgViewerAdapter_h #include "itkImageFileReader.h" #include "itkImageFileWriter.h" #include "itkMeanImageFilter.h" #include "itkBinaryThresholdImageFilter.h" #include "itkCovariantVector.h" #include #include "itkOrganism.h" #include "Phys_Euler.h" #include "Ctrl_ScheduleDriven.h" #include "Beh_TranslateAll.h" #include "Def_Translation.h" #include "Sense_Gradient.h" #include "Geom_MeshSpatialObject.h" #include "Phys_LevelSet.h" #include "DefOrgViewerAdapterBaseTemplated.h" #include #include #define N_DIMS 3 typedef unsigned char PixelType; typedef float DataType; class BasicDefOrg_DefOrgViewerAdapter:public DefOrgViewerAdapterBaseTemplated{ public: // typedefs for the defOrg: typedef Geom_MeshSpatialObject< DataType, N_DIMS > GeometricType; typedef itk::CovariantVector< DataType, N_DIMS > GradientPixelType; typedef itk::Image< GradientPixelType, N_DIMS > GradientImageType; typedef Phys_LevelSet< DataType, ImageType, N_DIMS > LevelSetPhysicsType; typedef Phys_Euler< DataType, GradientImageType, N_DIMS > EulerPhysicsType; typedef Sense_Gradient< DataType, ImageType, GradientImageType, N_DIMS > GradientSensorType; typedef Ctrl_ScheduleDriven CognitiveType; typedef Beh_TranslateAll Beh_TranslateAllType; typedef Def_Translation Def_TranslateAllType; typedef itk::ItkOrganism < ImageType, ImageType, GradientImageType, DataType, N_DIMS > OrganismType; typedef itk::DefaultDynamicMeshTraits< DataType, N_DIMS, N_DIMS > MeshTrait; typedef itk::Mesh< DataType, N_DIMS, MeshTrait > MeshType; typedef MeshType::Pointer MeshTypePointer; BasicDefOrg_DefOrgViewerAdapter(); virtual void SetupOrganism(); virtual void UpdateOrganism(); virtual void PopulateVtkImage(); virtual void PopulateVtkUnstructuredGrid(vtkUnstructuredGrid* vtkGrid /*in/out*/); virtual void PopulateItkScene(); virtual int MaxNumberOfOutputItkSpatialObjects(); virtual int MaxNumberOfOutputImages(); private: OrganismType::Pointer testOrg; LevelSetPhysicsType levelSetPhysLayer; EulerPhysicsType* eulerPhysLayerPointer; GradientSensorType::sensorIn sensorInput; GradientSensorType gradientSensor; GeometricType* geomLayerPointer; CognitiveType* cognitiveLayerPointer; Beh_TranslateAllType* beh1; Def_TranslateAllType* def1; }; #endif