#include "HxFuncNgbOp2d.h"
#include "HxCategories.h"
| Pix_variations | |
| template<class SrcDataPtrT, class NgbT> void | HxFuncNgbOp2d_Pix_P1Cnum (SrcDataPtrT &srcPtr, NgbT &ngb, typename NgbT::CnumType cnum) | 
| Pix : phase 1, cnum. More... | |
| template<class SrcDataPtrT, class NgbT> void | HxFuncNgbOp2d_Pix_P1Loop (SrcDataPtrT srcPtr, NgbT &ngb, int ngbWidth, int ngbHeight) | 
| Pix : phase 1, loop. More... | |
| template<class SrcDataPtrT, class NgbT> void | HxFuncNgbOp2d_Pix_P2Loop (SrcDataPtrT srcPtr, NgbT &ngb, int ngbWidth, int ngbHeight) | 
| Pix : phase 2, loop. More... | |
| Row_variations | |
| template<class DstDataPtrT, class SrcDataPtrT, class NgbT> void | HxFuncNgbOp2d_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, int y, int imgWidth, NgbT &ngb, HxTag1Phase dummy1, HxTagCnum dummy2) | 
| Row : phase 1, cnum. More... | |
| template<class DstDataPtrT, class SrcDataPtrT, class NgbT> void | HxFuncNgbOp2d_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, int y, int imgWidth, NgbT &ngb, HxTag1Phase dummy1, HxTagLoop dummy2) | 
| Row : phase 1, loop. More... | |
| template<class DstDataPtrT, class SrcDataPtrT, class NgbT> void | HxFuncNgbOp2d_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, int y, int imgWidth, NgbT &ngb, HxTag2Phase dummy1, HxTagLoop dummy2) | 
| Row : phase 2, loop. More... | |
| template<class DstDataPtrT, class SrcDataPtrT, class NgbT> void | HxFuncNgbOp2d_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, int y, int imgWidth, NgbT &ngb, HxTagNPhase dummy1, HxTagLoop dummy2) | 
| Row : phase N, loop. More... | |
| Functions | |
| template<class DstDataPtrT, class SrcDataPtrT, class NgbT> void | HxFuncNgbOp2dDispatch (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, HxSizes dstSize, NgbT &ngb) | 
| Dispatch function for NgbOp2d (see Global functions for NgbOp2d) Dispatch is based on the categories defined in NgbT. More... | |
| 
 | ||||||||||||||||||||
| Pix : phase 1, cnum. 
 
 00054 {
00055     for (; cnum != ngb.end(); cnum.inc())
00056     {
00057         SrcDataPtrT nPtr(srcPtr);
00058         nPtr.incXYZ(cnum.x(), cnum.y());
00059         ngb.next(cnum.x(), cnum.y(), nPtr.read());
00060     }
00061 }
 | 
| 
 | ||||||||||||||||||||||||
| Pix : phase 1, loop. 
 
 00068 {
00069     for (int j=0; j<ngbHeight; j++) {
00070         for (int i=0; i<ngbWidth; i++) {
00071             ngb.next(i, j, srcPtr.readIncX());
00072         }
00073         srcPtr.decX(ngbWidth);
00074         srcPtr.incY();
00075     }
00076 }
 | 
| 
 | ||||||||||||||||||||||||
| Pix : phase 2, loop. 
 
 00083 {
00084     for (int j=0; j<ngbHeight; j++) {
00085         for (int i=0; i<ngbWidth; i++) {
00086             ngb.next2(i, j, srcPtr.readIncX());
00087         }
00088         srcPtr.decX(ngbWidth);
00089         srcPtr.incY();
00090     }
00091 }
 | 
| 
 | ||||||||||||||||||||||||||||||||||||
| Row : phase 1, cnum. 
 
 00106 {
00107     srcPtr.incXYZ(ngb.size().x()/2, ngb.size().y()/2, 0);
00108     for(int x=0; x < imgWidth; x++) {
00109         ngb.init(x, y, srcPtr.read());
00110         HxFuncNgbOp2d_Pix_P1Cnum(srcPtr, ngb, ngb.begin());
00111         srcPtr.incX();
00112         dstPtr.writeIncX(ngb.result());
00113     }
00114 }
 | 
| 
 | ||||||||||||||||||||||||||||||||||||
| Row : phase 1, loop. 
 
 00122 {
00123     int ngbWidth = ngb.size().x();
00124     int ngbHeight = ngb.size().y();
00125     SrcDataPtrT cenSrcPtr = srcPtr;
00126     cenSrcPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00127     for(int x=0; x < imgWidth; x++) {
00128         ngb.init(x, y, cenSrcPtr.readIncX());
00129         HxFuncNgbOp2d_Pix_P1Loop(srcPtr, ngb, ngbWidth, ngbHeight);
00130         srcPtr.incX();
00131         dstPtr.writeIncX(ngb.result());
00132     }
00133 }
 | 
| 
 | ||||||||||||||||||||||||||||||||||||
| Row : phase 2, loop. 
 
 00141 {
00142     int ngbWidth = ngb.size().x();
00143     int ngbHeight = ngb.size().y();
00144     SrcDataPtrT cenSrcPtr = srcPtr;
00145     cenSrcPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00146     for(int x=0; x < imgWidth; x++) {
00147         ngb.init(x, y, cenSrcPtr.read());
00148         HxFuncNgbOp2d_Pix_P1Loop(srcPtr, ngb, ngbWidth, ngbHeight);
00149         ngb.init2(x, y, cenSrcPtr.readIncX());
00150         HxFuncNgbOp2d_Pix_P2Loop(srcPtr, ngb, ngbWidth, ngbHeight);
00151         srcPtr.incX();
00152         dstPtr.writeIncX(ngb.result());
00153     }
00154 }
 | 
| 
 | ||||||||||||||||||||||||||||||||||||
| Row : phase N, loop. 
 
 00162 {
00163     int ngbWidth = ngb.size().x();
00164     int ngbHeight = ngb.size().y();
00165     SrcDataPtrT cenSrcPtr = srcPtr;
00166     cenSrcPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00167     for(int x=0; x < imgWidth; x++) {
00168         int phase = 1;
00169         do {
00170             ngb.init(phase, x, y, cenSrcPtr.read());
00171             HxFuncNgbOp2d_Pix_P1Loop(srcPtr, ngb, ngbWidth, ngbHeight);
00172             ngb.done(phase);
00173         } while (ngb.hasNextPhase(phase++));
00174         cenSrcPtr.incX();
00175         srcPtr.incX();
00176         dstPtr.writeIncX(ngb.result());
00177     }
00178 }
 | 
| 
 | ||||||||||||||||||||||||
| Dispatch function for NgbOp2d (see Global functions for NgbOp2d) Dispatch is based on the categories defined in NgbT. 
 
 
 00196 {
00197     for(int y=0; y < dstSize.y(); y++) {
00198         HxFuncNgbOp2d_Row(dstPtr, srcPtr, y, dstSize.x(), ngb,
00199                           typename NgbT::PhaseCategory(),
00200                           typename NgbT::IteratorCategory());
00201         srcPtr.incY();
00202         dstPtr.incY();
00203     }
00204 }
 | 
 1.2.12 written by Dimitri van Heesch,
 © 1997-2001
1.2.12 written by Dimitri van Heesch,
 © 1997-2001