--- /dev/null
+#ifndef DistFunc_h\r
+#define DistFunc_h\r
+\r
+class DistFunc\r
+ {\r
+public:\r
+ DistFunc();\r
+ virtual ~DistFunc();\r
+\r
+public:\r
+ virtual void SetCount(unsigned uCount);\r
+ virtual void SetDist(unsigned uIndex1, unsigned uIndex2, float dDist);\r
+\r
+ void SetName(unsigned uIndex, const char szName[]);\r
+ void SetId(unsigned uIndex, unsigned uId);\r
+ const char *GetName(unsigned uIndex) const;\r
+ unsigned GetId(unsigned uIndex) const;\r
+\r
+ virtual float GetDist(unsigned uIndex1, unsigned uIndex2) const;\r
+ virtual unsigned GetCount() const;\r
+\r
+ void LogMe() const;\r
+\r
+protected:\r
+ unsigned VectorIndex(unsigned uIndex, unsigned uIndex2) const;\r
+ unsigned VectorLength() const;\r
+\r
+private:\r
+ unsigned m_uCount;\r
+ unsigned m_uCacheCount;\r
+ float *m_Dists;\r
+ char **m_Names;\r
+ unsigned *m_Ids;\r
+ };\r
+\r
+#endif // DistFunc_h\r