Open
Graph Drawing
Framework

 v.2012.05
 

NodeComparer.h
Go to the documentation of this file.
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