GEOS  3.13.0dev
ItemBoundable.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2006 Refractions Research Inc.
7  *
8  * This is free software; you can redistribute and/or modify it under
9  * the terms of the GNU Lesser General Public Licence as published
10  * by the Free Software Foundation.
11  * See the COPYING file for more information.
12  *
13  **********************************************************************/
14 
15 #pragma once
16 
17 #include <geos/export.h>
18 
19 #include <geos/index/strtree/Boundable.h> // for inheritance
20 
21 namespace geos {
22 namespace index { // geos::index
23 namespace strtree { // geos::index::strtree
24 
32 class GEOS_DLL ItemBoundable: public Boundable {
33 public:
34 
35  ItemBoundable(const void* newBounds, void* newItem) : bounds(newBounds), item(newItem) {}
36  ~ItemBoundable() override = default;
37 
38  bool isLeaf() const override {
39  return true;
40  }
41 
42  const void* getBounds() const override {
43  return bounds;
44  }
45 
46  void* getItem() const {
47  return item;
48  }
49 
50 private:
51 
52  const void* bounds;
53  void* item;
54 };
55 
56 } // namespace geos::index::strtree
57 } // namespace geos::index
58 } // namespace geos
59 
A spatial object in an AbstractSTRtree.
Definition: Boundable.h:24
Boundable wrapper for a non-Boundable spatial object. Used internally by AbstractSTRtree.
Definition: ItemBoundable.h:32
const void * getBounds() const override
Definition: ItemBoundable.h:42
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25