GEOS  3.14.0dev
SimpleEdgeSetIntersector.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 #pragma once
17 
18 #include <geos/export.h>
19 #include <vector>
20 
21 #include <geos/geomgraph/index/EdgeSetIntersector.h> // for inheritance
22 
23 // Forward declarations
24 namespace geos {
25 namespace geomgraph {
26 class Edge;
27 namespace index {
28 class SegmentIntersector;
29 }
30 }
31 }
32 
33 namespace geos {
34 namespace geomgraph { // geos::geomgraph
35 namespace index { // geos::geomgraph::index
36 
43 
44 public:
45 
47 
48  void computeIntersections(std::vector<Edge*>* edges,
49  SegmentIntersector* si, bool testAllSegments) override;
50 
51  void computeIntersections(std::vector<Edge*>* edges0,
52  std::vector<Edge*>* edges1, SegmentIntersector* si) override;
53 
54 private:
55 
56  int nOverlaps;
57 
58  void computeIntersects(Edge* e0, Edge* e1, SegmentIntersector* si);
59 };
60 
61 } // namespace geos.geomgraph.index
62 } // namespace geos.geomgraph
63 } // namespace geos
64 
Definition: geomgraph/Edge.h:63
An EdgeSetIntersector computes all the intersections between the edges in the set.
Definition: geomgraph/index/EdgeSetIntersector.h:40
Computes the intersection of line segments, and adds the intersection to the edges containing the seg...
Definition: geomgraph/index/SegmentIntersector.h:46
Finds all intersections in one or two sets of edges, using the straightforward method of comparing al...
Definition: SimpleEdgeSetIntersector.h:42
void computeIntersections(std::vector< Edge * > *edges0, std::vector< Edge * > *edges1, SegmentIntersector *si) override
Computes all mutual intersections between two sets of edges.
void computeIntersections(std::vector< Edge * > *edges, SegmentIntersector *si, bool testAllSegments) override
Computes all self-intersections between edges in a set of edges, allowing client to choose whether se...
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25