C:/cmcintos/defOrgs/source/physical/abc/Deformation.h

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         //-status: 1: complete, 0: incomplete, -1 failed.
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                 //Smart pointers
00035                 typedef Deformation Self;
00036                 typedef itk::SmartPointer<Self>  Pointer;
00037                 typedef itk::SmartPointer<const Self>  ConstPointer;
00038                 //itkNewMacro(Self);
00039 
00040         public:
00042                 typedef MType MatrixType;
00043 
00045                 typedef VType VectorType;
00046 
00047 
00049 
00052         struct DefArgSet
00053                 {
00054                         // TODO:: fill in
00055                 };
00057                 struct Error
00058                 {
00059                         std::string name;
00060                         std::string msg;
00061                 };
00062 
00064 
00067                 struct deformationIn:public itk::LightObject{
00068             //Define all common deformation inputs here
00069                         typedef deformationIn Self;
00070                         typedef itk::SmartPointer<Self>  Pointer;
00071                         typedef itk::SmartPointer<const Self>  ConstPointer;
00072                         //typedef itk::WeakPointer<const Self>  ConstWeakPointer;
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 } // end namespace mial
00110 #include "Deformation.cxx"
00111 #endif /* _INC_DEFORMATION */

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