GEOS 3.3.8

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

SpatialIndex.h
1 /**********************************************************************
2 * $Id: SpatialIndex.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) 2006 Refractions Research Inc.
8 *
9 * This is free software; you can redistribute and/or modify it under
10 * the terms of the GNU Lesser General Public Licence as published
11 * by the Free Software Foundation.
12 * See the COPYING file for more information.
13 *
14 **********************************************************************/
15
16 #ifndef GEOS_INDEX_SPATIALINDEX_H
17 #define GEOS_INDEX_SPATIALINDEX_H
18
19 #include <geos/export.h>
20
21 #include <vector>
22
23 // Forward declarations
24 namespace geos {
25 namespace geom {
26 class Envelope;
27 }
28 namespace index {
29 class ItemVisitor;
30 }
31 }
32
33 namespace geos {
34 namespace index {
35
48 class GEOS_DLL SpatialIndex {
49 public:
50
51 virtual ~SpatialIndex() {}
52
65 virtual void insert(const geom::Envelope *itemEnv, void *item) = 0;
66
76 //virtual std::vector<void*>* query(const geom::Envelope *searchEnv)=0;
77 virtual void query(const geom::Envelope* searchEnv, std::vector<void*>&) = 0;
78
89 virtual void query(const geom::Envelope *searchEnv, ItemVisitor& visitor) = 0;
90
98 virtual bool remove(const geom::Envelope* itemEnv, void* item) = 0;
99
100 };
101
102
103 } // namespace geos.index
104 } // namespace geos
105
106 #endif // GEOS_INDEX_SPATIALINDEX_H
107