00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef GEOS_GEOMGRAPH_INDEX_MONOTONECHAIN_H
00022 #define GEOS_GEOMGRAPH_INDEX_MONOTONECHAIN_H
00023
00024
00025 #include <geos/export.h>
00026 #include <geos/geomgraph/index/SweepLineEventObj.h>
00027 #include <geos/geomgraph/index/MonotoneChainEdge.h>
00028
00029
00030 namespace geos {
00031 namespace geomgraph {
00032 namespace index {
00033 class SegmentIntersector;
00034 }
00035 }
00036 }
00037
00038 namespace geos {
00039 namespace geomgraph {
00040 namespace index {
00041
00045 class GEOS_DLL MonotoneChain: public SweepLineEventOBJ {
00046 private:
00047 MonotoneChainEdge *mce;
00048 int chainIndex;
00049
00050 public:
00051
00052 MonotoneChain(MonotoneChainEdge *newMce, int newChainIndex):
00053 mce(newMce),
00054 chainIndex(newChainIndex)
00055 {}
00056
00057 ~MonotoneChain() {}
00058
00059 void computeIntersections(MonotoneChain *mc,SegmentIntersector *si) {
00060 mce->computeIntersectsForChain(chainIndex,*(mc->mce),mc->chainIndex,*si);
00061 }
00062 };
00063
00064
00065
00066
00067 }
00068 }
00069 }
00070
00071 #endif
00072
00073
00074
00075
00076
00077
00078
00079