y_max = max(y_max, with.y_max);
}
+static double clamp(double x, double min, double max)
+{
+ if (x < min)
+ return min;
+ if (x > max)
+ return max;
+ return x;
+}
+
+void BBox::intersect(BBox &with)
+{
+ x_min = clamp(x_min, with.x_min, with.x_max);
+ x_max = clamp(x_max, with.x_min, with.x_max);
+ y_min = clamp(y_min, with.y_min, with.y_max);
+ y_max = clamp(y_max, with.y_min, with.y_max);
+}
+
void BBox::enlarge(double by)
{
x_min -= by;