00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freESIndividual_txx
00023 #define __freESIndividual_txx
00024
00025 #include "freESIndividual.h"
00026
00027 namespace FREE
00028 {
00029 namespace ES
00030 {
00031
00032 template <class TOPValueType, class TSPValueType, class TOValueType>
00033 Individual<TOPValueType, TSPValueType, TOValueType>::
00034 Individual()
00035 {
00036 m_ObjectiveValueIsSet=false;
00037 m_StrategicParameters = StrategicParametersType::New();
00038 };
00039
00040 template <class TOPValueType, class TSPValueType, class TOValueType>
00041 typename Individual<TOPValueType, TSPValueType, TOValueType>::Pointer
00042 Individual<TOPValueType, TSPValueType, TOValueType>::
00043 Clone() const
00044 {
00045 Pointer newIndividual = Self::New();
00046 *(newIndividual.GetPointer()) = *this;
00047 return newIndividual;
00048 };
00049
00050 template <class TOPValueType, class TSPValueType, class TOValueType>
00051 void
00052 Individual<TOPValueType, TSPValueType, TOValueType>::
00053 operator=(const Self & individual)
00054 {
00055 m_GenerationID = individual.GetGenerationID();
00056 m_IndividualID = individual.GetIndividualID();
00057
00058 m_ObjectiveValue = individual.GetObjectiveValue();
00059 m_ObjectiveValueIsSet = individual.GetObjectiveValueIsSet();
00060
00061 m_ObjectiveParameters = individual.ObjectiveParameters();
00062
00063 m_StrategicParameters = individual.StrategicParameters().Clone();
00064 };
00065
00066 template <class TOPValueType, class TSPValueType, class TOValueType>
00067 void
00068 Individual<TOPValueType, TSPValueType, TOValueType>::
00069 PrintSelf(std::ostream& os, itk::Indent indent) const
00070 {
00071 os << indent << "IID: " << this->GetIndividualID() << std::endl;
00072 os << indent << "GID: " << this->GetGenerationID() << std::endl;
00073 os << indent << "Value: " << this->GetObjectiveValue() << std::endl;
00074
00075 os << indent << "OParameters: ";
00076 typename ObjectiveParametersType::const_iterator posO;
00077 for (posO = m_ObjectiveParameters.begin(); posO!=m_ObjectiveParameters.end(); ++posO)
00078 {
00079 os << *posO <<"; ";
00080 }
00081 os << std::endl;
00082
00083
00084 os << indent << "SParameters: ";
00085 m_StrategicParameters->Print(os);
00086 os << std::endl;
00087 };
00088
00089 }
00090 }
00091
00092
00093 #endif // __freESIndividual_txx