#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 }
|
1.2.12 written by Dimitri van Heesch,
© 1997-2001