GEOS 3.15.0dev
NodableArcString.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/ArcString.h>
19#include <geos/noding/NodablePath.h>
20
21namespace geos::noding {
22
23class GEOS_DLL NodableArcString : public ArcString, public NodablePath {
24
25public:
26 NodableArcString(std::vector<geom::CircularArc> arcs, const std::shared_ptr<const geom::CoordinateSequence>& coords, bool constructZ, bool constructM, void* context);
27
28 std::unique_ptr<ArcString> clone() const;
29
30 using NodablePath::addIntersection;
31
32 void addIntersection(const geom::CoordinateXYZM& intPt, size_t segmentIndex) override {
33 m_adds[segmentIndex].push_back(intPt);
34 }
35
36 std::unique_ptr<ArcString> getNoded();
37
38private:
39 std::map<size_t, std::vector<geom::CoordinateXYZM>> m_adds;
40 bool m_constructZ = false;
41 bool m_constructM = false;
42};
43
44}
Classes to compute nodings for arrangements of line segments and line segment sequences.
Definition CoverageCleaner.h:42