diff options
Diffstat (limited to 'cc/math_util.h')
-rw-r--r-- | cc/math_util.h | 34 |
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. |