summaryrefslogtreecommitdiffstats
path: root/cc/math_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'cc/math_util.h')
-rw-r--r--cc/math_util.h34
1 files changed, 19 insertions, 15 deletions
diff --git a/cc/math_util.h b/cc/math_util.h
index 199c851..942652f 100644
--- a/cc/math_util.h
+++ b/cc/math_util.h
@@ -6,18 +6,22 @@
#define CCMathUtil_h
#include "base/logging.h"
-#include "FloatPoint.h"
+#include "ui/gfx/point_f.h"
#include "FloatPoint3D.h"
namespace WebKit {
class WebTransformationMatrix;
}
+namespace gfx {
+class Rect;
+class RectF;
+}
+
namespace cc {
-class IntRect;
-class FloatRect;
class FloatQuad;
+class FloatSize;
struct HomogeneousCoordinate {
HomogeneousCoordinate(double newX, double newY, double newZ, double newW)
@@ -33,15 +37,15 @@ struct HomogeneousCoordinate {
return w <= 0;
}
- FloatPoint cartesianPoint2d() const
+ gfx::PointF cartesianPoint2d() const
{
if (w == 1)
- return FloatPoint(x, y);
+ return gfx::PointF(x, y);
// For now, because this code is used privately only by MathUtil, it should never be called when w == 0, and we do not yet need to handle that case.
DCHECK(w);
double invW = 1.0 / w;
- return FloatPoint(x * invW, y * invW);
+ return gfx::PointF(x * invW, y * invW);
}
FloatPoint3D cartesianPoint3d() const
@@ -72,30 +76,30 @@ public:
//
// These functions return the axis-aligned rect that encloses the correctly clipped,
// transformed polygon.
- static IntRect mapClippedRect(const WebKit::WebTransformationMatrix&, const IntRect&);
- static FloatRect mapClippedRect(const WebKit::WebTransformationMatrix&, const FloatRect&);
- static FloatRect projectClippedRect(const WebKit::WebTransformationMatrix&, const FloatRect&);
+ static gfx::Rect mapClippedRect(const WebKit::WebTransformationMatrix&, const gfx::Rect&);
+ static gfx::RectF mapClippedRect(const WebKit::WebTransformationMatrix&, const gfx::RectF&);
+ static gfx::RectF projectClippedRect(const WebKit::WebTransformationMatrix&, const gfx::RectF&);
// Returns an array of vertices that represent the clipped polygon. After returning, indexes from
// 0 to numVerticesInClippedQuad are valid in the clippedQuad array. Note that
// numVerticesInClippedQuad may be zero, which means the entire quad was clipped, and
// none of the vertices in the array are valid.
- static void mapClippedQuad(const WebKit::WebTransformationMatrix&, const FloatQuad& srcQuad, FloatPoint clippedQuad[8], int& numVerticesInClippedQuad);
+ static void mapClippedQuad(const WebKit::WebTransformationMatrix&, const FloatQuad& srcQuad, gfx::PointF clippedQuad[8], int& numVerticesInClippedQuad);
- static FloatRect computeEnclosingRectOfVertices(FloatPoint vertices[], int numVertices);
- static FloatRect computeEnclosingClippedRect(const HomogeneousCoordinate& h1, const HomogeneousCoordinate& h2, const HomogeneousCoordinate& h3, const HomogeneousCoordinate& h4);
+ static gfx::RectF computeEnclosingRectOfVertices(gfx::PointF vertices[], int numVertices);
+ static gfx::RectF computeEnclosingClippedRect(const HomogeneousCoordinate& h1, const HomogeneousCoordinate& h2, const HomogeneousCoordinate& h3, const HomogeneousCoordinate& h4);
// NOTE: These functions do not do correct clipping against w = 0 plane, but they
// correctly detect the clipped condition via the boolean clipped.
static FloatQuad mapQuad(const WebKit::WebTransformationMatrix&, const FloatQuad&, bool& clipped);
- static FloatPoint mapPoint(const WebKit::WebTransformationMatrix&, const FloatPoint&, bool& clipped);
+ static gfx::PointF mapPoint(const WebKit::WebTransformationMatrix&, const gfx::PointF&, bool& clipped);
static FloatPoint3D mapPoint(const WebKit::WebTransformationMatrix&, const FloatPoint3D&, bool& clipped);
static FloatQuad projectQuad(const WebKit::WebTransformationMatrix&, const FloatQuad&, bool& clipped);
- static FloatPoint projectPoint(const WebKit::WebTransformationMatrix&, const FloatPoint&, bool& clipped);
+ static gfx::PointF projectPoint(const WebKit::WebTransformationMatrix&, const gfx::PointF&, bool& clipped);
static void flattenTransformTo2d(WebKit::WebTransformationMatrix&);
- static FloatPoint computeTransform2dScaleComponents(const WebKit::WebTransformationMatrix&);
+ static gfx::Vector2dF computeTransform2dScaleComponents(const WebKit::WebTransformationMatrix&);
// Returns the smallest angle between the given two vectors in degrees. Neither vector is
// assumed to be normalized.