GraphDrawingAttributes.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef _GraphDrawingAttributes_H_
00009 #define _GraphDrawingAttributes_H_
00010
00011
00012 #include "tuples.h"
00013 #include "map"
00014 #include "set"
00015 using namespace std;
00016
00017
00018
00019
00020
00021
00022 class GraphDrawingAttributes
00023 {
00025
00026
00027
00029
00030 public:
00031
00032 typedef triple< int , int , int > COLOR;
00033 enum NODESHAPE {
00034 box , polygon , ellipse , circle , point , egg , triangle , plaintext , diamond , trapezium ,
00035 parallelogram , house , pentagon , hexagon , septagon , octagon , doublecircle , doubleoctagon ,
00036 tripleoctagon , invtriangle , invtrapezium , invhouse , Mdiamond , Msquare , Mcircle , rect ,
00037 rectangle , none };
00038
00040
00041
00042
00044 public:
00045
00046 GraphDrawingAttributes( ) :
00047 theDefaultNodeColor( 0 , 120 , 120 ),
00048 theDefaultNodeShape( circle ) { }
00049
00050
00052
00053
00054
00056 public:
00057
00059 void setNodeColor( int v , const COLOR& c ) { nodeColor[v] = c; }
00061 COLOR getNodeColor( int v ) const {
00062 if( nodeColor.find(v)==nodeColor.end( ) )
00063 return theDefaultNodeColor;
00064 return nodeColor[v];
00065 }
00066
00068 void setNodeShape( int v , const NODESHAPE& s ) { nodeShape[v] = s; }
00070 NODESHAPE getNodeShape( int v ) const {
00071 if( nodeShape.find(v)==nodeShape.end( ) )
00072 return theDefaultNodeShape;
00073 return nodeShape[v];
00074 }
00075
00076 void setDefaultNodeShape( const NODESHAPE& s ) { theDefaultNodeShape = s; }
00077
00078 static const map< int , string >& getNodeShapeNames( ) { return nodeShapeNames; }
00079
00080
00082
00083
00084
00086 private:
00087
00088 static map< int , string > initializeNodeShapeNames( );
00089
00091
00092
00093
00095 private:
00096
00097
00098 COLOR theDefaultNodeColor;
00099
00100 map< int , COLOR > nodeColor;
00101
00102 static map< int , string > nodeShapeNames;
00103
00104 NODESHAPE theDefaultNodeShape;
00105
00106 map< int , NODESHAPE > nodeShape;
00107 };
00108
00109
00110 #endif
00111