16#ifndef CPL_QUAD_TREE_H_INCLUDED
17#define CPL_QUAD_TREE_H_INCLUDED
61 int nIndentLevel,
void *pUserData);
68CPLQuadTreeCreateEx(
const CPLRectObj *pGlobalBounds,
70void CPL_DLL CPLQuadTreeDestroy(
CPLQuadTree *hQuadtree);
72void CPL_DLL CPLQuadTreeSetBucketCapacity(
CPLQuadTree *hQuadtree,
74void CPL_DLL CPLQuadTreeForceUseOfSubNodes(
CPLQuadTree *hQuadTree);
75int CPL_DLL CPLQuadTreeGetAdvisedMaxDepth(
int nExpectedFeatures);
76void CPL_DLL CPLQuadTreeSetMaxDepth(
CPLQuadTree *hQuadtree,
int nMaxDepth);
78void CPL_DLL CPLQuadTreeInsert(
CPLQuadTree *hQuadtree,
void *hFeature);
79void CPL_DLL CPLQuadTreeInsertWithBounds(
CPLQuadTree *hQuadtree,
void *hFeature,
82void CPL_DLL CPLQuadTreeRemove(
CPLQuadTree *hQuadtree,
void *hFeature,
85void CPL_DLL **CPLQuadTreeSearch(
const CPLQuadTree *hQuadtree,
88bool CPL_DLL CPLQuadTreeHasMatch(
const CPLQuadTree *hQuadtree,
91void CPL_DLL CPLQuadTreeForeach(
const CPLQuadTree *hQuadtree,
95void CPL_DLL CPLQuadTreeDump(
const CPLQuadTree *hQuadtree,
98void CPL_DLL CPLQuadTreeGetStats(
const CPLQuadTree *hQuadtree,
99 int *pnFeatureCount,
int *pnNodeCount,
100 int *pnMaxDepth,
int *pnMaxBucketCapacity);
Core portability definitions for CPL.
#define CPL_C_END
Macro to end a block of C symbols.
Definition cpl_port.h:279
#define CPL_C_START
Macro to start a block of C symbols.
Definition cpl_port.h:275
int(*) CPLQuadTreeForeachFunc(void *pElt, void *pUserData)
CPLQuadTreeForeachFunc.
Definition cpl_quad_tree.h:58
void(*) CPLQuadTreeDumpFeatureFunc(const void *hFeature, int nIndentLevel, void *pUserData)
CPLQuadTreeDumpFeatureFunc.
Definition cpl_quad_tree.h:60
void(*) CPLQuadTreeGetBoundsExFunc(const void *hFeature, void *pUserData, CPLRectObj *pBounds)
CPLQuadTreeGetBoundsExFunc.
Definition cpl_quad_tree.h:54
struct _CPLQuadTree CPLQuadTree
Opaque type for a quad tree.
Definition cpl_quad_tree.h:48
void(*) CPLQuadTreeGetBoundsFunc(const void *hFeature, CPLRectObj *pBounds)
CPLQuadTreeGetBoundsFunc.
Definition cpl_quad_tree.h:51
Describe a rectangle.
Definition cpl_quad_tree.h:40
double minx
Minimum x.
Definition cpl_quad_tree.h:41
double maxy
Maximum y.
Definition cpl_quad_tree.h:44
double miny
Minimum y.
Definition cpl_quad_tree.h:42
double maxx
Maximum x.
Definition cpl_quad_tree.h:43