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