#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