#include "BitmapFont.h" int BitmapFont::getWidth() const { return width; } int BitmapFont::getHeight() const { return height; } int BitmapFont::getSize() const { return width*height; } int BitmapFont::getPixelSize() const { return pixels.size(); } pixel BitmapFont::getPixelAt(int index) const { return pixels[index]; } BitmapFont::BitmapFont(){} BitmapFont::BitmapFont(const BitmapFont& b){ width=b.width; height=b.height; bitmap=b.bitmap; pixels=b.pixels; } BitmapFont::BitmapFont(int w,int h) :width(w),height(h),bitmap(w*h,false){ } BitmapFont::BitmapFont(int w,int h,const std::vector &pxls) :width(w),height(h),bitmap(w*h,false),pixels(pxls){ std::vector::iterator it; for(it=pixels.begin();it!=pixels.end();it++){ int x=it->first, y=it->second; assert(0<= x && x=0 && val<16); for(int i=0;i<4;i++){ bool pixel=false; if((val&(1<<(3-i)))!=0){ pixel=true; } bitmap.push_back(pixel); } } for(int y=0;y(x,y)); } bool BitmapFont::get(int x, int y) const{ if(x<0 || x>=width || y<0 || y>=height){ return false; } return bitmap[y*width+x]; } int BitmapFont::getIndex(const pixel &px) const{ std::vector::const_iterator it=find(pixels.begin(),pixels.end(),px); if(it!=pixels.end()){ return it-pixels.begin(); } return -1; } ostream& operator<<(ostream &os,const BitmapFont &bf){ #if 0 os << "width= " << bf.getWidth() <<",height=" << bf.getHeight() <<"\n"; #endif for(int y=0;y::iterator it; for(it=bf.pixels.begin();it!=bf.pixels.end();it++) os << '(' << (*it).first << ',' << (*it).second << ')'; os << "\n"; #endif return os; }