GEOS 3.11.1
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
21namespace geos {
22namespace index { // geos::index
23namespace strtree { // geos::index::strtree
24
32class GEOS_DLL ItemBoundable: public Boundable {
33public:
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
50private:
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: geos.h:39