00001 #if defined (_MSC_VER) && (_MSC_VER >= 1000) 00002 #pragma once 00003 #endif 00004 #ifndef _INC_SENSOR_422B62DD00AB_INCLUDED 00005 #define _INC_SENSOR_422B62DD00AB_INCLUDED 00006 00007 #include "itkSmartPointer.h" 00008 #include <itkLightObject.h> 00009 #include "itkObjectFactory.h" 00010 00011 namespace mial 00012 { 00014 00025 class Sensor:public itk::LightObject 00026 { 00027 public: 00028 //Smartpointers 00029 typedef Sensor Self; 00030 typedef itk::SmartPointer<Self> Pointer; 00031 typedef itk::SmartPointer<const Self> ConstPointer; 00032 //typedef itk::WeakPointer<const Self> ConstWeakPointer; 00033 //itkNewMacro(Self); 00034 00036 00039 struct sensorIn:public itk::LightObject{ 00040 //Define all common sensory outputs here 00041 typedef sensorIn Self; 00042 typedef itk::SmartPointer<Self> Pointer; 00043 itkNewMacro(Self); 00044 00045 sensorIn(const sensorIn &){}; 00046 00047 protected: 00048 sensorIn(){}; 00049 }; 00051 00054 struct sensorOut:public itk::LightObject{ 00055 //Define all common sensory outputs here 00056 typedef sensorOut Self; 00057 typedef itk::SmartPointer<Self> Pointer; 00058 typedef itk::SmartPointer<const Self> ConstPointer; 00059 //typedef itk::WeakPointer<const Self> ConstWeakPointer; 00060 itkNewMacro(Self); 00061 protected: 00062 sensorOut(){}; 00063 }; 00064 00066 virtual void run(sensorIn* const i) =0; 00067 00069 virtual sensorOut::Pointer getOutput(){ return sensorOutput;}; 00070 protected: 00071 sensorOut::Pointer sensorOutput; 00072 Sensor(){}; 00073 00074 }; 00075 } // end namespace mial 00076 #include "Sensor.cxx" 00077 #endif /* _INC_SENSOR_422B62DD00AB_INCLUDED */