freSVNonLinearVNLOptimizerControllerBase.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: freSVNonLinearVNLOptimizerControllerBase.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 __freSVNonLinearVNLOptimizerControllerBase_txx
00023 #define __freSVNonLinearVNLOptimizerControllerBase_txx
00024 
00025 #include "freSVNonLinearVNLOptimizerControllerBase.h"
00026 
00027 namespace FREE
00028 {
00029 
00030 template <class TControlledVNLOptimizer>
00031 SVNonLinearVNLOptimizerControllerBase<TControlledVNLOptimizer>::
00032 SVNonLinearVNLOptimizerControllerBase()
00033 {
00034   this->UpdateControllerID(ControllerID::SVNonLinearVNLOptimizerControllerBase);
00035   this->m_Description = "Base controller for vnl optimizers.";
00036 };
00037 
00038 template <class TControlledVNLOptimizer>
00039 SVNonLinearVNLOptimizerControllerBase<TControlledVNLOptimizer>::
00040 ~SVNonLinearVNLOptimizerControllerBase()
00041 {
00042 };
00043 
00044 template <class TControlledVNLOptimizer>
00045 void
00046 SVNonLinearVNLOptimizerControllerBase<TControlledVNLOptimizer>::
00047 SetStatisticEntryMainComponent(StatisticEntry& rStatisticEntry,
00048                                              ComponentType* pMainComponent,
00049                                              SessionComponentCache* pMainComponentCache,
00050                                              SessionInfo* pSessionInfo,
00051                                              StatisticDictionary& rDictionary) const
00052 {
00053   ParameterArrayType parameters = pMainComponent->GetCachedCurrentPosition();
00054   std::string sName = "Position #";
00055   std::string sIDPath = pMainComponentCache->GetIDPath();
00056   std::string sCommment = "Optimizer position. Meaning depends on chosen transformation";
00057   StatisticValueDefinition* pEntry = rDictionary.GetValueDefinitionByName(sIDPath,sName+"0");
00058     
00059   if (!pEntry) //Entry is not recorded yet, so do so.
00060   {
00061     pEntry = rDictionary.AddValueDefinition(sIDPath,sName+"0", sCommment);
00062     for (unsigned int i = 1; i<parameters.Size(); i++)
00063     {
00064       rDictionary.AddValueDefinition(sIDPath,sName+Convert::ToStr(i),sCommment);
00065     }
00066                 rDictionary.AddValueDefinition(sIDPath,"OptimizerValue", "Value of the optimizer");
00067   }
00068   
00069   for (unsigned int i = 0; i<parameters.Size(); i++)
00070   {
00071     rStatisticEntry.AddValue(Convert::ToStr(parameters.GetElement(i)),pEntry->GetRefID()+i);
00072   }
00073 
00074   rStatisticEntry.AddValue(Convert::ToStr(pMainComponent->GetCachedValue()),pEntry->GetRefID()+parameters.Size());
00075 };
00076 
00077 template <class TControlledVNLOptimizer>
00078 typename SVNonLinearVNLOptimizerControllerBase<TControlledVNLOptimizer>::ParametersType
00079 SVNonLinearVNLOptimizerControllerBase<TControlledVNLOptimizer>::
00080 GetCurrentPosition(TControlledVNLOptimizer* pOptimizer) const
00081 {
00082         return pOptimizer->GetCachedCurrentPosition();
00083 };
00084 
00085 template <class TControlledVNLOptimizer>
00086 typename SVNonLinearVNLOptimizerControllerBase<TControlledVNLOptimizer>::MeasuresType
00087 SVNonLinearVNLOptimizerControllerBase<TControlledVNLOptimizer>::
00088 GetCurrentValue(TControlledVNLOptimizer* pOptimizer) const
00089 {
00090         MeasuresType values(1);
00091         values.Fill(pOptimizer->GetCachedValue());
00092         return values;
00093 };
00094 
00095 } //end of namespace FREE
00096 
00097 #endif

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