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
00021 #include <geos/export.h>
00022 #include <geos/geomgraph/index/SweepLineEventObj.h>
00023 #include <geos/geomgraph/index/MonotoneChainEdge.h>
00024
00025
00026 namespace geos {
00027 namespace geomgraph {
00028 class Edge;
00029 namespace index {
00030 class SegmentIntersector;
00031
00032 }
00033 }
00034 }
00035
00036 namespace geos {
00037 namespace geomgraph {
00038 namespace index {
00039
00043 class GEOS_DLL MonotoneChain: public SweepLineEventOBJ {
00044 private:
00045 MonotoneChainEdge *mce;
00046 int chainIndex;
00047
00048 public:
00049
00050 MonotoneChain(MonotoneChainEdge *newMce, int newChainIndex):
00051 mce(newMce),
00052 chainIndex(newChainIndex)
00053 {}
00054
00055 ~MonotoneChain() {}
00056
00057 void computeIntersections(MonotoneChain *mc,SegmentIntersector *si) {
00058 mce->computeIntersectsForChain(chainIndex,*(mc->mce),mc->chainIndex,*si);
00059 }
00060 };
00061
00062
00063
00064
00065 }
00066 }
00067 }
00068
00069 #endif
00070
00071
00072
00073
00074
00075
00076
00077