33 #ifndef _CPL_QUAD_TREE_H_INCLUDED 34 #define _CPL_QUAD_TREE_H_INCLUDED 54 double minx, miny, maxx, maxy;
57 typedef struct _CPLQuadTree CPLQuadTree;
59 typedef void (*CPLQuadTreeGetBoundsFunc)(
const void* hFeature,
CPLRectObj* pBounds);
60 typedef int (*CPLQuadTreeForeachFunc)(
void* pElt,
void* pUserData);
61 typedef void (*CPLQuadTreeDumpFeatureFunc)(
const void* hFeature,
int nIndentLevel,
void* pUserData);
66 CPLQuadTreeGetBoundsFunc pfnGetBounds);
86 CPLQuadTreeForeachFunc pfnForeach,
89 void CPL_DLL CPLQuadTreeDump(
const CPLQuadTree *hQuadtree,
90 CPLQuadTreeDumpFeatureFunc pfnDumpFeatureFunc,
92 void CPL_DLL CPLQuadTreeGetStats(
const CPLQuadTree *hQuadtree,
96 int* pnMaxBucketCapacity);
void CPLQuadTreeInsert(CPLQuadTree *hQuadtree, void *hFeature)
Insert a feature into a quadtree.
Definition: cpl_quad_tree.cpp:267
Core portability definitions for CPL.
int CPLQuadTreeGetAdvisedMaxDepth(int nExpectedFeatures)
Returns the optimal depth of a quadtree to hold nExpectedFeatures.
Definition: cpl_quad_tree.cpp:184
CPLQuadTree * CPLQuadTreeCreate(const CPLRectObj *pGlobalBounds, CPLQuadTreeGetBoundsFunc pfnGetBounds)
Create a new quadtree.
Definition: cpl_quad_tree.cpp:146
Definition: cpl_quad_tree.h:53
void ** CPLQuadTreeSearch(const CPLQuadTree *hQuadtree, const CPLRectObj *pAoi, int *pnFeatureCount)
Returns all the elements inserted whose bounding box intersects the provided area of interest...
Definition: cpl_quad_tree.cpp:670
void CPLQuadTreeSetMaxDepth(CPLQuadTree *hQuadtree, int nMaxDepth)
Set the maximum depth of a quadtree.
Definition: cpl_quad_tree.cpp:232
void CPLQuadTreeInsertWithBounds(CPLQuadTree *hQuadtree, void *hFeature, const CPLRectObj *psBounds)
Insert a feature into a quadtree.
Definition: cpl_quad_tree.cpp:292
void CPLQuadTreeSetBucketCapacity(CPLQuadTree *hQuadtree, int nBucketCapacity)
Set the maximum capacity of a node of a quadtree.
Definition: cpl_quad_tree.cpp:250
void CPLQuadTreeDestroy(CPLQuadTree *hQuadtree)
Destroy a quadtree.
Definition: cpl_quad_tree.cpp:334
void CPLQuadTreeForeach(const CPLQuadTree *hQuadtree, CPLQuadTreeForeachFunc pfnForeach, void *pUserData)
Walk through the quadtree and runs the provided function on all the elements.
Definition: cpl_quad_tree.cpp:735