Index: cc/geometry.h |
diff --git a/cc/geometry.h b/cc/geometry.h |
index 1e5e25a95d4ab931ffb9ef52d2cdcc99f11335fd..91989270997e17155654c2f9aa3be0338fdc81b2 100644 |
--- a/cc/geometry.h |
+++ b/cc/geometry.h |
@@ -5,9 +5,10 @@ |
#ifndef CC_GEOMETRY_H_ |
#define CC_GEOMETRY_H_ |
-#include "ui/gfx/size.h" |
+#include "ui/gfx/rect.h" |
+#include "ui/gfx/rect_f.h" |
+#include "ui/gfx/vector2d.h" |
#include "ui/gfx/vector2d_f.h" |
-#include <cmath> |
namespace cc { |
@@ -16,6 +17,67 @@ inline gfx::Size ClampSizeFromAbove(gfx::Size s, gfx::Size other) { |
s.height() < other.height() ? s.height() : other.height()); |
} |
+inline gfx::Vector2dF ClampFromAbove(gfx::Vector2dF s, gfx::Vector2dF max) { |
+ return gfx::Vector2dF(s.x() < max.x() ? s.x() : max.x(), |
+ s.y() < max.y() ? s.y() : max.y()); |
+} |
+ |
+inline gfx::Vector2dF ClampFromBelow(gfx::Vector2dF s, gfx::Vector2dF min) { |
+ return gfx::Vector2dF(s.x() > min.x() ? s.x() : min.x(), |
+ s.y() > min.y() ? s.y() : min.y()); |
+} |
+ |
+inline gfx::Vector2d ClampFromAbove(gfx::Vector2d s, gfx::Vector2d max) { |
+ return gfx::Vector2d(s.x() < max.x() ? s.x() : max.x(), |
+ s.y() < max.y() ? s.y() : max.y()); |
+} |
+ |
+inline gfx::Vector2d ClampFromBelow(gfx::Vector2d s, gfx::Vector2d min) { |
+ return gfx::Vector2d(s.x() > min.x() ? s.x() : min.x(), |
+ s.y() > min.y() ? s.y() : min.y()); |
+} |
+ |
+inline gfx::PointF ClampFromAbove(gfx::PointF s, gfx::PointF max) { |
+ return gfx::PointF(s.x() < max.x() ? s.x() : max.x(), |
+ s.y() < max.y() ? s.y() : max.y()); |
+} |
+ |
+inline gfx::PointF ClampFromBelow(gfx::PointF s, gfx::PointF min) { |
+ return gfx::PointF(s.x() > min.x() ? s.x() : min.x(), |
+ s.y() > min.y() ? s.y() : min.y()); |
+} |
+ |
+inline gfx::Point ClampFromAbove(gfx::Point s, gfx::Point max) { |
+ return gfx::Point(s.x() < max.x() ? s.x() : max.x(), |
+ s.y() < max.y() ? s.y() : max.y()); |
+} |
+ |
+inline gfx::Point ClampFromBelow(gfx::Point s, gfx::Point min) { |
+ return gfx::Point(s.x() > min.x() ? s.x() : min.x(), |
+ s.y() > min.y() ? s.y() : min.y()); |
+} |
+ |
+inline gfx::Point BottomRight(gfx::Rect rect) { |
+ return gfx::Point(rect.right(), rect.bottom()); |
+} |
+ |
+inline gfx::PointF BottomRight(gfx::RectF rect) { |
+ return gfx::PointF(rect.right(), rect.bottom()); |
+} |
+ |
+// Return a vector that is |v| scaled by the given scale factors along each |
+// axis. |
+inline gfx::Vector2dF ScaleVector2d(gfx::Vector2dF v, float x_scale, float y_scale) { |
+ gfx::Vector2dF scaled = v; |
+ scaled.Scale(x_scale, y_scale); |
+ return scaled; |
+} |
+ |
+// Return a vector that is |v| scaled by the given scale factor. |
+inline gfx::Vector2dF ScaleVector2d(gfx::Vector2dF v, float scale) { |
+ return ScaleVector2d(v, scale, scale); |
+} |
+ |
} // namespace cc |
#endif // CC_GEOMETRY_H_ |