/********************************************************************** * * GEOS - Geometry Engine Open Source * http://geos.osgeo.org * * Copyright (C) 2001-2002 Vivid Solutions Inc. * Copyright (C) 2005 Refractions Research Inc. * * This is free software; you can redistribute and/or modify it under * the terms of the GNU Lesser General Public Licence as published * by the Free Software Foundation. * See the COPYING file for more information. * **********************************************************************/ #ifndef GEOS_OPRELATE_H #define GEOS_OPRELATE_H namespace geos { namespace operation { // geos::operation /** \brief * Contains classes to implement the computation of the spatial relationships of Geometrys. * * The relate algorithm computes the IntersectionMatrix describing the * relationship of two Geometrys. The algorithm for computing relate * uses the intersection operations supported by topology graphs. Although the relate * result depends on the resultant graph formed by the computed intersections, there is * no need to explicitly compute the entire graph. * It is sufficient to compute the local structure of the graph * at each intersection node. *

* The algorithm to compute relate has the following steps: *

* *

Labeling isolated components

* * Isolated components are components (edges or nodes) of an input Geometry which * do not contain any intersections with the other input Geometry. The * topological relationship of these components to the other input Geometry * must be computed in order to determine the complete labeling of the component. This can * be done by testing whether the component lies in the interior or exterior of the other * Geometry. If the other Geometry is 1-dimensional, the isolated * component must lie in the exterior (since otherwise it would have an intersection with an * edge of the Geometry). If the other Geometry is 2-dimensional, * a Point-In-Polygon test can be used to determine whether the isolated component is in the * interior or exterior. * *

Package Specification

* * * */ namespace relate { // geos.operation.relate } // namespace geos:operation:relate } // namespace geos:operation } // namespace geos //#include //#include //#include #include //#include //#include //#include #include #endif