GEOS 3.13.1
MarkHalfEdge.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
16#pragma once
17
18#include <geos/geom/Coordinate.h>
19
20#include <geos/export.h>
21#include <string>
22#include <cassert>
23
24namespace geos {
25namespace edgegraph { // geos.edgegraph
26
27class GEOS_DLL MarkHalfEdge : public HalfEdge {
28
29private:
30
31 bool m_isMarked;
32
33public:
34
40 MarkHalfEdge(const geom::CoordinateXYZM& p_orig) :
41 HalfEdge(p_orig),
42 m_isMarked(false)
43 {};
44
51 static bool isMarked(HalfEdge* e);
52
58 static void mark(HalfEdge* e);
59
66 static void setMark(HalfEdge* e, bool isMarked);
67
74 static void setMarkBoth(HalfEdge* e, bool isMarked);
75
81 static void markBoth(HalfEdge* e);
82
88 bool isMarked() const { return m_isMarked; }
89
94 void mark() { m_isMarked = true; }
95
101 void setMark(bool p_isMarked) { m_isMarked = p_isMarked; }
102
103};
104
105
106} // namespace geos.edgegraph
107} // namespace geos
108
109
110
Basic namespace for all GEOS functionalities.
Definition geos.h:39