Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxImgFtorI4Cast Class Template Reference

Class for (checked) conversion of (polymorphic) HxImageData parameters of HxImgFtorI4 to (statically typed) image data pointers. More...

#include <HxImgFtorI4Cast.h>

Inheritance diagram for HxImgFtorI4Cast::

HxImgFtorI4 HxImgFunctor List of all members.

Public Types

typedef HxImgFtorI4CastKey KeyType
 The key type of this class. More...

typedef Img1SigT::DataPtrType Img1DataPtrType
 The data pointer type of the first image. More...

typedef Img2SigT::DataPtrType Img2DataPtrType
 The data pointer type of the second image. More...

typedef Img3SigT::DataPtrType Img3DataPtrType
 The data pointer type of the third image. More...

typedef Img4SigT::DataPtrType Img4DataPtrType
 The data pointer type of the fourth image. More...


Public Methods

 HxImgFtorI4Cast (const KeyType &)
 Constructor. More...

virtual ~HxImgFtorI4Cast ()
 Destructor. More...

virtual void callIt (HxImageData *img1, HxImageData *img2, HxImageData *img3, HxImageData *img4, HxTagList &tags)
 Converts parameters and calls doIt. More...


Protected Methods

virtual void doIt (Img1DataPtrType img1Ptr, Img2DataPtrType img2Ptr, Img3DataPtrType img3Ptr, Img4DataPtrType img4Ptr, HxSizes img1Size, HxSizes img2Size, HxSizes img3Size, HxSizes img4Size, HxTagList &tags, HxImgFtorDescription *=0)=0
 doIt is implemented by derived image functors:. More...


Detailed Description

template<class Img1SigT, class Img2SigT, class Img3SigT, class Img4SigT>
class HxImgFtorI4Cast< Img1SigT, Img2SigT, Img3SigT, Img4SigT >

Class for (checked) conversion of (polymorphic) HxImageData parameters of HxImgFtorI4 to (statically typed) image data pointers.

Template parameters:


Member Typedef Documentation

template<class Img1SigT, class Img2SigT, class Img3SigT, class Img4SigT>
typedef HxImgFtorI4CastKey HxImgFtorI4Cast::KeyType
 

The key type of this class.

Reimplemented from HxImgFtorI4.

Reimplemented in HxImgFtorGenConv2dSep, HxImgFtorNgb2dExtra2, HxImgFtorGenConv2dSep< ImgSigT, KerSigT, KerSigT, HxBpoAdd< typename KerSigT::ArithType, typename KerSigT::ArithType, typename KerSigT::ArithType >, HxBpoInfAssign< typename KerSigT::ArithType, typename KerSigT::ArithType >, HxKernel1d< typename KerSigT::DataPtrType, typename KerSigT::ArithType > >, HxImgFtorGenConv2dSep< ImgSigT, KerSigT, KerSigT, HxBpoAdd< typename KerSigT::ArithType, typename KerSigT::ArithType, typename KerSigT::ArithType >, HxBpoMaxAssign< typename KerSigT::ArithType, typename KerSigT::ArithType >, HxKernel1d< typename KerSigT::DataPtrType, typename KerSigT::ArithType > >, HxImgFtorGenConv2dSep< ImgSigT, KerSigT, KerSigT, HxBpoAdd< typename KerSigT::ArithType, typename KerSigT::ArithType, typename KerSigT::ArithType >, HxBpoSupAssign< typename KerSigT::ArithType, typename KerSigT::ArithType >, HxKernel1d< typename KerSigT::DataPtrType, typename KerSigT::ArithType > >, HxImgFtorGenConv2dSep< ImgSigT, KerSigT, KerSigT, HxBpoAdd< typename KerSigT::ArithType, typename KerSigT::ArithType, typename KerSigT::ArithType >, HxBpoMinAssign< typename KerSigT::ArithType, typename KerSigT::ArithType >, HxKernel1d< typename KerSigT::DataPtrType, typename KerSigT::ArithType > >, HxImgFtorGenConv2dSep< ImgSigT, KerSigT, KerSigT, HxBpoMul< typename KerSigT::ArithType, typename KerSigT::ArithType, typename KerSigT::ArithType >, HxBpoAddAssign< typename KerSigT::ArithType, typename KerSigT::ArithType >, HxKernel1d< typename KerSigT::DataPtrType, typename KerSigT::ArithType > >, and HxImgFtorNgb2dExtra2< ResSigT, ImgSigT, ImgSigT, ImgSigT, HxNgbOpticalFlow< typename ResSigT::ArithTypeDouble, typename ImgSigT::ArithType > >.

template<class Img1SigT, class Img2SigT, class Img3SigT, class Img4SigT>
typedef Img1SigT::DataPtrType HxImgFtorI4Cast::Img1DataPtrType
 

The data pointer type of the first image.

template<class Img1SigT, class Img2SigT, class Img3SigT, class Img4SigT>
typedef Img2SigT::DataPtrType HxImgFtorI4Cast::Img2DataPtrType
 

The data pointer type of the second image.

template<class Img1SigT, class Img2SigT, class Img3SigT, class Img4SigT>
typedef Img3SigT::DataPtrType HxImgFtorI4Cast::Img3DataPtrType
 

The data pointer type of the third image.

template<class Img1SigT, class Img2SigT, class Img3SigT, class Img4SigT>
typedef Img4SigT::DataPtrType HxImgFtorI4Cast::Img4DataPtrType
 

The data pointer type of the fourth image.


Constructor & Destructor Documentation

template<class Img1SigT, class Img2SigT, class Img3SigT, class Img4SigT>
HxImgFtorI4Cast< Img1SigT, Img2SigT, Img3SigT, Img4SigT >::HxImgFtorI4Cast const KeyType   key [inline]
 

