GEOS
3.12.0
include
geos
operation
predicate
SegmentIntersectionTester.h
1
/**********************************************************************
2
*
3
* GEOS - Geometry Engine Open Source
4
* http://geos.osgeo.org
5
*
6
* Copyright (C) 2011 Sandro Santilli <strk@kbt.io>
7
* Copyright (C) 2006 Refractions Research 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: operation/predicate/SegmentIntersectionTester.java r378 (JTS-1.12)
17
*
18
**********************************************************************/
19
20
#pragma once
21
22
#include <geos/export.h>
23
24
#include <geos/algorithm/LineIntersector.h>
// for composition
25
#include <geos/geom/Coordinate.h>
// for composition
26
27
// Forward declarations
28
namespace
geos
{
29
namespace
geom {
30
class
LineString;
31
class
CoordinateSequence;
32
}
33
}
34
35
namespace
geos
{
36
namespace
operation {
// geos::operation
37
namespace
predicate {
// geos::operation::predicate
38
47
class
GEOS_DLL
SegmentIntersectionTester
{
48
49
private
:
50
55
algorithm::LineIntersector
li;
// Robust
56
57
bool
hasIntersectionVar;
58
59
public
:
60
61
SegmentIntersectionTester
(): hasIntersectionVar(
false
) {}
62
63
bool
hasIntersectionWithLineStrings(
const
geom::LineString
& line,
64
const
std::vector<const geom::LineString*>& lines);
65
66
bool
hasIntersection(
const
geom::LineString
& line,
67
const
geom::LineString
& testLine);
68
83
bool
hasIntersectionWithEnvelopeFilter
(
const
geom::LineString
& line,
84
const
geom::LineString
& testLine);
85
86
87
};
88
89
}
// namespace geos::operation::predicate
90
}
// namespace geos::operation
91
}
// namespace geos
geos
Basic namespace for all GEOS functionalities.
Definition:
Angle.h:25
geos::algorithm::LineIntersector
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition:
LineIntersector.h:53
geos::geom::LineString
Definition:
LineString.h:65
geos::operation::predicate::SegmentIntersectionTester::hasIntersectionWithEnvelopeFilter
bool hasIntersectionWithEnvelopeFilter(const geom::LineString &line, const geom::LineString &testLine)
geos::operation::predicate::SegmentIntersectionTester
Tests if any line segments in two sets of CoordinateSequences intersect.
Definition:
SegmentIntersectionTester.h:47
Generated by
1.8.20