00001 /* 00002 * $Revision: 2299 $ 00003 * 00004 * last checkin: 00005 * $Author: gutwenger $ 00006 * $Date: 2012-05-07 15:57:08 +0200 (Mon, 07 May 2012) $ 00007 ***************************************************************/ 00008 00044 #ifdef _MSC_VER 00045 #pragma once 00046 #endif 00047 00048 00049 #ifndef OGDF_NODECOMPARER_H 00050 #define OGDF_NODECOMPARER_H 00051 00052 #include <ogdf/basic/basic.h> 00053 00054 namespace ogdf { 00055 00056 template<class sorterType> 00057 class NodeComparer 00058 { 00059 public: 00060 NodeComparer(NodeArray<sorterType> &valArray, bool ascending = true) 00061 : m_valArray(&valArray) 00062 { 00063 if (ascending) 00064 { 00065 m_smaller = -1; 00066 // m_greater = 1; 00067 }//if 00068 else 00069 { 00070 m_smaller = 1; 00071 // m_greater = -1; 00072 } 00073 00074 }//constructor 00075 00076 int compare(const node &v1, const node &v2) const 00077 { 00078 if ((*m_valArray)[v1] < (*m_valArray)[v2]) return m_smaller; 00079 else if ((*m_valArray)[v1] > (*m_valArray)[v2]) return -m_smaller;//m_greater; 00080 else return 0; 00081 } 00082 00083 void init(NodeArray<sorterType> &valArray) {m_valArray = &valArray;} 00084 00085 OGDF_AUGMENT_COMPARER(node) 00086 00087 private: 00088 NodeArray<sorterType> *m_valArray; 00089 int m_smaller; 00090 // int m_greater; 00091 00092 };//NodeComparer 00093 00094 00095 }//namespace 00096 00097 #endif 00098