GEOS  3.8.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.
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
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:25