GEOS  3.9.0dev
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.
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
34 namespace geos {
35 namespace algorithm {
36 class BoundaryNodeRule;
37 }
38 namespace geom {
39 class Geometry;
40 class PrecisionModel;
41 }
42 namespace geomgraph {
43 class GeometryGraph;
44 }
45 }
46
47
48 namespace geos {
49 namespace operation { // geos.operation
50
52 class GEOS_DLL GeometryGraphOperation {
53
54 public:
55
57  const geom::Geometry* g1);
58
60  const geom::Geometry* g1,
61  const algorithm::BoundaryNodeRule& boundaryNodeRule);
62
64
65  virtual ~GeometryGraphOperation();
66
67  const geom::Geometry* getArgGeometry(unsigned int i) const;
68
69 protected:
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
std::vector< geomgraph::GeometryGraph * > arg
The operation args into an array so they can be accessed by index.
Definition: GeometryGraphOperation.h:78
Specifies the precision model of the Coordinate in a Geometry.
Definition: PrecisionModel.h:87
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:188
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition: LineIntersector.h:49
The base class for operations that require GeometryGraph.
Definition: GeometryGraphOperation.h:52
An interface for rules which determine whether node points which are in boundaries of lineal geometry...
Definition: BoundaryNodeRule.h:51
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:26