00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GEOS_PLANARGRAPH_GRAPHCOMPONENT_H
00018 #define GEOS_PLANARGRAPH_GRAPHCOMPONENT_H
00019
00020 namespace geos {
00021 namespace planargraph {
00022
00043 class GraphComponent {
00044
00045 protected:
00046
00048 bool isMarkedVar;
00049
00051 bool isVisitedVar;
00052
00053 public:
00054
00055 GraphComponent()
00056 :
00057 isMarkedVar(false),
00058 isVisitedVar(false)
00059 {}
00060
00061 virtual ~GraphComponent() {};
00062
00069 virtual bool isVisited() const { return isVisitedVar; }
00070
00075 virtual void setVisited(bool isVisited) { isVisitedVar=isVisited; }
00076
00085 template <typename T>
00086 static void setVisited(T start, T end, bool visited) {
00087 for(T i=start; i!=end; ++i) {
00088
00089 (*i)->setVisited(visited);
00090 }
00091 }
00092
00101 template <typename T>
00102 static void setVisitedMap(T start, T end, bool visited) {
00103 for(T i=start; i!=end; ++i) {
00104 i->second->setVisited(visited);
00105 }
00106 }
00107
00113 virtual bool isMarked() const { return isMarkedVar; }
00114
00119 virtual void setMarked(bool isMarked) { isMarkedVar=isMarked; }
00120
00121 };
00122
00123
00124
00125
00126 }
00127 }
00128
00129 #endif // GEOS_PLANARGRAPH_GRAPHCOMPONENT_H
00130
00131
00132
00133
00134
00135
00136
00137