OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CC_MATH_UTIL_H_ | 5 #ifndef CC_MATH_UTIL_H_ |
6 #define CC_MATH_UTIL_H_ | 6 #define CC_MATH_UTIL_H_ |
7 | 7 |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "cc/cc_export.h" | 9 #include "cc/cc_export.h" |
10 #include "ui/gfx/point_f.h" | 10 #include "ui/gfx/point_f.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 static gfx::RectF computeEnclosingClippedRect(const HomogeneousCoordinate& h
1, const HomogeneousCoordinate& h2, const HomogeneousCoordinate& h3, const Homog
eneousCoordinate& h4); | 97 static gfx::RectF computeEnclosingClippedRect(const HomogeneousCoordinate& h
1, const HomogeneousCoordinate& h2, const HomogeneousCoordinate& h3, const Homog
eneousCoordinate& h4); |
98 | 98 |
99 // NOTE: These functions do not do correct clipping against w = 0 plane, but
they | 99 // NOTE: These functions do not do correct clipping against w = 0 plane, but
they |
100 // correctly detect the clipped condition via the boolean clipped. | 100 // correctly detect the clipped condition via the boolean clipped. |
101 static gfx::QuadF mapQuad(const gfx::Transform&, const gfx::QuadF&, bool& cl
ipped); | 101 static gfx::QuadF mapQuad(const gfx::Transform&, const gfx::QuadF&, bool& cl
ipped); |
102 static gfx::PointF mapPoint(const gfx::Transform&, const gfx::PointF&, bool&
clipped); | 102 static gfx::PointF mapPoint(const gfx::Transform&, const gfx::PointF&, bool&
clipped); |
103 static gfx::Point3F mapPoint(const gfx::Transform&, const gfx::Point3F&, boo
l& clipped); | 103 static gfx::Point3F mapPoint(const gfx::Transform&, const gfx::Point3F&, boo
l& clipped); |
104 static gfx::QuadF projectQuad(const gfx::Transform&, const gfx::QuadF&, bool
& clipped); | 104 static gfx::QuadF projectQuad(const gfx::Transform&, const gfx::QuadF&, bool
& clipped); |
105 static gfx::PointF projectPoint(const gfx::Transform&, const gfx::PointF&, b
ool& clipped); | 105 static gfx::PointF projectPoint(const gfx::Transform&, const gfx::PointF&, b
ool& clipped); |
106 | 106 |
107 static void flattenTransformTo2d(gfx::Transform&); | |
108 | |
109 static gfx::Vector2dF computeTransform2dScaleComponents(const gfx::Transform
&, float fallbackValue); | 107 static gfx::Vector2dF computeTransform2dScaleComponents(const gfx::Transform
&, float fallbackValue); |
110 | 108 |
111 // Returns the smallest angle between the given two vectors in degrees. Neit
her vector is | 109 // Returns the smallest angle between the given two vectors in degrees. Neit
her vector is |
112 // assumed to be normalized. | 110 // assumed to be normalized. |
113 static float smallestAngleBetweenVectors(gfx::Vector2dF, gfx::Vector2dF); | 111 static float smallestAngleBetweenVectors(gfx::Vector2dF, gfx::Vector2dF); |
114 | 112 |
115 // Projects the |source| vector onto |destination|. Neither vector is assume
d to be normalized. | 113 // Projects the |source| vector onto |destination|. Neither vector is assume
d to be normalized. |
116 static gfx::Vector2dF projectVector(gfx::Vector2dF source, gfx::Vector2dF de
stination); | 114 static gfx::Vector2dF projectVector(gfx::Vector2dF source, gfx::Vector2dF de
stination); |
117 | |
118 // Temporary API to ease migration from gfx::Transform | |
119 // to gfx::Transform. | |
120 // | |
121 // TODO(shawnsingh, vollick) we should phase out as much as possible of | |
122 // these temporary functions, putting functionality into gfx::Transform. | |
123 static void rotateEulerAngles(gfx::Transform*, double eulerX, double eulerY,
double eulerZ); | |
124 static gfx::Transform to2dTransform(const gfx::Transform&); | |
125 // Note carefully: the args here are labeled as per Webcore indexing convent
ions. | |
126 static gfx::Transform createGfxTransform(double m11, double m12, double m13,
double m14, | |
127 double m21, double m22, double m23,
double m24, | |
128 double m31, double m32, double m33,
double m34, | |
129 double m41, double m42, double m43,
double m44); | |
130 | |
131 static gfx::Transform createGfxTransform(double a, double b, double c, | |
132 double d, double e, double f); | |
133 }; | 115 }; |
134 | 116 |
135 } // namespace cc | 117 } // namespace cc |
136 | 118 |
137 #endif // CC_MATH_UTIL_H_ | 119 #endif // CC_MATH_UTIL_H_ |
OLD | NEW |