+ public bool include(double x, double y)\r
+ {\r
+ return (top <= y) && (left <= x) && (bottom >= y) && (right >= x);\r
+ }\r
+ public bool include(Point p)\r
+ {\r
+ return (top <= p.y) && (left <= p.x) && (bottom >= p.y) && (right >= p.x);\r
+ }\r
+ public bool include(Rectangle rect)\r
+ {\r
+ return (top <= rect.top) && (left <= rect.left) && (bottom >= rect.bottom) && (right >= rect.right);\r
+ }\r
+\r
+ public Rectangle alignLeft(double lef)\r
+ {\r
+ return move_to(lef, getTop(), datum.z);\r
+ }\r
+ public Rectangle alignTop(double to_)\r
+ {\r
+ return move_to(getLeft(), to_, datum.z);\r
+ }\r
+ public Rectangle alignRight(double rig)\r
+ {\r
+ return move_to(rig - getWidth(), getTop(), datum.z);\r
+ }\r
+ public Rectangle alignBottom(double bot)\r
+ {\r
+ return move_to(getLeft(), bot - getHeight(), datum.z);\r
+ }\r
+\r
+ public void clipped_by(Rectangle source)\r
+ {\r
+ double t = top, l = left, b = bottom, r = right;\r
+ if (top < source.top) { t = source.top; }\r
+ if (left < source.left) { l = source.left; }\r
+ if (bottom > source.bottom) { b = source.bottom; }\r
+ if (right > source.right) { r = source.right; }\r
+ set(l, t, r, b);\r
+ }\r
+ public void clip(Rectangle target)\r
+ {\r
+ double t = top, l = left, b = bottom, r = right;\r
+ if (top < target.top) { t = target.top; }\r
+ if (left < target.left) { l = target.left; }\r
+ if (bottom > target.bottom) { b = target.bottom; }\r
+ if (right > target.right) { r = target.right; }\r
+ set(l, t, r, b);\r
+ }\r
+\r