public: |
public: |
int getWidth() const { return width; } |
int getWidth() const { return width; } |
int getHeight() const { return height; } |
int getHeight() const { return height; } |
|
int getSize() const { return width*height; } |
|
int getPixelSize() const { return pixels.size(); } |
|
pixel getPixelAt(int index) const { return pixels[index]; } |
BitmapFont(){} |
BitmapFont(){} |
BitmapFont(const BitmapFont& b){ |
BitmapFont(const BitmapFont& b){ |
width=b.width; |
width=b.width; |
} |
} |
BitmapFont(int w,int h) :width(w),height(h),bitmap(w*h,false){ |
BitmapFont(int w,int h) :width(w),height(h),bitmap(w*h,false){ |
} |
} |
|
BitmapFont(int w,int h,const vector<pixel> &pxls) |
|
:width(w),height(h),pixels(pxls),bitmap(w*h,false){ |
|
vector<pixel>::iterator it; |
|
for(it=pixels.begin();it!=pixels.end();it++){ |
|
int x=it->first, y=it->second; |
|
assert(0<= x && x<width && 0<=y && y<height); |
|
bitmap[y*width+x]=true; |
|
} |
|
} |
// 暗黙のうちに幅が4ビットの倍数だと仮定している。 |
// 暗黙のうちに幅が4ビットの倍数だと仮定している。 |
BitmapFont(int w,int h,const string& hex) :width(w),height(h),bitmap(){ |
BitmapFont(int w,int h,const string& hex) :width(w),height(h),bitmap(){ |
for(string::const_iterator it=hex.begin();it!=hex.end();it++){ |
for(string::const_iterator it=hex.begin();it!=hex.end();it++){ |
} |
} |
return bitmap[y*width+x]; |
return bitmap[y*width+x]; |
} |
} |
int getIndex(const pixel &px){ |
int getIndex(const pixel &px) const{ |
vector<pixel>::iterator it=find(pixels.begin(),pixels.end(),px); |
vector<pixel>::const_iterator it=find(pixels.begin(),pixels.end(),px); |
if(it!=pixels.end()){ |
if(it!=pixels.end()){ |
return it-pixels.begin(); |
return it-pixels.begin(); |
} |
} |