Add quadtree back to the Makefile
[ipdf/code.git] / src / rect.h
index 1373c6f..7a0f1e1 100644 (file)
@@ -15,15 +15,24 @@ namespace IPDF
                {
                        std::stringstream s;
                        // float conversion needed because it is fucking impossible to get ostreams working with template classes
-                       s << "{" << Float(x) << ", " << Float(y) << ", " << Float(w) << ", " << Float(h) << "}";
+                       s << "{" << Float(x) << ", " << Float(y) << ", " << Float(x + w) << ", " << Float(y + h) << " (w: " << Float(w) <<", h: " << Float(h) <<")}";
                        return s.str();
                }
                inline bool PointIn(Real pt_x, Real pt_y) const
                {
-                       if (pt_x < x) return false;
-                       if (pt_y < y) return false;
-                       if (pt_x > x + w) return false;
-                       if (pt_y > y + h) return false;
+                       if (pt_x <= x) return false;
+                       if (pt_y <= y) return false;
+                       if (pt_x >= x + w) return false;
+                       if (pt_y >= y + h) return false;
+                       return true;
+               }
+
+               inline bool Intersects(const Rect& other) const
+               {
+                       if (x + w < other.x) return false;
+                       if (y + h < other.y) return false;
+                       if (x > other.x + other.w) return false;
+                       if (y > other.y + other.h) return false;
                        return true;
                }
        };

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