00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkArray_h
00018 #define __itkArray_h
00019
00020 #include "itkMacro.h"
00021 #include "vnl/vnl_vector.h"
00022
00023 namespace itk
00024 {
00025
00026
00043 template <typename TValueType >
00044 class Array : public vnl_vector< TValueType >
00045 {
00046 public:
00047
00049 typedef TValueType ValueType;
00050
00051 public:
00052
00055 Array();
00056
00058 Array(unsigned int dimension);
00059
00061 void Fill (TValueType const& v) { fill(v); }
00062
00064 unsigned int Size (void ) const
00065 { return static_cast<unsigned int>( this->size() ); }
00066 unsigned int GetNumberOfElements(void) const
00067 { return static_cast<unsigned int>( this->size() ); }
00068
00071 ~Array() {};
00072
00073 };
00074
00075
00076
00077 template <typename TValueType >
00078 std::ostream & operator<<(std::ostream &os, const Array<TValueType> &arr)
00079 {
00080 const unsigned int length = arr.size();
00081 const signed int last = (unsigned int) length - 1;
00082
00083 os << "[";
00084 for (signed int i=0; i < last; ++i)
00085 {
00086 os << arr[i] << ", ";
00087 }
00088 if (length >= 1)
00089 {
00090 os << arr[last];
00091 }
00092 os << "]" << std::endl;
00093 return os;
00094 }
00095
00096 }
00097
00098
00099
00100 #ifndef ITK_MANUAL_INSTANTIATION
00101 #include "itkArray.txx"
00102 #endif
00103
00104
00105 #endif