00001 /* #start# *********************************************************** 00002 00003 Scheduling Simulator 00004 Lehrstuhl f"ur Effiziente Algorithmen 00005 Technische Universit"at M"unchen 00006 00007 File : $Id: SVisPrecDAG.h,v 1.5 2003/01/08 18:57:12 meierb Exp $ 00008 00009 Purpose : part of the DAG-datastructure which pertains to visualization 00010 00011 RCS-Log: 00012 $Log: SVisPrecDAG.h,v $ 00013 Revision 1.5 2003/01/08 18:57:12 meierb 00014 added randomized release times 00015 00016 Revision 1.1.1.1 2002/12/02 22:26:19 meierb 00017 my_schedule 00018 00019 Revision 1.3 2002/11/11 16:52:52 taeubig 00020 header include changes 00021 00022 Revision 1.2 2002/11/07 12:33:25 taeubig 00023 Added class keyword to friend declaration 00024 00025 Revision 1.1 2002/08/29 12:59:58 taeubig 00026 Added the sources 00027 00028 Revision 1.9 2000/05/24 12:46:37 taeubig 00029 New compiler (gcc-2.95) and new Qt (2.1) 00030 Replaced "list" by "leda_list" etc. 00031 00032 Revision 1.8 2000/01/17 17:38:04 zoidl 00033 added javadoc comments 00034 00035 Revision 1.7 2000/01/03 12:30:12 zoidl 00036 default pos of new node is (-1,-1) now 00037 00038 Revision 1.6 1999/11/23 19:48:56 zoidl 00039 filled modifier for SVisPrecDAG 00040 00041 Revision 1.5 1999/11/19 16:11:04 hall 00042 changed SObserver::update( SEvent & ) to ...( const SEvent & ) 00043 00044 Revision 1.4 1999/11/19 14:53:27 hall 00045 SSetTopology.setSize(..) implemented, SVisPrecDAG enhanced 00046 00047 Revision 1.3 1999/10/18 08:25:14 schickin 00048 just cosmetic changes 00049 00050 00051 * #end# ************************************************************* */ 00052 00053 00054 #ifndef SVISPRECDAG_H 00055 #define SVISPRECDAG_H 00056 00057 // system header files 00058 #include <LEDA/point.h> 00059 #include <LEDA/node_map.h> 00060 #include <LEDA/graph.h> 00061 00062 // project header files 00063 #include "../general/SObservable.h" 00064 #include "STSysVisEvent.h" 00065 #include "SVisPrecDAGMod.h" 00066 00067 class SPrecDAG; 00068 00069 // ----------------------------------------------------------------------- 00073 class SVisPrecDAG : public SObservable { 00074 friend class SVisPrecDAGMod; 00075 public: 00078 SVisPrecDAG(SPrecDAG &precDAG); 00079 00082 SVisPrecDAGMod &getModifier() { return _mod; }; 00083 00086 void setPos(leda_node v, const leda_point &p); 00087 00090 const leda_point &getPos(leda_node v) const { return _posMap[v]; }; 00091 00094 void setBends(leda_edge e, const leda_list<leda_point> &bends); 00095 00098 const leda_list<leda_point> &getBends(leda_edge e) const { return _bendsMap[e]; }; 00099 00100 private: 00101 SPrecDAG &_precDAG; 00102 SVisPrecDAGMod _mod; 00103 leda_node_map<leda_point> _posMap; 00104 leda_edge_map<leda_list<leda_point> > _bendsMap; 00105 }; 00106 00107 #endif //SVISPRECDAG_H