#include "HxFuncNgbOp2dExtra.h"
#include "HxCategories.h"
Pix_variations | |
template<class SrcDataPtrT, class ExtraDataPtrT, class NgbT> void | HxFuncNgbOp2dExtra_Pix_P1Cnum (SrcDataPtrT &srcPtr, ExtraDataPtrT &extraPtr, NgbT &ngb, typename NgbT::CnumType cnum) |
Pix : phase 1, cnum. More... | |
template<class SrcDataPtrT, class ExtraDataPtrT, class NgbT> void | HxFuncNgbOp2dExtra_Pix_P1Loop (SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, NgbT &ngb, int ngbWidth, int ngbHeight) |
Pix : phase 1, loop. More... | |
template<class SrcDataPtrT, class ExtraDataPtrT, class NgbT> void | HxFuncNgbOp2dExtra_Pix_P2Loop (SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, NgbT &ngb, int ngbWidth, int ngbHeight) |
Pix : phase 2, loop. More... | |
Row_variations | |
template<class DstDataPtrT, class SrcDataPtrT, class ExtraDataPtrT, class NgbT> void | HxFuncNgbOp2dExtra_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, int y, int imgWidth, NgbT &ngb, HxTag1Phase dummy1, HxTagCnum dummy2) |
Row : phase 1, cnum. More... | |
template<class DstDataPtrT, class SrcDataPtrT, class ExtraDataPtrT, class NgbT> void | HxFuncNgbOp2dExtra_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, int y, int imgWidth, NgbT &ngb, HxTag1Phase dummy1, HxTagLoop dummy2) |
Row : phase 1, loop. More... | |
template<class DstDataPtrT, class SrcDataPtrT, class ExtraDataPtrT, class NgbT> void | HxFuncNgbOp2dExtra_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, int y, int imgWidth, NgbT &ngb, HxTag2Phase dummy1, HxTagLoop dummy2) |
Row : phase 2, loop. More... | |
template<class DstDataPtrT, class SrcDataPtrT, class ExtraDataPtrT, class NgbT> void | HxFuncNgbOp2dExtra_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, int y, int imgWidth, NgbT &ngb, HxTagNPhase dummy1, HxTagLoop dummy2) |
Row : phase N, loop. More... | |
Functions | |
template<class DstDataPtrT, class SrcDataPtrT, class ExtraDataPtrT, class NgbT> void | HxFuncNgbOp2dExtraDispatch (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, HxSizes dstSize, NgbT &ngb) |
Dispatch function for NgbOp2dExtra (see Global functions for NgbOp2dExtra) 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 ExtraDataPtrT n2Ptr(extraPtr); 00060 n2Ptr.incXYZ(cnum.x(), cnum.y()); 00061 ngb.next(cnum.x(), cnum.y(), nPtr.read(), n2Ptr.read()); 00062 } 00063 } |
|
Pix : phase 1, loop.
00071 { 00072 for (int j=0; j<ngbHeight; j++) { 00073 for (int i=0; i<ngbWidth; i++) { 00074 ngb.next(i, j, srcPtr.readIncX(), extraPtr.readIncX()); 00075 } 00076 srcPtr.decX(ngbWidth); 00077 srcPtr.incY(); 00078 extraPtr.decX(ngbWidth); 00079 extraPtr.incY(); 00080 } 00081 } |
|
Pix : phase 2, loop.
00089 { 00090 for (int j=0; j<ngbHeight; j++) { 00091 for (int i=0; i<ngbWidth; i++) { 00092 ngb.next2(i, j, srcPtr.readIncX(), extraPtr.readIncX()); 00093 } 00094 srcPtr.decX(ngbWidth); 00095 srcPtr.incY(); 00096 extraPtr.decX(ngbWidth); 00097 extraPtr.incY(); 00098 } 00099 } |
|
Row : phase 1, cnum.
00115 { 00116 srcPtr.incXYZ(ngb.size().x()/2, ngb.size().y()/2, 0); 00117 extraPtr.incXYZ(ngb.size().x()/2, ngb.size().y()/2, 0); 00118 for(int x=0; x < imgWidth; x++) { 00119 ngb.init(x, y, srcPtr.read(), extraPtr.read()); 00120 HxFuncNgbOp2dExtra_Pix_P1Cnum(srcPtr, extraPtr, ngb, ngb.begin()); 00121 srcPtr.incX(); 00122 extraPtr.incX(); 00123 dstPtr.writeIncX(ngb.result()); 00124 } 00125 } |
|
Row : phase 1, loop.
00134 { 00135 int ngbWidth = ngb.size().x(); 00136 int ngbHeight = ngb.size().y(); 00137 SrcDataPtrT cenSrcPtr = srcPtr; 00138 cenSrcPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0); 00139 ExtraDataPtrT cenExtraPtr = extraPtr; 00140 cenExtraPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0); 00141 for(int x=0; x < imgWidth; x++) { 00142 ngb.init(x, y, cenSrcPtr.readIncX(), cenExtraPtr.readIncX()); 00143 HxFuncNgbOp2dExtra_Pix_P1Loop(srcPtr, extraPtr, ngb, ngbWidth, ngbHeight); 00144 srcPtr.incX(); 00145 extraPtr.incX(); 00146 dstPtr.writeIncX(ngb.result()); 00147 } 00148 } |
|
Row : phase 2, loop.
00157 { 00158 int ngbWidth = ngb.size().x(); 00159 int ngbHeight = ngb.size().y(); 00160 SrcDataPtrT cenSrcPtr = srcPtr; 00161 cenSrcPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0); 00162 ExtraDataPtrT cenExtraPtr = extraPtr; 00163 cenExtraPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0); 00164 for(int x=0; x < imgWidth; x++) { 00165 ngb.init(x, y, cenSrcPtr.read(), cenExtraPtr.read()); 00166 HxFuncNgbOp2dExtra_Pix_P1Loop(srcPtr, extraPtr, ngb, ngbWidth, ngbHeight); 00167 ngb.init2(x, y, cenSrcPtr.readIncX(), cenExtraPtr.readIncX()); 00168 HxFuncNgbOp2dExtra_Pix_P2Loop(srcPtr, extraPtr, ngb, ngbWidth, ngbHeight); 00169 srcPtr.incX(); 00170 extraPtr.incX(); 00171 dstPtr.writeIncX(ngb.result()); 00172 } 00173 } |
|
Row : phase N, loop.
00182 { 00183 int ngbWidth = ngb.size().x(); 00184 int ngbHeight = ngb.size().y(); 00185 SrcDataPtrT cenSrcPtr = srcPtr; 00186 cenSrcPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0); 00187 ExtraDataPtrT cenExtraPtr = extraPtr; 00188 cenExtraPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0); 00189 for(int x=0; x < imgWidth; x++) { 00190 int phase = 1; 00191 do { 00192 ngb.init(phase, x, y, cenSrcPtr.read(), cenExtraPtr.read()); 00193 HxFuncNgbOp2dExtra_Pix_P1Loop(srcPtr, extraPtr, ngb, 00194 ngbWidth, ngbHeight); 00195 ngb.done(phase); 00196 } while (ngb.hasNextPhase(phase++)); 00197 cenSrcPtr.incX(); 00198 srcPtr.incX(); 00199 cenExtraPtr.incX(); 00200 extraPtr.incX(); 00201 dstPtr.writeIncX(ngb.result()); 00202 } 00203 } |
|
Dispatch function for NgbOp2dExtra (see Global functions for NgbOp2dExtra) Dispatch is based on the categories defined in NgbT.
00223 { 00224 for(int y=0; y < dstSize.y(); y++) { 00225 HxFuncNgbOp2dExtra_Row(dstPtr, srcPtr, extraPtr, y, dstSize.x(), ngb, 00226 typename NgbT::PhaseCategory(), 00227 typename NgbT::IteratorCategory()); 00228 srcPtr.incY(); 00229 extraPtr.incY(); 00230 dstPtr.incY(); 00231 } 00232 } |