freESStrategicParameters.txx

Go to the documentation of this file.
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

Generated at Sat Oct 13 15:53:48 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000