X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fquadtree.h;h=1c1c0254c6441d289cbdde2daba561ec21057973;hb=748d002a813bbe6309dd22259bdce3278c02b0c8;hp=29d60ba9553dbdf9edbae085f67f08631f3aa3aa;hpb=836513d7874d20bec7247c6dfa8b3d2c426a71d4;p=ipdf%2Fcode.git diff --git a/src/quadtree.h b/src/quadtree.h index 29d60ba..1c1c025 100644 --- a/src/quadtree.h +++ b/src/quadtree.h @@ -39,6 +39,8 @@ namespace IPDF unsigned object_begin; // Last object in the node. unsigned object_end; + // Linked list of "extra" nodes + QuadTreeIndex next_overlay; }; struct QuadTree @@ -46,10 +48,15 @@ namespace IPDF QuadTree() : root_id(QUADTREE_EMPTY) {} QuadTreeIndex root_id; std::vector nodes; + + QuadTreeIndex GetNeighbour(QuadTreeIndex start, int xdir, int ydir) const; + }; Rect TransformToQuadChild(const Rect& src, QuadTreeNodeChildren child_type); Rect TransformFromQuadChild(const Rect& src, QuadTreeNodeChildren child_type); + bool IntersectsQuadChild(const Rect& src, QuadTreeNodeChildren child_type); + bool ContainedInQuadChild(const Rect& src, QuadTreeNodeChildren child_type); } #else