GEOS 3.9.1
geomgraph/index/MonotoneChain.h
1/**********************************************************************
2 *
3 * GEOS - Geometry Engine Open Source
4 * http://geos.osgeo.org
5 *
6 * Copyright (C) 2005-2006 Refractions Research Inc.
7 * Copyright (C) 2001-2002 Vivid Solutions Inc.
8 *
9 * This is free software; you can redistribute and/or modify it under
10 * the terms of the GNU Lesser General Public Licence as published
11 * by the Free Software Foundation.
12 * See the COPYING file for more information.
13 *
14 **********************************************************************
15 *
16 * Last port: geomgraph/index/MonotoneChain.java rev. 1.3 (JTS-1.7)
17 *
18 **********************************************************************/
19
20#ifndef GEOS_GEOMGRAPH_INDEX_MONOTONECHAIN_H
21#define GEOS_GEOMGRAPH_INDEX_MONOTONECHAIN_H
22
23
24#include <geos/export.h>
25#include <geos/geomgraph/index/SweepLineEventObj.h> // for inheritance
26#include <geos/geomgraph/index/MonotoneChainEdge.h> // for inline
27#include <geos/geomgraph/index/MonotoneChain.h>
28
29// Forward declarations
30namespace geos {
31namespace geomgraph {
32namespace index {
33class SegmentIntersector;
34}
35}
36}
37
38namespace geos {
39namespace geomgraph { // geos::geomgraph
40namespace index { // geos::geomgraph::index
41
45class GEOS_DLL MonotoneChain: public SweepLineEventOBJ {
46private:
48 size_t chainIndex;
49
50 MonotoneChain(const MonotoneChain& other) = delete;
51 MonotoneChain& operator=(const MonotoneChain& rhs) = delete;
52
53public:
54
55 MonotoneChain(MonotoneChainEdge* newMce, size_t newChainIndex):
56 mce(newMce),
57 chainIndex(newChainIndex)
58 {}
59
60 ~MonotoneChain() override {}
61
62 void
63 computeIntersections(MonotoneChain* mc, SegmentIntersector* si)
64 {
65 mce->computeIntersectsForChain(chainIndex, *(mc->mce), mc->chainIndex, *si);
66 }
67};
68
69
70} // namespace geos.geomgraph.index
71} // namespace geos.geomgraph
72} // namespace geos
73
74#endif
75
MonotoneChains are a way of partitioning the segments of an edge to allow for fast searching of inter...
Definition MonotoneChainEdge.h:46
Definition geomgraph/index/MonotoneChain.h:45
Computes the intersection of line segments, and adds the intersection to the edges containing the seg...
Definition geomgraph/index/SegmentIntersector.h:47
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:26