Constructor.

00084                                         : HxImgFtorI4(key)
00085 {
00086 }

template<class Img1SigT, class Img2SigT, class Img3SigT, class Img4SigT>
HxImgFtorI4Cast< Img1SigT, Img2SigT, Img3SigT, Img4SigT >::~HxImgFtorI4Cast   [virtual]
 

Destructor.

00023 {
00024 #ifdef CD_TRACE
00025     HxEnvironment::instance()->outputStream()
00026         << "~HxImgFtorI4Cast()" << STD_ENDL;
00027     HxEnvironment::instance()->flush();
00028 #endif
00029 }


Member Function Documentation

template<class Img1SigT, class Img2SigT, class Img3SigT, class Img4SigT>
void HxImgFtorI4Cast< Img1SigT, Img2SigT, Img3SigT, Img4SigT >::callIt HxImageData   img1,
HxImageData   img2,
HxImageData   img3,
HxImageData   img4,
HxTagList   tags
[virtual]
 

Converts parameters and calls doIt.

Reimplemented from HxImgFtorI4.

00036 {
00037     TYPENAME Img1SigT::DataPtrType img1Ptr
00038         = HxMakeDataPtr<typename Img1SigT::DataPtrType>(img1);
00039     TYPENAME Img2SigT::DataPtrType img2Ptr
00040         = HxMakeDataPtr<typename Img2SigT::DataPtrType>(img2);
00041     TYPENAME Img3SigT::DataPtrType img3Ptr
00042         = HxMakeDataPtr<typename Img3SigT::DataPtrType>(img3);
00043     TYPENAME Img4SigT::DataPtrType img4Ptr
00044         = HxMakeDataPtr<typename Img4SigT::DataPtrType>(img4);
00045 
00046     HxImgFtorDescription* description = getDescription();
00047     if (description)
00048     {
00049         description->setTags(tags);
00050         description->addArgument(img1->signature(), img1->sizes());
00051         description->addArgument(img2->signature(), img2->sizes());
00052         description->addArgument(img3->signature(), img3->sizes());
00053         description->addArgument(img4->signature(), img4->sizes());
00054         description->startTime();
00055     }
00056     
00057     doIt(img1Ptr, img2Ptr, img3Ptr, img4Ptr,
00058         img1->sizes(), img2->sizes(), img3->sizes(), img4->sizes(),
00059         tags, description);
00060 
00061     if (description)
00062         description->stopTime();
00063 }

template<class Img1SigT, class Img2SigT, class Img3SigT, class Img4SigT>
virtual void HxImgFtorI4Cast< Img1SigT, Img2SigT, Img3SigT, Img4SigT >::doIt Img1DataPtrType    dstPtr,
Img2DataPtrType    srcPtr,
Img3DataPtrType    extraPtr,
Img4DataPtrType    extra2Ptr,
HxSizes    dstSize,
HxSizes    srcSize,
HxSizes    extraSize,
HxSizes    extra2Size,
HxTagList   tags,
HxImgFtorDescription   description = 0
[protected, pure virtual]
 

doIt is implemented by derived image functors:.

Reimplemented in HxImgFtorGenConv2dSep, HxImgFtorNgb2dExtra2, HxImgFtorGenConv2dSep< ImgSigT, KerSigT, KerSigT, HxBpoAdd< typename KerSigT::ArithType, typename KerSigT::ArithType, typename KerSigT::ArithType >, HxBpoInfAssign< typename KerSigT::ArithType, typename KerSigT::ArithType >, HxKernel1d< typename KerSigT::DataPtrType, typename KerSigT::ArithType > >, HxImgFtorGenConv2dSep< ImgSigT, KerSigT, KerSigT, HxBpoAdd< typename KerSigT::ArithType, typename KerSigT::ArithType, typename KerSigT::ArithType >, HxBpoMaxAssign< typename KerSigT::ArithType, typename KerSigT::ArithType >, HxKernel1d< typename KerSigT::DataPtrType, typename KerSigT::ArithType > >, HxImgFtorGenConv2dSep< ImgSigT, KerSigT, KerSigT, HxBpoAdd< typename KerSigT::ArithType, typename KerSigT::ArithType, typename KerSigT::ArithType >, HxBpoSupAssign< typename KerSigT::ArithType, typename KerSigT::ArithType >, HxKernel1d< typename KerSigT::DataPtrType, typename KerSigT::ArithType > >, HxImgFtorGenConv2dSep< ImgSigT, KerSigT, KerSigT, HxBpoAdd< typename KerSigT::ArithType, typename KerSigT::ArithType, typename KerSigT::ArithType >, HxBpoMinAssign< typename KerSigT::ArithType, typename KerSigT::ArithType >, HxKernel1d< typename KerSigT::DataPtrType, typename KerSigT::ArithType > >, HxImgFtorGenConv2dSep< ImgSigT, KerSigT, KerSigT, HxBpoMul< typename KerSigT::ArithType, typename KerSigT::ArithType, typename KerSigT::ArithType >, HxBpoAddAssign< typename KerSigT::ArithType, typename KerSigT::ArithType >, HxKernel1d< typename KerSigT::DataPtrType, typename KerSigT::ArithType > >, and HxImgFtorNgb2dExtra2< ResSigT, ImgSigT, ImgSigT, ImgSigT, HxNgbOpticalFlow< typename ResSigT::ArithTypeDouble, typename ImgSigT::ArithType > >.


The documentation for this class was generated from the following files:
Generated on Tue Feb 3 14:18:59 2004 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001