00001 #if defined (_MSC_VER) && (_MSC_VER >= 1000) 00002 #pragma once 00003 #endif 00004 #ifndef _INC_SPRINGMASSDEFORMATION 00005 #define _INC_SPRINGMASSDEFORMATION 00006 00007 #include "stdafx.h" 00008 #include "Deformation.h" 00009 namespace mial 00010 { 00012 00020 template <class DataType, int nDims,class MType = vnl_matrix<DataType>, class VType = vnl_vector<DataType> > 00021 class SpringMassDeformation: public Deformation<DataType,nDims,MType,VType> 00022 { 00023 00024 public: 00025 typedef MType MatrixType; 00026 typedef VType VectorType; 00028 struct DefArgSet: public Deformation<DataType,nDims,MType, VType >::DefArgSet 00029 { 00031 MatrixType * nodes; 00032 00034 MatrixType * nodesV; 00035 00037 MatrixType * nodesF; 00038 00040 MatrixType * nodesFDef; 00041 00043 VectorType * springsRest; 00044 00046 MatrixType * springsNodes; 00047 00049 VectorType * springLengths; 00050 }; 00051 00052 }; 00053 } // end namespace mial 00054 #include "SpringMassDeformation.cxx" 00055 #endif /* _INC_DEFORMATION*/