libspatialindex API Reference  (git-trunk)
LeafQuery.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Project: libsidx - A C API wrapper around libspatialindex
3  * Purpose: C++ object declarations to implement a query of the index's leaves.
4  * Author: Howard Butler, hobu.inc@gmail.com
5  ******************************************************************************
6  * Copyright (c) 2009, Howard Butler
7  *
8  * All rights reserved.
9  *
10  * Permission is hereby granted, free of charge, to any person obtaining a
11  * copy of this software and associated documentation files (the "Software"),
12  * to deal in the Software without restriction, including without limitation
13  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
14  * and/or sell copies of the Software, and to permit persons to whom the
15  * Software is furnished to do so, subject to the following conditions:
16  *
17  * The above copyright notice and this permission notice shall be included
18  * in all copies or substantial portions of the Software.
19  *
20  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
23  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
26  * DEALINGS IN THE SOFTWARE.
27 ******************************************************************************/
28 
29 #pragma once
30 
31 #include "sidx_export.h"
32 
33 class LeafQueryResult;
34 
35 
37 {
38 private:
39  std::vector<SpatialIndex::id_type> ids;
40  SpatialIndex::Region* bounds;
43 public:
44  LeafQueryResult(SpatialIndex::id_type id) : bounds(0), m_id(id){}
45  ~LeafQueryResult() {if (bounds!=0) delete bounds;}
46 
48  LeafQueryResult(LeafQueryResult const& other);
49 
51  LeafQueryResult& operator=(LeafQueryResult const& rhs);
52 
53  std::vector<SpatialIndex::id_type> const& GetIDs() const;
54  void SetIDs(std::vector<SpatialIndex::id_type>& v);
55  const SpatialIndex::Region* GetBounds() const;
56  void SetBounds(const SpatialIndex::Region* b);
57  SpatialIndex::id_type getIdentifier() const {return m_id;}
58  void setIdentifier(uint32_t v) {m_id = v;}
59 };
60 
62 {
63 private:
64  std::queue<SpatialIndex::id_type> m_ids;
65  std::vector<LeafQueryResult> m_results;
66 public:
67 
68  LeafQuery();
69  ~LeafQuery() {};
70  void getNextEntry( const SpatialIndex::IEntry& entry,
71  SpatialIndex::id_type& nextEntry,
72  bool& hasNext);
73  std::vector<LeafQueryResult> const& GetResults() const {return m_results;}
74 };
75 
LeafQueryResult(SpatialIndex::id_type id)
Definition: LeafQuery.h:44
SpatialIndex::id_type getIdentifier() const
Definition: LeafQuery.h:57
void setIdentifier(uint32_t v)
Definition: LeafQuery.h:58
std::vector< LeafQueryResult > const & GetResults() const
Definition: LeafQuery.h:73
~LeafQuery()
Definition: LeafQuery.h:69
int64_t id_type
Definition: SpatialIndex.h:41
#define SIDX_DLL
Definition: sidx_export.h:41