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