00001 /********************************************************************** 00002 * $Id: RelateOp.h 2557 2009-06-08 09:30:55Z strk $ 00003 * 00004 * GEOS - Geometry Engine Open Source 00005 * http://geos.refractions.net 00006 * 00007 * Copyright (C) 2006 Refractions Research Inc. 00008 * 00009 * This is free software; you can redistribute and/or modify it under 00010 * the terms of the GNU Lesser General Public Licence as published 00011 * by the Free Software Foundation. 00012 * See the COPYING file for more information. 00013 * 00014 ********************************************************************** 00015 * 00016 * Last port: operation/relate/RelateOp.java rev. 1.19 (JTS-1.10) 00017 * 00018 **********************************************************************/ 00019 00020 #ifndef GEOS_OP_RELATE_RELATEOP_H 00021 #define GEOS_OP_RELATE_RELATEOP_H 00022 00023 #include <geos/export.h> 00024 00025 #include <geos/operation/GeometryGraphOperation.h> // for inheritance 00026 #include <geos/operation/relate/RelateComputer.h> // for composition 00027 00028 // Forward declarations 00029 namespace geos { 00030 namespace algorithm { 00031 class BoundaryNodeRule; 00032 } 00033 namespace geom { 00034 class IntersectionMatrix; 00035 class Geometry; 00036 } 00037 } 00038 00039 00040 namespace geos { 00041 namespace operation { // geos::operation 00042 namespace relate { // geos::operation::relate 00043 00058 class GEOS_DLL RelateOp: public GeometryGraphOperation { 00059 00060 public: 00061 00073 static geom::IntersectionMatrix* relate( 00074 const geom::Geometry *a, 00075 const geom::Geometry *b); 00076 00089 static geom::IntersectionMatrix* relate( 00090 const geom::Geometry *a, 00091 const geom::Geometry *b, 00092 const algorithm::BoundaryNodeRule& boundaryNodeRule); 00093 00101 RelateOp(const geom::Geometry *g0, 00102 const geom::Geometry *g1); 00103 00112 RelateOp(const geom::Geometry *g0, 00113 const geom::Geometry *g1, 00114 const algorithm::BoundaryNodeRule& boundaryNodeRule); 00115 00116 virtual ~RelateOp(); 00117 00126 geom::IntersectionMatrix* getIntersectionMatrix(); 00127 00128 private: 00129 00130 RelateComputer relateComp; 00131 }; 00132 00133 00134 } // namespace geos:operation:relate 00135 } // namespace geos:operation 00136 } // namespace geos 00137 00138 #endif // GEOS_OP_RELATE_RELATEOP_H 00139 00140 /********************************************************************** 00141 * $Log$ 00142 * Revision 1.1 2006/03/21 13:11:29 strk 00143 * opRelate.h header split 00144 * 00145 **********************************************************************/ 00146