32 #ifndef _CPL_QUAD_TREE_H_INCLUDED
33 #define _CPL_QUAD_TREE_H_INCLUDED
53 double minx, miny, maxx, maxy;
58 typedef void (*CPLQuadTreeGetBoundsFunc)(
const void* hFeature,
CPLRectObj* pBounds);
59 typedef int (*CPLQuadTreeForeachFunc)(
void* pElt,
void* pUserData);
60 typedef void (*CPLQuadTreeDumpFeatureFunc)(
const void* hFeature,
int nIndentLevel,
void* pUserData);
65 CPLQuadTreeGetBoundsFunc pfnGetBounds);
66 void CPL_DLL CPLQuadTreeDestroy(
CPLQuadTree *hQuadtree);
68 void CPL_DLL CPLQuadTreeSetBucketCapacity(
CPLQuadTree *hQuadtree,
70 int CPL_DLL CPLQuadTreeGetAdvisedMaxDepth(
int nExpectedFeatures);
71 void CPL_DLL CPLQuadTreeSetMaxDepth(
CPLQuadTree *hQuadtree,
74 void CPL_DLL CPLQuadTreeInsert(
CPLQuadTree *hQuadtree,
77 void CPL_DLL **CPLQuadTreeSearch(
const CPLQuadTree *hQuadtree,
81 void CPL_DLL CPLQuadTreeForeach(
const CPLQuadTree *hQuadtree,
82 CPLQuadTreeForeachFunc pfnForeach,
85 void CPL_DLL CPLQuadTreeDump(
const CPLQuadTree *hQuadtree,
86 CPLQuadTreeDumpFeatureFunc pfnDumpFeatureFunc,
88 void CPL_DLL CPLQuadTreeGetStats(
const CPLQuadTree *hQuadtree,
92 int* pnMaxBucketCapacity);