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

template<class DstArrayT, class SrcArrayT, class NgbT>
void Impala::Core::Array::Pattern::FuncNgbOp2d_Row ( DstArrayT *  dst,
SrcArrayT *  src,
NgbT &  ngb,
int  y,
Tag2Phase  dummy1,
TagLoop  dummy2 
) [inline]

Row : phase 2, loop.

Definition at line 171 of file FuncNgbOp2d.h.

References ArrayCPB(), ArrayCW(), ArrayInc(), FuncNgbOp2d_Pix_P1Loop(), FuncNgbOp2d_Pix_P2Loop(), PtrRead(), and PtrWrite().

00173 {
00174     typedef typename DstArrayT::StorType DstStorT;
00175     typedef typename DstArrayT::ArithType DstArithT;
00176     typedef typename SrcArrayT::StorType SrcStorT;
00177     typedef typename SrcArrayT::ArithType SrcArithT;
00178 
00179     int ngbWidth = ngb.Width();
00180     int ngbHeight = ngb.Height();
00181     int width = ArrayCW(dst);
00182     DstStorT* dPtr = ArrayCPB(dst, 0, y);
00183     SrcStorT* sPtr = ArrayCPB(src, -ngbWidth/2, y-ngbHeight/2);
00184     SrcStorT* cenPtr = ArrayCPB(src, 0, y);
00185     int srcIncX = ArrayInc(src, 1, 0);
00186     int srcIncY = ArrayInc(src, -ngbWidth, 1);
00187     for (int x=0 ; x<width ; x++)
00188     {
00189         ngb.Init(x, y, PtrRead(cenPtr, SrcArithT()));
00190         FuncNgbOp2d_Pix_P1Loop(sPtr, ngb, ngbWidth, ngbHeight, srcIncX,
00191                                srcIncY, SrcArithT());
00192         ngb.Init2(x, y, PtrRead(cenPtr, SrcArithT()));
00193         FuncNgbOp2d_Pix_P2Loop(sPtr, ngb, ngbWidth, ngbHeight, srcIncX,
00194                                srcIncY, SrcArithT());
00195         PtrWrite(dPtr, ngb.Result());
00196         dPtr += DstArrayT::ElemSize();
00197         sPtr += SrcArrayT::ElemSize();
00198         cenPtr += SrcArrayT::ElemSize();
00199     }
00200 }

Here is the call graph for this function:


Generated on Fri Mar 19 11:01:29 2010 for ImpalaSrc by  doxygen 1.5.1