GEOS  3.13.0dev
noding/SegmentIntersector.h
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.
11  * See the COPYING file for more information.
12  *
13  **********************************************************************/
14 
15 #pragma once
16 
17 #include <cstddef>
18 #include <geos/export.h>
19 
20 // Forward declarations
21 namespace geos {
22 namespace noding {
23 class SegmentString;
24 }
25 }
26 
27 namespace geos {
28 namespace noding { // geos.noding
29 
45 class GEOS_DLL SegmentIntersector {
46 
47 public:
48 
55  virtual void processIntersections(
56  SegmentString* e0, std::size_t segIndex0,
57  SegmentString* e1, std::size_t segIndex1) = 0;
58 
68  virtual bool
69  isDone() const
70  {
71  return false;
72  }
73 
74  virtual
76  { }
77 
78 protected:
79 
80  SegmentIntersector() {}
81 
82 };
83 
86 
87 } // namespace geos.noding
88 } // namespace geos
89 
Processes possible intersections detected by a Noder.
Definition: noding/SegmentIntersector.h:45
virtual void processIntersections(SegmentString *e0, std::size_t segIndex0, SegmentString *e1, std::size_t segIndex1)=0
virtual bool isDone() const
Reports whether the client of this class needs to continue testing all intersections in an arrangemen...
Definition: noding/SegmentIntersector.h:69
An interface for classes which represent a sequence of contiguous line segments.
Definition: SegmentString.h:47
SegmentIntersector nodingSegmentIntersector
Temporary typedef for namespace transition.
Definition: noding/SegmentIntersector.h:85
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25