GEOS  3.6.2
EdgeSetIntersector.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 #ifndef GEOS_GEOMGRAPH_INDEX_EDGESETINTERSECTOR_H
00017 #define GEOS_GEOMGRAPH_INDEX_EDGESETINTERSECTOR_H
00018 
00019 #include <geos/export.h>
00020 #include <vector>
00021 
00022 // Forward declarations
00023 namespace geos {
00024         namespace geomgraph {
00025                 class Edge;
00026                 namespace index {
00027                         class SegmentIntersector;
00028                 }
00029         }
00030 }
00031 
00032 namespace geos {
00033 namespace geomgraph { // geos::geomgraph
00034 namespace index { // geos::geomgraph::index
00035 
00036 /* 
00037  * This is derived from a Java interface.
00038  */
00039 class GEOS_DLL EdgeSetIntersector {
00040 public:
00049         virtual void computeIntersections(std::vector<Edge*> *edges,
00050                         SegmentIntersector *si, bool testAllSegments)=0;
00051 
00055         virtual void computeIntersections(std::vector<Edge*> *edges0,
00056                         std::vector<Edge*> *edges1,
00057                         SegmentIntersector *si)=0;
00058 
00059         virtual ~EdgeSetIntersector(){}
00060 };
00061 
00062 
00063 } // namespace geos.geomgraph.index
00064 } // namespace geos.geomgraph
00065 } // namespace geos
00066 
00067 #endif
00068