GEOS  3.9.1dev
SegmentIntersectionTester.h
Go to the documentation of this file.
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 #ifndef GEOS_OP_PREDICATE_SEGMENTINTERSECTIONTESTER_H
21 #define GEOS_OP_PREDICATE_SEGMENTINTERSECTIONTESTER_H
22 
23 #include <geos/export.h>
24 
25 #include <geos/algorithm/LineIntersector.h> // for composition
26 #include <geos/geom/Coordinate.h> // for composition
27 
28 // Forward declarations
29 namespace geos {
30 namespace geom {
31 class LineString;
32 class CoordinateSequence;
33 }
34 }
35 
36 namespace geos {
37 namespace operation { // geos::operation
38 namespace predicate { // geos::operation::predicate
39 
49 
50 private:
51 
57 
59 
60 public:
61 
62  SegmentIntersectionTester(): hasIntersectionVar(false) {}
63 
64  bool hasIntersectionWithLineStrings(const geom::LineString& line,
65  const std::vector<const geom::LineString*>& lines);
66 
67  bool hasIntersection(const geom::LineString& line,
68  const geom::LineString& testLine);
69 
84  bool hasIntersectionWithEnvelopeFilter(const geom::LineString& line,
85  const geom::LineString& testLine);
86 
87 
88 };
89 
90 } // namespace geos::operation::predicate
91 } // namespace geos::operation
92 } // namespace geos
93 
94 #endif // ifndef GEOS_OP_PREDICATE_SEGMENTINTERSECTIONTESTER_H
#define GEOS_DLL
Definition: export.h:28
algorithm::LineIntersector li
For purposes of intersection testing, don&#39;t need to set precision model.
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Tests if any line segments in two sets of CoordinateSequences intersect.
Basic namespace for all GEOS functionalities.