/src/geos/include/geos/noding/ArcNoder.h
Line | Count | Source |
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 | | |
21 | | namespace geos::noding { |
22 | | class PathString; |
23 | | } |
24 | | |
25 | | namespace geos::noding { |
26 | | |
27 | | class GEOS_DLL ArcNoder : public Noder { |
28 | | |
29 | | public: |
30 | 0 | ArcNoder() = default; |
31 | | |
32 | | explicit ArcNoder(ArcIntersector& intersector) : |
33 | 0 | m_intersector(&intersector) {} |
34 | | |
35 | | ~ArcNoder() override; |
36 | | |
37 | 0 | void setArcIntersector(ArcIntersector& arcIntersector) { |
38 | 0 | m_intersector = &arcIntersector; |
39 | 0 | } |
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 | | |
49 | | protected: |
50 | | ArcIntersector* m_intersector; |
51 | | }; |
52 | | |
53 | | } |