ConsistentAreaTester.h

00001 /**********************************************************************
00002  *
00003  * GEOS - Geometry Engine Open Source
00004  * http://geos.osgeo.org
00005  *
00006  * Copyright (C) 2005-2006 Refractions Research Inc.
00007  * Copyright (C) 2001-2002 Vivid Solutions 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/valid/ConsistentAreaTester.java rev. 1.14 (JTS-1.10)
00017  *
00018  **********************************************************************/
00019 
00020 #ifndef GEOS_OP_CONSISTENTAREATESTER_H
00021 #define GEOS_OP_CONSISTENTAREATESTER_H
00022 
00023 #include <geos/export.h>
00024 
00025 #include <geos/geom/Coordinate.h> // for composition
00026 #include <geos/algorithm/LineIntersector.h> // for composition
00027 #include <geos/operation/relate/RelateNodeGraph.h> // for composition
00028 
00029 // Forward declarations
00030 namespace geos {
00031         namespace algorithm {
00032                 class LineIntersector;
00033         }
00034         namespace geomgraph {
00035                 class GeometryGraph;
00036         }
00037         namespace operation {
00038                 namespace relate {
00039                         class RelateNodeGraph;
00040                 }
00041         }
00042 }
00043 
00044 namespace geos {
00045 namespace operation { // geos::operation
00046 namespace valid { // geos::operation::valid
00047 
00083 class GEOS_DLL ConsistentAreaTester {
00084 private:
00085 
00086         algorithm::LineIntersector li;
00087 
00089         geomgraph::GeometryGraph *geomGraph;
00090 
00091         relate::RelateNodeGraph nodeGraph;
00092 
00094         geom::Coordinate invalidPoint;
00095 
00100         bool isNodeEdgeAreaLabelsConsistent();
00101 
00102 public:
00103 
00110         ConsistentAreaTester(geomgraph::GeometryGraph *newGeomGraph);
00111 
00112         ~ConsistentAreaTester();
00113 
00118         geom::Coordinate& getInvalidPoint();
00119 
00127         bool isNodeConsistentArea();
00128 
00144         bool hasDuplicateRings();
00145 };
00146 
00147 
00148 
00149 } // namespace geos::operation::valid
00150 } // namespace geos::operation
00151 } // namespace geos
00152 
00153 #endif // GEOS_OP_CONSISTENTAREATESTER_H

Generated on 30 Dec 2015 for GEOS by  doxygen 1.4.7