Next version of JABA
[jabaws.git] / binaries / src / muscle / clustsetdf.h
1 #ifndef ClustSetDF_h\r
2 #define ClustSetDF_h\r
3 \r
4 class MSA;\r
5 class Clust;\r
6 \r
7 #include "clustset.h"\r
8 #include "distfunc.h"\r
9 #include "msa.h"\r
10 \r
11 class ClustSetDF : public ClustSet\r
12         {\r
13 public:\r
14         ClustSetDF(const DistFunc &DF) :\r
15                 m_ptrDF(&DF)\r
16                 {\r
17                 }\r
18 \r
19 public:\r
20         virtual unsigned GetLeafCount()\r
21                 {\r
22                 return m_ptrDF->GetCount();\r
23                 }\r
24         virtual const char *GetLeafName(unsigned uNodeIndex)\r
25                 {\r
26                 return m_ptrDF->GetName(uNodeIndex);\r
27                 }\r
28         virtual unsigned GetLeafId(unsigned uNodeIndex)\r
29                 {\r
30                 return m_ptrDF->GetId(uNodeIndex);\r
31                 }\r
32         virtual void JoinNodes(const Clust &C, unsigned uLeftNodeIndex,\r
33           unsigned uRightNodeIndex, unsigned uJoinedNodeIndex,\r
34           double *ptrdLeftLength, double *ptrdRightLength)\r
35                 {\r
36                 Quit("ClustSetDF::JoinNodes, should never be called");\r
37                 }\r
38         virtual double ComputeDist(const Clust &C, unsigned uNodeIndex1,\r
39           unsigned uNodeIndex2)\r
40                 {\r
41                 return m_ptrDF->GetDist(uNodeIndex1, uNodeIndex2);\r
42                 }\r
43 \r
44 private:\r
45         const DistFunc *m_ptrDF;\r
46         };\r
47 \r
48 #endif  // ClustSetDF_h\r