00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef GEOS_PLANARGRAPH_GRAPHCOMPONENT_H
00022 #define GEOS_PLANARGRAPH_GRAPHCOMPONENT_H
00023
00024 #include <geos/export.h>
00025
00026 namespace geos {
00027 namespace planargraph {
00028
00047 class GEOS_DLL GraphComponent {
00048
00049 protected:
00050
00052 bool isMarkedVar;
00053
00055 bool isVisitedVar;
00056
00057 public:
00058
00059 GraphComponent()
00060 :
00061 isMarkedVar(false),
00062 isVisitedVar(false)
00063 {}
00064
00065 virtual ~GraphComponent() {};
00066
00073 virtual bool isVisited() const { return isVisitedVar; }
00074
00079 virtual void setVisited(bool isVisited) { isVisitedVar=isVisited; }
00080
00089 template <typename T>
00090 static void setVisited(T start, T end, bool visited) {
00091 for(T i=start; i!=end; ++i) {
00092 (*i)->setVisited(visited);
00093 }
00094 }
00095
00104 template <typename T>
00105 static void setVisitedMap(T start, T end, bool visited) {
00106 for(T i=start; i!=end; ++i) {
00107 i->second->setVisited(visited);
00108 }
00109 }
00110
00119 template <typename T>
00120 static void setMarked(T start, T end, bool marked) {
00121 for(T i=start; i!=end; ++i) {
00122 (*i)->setMarked(marked);
00123 }
00124 }
00125
00126
00135 template <typename T>
00136 static void setMarkedMap(T start, T end, bool marked) {
00137 for(T i=start; i!=end; ++i) {
00138 i->second->setMarked(marked);
00139 }
00140 }
00141
00147 virtual bool isMarked() const { return isMarkedVar; }
00148
00153 virtual void setMarked(bool isMarked) { isMarkedVar=isMarked; }
00154
00155 };
00156
00157
00158
00159
00160 }
00161 }
00162
00163 #endif // GEOS_PLANARGRAPH_GRAPHCOMPONENT_H
00164
00165
00166
00167
00168
00169
00170
00171