GEOS 3.15.0dev
DissolveEdgeGraph.h
1/**********************************************************************
2 *
3 * GEOS - Geometry Engine Open Source
4 * http://geos.osgeo.org
5 *
6 * Copyright (c) 2025 Martin Davis
7 * Copyright (C) 2025 Paul Ramsey <pramsey@cleverelephant.ca>
8 *
9 * This is free software; you can redistribute and/or modify it under
10 * the terms of the GNU Lesser General Public Licence as published
11 * by the Free Software Foundation.
12 * See the COPYING file for more information.
13 *
14 **********************************************************************/
15
16#pragma once
17
18#include <geos/edgegraph/EdgeGraph.h>
19#include <geos/export.h>
20#include <geos/dissolve/DissolveHalfEdge.h>
21
22#include <deque>
23
24// Forward declarations
25namespace geos {
26namespace geom {
27 class CoordinateXYZM;
28}
29namespace edgegraph {
30 class HalfEdge;
31}
32namespace dissolve {
33 // class DissolveHalfEdge;
34}
35}
36
37
38namespace geos { // geos.
39namespace dissolve { // geos.dissolve
40
41
42class GEOS_DLL DissolveEdgeGraph : public edgegraph::EdgeGraph {
43
44
45private:
46
47 std::deque<DissolveHalfEdge> dhEdges;
48
49public:
50
51 edgegraph::HalfEdge* createEdge(const geom::CoordinateXYZM& p0) override;
52
53 DissolveEdgeGraph() {};
54 ~DissolveEdgeGraph() {};
55
61 DissolveEdgeGraph(const DissolveEdgeGraph&) = delete;
62 DissolveEdgeGraph& operator=(const DissolveEdgeGraph&) = delete;
63
64};
65
66} // namespace geos.dissolve
67} // namespace geos
68
Basic namespace for all GEOS functionalities.
Definition geos.h:38