SVG text and line elements
[ipdf/code.git] / src / quadtree.cpp
index 9ba2cee..04630b7 100644 (file)
@@ -12,11 +12,11 @@ Rect TransformToQuadChild(const Rect& src, QuadTreeNodeChildren child_type)
        dst.h *= 2;
        if (child_type == QTC_BOTTOM_LEFT || child_type == QTC_BOTTOM_RIGHT)
        {
-               dst.x -= 1;
+               dst.y -= 1;
        }
        if (child_type == QTC_TOP_RIGHT || child_type == QTC_BOTTOM_RIGHT)
        {
-               dst.y -= 1;
+               dst.x -= 1;
        }
        return dst;
 }
@@ -30,15 +30,26 @@ Rect TransformFromQuadChild(const Rect& src, QuadTreeNodeChildren child_type)
        dst.h *= 0.5;
        if (child_type == QTC_BOTTOM_LEFT || child_type == QTC_BOTTOM_RIGHT)
        {
-               dst.x += 1;
+               dst.y += 1;
        }
        if (child_type == QTC_TOP_RIGHT || child_type == QTC_BOTTOM_RIGHT)
        {
-               dst.y += 1;
+               dst.x += 1;
        }
        return dst;
 }
 
+bool ContainedInQuadChild(const Rect& src, QuadTreeNodeChildren child_type)
+{
+       Rect std = {0,0,1,1};
+       Rect dst = TransformFromQuadChild(std, child_type);
+       if (src.x + src.w < dst.x) return false;
+       if (src.y + src.h < dst.y) return false;
+       if (src.x > dst.x + dst.w) return false;
+       if (src.y > dst.y + dst.h) return false;
+       return true;
+}
+
 }
 
 #endif

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