GEOS  3.3.3
SimpleEdgeSetIntersector.h
1 /**********************************************************************
2  * $Id: SimpleEdgeSetIntersector.h 2556 2009-06-06 22:22:28Z strk $
3  *
4  * GEOS - Geometry Engine Open Source
5  * http://geos.refractions.net
6  *
7  * Copyright (C) 2005-2006 Refractions Research Inc.
8  * Copyright (C) 2001-2002 Vivid Solutions Inc.
9  *
10  * This is free software; you can redistribute and/or modify it under
11  * the terms of the GNU Lesser General Public Licence as published
12  * by the Free Software Foundation.
13  * See the COPYING file for more information.
14  *
15  **********************************************************************/
16 
17 #ifndef GEOS_GEOMGRAPH_INDEX_SIMPLEEDGESETINTERSECTOR_H
18 #define GEOS_GEOMGRAPH_INDEX_SIMPLEEDGESETINTERSECTOR_H
19 
20 #include <geos/export.h>
21 #include <vector>
22 
23 #include <geos/geomgraph/index/EdgeSetIntersector.h> // for inheritance
24 
25 // Forward declarations
26 namespace geos {
27  namespace geomgraph {
28  class Edge;
29  namespace index {
30  class SegmentIntersector;
31  }
32  }
33 }
34 
35 namespace geos {
36 namespace geomgraph { // geos::geomgraph
37 namespace index { // geos::geomgraph::index
38 
39 class GEOS_DLL SimpleEdgeSetIntersector: public EdgeSetIntersector {
40 
41 public:
42 
43  SimpleEdgeSetIntersector();
44 
45  void computeIntersections(std::vector<Edge*> *edges,
46  SegmentIntersector *si, bool testAllSegments);
47 
48  void computeIntersections(std::vector<Edge*> *edges0,
49  std::vector<Edge*> *edges1, SegmentIntersector *si);
50 
51 private:
52 
53  int nOverlaps;
54 
55  void computeIntersects(Edge *e0, Edge *e1, SegmentIntersector *si);
56 };
57 
58 } // namespace geos.geomgraph.index
59 } // namespace geos.geomgraph
60 } // namespace geos
61 
62 #endif // GEOS_GEOMGRAPH_INDEX_SIMPLEEDGESETINTERSECTOR_H
63 
64 /**********************************************************************
65  * $Log$
66  * Revision 1.1 2006/03/14 12:55:55 strk
67  * Headers split: geomgraphindex.h, nodingSnapround.h
68  *
69  **********************************************************************/
70