*** empty log message ***
#include "PatMatch.h" PatMatch::PatMatch(int w,int h,std::string s,const Assumption &as) :width(w), height(h), pat(s), assumption(as){ assert(pat.length() == (unsigned int)width*height); } PatMatch::PatMatch(int w,int h,std::string s, const SimpleAssumption &sa) :width(w), height(h), pat(s), assumption(){ assumption.add(sa); assert(pat.length() == (unsigned int)width*height); } int PatMatch::get(int x,int y) const{ return pat[y*width+x]; } #if 0 bool PatMatch::isMatch(const BitmapFont& bf, int x, int y) const{ for(int i=0;i<width;i++) for(int j=0;j<height;j++){ if(bf.get(x+i,y+j)){ if(get(i,j)=='.') return false; } else if(get(i,j)=='@') return false; } return true; } #endif int PatMatch::matchPenalty(const BitmapFont& bf, int x, int y) const{ int penalty=0; for(int i=0;i<width;i++) for(int j=0;j<height;j++){ if(bf.get(x+i,y+j)){ if(get(i,j)=='.') return -1; else if(get(i,j)=='*') penalty++; } else if(get(i,j)=='@') return -1; } return penalty; } std::vector<pixel> PatMatch::getPixels(int x, int y) const{ std::vector<pixel> pixels; for(int i=0;i<width;i++) for(int j=0;j<height;j++){ if(get(i,j)=='@'){ pixels.push_back(pixel(x+i,y+j)); } } return pixels; } std::ostream& operator<<(std::ostream &os,const PatMatch &pm){ return os << "PatMatch(width=" << pm.width << ",height=" << pm.height << ",pat=" << pm.pat << "," << pm.assumption << ")"; }
ktanaka Powered by ViewCVS 1.0-dev |
ViewCVS and CVS Help |