QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
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, [email protected]
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
33class LeafQueryResult;
34
36{
37private:
38 std::queue<SpatialIndex::id_type> m_ids;
39 std::vector<LeafQueryResult> m_results;
40public:
41
45 SpatialIndex::id_type& nextEntry,
46 bool& hasNext);
47 std::vector<LeafQueryResult> const& GetResults() const {return m_results;}
48};
49
51{
52private:
53 std::vector<SpatialIndex::id_type> ids;
57public:
58 LeafQueryResult(SpatialIndex::id_type id) : bounds(0), m_id(id){}
59 ~LeafQueryResult() {if (bounds!=0) delete bounds;}
60
63
66
67 std::vector<SpatialIndex::id_type> const& GetIDs() const;
68 void SetIDs(std::vector<SpatialIndex::id_type>& v);
71 SpatialIndex::id_type getIdentifier() const {return m_id;}
72 void setIdentifier(uint32_t v) {m_id = v;}
73};
Definition LeafQuery.h:36
~LeafQuery()
Definition LeafQuery.h:43
void getNextEntry(const SpatialIndex::IEntry &entry, SpatialIndex::id_type &nextEntry, bool &hasNext)
std::vector< LeafQueryResult > m_results
Definition LeafQuery.h:39
std::vector< LeafQueryResult > const & GetResults() const
Definition LeafQuery.h:47
std::queue< SpatialIndex::id_type > m_ids
Definition LeafQuery.h:38
Definition LeafQuery.h:51
LeafQueryResult(SpatialIndex::id_type id)
Definition LeafQuery.h:58
LeafQueryResult & operator=(LeafQueryResult const &rhs)
Assignment operator.
~LeafQueryResult()
Definition LeafQuery.h:59
SpatialIndex::id_type m_id
Definition LeafQuery.h:55
SpatialIndex::id_type getIdentifier() const
Definition LeafQuery.h:71
void SetBounds(const SpatialIndex::Region *b)
const SpatialIndex::Region * GetBounds() const
std::vector< SpatialIndex::id_type > const & GetIDs() const
SpatialIndex::Region * bounds
Definition LeafQuery.h:54
std::vector< SpatialIndex::id_type > ids
Definition LeafQuery.h:53
void SetIDs(std::vector< SpatialIndex::id_type > &v)
void setIdentifier(uint32_t v)
Definition LeafQuery.h:72
LeafQueryResult(LeafQueryResult const &other)
Copy constructor.
Definition SpatialIndex.h:106
Definition SpatialIndex.h:175
Definition Region.h:33
int64_t id_type
Definition SpatialIndex.h:43
#define SIDX_DLL
Definition sidx_export.h:41