00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freOnePlusOneEvolutionarySOOptimizerController_h
00023 #define __freOnePlusOneEvolutionarySOOptimizerController_h
00024
00025 #include "freSetupOptimizationOptimizerControllerBase.h"
00026
00027 #include "freOnePlusOneEvolutionarySOOptimizer.h"
00028
00029 namespace FREE
00030 {
00031
00037 freControllerIDMacro(OnePlusOneEvolutionarySOOptimizerController, "1+1 Evolutionary SO Optimizer");
00038 class OnePlusOneEvolutionarySOOptimizerController : public SetupOptimizationOptimizerControllerBase<OnePlusOneEvolutionarySOOptimizer>
00039 {
00040 public:
00041 itkTypeMacro(OnePlusOneEvolutionarySOOptimizerController, SetupOptimizationOptimizerControllerBase);
00042
00043 typedef OnePlusOneEvolutionarySOOptimizer ComponentType;
00044 typedef SetupOptimizationOptimizerControllerBase<ComponentType> Superclass;
00045
00046 virtual long GetMaxIterationCount(const SessionComponentCache* pComponentCache, unsigned int iResolutionLevel = 0) const;
00047
00048 OnePlusOneEvolutionarySOOptimizerController();
00049
00050 protected:
00051 virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile,
00052 const SessionComponentCache* pComponentCache,
00053 bool bRegardOldSetup) const;
00054
00055 virtual void ActualizeMainComponent(ComponentType* pMainComponent,
00056 SessionComponentCache* pComponentCache,
00057 SessionInfo* pSessionInfo,
00058 const unsigned int& iActLevel) const;
00059
00060 virtual void SetStatisticEntryMainComponent(StatisticEntry& rStatisticEntry,
00061 ComponentType* pMainComponent,
00062 SessionComponentCache* pMainComponentCache,
00063 SessionInfo* pSessionInfo,
00064 StatisticDictionary& rDictionary) const;
00065
00067 virtual void SetStatisticEntrySubComponents(StatisticEntry& rStatisticEntry,
00068 SessionComponentCache* pComponentCache,
00069 SessionInfo* pSessionInfo,
00070 StatisticDictionary& rDictionary) const;
00071
00072 virtual GenericComponentType* GetSubComponentCasted(ComponentType* pMainComponent,
00073 const ComponentID& compID,
00074 SessionComponentCache* pMainComponentCache) const;
00075
00076 virtual void SetSubComponentCasted(GenericComponentType* pSubComponent,
00077 ComponentType* pMainComponent,
00078 const ComponentID compID,
00079 SessionComponentCache* pMainComponentCache) const;
00080 };
00081
00082 }
00083
00084 #endif