[wadalabfont-kit] / jis2prim / PatMatch.cc  

View of /jis2prim/PatMatch.cc

Parent Directory | Revision Log
Revision: 1.1 - (download) (as text) (annotate)
Tue Aug 20 11:10:37 2002 UTC (22 years, 3 months ago) by ktanaka
Branch: MAIN
CVS Tags: SNAP-20040518, SNAP-20030702, SNAP-20030630, SNAP-20030624, HEAD
*** 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