GEOS 3.9.1
GeometryGraphOperation.h
1/**********************************************************************
2 *
3 * GEOS - Geometry Engine Open Source
4 * http://geos.osgeo.org
5 *
6 * Copyright (C) 2005-2006 Refractions Research Inc.
7 * Copyright (C) 2001-2002 Vivid Solutions Inc.
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 * Last port: operation/GeometryGraphOperation.java rev. 1.18 (JTS-1.10)
17 *
18 **********************************************************************/
19
20#ifndef GEOS_OPERATION_GEOMETRYGRAPHOPERATION_H
21#define GEOS_OPERATION_GEOMETRYGRAPHOPERATION_H
22
23#include <geos/export.h>
24#include <geos/algorithm/LineIntersector.h> // for composition
25
26#include <vector>
27
28#ifdef _MSC_VER
29#pragma warning(push)
30#pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
31#endif
32
33// Forward declarations
34namespace geos {
35namespace algorithm {
36class BoundaryNodeRule;
37}
38namespace geom {
39class Geometry;
40class PrecisionModel;
41}
42namespace geomgraph {
43class GeometryGraph;
44}
45}
46
47
48namespace geos {
49namespace operation { // geos.operation
50
52class GEOS_DLL GeometryGraphOperation {
53
54public:
55
57 const geom::Geometry* g1);
58
60 const geom::Geometry* g1,
61 const algorithm::BoundaryNodeRule& boundaryNodeRule);
62
64
66
67 const geom::Geometry* getArgGeometry(unsigned int i) const;
68
69protected:
70
72
73 const geom::PrecisionModel* resultPrecisionModel;
74
78 std::vector<geomgraph::GeometryGraph*> arg;
79
80 void setComputationPrecision(const geom::PrecisionModel* pm);
81};
82
83} // namespace geos.operation
84} // namespace geos
85
86#ifdef _MSC_VER
87#pragma warning(pop)
88#endif
89
90#endif
An interface for rules which determine whether node points which are in boundaries of lineal geometry...
Definition BoundaryNodeRule.h:51
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition LineIntersector.h:49
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:188
Specifies the precision model of the Coordinate in a Geometry.
Definition PrecisionModel.h:87
The base class for operations that require GeometryGraph.
Definition GeometryGraphOperation.h:52
std::vector< geomgraph::GeometryGraph * > arg
The operation args into an array so they can be accessed by index.
Definition GeometryGraphOperation.h:78
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:26