summaryrefslogtreecommitdiffstats
path: root/cc/math_util.h
diff options
context:
space:
mode:
authordanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-01 18:15:58 +0000
committerdanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-01 18:15:58 +0000
commitaad0a007e1cd343892d7b13ce5ea8d90e8ef7f53 (patch)
tree24c9af166977bbf8f25aa5b129defb35f3f8ec05 /cc/math_util.h
parent33432d8c37e3b929c60097c1eb7a53b13f364fb5 (diff)
downloadchromium_src-aad0a007e1cd343892d7b13ce5ea8d90e8ef7f53.zip
chromium_src-aad0a007e1cd343892d7b13ce5ea8d90e8ef7f53.tar.gz
chromium_src-aad0a007e1cd343892d7b13ce5ea8d90e8ef7f53.tar.bz2
cc: Use gfx:: Geometry types for positions, bounds, and related things.
This covers layers, layer tree hosts, and related classes. *phew* I intentionally avoided anything to do with scrolling or page scale. Those should be changed to be Vectors and need a bit more thought. This change should be pretty mindless. It converts to gfx Rect, Size, Vector, and Point classes. No change is made for FloatPoint3D or FloatQuad yet. I've added cc/geometry.h as a place for free functions that don't exist on gfx types yet, and that we should port over in the future. No change in behaviour; covered by existing tests. BUG=147395 R=enne Review URL: https://codereview.chromium.org/11264056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165434 0039d316-1c4b-4281-b951-d872f2087c98
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.