GEOS 3.4.2

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

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
56 GeometryGraphOperation(const geom::Geometry *g0,
57 const geom::Geometry *g1);
58
59 GeometryGraphOperation(const geom::Geometry *g0,
60 const geom::Geometry *g1,
61 const algorithm::BoundaryNodeRule& boundaryNodeRule);
62
63 GeometryGraphOperation(const geom::Geometry *g0);
64
65 virtual ~GeometryGraphOperation();
66
67 const geom::Geometry* getArgGeometry(unsigned int i) const;
68
69 protected:
70
71 algorithm::LineIntersector li;
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