QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
Index.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 the wrapper.
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
34{
35
36public:
37 Index(const Tools::PropertySet& poProperties);
38 Index(const Tools::PropertySet& poProperties, int (*readNext)(SpatialIndex::id_type *id, double **pMin, double **pMax, uint32_t *nDimension, const uint8_t **pData, uint32_t *nDataLength));
40
41 const Tools::PropertySet GetProperties() { index().getIndexProperties(m_properties); return m_properties;}
42
43 bool insertFeature(uint64_t id, double *min, double *max);
44
47
50
53
55 void SetResultSetOffset(int64_t v);
56
58 void SetResultSetLimit(int64_t v);
59
60 void flush();
61
62 SpatialIndex::ISpatialIndex& index() {return *m_rtree;}
64
65private:
66
69
70 void Initialize();
74
76
77 void Setup();
81};
Definition Index.h:34
SpatialIndex::StorageManager::IBuffer * CreateIndexBuffer(SpatialIndex::IStorageManager &storage)
Tools::PropertySet m_properties
Definition Index.h:75
SpatialIndex::ISpatialIndex * m_rtree
Definition Index.h:73
RTIndexType GetIndexType()
bool insertFeature(uint64_t id, double *min, double *max)
SpatialIndex::ISpatialIndex * CreateIndex()
Index & operator=(const Index &)
SpatialIndex::StorageManager::IBuffer * m_buffer
Definition Index.h:72
void Setup()
Index(const Tools::PropertySet &poProperties)
SpatialIndex::IStorageManager * CreateStorage()
SpatialIndex::IStorageManager * m_storage
Definition Index.h:71
RTIndexVariant GetIndexVariant()
const Tools::PropertySet GetProperties()
Definition Index.h:41
int64_t GetResultSetOffset()
void SetIndexStorage(RTStorageType v)
Index(const Tools::PropertySet &poProperties, int(*readNext)(SpatialIndex::id_type *id, double **pMin, double **pMax, uint32_t *nDimension, const uint8_t **pData, uint32_t *nDataLength))
void SetIndexVariant(RTStorageType v)
void SetIndexType(RTIndexType v)
RTStorageType GetIndexStorage()
SpatialIndex::StorageManager::IBuffer & buffer()
Definition Index.h:63
void SetResultSetLimit(int64_t v)
void SetResultSetOffset(int64_t v)
void Initialize()
int64_t GetResultSetLimit()
void flush()
SpatialIndex::ISpatialIndex & index()
Definition Index.h:62
Definition SpatialIndex.h:192
Definition SpatialIndex.h:156
Definition SpatialIndex.h:220
Definition Tools.h:308
int64_t id_type
Definition SpatialIndex.h:43
RTIndexVariant
Definition sidx_config.h:93
RTStorageType
Definition sidx_config.h:85
RTIndexType
Definition sidx_config.h:77
#define SIDX_DLL
Definition sidx_export.h:41