00001
00002
00003
00004
00005 #pragma once
00006 #include "mNode.h"
00007 #include "PointList.h"
00008 #include "Point.h"
00009 #include <math.h>
00010 namespace Recognition{
00016 class Matrix
00017 {
00018 private:
00020 double Sum;
00022 void delRow(int);
00024 void delCol(int);
00026 void sumAll();
00028 mNode *origin;
00030 double dist(float x1,float x2,float y1,float y2){
00031 return hypot( (x1-x2),(y1-y2) );
00032 }
00033
00034 public:
00036 Matrix(PointList &);
00037 ~Matrix(void);
00039 void delEntry(int x){
00040 delRow(x);
00041 delCol(x);
00042 sumAll();
00043 }
00045 mNode *gOrigin(){return origin;}
00047 double sum(){return Sum;}
00049 double sum(int);
00050 double sum(mNode *);
00051
00052 double averageMinCol();
00053 mNode* getColStart(int index){
00054 mNode *cur=origin;
00055 for(int i=0;cur!=NULL;i++){
00056 if(i==index)
00057 return cur;
00058 cur=cur->r;
00059 }
00060 return NULL;
00061 }
00062 int countRows(){
00063 mNode *cur=origin;
00064 int rows=0;
00065 while(cur!=NULL){
00066 cur=cur->b;
00067 rows++;
00068 }
00069 return rows;
00070 }
00071 int countCol(){
00072 mNode *cur=origin;
00073 int col=0;
00074 while(cur!=NULL){
00075 cur=cur->r;
00076 col++;
00077 }
00078 return col;
00079 }
00080 };}