GEOS 3.6.2
EdgeString.h
1/**********************************************************************
2 *
3 * GEOS - Geometry Engine Open Source
4 * http://geos.osgeo.org
5 *
6 * Copyright (C) 2011 Sandro Santilli <strk@keybit.net>
7 * Copyright (C) 2006 Refractions Research Inc.
8 * Copyright (C) 2001-2002 Vivid Solutions Inc.
9 *
10 * This is free software; you can redistribute and/or modify it under
11 * the terms of the GNU Lesser General Public Licence as published
12 * by the Free Software Foundation.
13 * See the COPYING file for more information.
14 *
15 **********************************************************************
16 *
17 * Last port: operation/linemerge/EdgeString.java r378 (JTS-1.12)
18 *
19 **********************************************************************/
20
21#ifndef GEOS_OP_LINEMERGE_EDGESTRING_H
22#define GEOS_OP_LINEMERGE_EDGESTRING_H
23
24#include <geos/export.h>
25#include <vector>
26
27#ifdef _MSC_VER
28#pragma warning(push)
29#pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
30#endif
31
32// Forward declarations
33namespace geos {
34 namespace geom {
35 class GeometryFactory;
37 class LineString;
38 }
39 namespace operation {
40 namespace linemerge {
42 }
43 }
44}
45
46namespace geos {
47namespace operation { // geos::operation
48namespace linemerge { // geos::operation::linemerge
49
55class GEOS_DLL EdgeString {
56private:
57 const geom::GeometryFactory *factory;
58 std::vector<LineMergeDirectedEdge*> directedEdges;
59 geom::CoordinateSequence *coordinates;
60 geom::CoordinateSequence* getCoordinates();
61public:
62 /*
63 * \brief
64 * Constructs an EdgeString with the given factory used to
65 * convert this EdgeString to a LineString
66 */
67 EdgeString(const geom::GeometryFactory *newFactory);
68
69 ~EdgeString();
70
74 void add(LineMergeDirectedEdge *directedEdge);
75
76 /*
77 * Converts this EdgeString into a LineString.
78 */
79 geom::LineString* toLineString();
80};
81
82} // namespace geos::operation::linemerge
83} // namespace geos::operation
84} // namespace geos
85
86#ifdef _MSC_VER
87#pragma warning(pop)
88#endif
89
90#endif // GEOS_OP_LINEMERGE_EDGESTRING_H
The internal representation of a list of coordinates inside a Geometry.
Definition CoordinateSequence.h:59
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:67
Definition LineString.h:70
void add(LineMergeDirectedEdge *directedEdge)
A planargraph::DirectedEdge of a LineMergeGraph.
Definition LineMergeDirectedEdge.h:47
Contains the Geometry interface hierarchy and supporting classes.
Definition IndexedNestedRingTester.h:26
Line merging package.
Definition EdgeString.h:40
Provides classes for implementing operations on geometries.
Definition IndexedNestedRingTester.h:40
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25