00001
00009 class Matching
00010 {
00011 public:
00012 double r1,r2,r3;
00013 int l1,l2;
00014
00015 Matching();
00016 Matching(int,int,double,double,double);
00017
00018 bool sameOne(Matching &);
00019 bool sameTwo(Matching &);
00020 bool isUpperMatching(Matching &);
00021 };
00022
00026 class CMatch
00027 {
00028 protected:
00029 double th;
00030
00031 deque<OLine*> la;
00032 deque<Matching> ms;
00033 deque<OGraphic*> pa;
00034
00035 bool isLineLoop(OHL*);
00036 void closeLoop(OHL*);
00037 void match();
00038
00039 void findMatching();
00040 bool toMatch(OLine &,OLine &);
00041 void matching(int,int);
00042 double gapStroke(OLine &,OLine &);
00043
00044 void dualMatchingFilter();
00045 void strokeFilter();
00046 void fuzzySort();
00047 void performMatching();
00048
00049 void printTabMatching();
00050 void printMatching(int);
00051
00052 public:
00053 CMatch();
00054 ~CMatch();
00055 deque<OGraphic*> match(deque<OHL*> & ha,double );
00056 };
00057