00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __freBinaryFunctorImageFilterControllerBase_txx
00024 #define __freBinaryFunctorImageFilterControllerBase_txx
00025
00026 #include "freBinaryFunctorImageFilterControllerBase.h"
00027 #include "freIntensityImageMediaController.h"
00028
00029 namespace FREE
00030 {
00034
00035 template <class TControlledFilter>
00036 ValidityTag::Pointer
00037 BinaryFunctorImageFilterControllerBase<TControlledFilter>::
00038 GetMediaValidityTagRequirement(const MediaID& mediaID, SessionComponentCache* pComponentCache) const
00039 {
00040 if (mediaID == "output")
00041 {
00042 ValidityTag::Pointer smpReq = ValidityTag::New(this->GetMediaValidityTag(mediaID,pComponentCache)->GetTimeStamp());
00043 this->CompareValidityTagRequirement("input",smpReq,pComponentCache);
00044 this->CompareValidityTagRequirement("input2",smpReq,pComponentCache);
00045 return smpReq;
00046 }
00047
00048 return Superclass::GetMediaValidityTagRequirement(mediaID, pComponentCache);
00049 }
00050
00051 template <class TControlledFilter>
00052 BinaryFunctorImageFilterControllerBase<TControlledFilter>::
00053 BinaryFunctorImageFilterControllerBase()
00054 {
00055
00056 this->UpdateControllerID(ControllerID::BinaryFunctorImageFilterControllerBase);
00057 this->m_Description = "Basic class for controller of itk based binary functor image filters.";
00058 };
00059
00060 template <class TControlledFilter>
00061 void
00062 BinaryFunctorImageFilterControllerBase<TControlledFilter>::
00063 GenerateProfile(CtrlProfile::ControllerProfile& profile,
00064 const SessionComponentCache* pComponentCache,
00065 bool bRegardOldSetup) const
00066 {
00067 Superclass::GenerateProfile(profile,pComponentCache,bRegardOldSetup);
00068
00069
00070 profile.MediaMap().AddMedia("input2",ControllerID::IntensityImageMediaControllerBase,DASet,ComponentType::InputImageType::ImageDimension);
00071 };
00072
00073 template <class TControlledFilter>
00074 void
00075 BinaryFunctorImageFilterControllerBase<TControlledFilter>::
00076 SetMediaCasted(const MediaID& mediaID, GenericMediaType* pMedia, ComponentType* pComponent, SessionComponentCache* pComponentCache,
00077 SessionInfo* pSessionInfo) const
00078 {
00079 if (mediaID == "input2")
00080 {
00081 pComponent->SetInput2(dynamic_cast<typename TControlledFilter::Input2ImageType*>(pMedia));
00082 this->ActualizeMediaValidityTag("input",pComponentCache);
00083 }
00084 else Superclass::SetMediaCasted(mediaID, pMedia, pComponent, pComponentCache, pSessionInfo);
00085 };
00086
00087 }
00088
00089 #endif