GEOS
3.9.0
include
geos
geomgraph
index
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
30
namespace
geos
{
31
namespace
geomgraph {
32
namespace
index {
33
class
SegmentIntersector;
34
}
35
}
36
}
37
38
namespace
geos
{
39
namespace
geomgraph {
// geos::geomgraph
40
namespace
index {
// geos::geomgraph::index
41
45
class
GEOS_DLL
MonotoneChain
:
public
SweepLineEventOBJ {
46
private
:
47
MonotoneChainEdge
* mce;
48
size_t
chainIndex;
49
50
MonotoneChain
(
const
MonotoneChain
& other) =
delete
;
51
MonotoneChain
& operator=(
const
MonotoneChain
& rhs) =
delete
;
52
53
public
:
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
geos
Basic namespace for all GEOS functionalities.
Definition:
IndexedNestedRingTester.h:26
geos::geomgraph::index::MonotoneChain
Definition:
geomgraph/index/MonotoneChain.h:45
geos::geomgraph::index::SegmentIntersector
Computes the intersection of line segments, and adds the intersection to the edges containing the seg...
Definition:
geomgraph/index/SegmentIntersector.h:47
geos::geomgraph::index::MonotoneChainEdge
MonotoneChains are a way of partitioning the segments of an edge to allow for fast searching of inter...
Definition:
MonotoneChainEdge.h:46
Generated by
1.8.20