Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

template<class DstArrayT, class Src1ArrayT, class Src2ArrayT, class BpoT>
void Impala::Core::Array::Pattern::FuncBpo ( DstArrayT *  dst,
Src1ArrayT *  src1,
Src2ArrayT *  src2,
BpoT &  bpo,
TagTransInVar  dummy,
TagCallValue  dummy2 
)

Translation invariant binary pixel operation based on value call.

Definition at line 78 of file FuncBpo.h.

References ArrayCH(), ArrayCPB(), ArrayCW(), PtrRead(), and PtrWrite().

00080 {
00081     typedef typename DstArrayT::StorType DstStorT;
00082     typedef typename DstArrayT::ArithType DstArithT;
00083     typedef typename Src1ArrayT::StorType Src1StorT;
00084     typedef typename Src1ArrayT::ArithType Src1ArithT;
00085     typedef typename Src2ArrayT::StorType Src2StorT;
00086     typedef typename Src2ArrayT::ArithType Src2ArithT;
00087 
00088     int width = ArrayCW(dst);
00089     int height = ArrayCH(dst);
00090     for (int y=0 ; y<height ; y++)
00091     {
00092         Src1StorT* s1Ptr = ArrayCPB(src1, 0, y);
00093         Src2StorT* s2Ptr = ArrayCPB(src2, 0, y);
00094         DstStorT* dPtr = ArrayCPB(dst, 0, y);
00095         for (int x=0 ; x<width ; x++)
00096         {
00097             PtrWrite(dPtr, bpo.DoIt(PtrRead(s1Ptr, Src1ArithT()),
00098                                       PtrRead(s2Ptr, Src2ArithT())));
00099             dPtr += DstArrayT::ElemSize();
00100             s1Ptr += Src1ArrayT::ElemSize();
00101             s2Ptr += Src2ArrayT::ElemSize();
00102         }
00103     }
00104 }

Here is the call graph for this function:


Generated on Fri Mar 19 11:00:59 2010 for ImpalaSrc by  doxygen 1.5.1