Bugfixes, performance fixes, tears.
[ipdf/code.git] / src / quadtree.cpp
index 3d5dbee..623bd38 100644 (file)
@@ -70,6 +70,12 @@ QuadTreeIndex QuadTree::GetNeighbour(QuadTreeIndex start, int xdir, int ydir, Do
 {
        if (!xdir && !ydir) return start;
 
+       if (addTo && (nodes[start].parent == -1) && nodes[start].child_type != QTC_UNKNOWN)
+       {
+               Debug("Adding parent of node %d...", start);
+               addTo->GenQuadParent(start, nodes[start].child_type);
+       }
+
        QuadTreeIndex newNode;
        // Try moving to the right if that's easy.
        if (xdir > 0)
@@ -291,6 +297,15 @@ QuadTreeIndex QuadTree::GetNeighbour(QuadTreeIndex start, int xdir, int ydir, Do
        return -1;
 }
 
+void QuadTree::GetCanonicalCoords(QuadTreeIndex& start, Real& x, Real& y, Document *doc)
+{
+       int _x = (int)x;
+       int _y = (int)y;
+       start = GetNeighbour(start, _x, _y, doc);
+       x -= _x;
+       y -= _y;
+}
+
 }
 
 #endif

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