00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freESStrategicParameters.txx,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freESStrategicParameters_txx 00023 #define __freESStrategicParameters_txx 00024 00025 #include "freESStrategicParameters.h" 00026 00027 namespace FREE 00028 { 00029 namespace ES 00030 { 00031 00032 template <class TSPValueType> 00033 StrategicParameters<TSPValueType>:: 00034 StrategicParameters() 00035 { 00036 }; 00037 00038 template <class TSPValueType> 00039 typename StrategicParameters<TSPValueType>::ParameterIDsType 00040 StrategicParameters<TSPValueType>:: 00041 GetStrategicIDs (const StrategicOriginIDType& originID) const 00042 { 00043 ParameterIDsType paramIDs; 00044 00045 for (ParameterIDType pos = 0; pos< this->size(); pos++) 00046 { 00047 if ((this->operator[](pos))->GetOrigin()==originID) paramIDs.push_back(pos); 00048 } 00049 00050 return paramIDs; 00051 }; 00052 00053 template <class TSPValueType> 00054 typename StrategicParameters<TSPValueType>::ParameterIDsType 00055 StrategicParameters<TSPValueType>:: 00056 GetStrategicIDs (const StrategicOriginIDType& originID, 00057 StrategicParameterHandlingType handling) const 00058 { 00059 ParameterIDsType paramIDs; 00060 00061 for (ParameterIDType pos = 0; pos< this->size(); pos++) 00062 { 00063 if (((this->operator[](pos))->GetOrigin()==originID) && 00064 ((this->operator[](pos))->GetHandling()==handling)) paramIDs.push_back(pos); 00065 } 00066 00067 return paramIDs; 00068 }; 00069 00070 template <class TSPValueType> 00071 typename StrategicParameters<TSPValueType>::ParameterIDsType 00072 StrategicParameters<TSPValueType>:: 00073 GetStrategicIDs (StrategicParameterHandlingType handling) const 00074 { 00075 ParameterIDsType paramIDs; 00076 00077 for (ParameterIDType pos = 0; pos< this->size(); pos++) 00078 { 00079 if ((this->operator[](pos))->GetHandling()==handling) paramIDs.push_back(pos); 00080 } 00081 00082 return paramIDs; 00083 }; 00084 00085 template <class TSPValueType> 00086 typename StrategicParameters<TSPValueType>::SelectedParametersType 00087 StrategicParameters<TSPValueType>:: 00088 GetStrategicParameters (const StrategicOriginIDType& originID, 00089 StrategicParameterHandlingType handling) 00090 { 00091 SelectedParametersType params = SelectStrategicParametersByID(GetStrategicIDs(originID,handling)); 00092 return params; 00093 }; 00094 00095 template <class TSPValueType> 00096 typename StrategicParameters<TSPValueType>::SelectedParametersType 00097 StrategicParameters<TSPValueType>:: 00098 GetStrategicParameters (const StrategicOriginIDType& originID) 00099 { 00100 SelectedParametersType params = SelectStrategicParametersByID(GetStrategicIDs(originID)); 00101 return params; 00102 }; 00103 00104 template <class TSPValueType> 00105 typename StrategicParameters<TSPValueType>::SelectedParametersType 00106 StrategicParameters<TSPValueType>:: 00107 GetStrategicParameters (StrategicParameterHandlingType handling) 00108 { 00109 SelectedParametersType params = SelectStrategicParametersByID(GetStrategicIDs(handling)); 00110 return params; 00111 }; 00112 00113 template <class TSPValueType> 00114 void 00115 StrategicParameters<TSPValueType>:: 00116 DeleteSelectedStrategicParameters (const ParameterIDsType& ids) 00117 { 00118 ParameterIDsType::const_reverse_iterator pos; 00119 for (pos = ids.rbegin(); pos!=ids.rend(); pos++) 00120 { 00121 this->DeleteIndex(*pos); 00122 this->erase(this->begin()+ *pos); 00123 } 00124 }; 00125 00126 template <class TSPValueType> 00127 typename StrategicParameters<TSPValueType>::Pointer 00128 StrategicParameters<TSPValueType>:: 00129 Clone() const 00130 { 00131 Pointer newIndividual = Self::New(); 00132 *(newIndividual.GetPointer()) = *this; 00133 return newIndividual; 00134 }; 00135 00136 template <class TSPValueType> 00137 void 00138 StrategicParameters<TSPValueType>:: 00139 operator=(const Self & parameters) 00140 { 00141 this->clear(); 00142 00143 for (typename Self::const_iterator pos = parameters.begin(); pos!= parameters.end(); pos++) 00144 { 00145 this->push_back((*pos)->Clone()); 00146 } 00147 }; 00148 00149 template <class TSPValueType> 00150 typename StrategicParameters<TSPValueType>::SelectedParametersType 00151 StrategicParameters<TSPValueType>:: 00152 SelectStrategicParametersByID (const ParameterIDsType& ids) 00153 { 00154 SelectedParametersType params; 00155 00156 for (ParameterIDsType::const_iterator pos = ids.begin(); pos!=ids.end(); pos++) 00157 { 00158 params.push_back(this->operator[](*pos)); 00159 } 00160 00161 return params; 00162 }; 00163 00164 template <class TSPValueType> 00165 void 00166 StrategicParameters<TSPValueType>:: 00167 PrintSelf(std::ostream& os, itk::Indent indent) const 00168 { 00169 os << indent; 00170 typename Self::const_iterator posS; 00171 for (posS = this->begin(); posS!=this->end(); ++posS) 00172 { 00173 os << (*posS)->GetValue() <<"; "; 00174 } 00175 os << std::endl; 00176 }; 00177 00178 } // End namespace ES 00179 } // End namespace FREE 00180 00181 00182 #endif // __freESStrategicParameters_txx
1.5.3 written by Dimitri van Heesch,
© 1997-2000