Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkArray2D.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkArray2D.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/12/15 14:13:19 $ 00007 Version: $Revision: 1.7 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 #ifndef __itkArray2D_h 00018 #define __itkArray2D_h 00019 00020 #include "itkMacro.h" 00021 #include "vnl/vnl_matrix.h" 00022 00023 namespace itk 00024 { 00025 00026 00043 template <typename TValueType > 00044 class Array2D : public vnl_matrix< TValueType > 00045 { 00046 public: 00047 00049 typedef TValueType ValueType; 00050 typedef Array2D Self; 00051 typedef vnl_matrix<TValueType> VnlMatrixType; 00052 00053 public: 00054 00055 Array2D(); 00056 Array2D(unsigned int rows,unsigned int cols); 00057 Array2D( const Self & array ); 00058 Array2D( const VnlMatrixType & matrix ); 00059 00060 const Self & operator=( const Self & array ); 00061 const Self & operator=( const VnlMatrixType & matrix ); 00062 00063 void Fill (TValueType const& v) { fill(v); } 00064 00066 void SetSize(unsigned int m, unsigned int n); 00067 00070 ~Array2D() {}; 00071 00072 }; 00073 00074 00075 00076 template <typename TValueType > 00077 std::ostream & operator<<(std::ostream &os, const Array2D<TValueType> &arr) 00078 { 00079 const unsigned int numberOfColumns = arr.cols(); 00080 const unsigned int numberOfRows = arr.rows(); 00081 const signed int lastColumn = (signed int) numberOfColumns - 1; 00082 00083 for (unsigned int r=0; r < numberOfRows; ++r) 00084 { 00085 os << "["; 00086 for ( signed int c=0; c < lastColumn; ++c) 00087 { 00088 os << arr(r,c) << ", "; 00089 } 00090 if (numberOfColumns >= 1) 00091 { 00092 os << arr(r,lastColumn); 00093 } 00094 os << "]" << std::endl; 00095 } 00096 00097 return os; 00098 } 00099 00100 } // namespace itk 00101 00102 00103 #ifndef ITK_MANUAL_INSTANTIATION 00104 #include "itkArray2D.txx" 00105 #endif 00106 00107 00108 #endif

Generated at Sun Apr 1 02:24:17 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000