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