GEOS
3.12.0
include
geos
operation
buffer
SegmentMCIndex.h
1
/**********************************************************************
2
*
3
* GEOS - Geometry Engine Open Source
4
* http://geos.osgeo.org
5
*
6
* Copyright (C) 2021 Paul Ramsey <pramsey@cleverelephant.ca>
7
*
8
* This is free software; you can redistribute and/or modify it under
9
* the terms of the GNU Lesser General Public Licence as published
10
* by the Free Software Foundation.
11
* See the COPYING file for more information.
12
*
13
**********************************************************************/
14
15
#pragma once
16
17
#include <geos/index/chain/MonotoneChain.h>
18
#include <geos/index/strtree/TemplateSTRtree.h>
19
20
21
// Forward declarations
22
namespace
geos
{
23
namespace
geom {
24
class
CoordinateSequence
;
25
class
Envelope
;
26
}
27
}
28
29
using
geos::geom::CoordinateSequence
;
30
using
geos::geom::Envelope
;
31
using namespace
geos::index
;
32
33
namespace
geos
{
34
namespace
operation {
35
namespace
buffer {
36
37
class
GEOS_DLL SegmentMCIndex {
38
39
private
:
40
41
strtree::TemplateSTRtree<const index::chain::MonotoneChain*> index;
42
std::vector<chain::MonotoneChain> segChains;
43
44
void
buildIndex(
const
CoordinateSequence
* segs);
45
46
public
:
47
48
SegmentMCIndex(
const
CoordinateSequence
* segs);
49
50
void
query(
const
Envelope
* env,
chain::MonotoneChainSelectAction
& action);
51
};
52
53
54
}
// geos.operation.buffer
55
}
// geos.operation
56
}
// geos
geos::index::chain::MonotoneChainSelectAction
Definition:
MonotoneChainSelectAction.h:44
geos
Basic namespace for all GEOS functionalities.
Definition:
Angle.h:25
geos::geom::CoordinateSequence
The internal representation of a list of coordinates inside a Geometry.
Definition:
CoordinateSequence.h:56
geos::geom::Envelope
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition:
Envelope.h:58
geos::index
Provides classes for various kinds of spatial indexes.
Definition:
DiscreteFrechetDistance.h:50
Generated by
1.8.20