GEOS 3.14.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
24namespace geos {
25namespace algorithm {
26class LineIntersector;
27}
28namespace geom {
29class Geometry;
30}
31}
32
33namespace geos {
34namespace noding { // geos.noding
35
50class GEOS_DLL ValidatingNoder : public Noder {
51
52private:
53
54 std::vector<SegmentString*>* nodedSS;
55 noding::Noder& noder;
56
57
58public:
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 geos.h:39