00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __freConvertValueSet_txx
00021 #define __freConvertValueSet_txx
00022
00023 #include "freConvertValueSet.h"
00024
00025 namespace FREE
00026 {
00027
00028 template <typename TFixedArray>
00029 XMLValueSet
00030 ConvertValueSet::
00031 FromITKArray(const TFixedArray& rArray)
00032 {
00033 XMLValueSet rSet;
00034 FromArrayStruct<TFixedArray>(rArray,rSet,rArray.Size());
00035
00036 return rSet;
00037 };
00038
00039 template <typename TFixedArray>
00040 void
00041 ConvertValueSet::
00042 FromITKArray(const TFixedArray& rArray, XMLValueSet& rSet)
00043 {
00044 FromArrayStruct<TFixedArray>(rArray,rSet,rArray.Size());
00045 };
00046
00047 template <typename TIndex>
00048 XMLValueSet
00049 ConvertValueSet::
00050 FromITKIndex(const TIndex& rIndex)
00051 {
00052 XMLValueSet rSet;
00053 FromArrayStruct<TIndex>(rIndex,rSet,TIndex::GetIndexDimension());
00054
00055 return rSet;
00056 };
00057
00058 template <typename TIndex>
00059 void
00060 ConvertValueSet::
00061 FromITKIndex(const TIndex& rIndex, XMLValueSet& rSet)
00062 {
00063 FromArrayStruct<TIndex>(rIndex,rSet,TIndex::GetIndexDimension());
00064 };
00065
00066 template <typename TSize>
00067 XMLValueSet
00068 ConvertValueSet::
00069 FromITKSize(const TSize& rSize)
00070 {
00071 XMLValueSet rSet;
00072 FromArrayStruct<TSize>(rSize,rSet,TSize::GetSizeDimension());
00073
00074 return rSet;
00075 };
00076
00077 template <typename TSize>
00078 void
00079 ConvertValueSet::
00080 FromITKSize(const TSize& rSize, XMLValueSet& rSet)
00081 {
00082 FromArrayStruct<TSize>(rSize,rSet,TSize::GetSizeDimension());
00083 };
00084
00085 template <typename TFixedArray>
00086 TFixedArray
00087 ConvertValueSet::
00088 ToITKArray(const XMLValueSet& rSet)
00089 {
00090 TFixedArray newArray;
00091
00092 unsigned iActSize = newArray.Size();
00093 if (iActSize>rSet.Size()) iActSize = rSet.Size();
00094
00095 for (unsigned int iDim=0; iDim<iActSize; iDim++)
00096 {
00097 double dValue;
00098 rSet.GetValue(dValue,iDim);
00099 newArray.SetElement(iDim,static_cast<TFixedArray::ValueType>(dValue));
00100 };
00101 return newArray;
00102 }
00103
00104 template <typename TIndex>
00105 TIndex
00106 ConvertValueSet::
00107 ToITKIndex(const XMLValueSet& rSet)
00108 {
00109 TIndex newIndex;
00110
00111 unsigned iActSize = TSize::GetIndexDimension();
00112 if (iActSize>rSet.Size()) iActSize = rSet.Size();
00113
00114 for (unsigned int iDim=0; iDim<iActSize; iDim++)
00115 {
00116 double dValue;
00117 rSet.GetValue(dValue,iDim);
00118 newIndex.SetElement(iDim,static_cast<TIndex::IndexValueType>(dValue));
00119 };
00120 return newIndex;
00121 }
00122
00123 template <typename TSize>
00124 TSize
00125 ConvertValueSet::
00126 ToITKSize(const XMLValueSet& rSet)
00127 {
00128 TSize newSize;
00129
00130 unsigned iActSize = TSize::GetSizeDimension();
00131 if (iActSize>rSet.Size()) iActSize = rSet.Size();
00132
00133 for (unsigned int iDim=0; iDim<iActSize; iDim++)
00134 {
00135 double dValue;
00136 rSet.GetValue(dValue,iDim);
00137 newSize.SetElement(iDim,static_cast<TSize::SizeValueType>(dValue));
00138 };
00139 return newSize;
00140 }
00141
00142 template <typename TArray>
00143 void
00144 ConvertValueSet::
00145 FromArrayStruct(const TArray& rArray, XMLValueSet& rSet, const unsigned int& iSize)
00146 {
00147 rSet.Resize(iSize);
00148
00149 for (unsigned int iDim=0; iDim<iSize; iDim++)
00150 {
00151 rSet.SetValue(rArray.GetElement(iDim),iDim);
00152 };
00153 };
00154
00155 }
00156
00157 #endif