#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 } |