GEOS  3.3.3
RelateOp.h
1 /**********************************************************************
2  * $Id: RelateOp.h 2557 2009-06-08 09:30:55Z strk $
3  *
4  * GEOS - Geometry Engine Open Source
5  * http://geos.refractions.net
6  *
7  * Copyright (C) 2006 Refractions Research 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/relate/RelateOp.java rev. 1.19 (JTS-1.10)
17  *
18  **********************************************************************/
19 
20 #ifndef GEOS_OP_RELATE_RELATEOP_H
21 #define GEOS_OP_RELATE_RELATEOP_H
22 
23 #include <geos/export.h>
24 
25 #include <geos/operation/GeometryGraphOperation.h> // for inheritance
26 #include <geos/operation/relate/RelateComputer.h> // for composition
27 
28 // Forward declarations
29 namespace geos {
30  namespace algorithm {
31  class BoundaryNodeRule;
32  }
33  namespace geom {
34  class IntersectionMatrix;
35  class Geometry;
36  }
37 }
38 
39 
40 namespace geos {
41 namespace operation { // geos::operation
42 namespace relate { // geos::operation::relate
43 
58 class GEOS_DLL RelateOp: public GeometryGraphOperation {
59 
60 public:
61 
73  static geom::IntersectionMatrix* relate(
74  const geom::Geometry *a,
75  const geom::Geometry *b);
76 
89  static geom::IntersectionMatrix* relate(
90  const geom::Geometry *a,
91  const geom::Geometry *b,
92  const algorithm::BoundaryNodeRule& boundaryNodeRule);
93 
101  RelateOp(const geom::Geometry *g0,
102  const geom::Geometry *g1);
103 
112  RelateOp(const geom::Geometry *g0,
113  const geom::Geometry *g1,
114  const algorithm::BoundaryNodeRule& boundaryNodeRule);
115 
116  virtual ~RelateOp();
117 
126  geom::IntersectionMatrix* getIntersectionMatrix();
127 
128 private:
129 
130  RelateComputer relateComp;
131 };
132 
133 
134 } // namespace geos:operation:relate
135 } // namespace geos:operation
136 } // namespace geos
137 
138 #endif // GEOS_OP_RELATE_RELATEOP_H
139 
140 /**********************************************************************
141  * $Log$
142  * Revision 1.1 2006/03/21 13:11:29 strk
143  * opRelate.h header split
144  *
145  **********************************************************************/
146