David's final changes: more profiler features, fixes.
[ipdf/code.git] / src / quadtree.h
index 1443650..9a7b8f9 100644 (file)
@@ -13,6 +13,7 @@ namespace IPDF
 
        typedef int QuadTreeIndex;
        static const QuadTreeIndex QUADTREE_EMPTY = -1;
+       class Document;
 
        enum QuadTreeNodeChildren
        {
@@ -39,6 +40,11 @@ namespace IPDF
                unsigned object_begin;
                // Last object in the node.
                unsigned object_end;
+               // Linked list of "extra" nodes
+               QuadTreeIndex next_overlay;
+               // First object which has not yet been propagated to extant children/parent.
+               unsigned object_dirty;
+               bool render_dirty;
        };
 
        struct QuadTree
@@ -46,6 +52,10 @@ namespace IPDF
                QuadTree() : root_id(QUADTREE_EMPTY) {}
                QuadTreeIndex root_id;
                std::vector<QuadTreeNode> nodes;
+
+               QuadTreeIndex GetNeighbour(QuadTreeIndex start, int xdir, int ydir, Document *doc) const;
+               void GetCanonicalCoords(QuadTreeIndex& start, Real& x, Real& y, Document *doc);
+
        };
 
        Rect TransformToQuadChild(const Rect& src, QuadTreeNodeChildren child_type);

UCC git Repository :: git.ucc.asn.au