GEOS  3.3.3
bintree/Root.h
1 /**********************************************************************
2  * $Id: Root.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_IDX_BINTREE_ROOT_H
17 #define GEOS_IDX_BINTREE_ROOT_H
18 
19 #include <geos/export.h>
20 #include <geos/index/bintree/NodeBase.h> // for inheritance
21 
22 // Forward declarations
23 namespace geos {
24  namespace index {
25  namespace bintree {
26  class Interval;
27  class Node;
28  }
29  }
30 }
31 
32 namespace geos {
33 namespace index { // geos::index
34 namespace bintree { // geos::index::bintree
35 
42 class GEOS_DLL Root: public NodeBase {
43 
44 private:
45 
46  // the singleton root node is centred at the origin.
47  static double origin;
48 
49  void insertContained(Node *tree,
50  Interval *itemInterval,
51  void* item);
52 
53 public:
54 
55  Root() {}
56 
57  ~Root() {}
58 
65  void insert(Interval *itemInterval, void* item);
66 
67 protected:
68 
69  bool isSearchMatch(Interval* /*interval*/) { return true; }
70 };
71 
72 } // namespace geos::index::bintree
73 } // namespace geos::index
74 } // namespace geos
75 
76 #endif // GEOS_IDX_BINTREE_ROOT_H
77 
78 /**********************************************************************
79  * $Log$
80  * Revision 1.1 2006/03/22 16:01:33 strk
81  * indexBintree.h header split, classes renamed to match JTS
82  *
83  **********************************************************************/
84