00001 #ifndef vnl_fortran_copy_h_ 00002 #define vnl_fortran_copy_h_ 00003 // This is vxl/vnl/vnl_fortran_copy.h 00004 00005 //: \file 00006 // \brief Convert row-stored matrix to column-stored 00007 // \author Andrew W. Fitzgibbon, Oxford RRG, 29 Aug 96 00008 // convert C format (row-stored) matrix to fortran format (column-stored) matrix. 00009 // 00010 00011 // Modifications: 00012 // LSB (Manchester) 23/3/01 Tidied documentation 00013 // 00014 //----------------------------------------------------------------------------- 00015 00016 #include <vnl/vnl_matrix.h> 00017 //: Convert row-stored matrix to column-stored 00018 // convert C format (row-stored) matrix to fortran format (column-stored) matrix. 00019 template <class T> 00020 class vnl_fortran_copy { 00021 public: 00022 // Constructors/Destructors-------------------------------------------------- 00023 00024 vnl_fortran_copy(vnl_matrix<T> const & M); 00025 00026 ~vnl_fortran_copy(); 00027 00028 // Operations---------------------------------------------------------------- 00029 operator T*() { return data; } 00030 00031 protected: 00032 // Data Members-------------------------------------------------------------- 00033 int sz; 00034 T *data; 00035 00036 private: 00037 // Helpers------------------------------------------------------------------- 00038 }; 00039 00040 #endif // vnl_fortran_copy_h_