#include "HxFuncMpo.h"
#include "HxCategories.h"
Functions | |
template<class DstDataPtrT, class SrcDataPtrArray, class MpoT> void | HxFuncMpo (DstDataPtrT dstPtr, SrcDataPtrArray &srcPtrs, HxSizes dstSize, MpoT &mpo, HxTagTransInVar) |
Translation invariant multi pixel operation. More... | |
template<class DstDataPtrT, class SrcDataPtrArray, class MpoT> void | HxFuncMpoDispatch (DstDataPtrT dstPtr, SrcDataPtrArray &srcPtrs, HxSizes dstSize, MpoT &mpo) |
Dispatch function for multi pixel operation. More... |
|
Translation invariant multi pixel operation.
00026 { 00027 int n = srcPtrs.size(); 00028 typename SrcDataPtrArray::ArithType *src = 00029 new typename SrcDataPtrArray::ArithType [n]; 00030 00031 int nPix = dstSize.x() * dstSize.y() * dstSize.z(); 00032 while (--nPix >= 0) { 00033 for (int i=0; i < n; i++) 00034 src[i] = srcPtrs[i].readIncX(); 00035 dstPtr.writeIncX(mpo.doIt(src)); 00036 } 00037 00038 delete [] src; 00039 } |
|
Dispatch function for multi pixel operation. Dispatch is based on the TransVarianceCategory category defined in MpoT. Calls HxFuncMpo(DstDataPtrT,SrcDataPtrArray&,HxSizes,MpoT&,HxTagTransInVar) or HxFuncMpo(DstDataPtrT,SrcDataPtrArray&,HxSizes,MpoT&,HxTagTransVar).
00077 { 00078 HxFuncMpo( 00079 dstPtr, srcPtrs, dstSize, mpo, 00080 typename MpoT::TransVarianceCategory()); 00081 } |