GEOS 3.15.0dev
ArcNoder.h
1/**********************************************************************
2 *
3 * GEOS - Geometry Engine Open Source
4 * http://geos.osgeo.org
5 *
6 * Copyright (C) 2025 ISciences, LLC
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 <geos/export.h>
18#include <geos/noding/ArcIntersector.h>
19#include <geos/noding/Noder.h>
20
21namespace geos::noding {
22class PathString;
23}
24
25namespace geos::noding {
26
27class GEOS_DLL ArcNoder : public Noder {
28
29public:
30 ArcNoder() = default;
31
32 explicit ArcNoder(ArcIntersector& intersector) :
33 m_intersector(&intersector) {}
34
35 ~ArcNoder() override;
36
37 void setArcIntersector(ArcIntersector& arcIntersector) {
38 m_intersector = &arcIntersector;
39 }
40
41 void computeNodes(const std::vector<SegmentString*>& segStrings) override;
42
43 std::vector<std::unique_ptr<SegmentString>> getNodedSubstrings() override;
44
45 virtual void computePathNodes(const std::vector<PathString*>& inputPaths) = 0;
46
47 virtual std::vector<std::unique_ptr<PathString>> getNodedPaths() = 0;
48
49protected:
50 ArcIntersector* m_intersector;
51};
52
53}
Classes to compute nodings for arrangements of line segments and line segment sequences.
Definition CoverageCleaner.h:42