Actually add the Quadtree coordinate code
authorDavid Gow <[email protected]>
Mon, 14 Jul 2014 15:12:56 +0000 (23:12 +0800)
committerDavid Gow <[email protected]>
Mon, 14 Jul 2014 15:12:56 +0000 (23:12 +0800)
src/quadtree.cpp [new file with mode: 0644]

diff --git a/src/quadtree.cpp b/src/quadtree.cpp
new file mode 100644 (file)
index 0000000..a4e0df2
--- /dev/null
@@ -0,0 +1,44 @@
+#ifndef QUADTREE_REMOVED
+#include "quadtree.h"
+
+namespace IPDF {
+
+Rect TransformToQuadChild(const Rect& src, QuadTreeNodeChildren child_type)
+{
+       Rect dst;
+       dst.x *= 2;
+       dst.y *= 2;
+       dst.w *= 2;
+       dst.h *= 2;
+       if (child_type == QTC_BOTTOM_LEFT || child_type == QTC_BOTTOM_RIGHT)
+       {
+               dst.x -= 2;
+       }
+       if (child_type == QTC_TOP_RIGHT || child_type == QTC_BOTTOM_RIGHT)
+       {
+               dst.y -= 2;
+       }
+       return dst;
+}
+
+Rect TransformFromQuadChild(const Rect& src, QuadTreeNodeChildren child_type)
+{
+       Rect dst;
+       dst.x *= 0.5;
+       dst.y *= 0.5;
+       dst.w *= 0.5;
+       dst.h *= 0.5;
+       if (child_type == QTC_BOTTOM_LEFT || child_type == QTC_BOTTOM_RIGHT)
+       {
+               dst.x += 0.5;
+       }
+       if (child_type == QTC_TOP_RIGHT || child_type == QTC_BOTTOM_RIGHT)
+       {
+               dst.y += 0.5;
+       }
+       return dst;
+}
+
+}
+
+#endif

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