00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "linear.h"
00025 #include "error.h"
00026
00027 using namespace lux;
00028
00029
00030 LinearPixelSampler::LinearPixelSampler(int xstart, int xend,
00031 int ystart, int yend) {
00032 int xPos = xstart;
00033 int yPos = ystart;
00034
00035 short int x = (unsigned short int) xPos;
00036 short int y = (unsigned short int) yPos;
00037 TotalPx = 0;
00038 while(true) {
00039 PxLoc px;
00040 px.x = x; px.y = y;
00041 Pxa.push_back(px);
00042 x++;
00043 TotalPx++;
00044 if(x == xend) {
00045 x = xstart;
00046 y++;
00047 if(y == yend)
00048 break;
00049 }
00050 }
00051 }
00052
00053 u_int LinearPixelSampler::GetTotalPixels() {
00054 return TotalPx;
00055 }
00056
00057 bool LinearPixelSampler::GetNextPixel(int &xPos, int &yPos, u_int *use_pos) {
00058 u_int pos = (*use_pos);
00059 bool hasMorePixel = true;
00060 if(pos == TotalPx - 1)
00061 hasMorePixel = false;
00062
00063 xPos = Pxa[*use_pos].x;
00064 yPos = Pxa[*use_pos].y;
00065
00066 return hasMorePixel;
00067 }