18 #ifndef sitkDualMemberFunctionFactory_h
19 #define sitkDualMemberFunctionFactory_h
66 template <
typename TMemberFunctionPo
inter>
77 typedef typename ::detail::FunctionTraits<MemberFunctionType>::ClassType
ObjectType;
87 template<
typename TImageType1,
typename TImageType2 >
88 void Register( MemberFunctionType pfunc, TImageType1*, TImageType2* );
127 template <
typename TPixelIDTypeList1,
128 typename TPixelIDTypeList2,
129 unsigned int VImageDimension,
130 typename TAddressor >
132 template <
typename TPixelIDTypeList1,
133 typename TPixelIDTypeList2,
134 unsigned int VImageDimension >
138 this->RegisterMemberFunctions< TPixelIDTypeList1, TPixelIDTypeList2, VImageDimension, AddressorType>();
147 unsigned int imageDimension )
const throw();
181 #include "sitkDualMemberFunctionFactory.hxx"
183 #endif // sitkDualMemberFunctionFactory_h
FunctionObjectType GetMemberFunction(PixelIDValueType pixelID1, PixelIDValueType pixelID2, unsigned int imageDimension)
Returns a function object for the combination of PixelID1 and PixelID2, and image dimension...
A class used to instantiate and generate function objects of templated member functions with two temp...
bool HasMemberFunction(PixelIDValueType pixelID1, PixelIDValueType pixelID2, unsigned int imageDimension) const
Query to determine if an member function has been registered for pixelID1, pixelID2 and imageDimensio...
void RegisterMemberFunctions(void)
Registers the member functions for all combinations of TPixelIDTypeList1 and PixelIDTypeList2.
DualMemberFunctionFactory Self
MemberFunctionFactoryBase< TMemberFunctionPointer, std::pair< int, int > > Superclass
::detail::FunctionTraits< MemberFunctionType >::ClassType ObjectType
void RegisterMemberFunctions(void)
Registers the member functions for all combinations of TPixelIDTypeList1 and PixelIDTypeList2.
DualMemberFunctionFactory(ObjectType *pObject)
Constructor which permanently binds the constructed object to pObject.
ObjectType * m_ObjectPointer
TMemberFunctionPointer MemberFunctionType
A base class for the MemberFunctionFactory.
void Register(MemberFunctionType pfunc, TImageType1 *, TImageType2 *)
Registers a specific member function.
Superclass::FunctionObjectType FunctionObjectType