00001 #if defined (_MSC_VER) && (_MSC_VER >= 1000)
00002 #pragma once
00003 #endif
00004 #ifndef _INC_DEFORMATION
00005 #define _INC_DEFORMATION
00006
00007 #include "stdafx.h"
00008 #include <vnl/vnl_matrix.h>
00009 #include <vnl/vnl_vector.h>
00010 #include <vnl/vnl_vector_fixed.h>
00011 #include <vnl/vnl_matrix_fixed.h>
00012 #include "itkSmartPointer.h"
00013 #include "itkLightObject.h"
00014 #include <itkObjectFactory.h>
00015
00016 namespace mial
00017 {
00018
00019
00021
00030 template <class DataType, int nDims,class MType = vnl_matrix<DataType>, class VType = vnl_vector<DataType> >
00031 class Deformation:public itk::LightObject
00032 {
00033 public:
00034
00035 typedef Deformation Self;
00036 typedef itk::SmartPointer<Self> Pointer;
00037 typedef itk::SmartPointer<const Self> ConstPointer;
00038
00039
00040 public:
00042 typedef MType MatrixType;
00043
00045 typedef VType VectorType;
00046
00047
00049
00052 struct DefArgSet
00053 {
00054
00055 };
00057 struct Error
00058 {
00059 std::string name;
00060 std::string msg;
00061 };
00062
00064
00067 struct deformationIn:public itk::LightObject{
00068
00069 typedef deformationIn Self;
00070 typedef itk::SmartPointer<Self> Pointer;
00071 typedef itk::SmartPointer<const Self> ConstPointer;
00072
00073
00074 itkNewMacro(Self);
00075
00076 protected:
00077 deformationIn(){};
00078
00079 };
00080
00081 private:
00082
00083 int status;
00084
00085 protected:
00086
00088 std::string name;
00089 public:
00090
00092
00097 virtual bool run(deformationIn * i,DefArgSet* org, std::stringstream *s = NULL) =0;
00098
00100 virtual int getStatus();
00101
00103 virtual std::string getName();
00104
00105 protected:
00106 Deformation(){};
00107
00108 };
00109 }
00110 #include "Deformation.cxx"
00111 #endif