GEOS
3.3.8
|
00001 /********************************************************************** 00002 * $Id: RelateNodeGraph.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/RelateNodeGraph.java rev. 1.11 (JTS-1.10) 00017 * 00018 **********************************************************************/ 00019 00020 #ifndef GEOS_OP_RELATE_RELATENODEGRAPH_H 00021 #define GEOS_OP_RELATE_RELATENODEGRAPH_H 00022 00023 #include <geos/export.h> 00024 00025 #include <map> 00026 #include <vector> 00027 00028 // Forward declarations 00029 namespace geos { 00030 namespace geom { 00031 class Coordinate; 00032 struct CoordinateLessThen; 00033 } 00034 namespace geomgraph { 00035 //class EdgeEndStar; 00036 class Node; 00037 class GeometryGraph; 00038 class EdgeEnd; 00039 class NodeMap; 00040 } 00041 } 00042 00043 00044 namespace geos { 00045 namespace operation { // geos::operation 00046 namespace relate { // geos::operation::relate 00047 00069 class GEOS_DLL RelateNodeGraph { 00070 00071 public: 00072 00073 RelateNodeGraph(); 00074 00075 virtual ~RelateNodeGraph(); 00076 00077 std::map<geom::Coordinate*, geomgraph::Node*, 00078 geom::CoordinateLessThen> &getNodeMap(); 00079 00080 void build(geomgraph::GeometryGraph *geomGraph); 00081 00082 void computeIntersectionNodes(geomgraph::GeometryGraph *geomGraph, 00083 int argIndex); 00084 00085 void copyNodesAndLabels(geomgraph::GeometryGraph *geomGraph,int argIndex); 00086 00087 void insertEdgeEnds(std::vector<geomgraph::EdgeEnd*> *ee); 00088 00089 private: 00090 00091 geomgraph::NodeMap *nodes; 00092 }; 00093 00094 00095 } // namespace geos:operation:relate 00096 } // namespace geos:operation 00097 } // namespace geos 00098 00099 #endif // GEOS_OP_RELATE_RELATENODEGRAPH_H 00100 00101 /********************************************************************** 00102 * $Log$ 00103 * Revision 1.1 2006/03/21 13:11:29 strk 00104 * opRelate.h header split 00105 * 00106 **********************************************************************/ 00107