GEOS  3.9.0dev
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2006 Refractions Research Inc.
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.
12  *
13  **********************************************************************
14  *
15  * Last port: noding/IntersectionFinderAdder.java rev. 1.5 (JTS-1.9)
16  *
17  **********************************************************************/
18
21
22 #include <geos/export.h>
23
24 #include <vector>
25 #include <iostream>
26
27 #include <geos/inline.h>
28
29 #include <geos/geom/Coordinate.h> // for use in vector
30 #include <geos/noding/SegmentIntersector.h> // for inheritance
31
32 // Forward declarations
33 namespace geos {
34 namespace geom {
35 class Coordinate;
36 }
37 namespace noding {
38 class SegmentString;
39 }
40 namespace algorithm {
41 class LineIntersector;
42 }
43 }
44
45 namespace geos {
46 namespace noding { // geos.noding
47
54
55 public:
56
65  std::vector<geom::Coordinate>& v)
66  :
67  li(newLi),
68  interiorIntersections(v)
69  {}
70
81  void processIntersections(
82  SegmentString* e0, size_t segIndex0,
83  SegmentString* e1, size_t segIndex1) override;
84
85  std::vector<geom::Coordinate>&
86  getInteriorIntersections()
87  {
88  return interiorIntersections;
89  }
90
96  bool
97  isDone() const override
98  {
99  return false;
100  }
101
102 private:
104  std::vector<geom::Coordinate>& interiorIntersections;
105
106  // Declare type as noncopyable
109 };
110
111 } // namespace geos.noding
112 } // namespace geos
113
Finds proper and interior intersections in a set of SegmentStrings, and adds them as nodes...