GEOS  3.13.0dev
ValidatingNoder.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2020 Paul Ramsey <pramsey@cleverelephant.ca>
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 
18 #include <geos/export.h>
19 #include <geos/noding/Noder.h>
20 
21 #include <memory> // for unique_ptr
22 
23 // Forward declarations
24 namespace geos {
25 namespace algorithm {
26 class LineIntersector;
27 }
28 namespace geom {
29 class Geometry;
30 }
31 }
32 
33 namespace geos {
34 namespace noding { // geos.noding
35 
50 class GEOS_DLL ValidatingNoder : public Noder {
51 
52 private:
53 
54  std::vector<SegmentString*>* nodedSS;
55  noding::Noder& noder;
56 
57 
58 public:
59 
60  ValidatingNoder(Noder& noderArg)
61  : noder(noderArg)
62  {}
63 
64  void computeNodes(std::vector<SegmentString*>* segStrings) override;
65 
66  void validate();
67 
68  std::vector<SegmentString*>* getNodedSubstrings() const override;
69 
70 };
71 
72 } // namespace geos.noding
73 } // namespace geos
74 
Computes all intersections between segments in a set of SegmentString.
Definition: Noder.h:46
Definition: ValidatingNoder.h:50
std::vector< SegmentString * > * getNodedSubstrings() const override
Returns a collection of fully noded SegmentStrings. The SegmentStrings have the same context as their...
void computeNodes(std::vector< SegmentString * > *segStrings) override
Computes the noding for a collection of SegmentStrings.
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25