#include "HxFuncNgbOp2dExtra2.h"
#include "HxCategories.h"
Pix_variations | |
| template<class SrcDataPtrT, class ExtraDataPtrT, class Extra2DataPtrT, class NgbT> void | HxFuncNgbOp2dExtra2_Pix_P1Cnum (SrcDataPtrT &srcPtr, ExtraDataPtrT &extraPtr, Extra2DataPtrT &extra2Ptr, NgbT &ngb, typename NgbT::CnumType cnum) |
| Pix : phase 1, cnum. More... | |
| template<class SrcDataPtrT, class ExtraDataPtrT, class Extra2DataPtrT, class NgbT> void | HxFuncNgbOp2dExtra2_Pix_P1Loop (SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, Extra2DataPtrT extra2Ptr, NgbT &ngb, int ngbWidth, int ngbHeight) |
| Pix : phase 1, loop. More... | |
| template<class SrcDataPtrT, class ExtraDataPtrT, class Extra2DataPtrT, class NgbT> void | HxFuncNgbOp2dExtra2_Pix_P2Loop (SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, Extra2DataPtrT extra2Ptr, NgbT &ngb, int ngbWidth, int ngbHeight) |
| Pix : phase 2, loop. More... | |
Row_variations | |
| template<class DstDataPtrT, class SrcDataPtrT, class ExtraDataPtrT, class Extra2DataPtrT, class NgbT> void | HxFuncNgbOp2dExtra2_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, Extra2DataPtrT extra2Ptr, int y, int imgWidth, NgbT &ngb, HxTag1Phase dummy1, HxTagCnum dummy2) |
| Row : phase 1, cnum. More... | |
| template<class DstDataPtrT, class SrcDataPtrT, class ExtraDataPtrT, class Extra2DataPtrT, class NgbT> void | HxFuncNgbOp2dExtra2_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, Extra2DataPtrT extra2Ptr, int y, int imgWidth, NgbT &ngb, HxTag1Phase dummy1, HxTagLoop dummy2) |
| Row : phase 1, loop. More... | |
| template<class DstDataPtrT, class SrcDataPtrT, class ExtraDataPtrT, class Extra2DataPtrT, class NgbT> void | HxFuncNgbOp2dExtra2_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, Extra2DataPtrT extra2Ptr, int y, int imgWidth, NgbT &ngb, HxTag2Phase dummy1, HxTagLoop dummy2) |
| Row : phase 2, loop. More... | |
| template<class DstDataPtrT, class SrcDataPtrT, class ExtraDataPtrT, class Extra2DataPtrT, class NgbT> void | HxFuncNgbOp2dExtra2_Row (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, Extra2DataPtrT extra2Ptr, int y, int imgWidth, NgbT &ngb, HxTagNPhase dummy1, HxTagLoop dummy2) |
| Row : phase N, loop. More... | |
Functions | |
| template<class DstDataPtrT, class SrcDataPtrT, class ExtraDataPtrT, class Extra2DataPtrT, class NgbT> void | HxFuncNgbOp2dExtra2Dispatch (DstDataPtrT dstPtr, SrcDataPtrT srcPtr, ExtraDataPtrT extraPtr, Extra2DataPtrT extra2Ptr, HxSizes dstSize, NgbT &ngb) |
| Dispatch function for NgbOp2dExtra2 (see Global functions for NgbOp2dExtra2) Dispatch is based on the categories defined in NgbT. More... | |
|
||||||||||||||||||||||||||||
|
Pix : phase 1, cnum.
00055 {
00056 for (; cnum != ngb.end(); cnum.inc())
00057 {
00058 SrcDataPtrT nPtr(srcPtr);
00059 nPtr.incXYZ(cnum.x(), cnum.y());
00060 ExtraDataPtrT n2Ptr(extraPtr);
00061 n2Ptr.incXYZ(cnum.x(), cnum.y());
00062 Extra2DataPtrT n3Ptr(extra2Ptr);
00063 n3Ptr.incXYZ(cnum.x(), cnum.y());
00064 ngb.next(cnum.x(), cnum.y(), nPtr.read(), n2Ptr.read(), n3Ptr.read());
00065 }
00066 }
|
|
||||||||||||||||||||||||||||||||
|
Pix : phase 1, loop.
00075 {
00076 for (int j=0; j<ngbHeight; j++) {
00077 for (int i=0; i<ngbWidth; i++) {
00078 ngb.next(i, j, srcPtr.readIncX(), extraPtr.readIncX(),
00079 extra2Ptr.readIncX());
00080 }
00081 srcPtr.decX(ngbWidth);
00082 srcPtr.incY();
00083 extraPtr.decX(ngbWidth);
00084 extraPtr.incY();
00085 extra2Ptr.decX(ngbWidth);
00086 extra2Ptr.incY();
00087 }
00088 }
|
|
||||||||||||||||||||||||||||||||
|
Pix : phase 2, loop.
00097 {
00098 for (int j=0; j<ngbHeight; j++) {
00099 for (int i=0; i<ngbWidth; i++) {
00100 ngb.next2(i, j, srcPtr.readIncX(), extraPtr.readIncX(),
00101 extra2Ptr.readIncX());
00102 }
00103 srcPtr.decX(ngbWidth);
00104 srcPtr.incY();
00105 extraPtr.decX(ngbWidth);
00106 extraPtr.incY();
00107 extra2Ptr.decX(ngbWidth);
00108 extra2Ptr.incY();
00109 }
00110 }
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
Row : phase 1, cnum.
00127 {
00128 srcPtr.incXYZ(ngb.size().x()/2, ngb.size().y()/2, 0);
00129 extraPtr.incXYZ(ngb.size().x()/2, ngb.size().y()/2, 0);
00130 extra2Ptr.incXYZ(ngb.size().x()/2, ngb.size().y()/2, 0);
00131 for(int x=0; x < imgWidth; x++) {
00132 ngb.init(x, y, srcPtr.read(), extraPtr.read(), extra2Ptr.read());
00133 HxFuncNgbOp2dExtra2_Pix_P1Cnum(srcPtr, extraPtr, extra2Ptr, ngb,
00134 ngb.begin());
00135 srcPtr.incX();
00136 extraPtr.incX();
00137 extra2Ptr.incX();
00138 dstPtr.writeIncX(ngb.result());
00139 }
00140 }
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
Row : phase 1, loop.
00150 {
00151 int ngbWidth = ngb.size().x();
00152 int ngbHeight = ngb.size().y();
00153 SrcDataPtrT cenSrcPtr = srcPtr;
00154 cenSrcPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00155 ExtraDataPtrT cenExtraPtr = extraPtr;
00156 cenExtraPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00157 Extra2DataPtrT cenExtra2Ptr = extra2Ptr;
00158 cenExtra2Ptr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00159 for(int x=0; x < imgWidth; x++) {
00160 ngb.init(x, y, cenSrcPtr.readIncX(), cenExtraPtr.readIncX(),
00161 cenExtra2Ptr.readIncX());
00162 HxFuncNgbOp2dExtra2_Pix_P1Loop(srcPtr, extraPtr, extra2Ptr, ngb,
00163 ngbWidth, ngbHeight);
00164 srcPtr.incX();
00165 extraPtr.incX();
00166 extra2Ptr.incX();
00167 dstPtr.writeIncX(ngb.result());
00168 }
00169 }
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
Row : phase 2, loop.
00179 {
00180 int ngbWidth = ngb.size().x();
00181 int ngbHeight = ngb.size().y();
00182 SrcDataPtrT cenSrcPtr = srcPtr;
00183 cenSrcPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00184 ExtraDataPtrT cenExtraPtr = extraPtr;
00185 cenExtraPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00186 Extra2DataPtrT cenExtra2Ptr = extra2Ptr;
00187 cenExtra2Ptr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00188 for(int x=0; x < imgWidth; x++) {
00189 ngb.init(x, y, cenSrcPtr.read(), cenExtraPtr.read(), cenExtra2Ptr.read());
00190 HxFuncNgbOp2dExtra2_Pix_P1Loop(srcPtr, extraPtr, extra2Ptr, ngb,
00191 ngbWidth, ngbHeight);
00192 ngb.init2(x, y, cenSrcPtr.readIncX(), cenExtraPtr.readIncX(),
00193 cenExtraPtr.readIncX());
00194 HxFuncNgbOp2dExtra2_Pix_P2Loop(srcPtr, extraPtr, extra2Ptr, ngb,
00195 ngbWidth, ngbHeight);
00196 srcPtr.incX();
00197 extraPtr.incX();
00198 extra2Ptr.incX();
00199 dstPtr.writeIncX(ngb.result());
00200 }
00201 }
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
Row : phase N, loop.
00211 {
00212 int ngbWidth = ngb.size().x();
00213 int ngbHeight = ngb.size().y();
00214 SrcDataPtrT cenSrcPtr = srcPtr;
00215 cenSrcPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00216 ExtraDataPtrT cenExtraPtr = extraPtr;
00217 cenExtraPtr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00218 Extra2DataPtrT cenExtra2Ptr = extra2Ptr;
00219 cenExtra2Ptr.incXYZ(ngbWidth/2, ngbHeight/2, 0);
00220 for(int x=0; x < imgWidth; x++) {
00221 int phase = 1;
00222 do {
00223 ngb.init(phase, x, y, cenSrcPtr.read(), cenExtraPtr.read(),
00224 cenExtra2Ptr.read());
00225 HxFuncNgbOp2dExtra2_Pix_P1Loop(srcPtr, extraPtr, extra2Ptr, ngb,
00226 ngbWidth, ngbHeight);
00227 ngb.done(phase);
00228 } while (ngb.hasNextPhase(phase++));
00229 cenSrcPtr.incX();
00230 srcPtr.incX();
00231 cenExtraPtr.incX();
00232 extraPtr.incX();
00233 cenExtra2Ptr.incX();
00234 extra2Ptr.incX();
00235 dstPtr.writeIncX(ngb.result());
00236 }
00237 }
|
|
||||||||||||||||||||||||||||||||
|
Dispatch function for NgbOp2dExtra2 (see Global functions for NgbOp2dExtra2) Dispatch is based on the categories defined in NgbT.
00260 {
00261 for(int y=0; y < dstSize.y(); y++) {
00262 HxFuncNgbOp2dExtra2_Row(dstPtr, srcPtr, extraPtr, extra2Ptr,
00263 y, dstSize.x(), ngb,
00264 typename NgbT::PhaseCategory(),
00265 typename NgbT::IteratorCategory());
00266 srcPtr.incY();
00267 extraPtr.incY();
00268 extra2Ptr.incY();
00269 dstPtr.incY();
00270 }
00271 }
|
1.2.12 written by Dimitri van Heesch,
© 1997-2001