| 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_BASE_MATH_UTIL_H_ | 5 #ifndef CC_BASE_MATH_UTIL_H_ |
| 6 #define CC_BASE_MATH_UTIL_H_ | 6 #define CC_BASE_MATH_UTIL_H_ |
| 7 | 7 |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 #include <cmath> | 9 #include <cmath> |
| 10 #include <vector> |
| 10 | 11 |
| 11 #include "base/logging.h" | 12 #include "base/logging.h" |
| 12 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
| 13 #include "cc/base/cc_export.h" | 14 #include "cc/base/cc_export.h" |
| 14 #include "ui/gfx/box_f.h" | 15 #include "ui/gfx/box_f.h" |
| 15 #include "ui/gfx/point3_f.h" | 16 #include "ui/gfx/point3_f.h" |
| 16 #include "ui/gfx/point_f.h" | 17 #include "ui/gfx/point_f.h" |
| 17 #include "ui/gfx/size.h" | 18 #include "ui/gfx/size.h" |
| 18 #include "ui/gfx/transform.h" | 19 #include "ui/gfx/transform.h" |
| 19 | 20 |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 | 112 |
| 112 // Returns an array of vertices that represent the clipped polygon. After | 113 // Returns an array of vertices that represent the clipped polygon. After |
| 113 // returning, indexes from 0 to num_vertices_in_clipped_quad are valid in the | 114 // returning, indexes from 0 to num_vertices_in_clipped_quad are valid in the |
| 114 // clipped_quad array. Note that num_vertices_in_clipped_quad may be zero, | 115 // clipped_quad array. Note that num_vertices_in_clipped_quad may be zero, |
| 115 // which means the entire quad was clipped, and none of the vertices in the | 116 // which means the entire quad was clipped, and none of the vertices in the |
| 116 // array are valid. | 117 // array are valid. |
| 117 static void MapClippedQuad(const gfx::Transform& transform, | 118 static void MapClippedQuad(const gfx::Transform& transform, |
| 118 const gfx::QuadF& src_quad, | 119 const gfx::QuadF& src_quad, |
| 119 gfx::PointF clipped_quad[8], | 120 gfx::PointF clipped_quad[8], |
| 120 int* num_vertices_in_clipped_quad); | 121 int* num_vertices_in_clipped_quad); |
| 122 static bool MapClippedQuad3d(const gfx::Transform& transform, |
| 123 const gfx::QuadF& src_quad, |
| 124 gfx::Point3F clipped_quad[8], |
| 125 int* num_vertices_in_clipped_quad); |
| 121 | 126 |
| 122 static gfx::RectF ComputeEnclosingRectOfVertices(const gfx::PointF vertices[], | 127 static gfx::RectF ComputeEnclosingRectOfVertices(const gfx::PointF vertices[], |
| 123 int num_vertices); | 128 int num_vertices); |
| 124 static gfx::RectF ComputeEnclosingClippedRect( | 129 static gfx::RectF ComputeEnclosingClippedRect( |
| 125 const HomogeneousCoordinate& h1, | 130 const HomogeneousCoordinate& h1, |
| 126 const HomogeneousCoordinate& h2, | 131 const HomogeneousCoordinate& h2, |
| 127 const HomogeneousCoordinate& h3, | 132 const HomogeneousCoordinate& h3, |
| 128 const HomogeneousCoordinate& h4); | 133 const HomogeneousCoordinate& h4); |
| 129 | 134 |
| 130 // NOTE: These functions do not do correct clipping against w = 0 plane, but | 135 // NOTE: These functions do not do correct clipping against w = 0 plane, but |
| 131 // they correctly detect the clipped condition via the boolean clipped. | 136 // they correctly detect the clipped condition via the boolean clipped. |
| 132 static gfx::QuadF MapQuad(const gfx::Transform& transform, | 137 static gfx::QuadF MapQuad(const gfx::Transform& transform, |
| 133 const gfx::QuadF& quad, | 138 const gfx::QuadF& quad, |
| 134 bool* clipped); | 139 bool* clipped); |
| 140 static gfx::QuadF MapQuad3d(const gfx::Transform& transform, |
| 141 const gfx::QuadF& q, |
| 142 gfx::Point3F* p, |
| 143 bool* clipped); |
| 135 static gfx::PointF MapPoint(const gfx::Transform& transform, | 144 static gfx::PointF MapPoint(const gfx::Transform& transform, |
| 136 const gfx::PointF& point, | 145 const gfx::PointF& point, |
| 137 bool* clipped); | 146 bool* clipped); |
| 138 static gfx::Point3F MapPoint(const gfx::Transform&, | 147 static gfx::Point3F MapPoint(const gfx::Transform&, |
| 139 const gfx::Point3F&, | 148 const gfx::Point3F&, |
| 140 bool* clipped); | 149 bool* clipped); |
| 141 static gfx::QuadF ProjectQuad(const gfx::Transform& transform, | 150 static gfx::QuadF ProjectQuad(const gfx::Transform& transform, |
| 142 const gfx::QuadF& quad, | 151 const gfx::QuadF& quad, |
| 143 bool* clipped); | 152 bool* clipped); |
| 144 static gfx::PointF ProjectPoint(const gfx::Transform& transform, | 153 static gfx::PointF ProjectPoint(const gfx::Transform& transform, |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 | 196 |
| 188 // Returns a base::Value representation of the floating point value. | 197 // Returns a base::Value representation of the floating point value. |
| 189 // If the value is inf, returns max double/float representation. | 198 // If the value is inf, returns max double/float representation. |
| 190 static scoped_ptr<base::Value> AsValueSafely(double value); | 199 static scoped_ptr<base::Value> AsValueSafely(double value); |
| 191 static scoped_ptr<base::Value> AsValueSafely(float value); | 200 static scoped_ptr<base::Value> AsValueSafely(float value); |
| 192 }; | 201 }; |
| 193 | 202 |
| 194 } // namespace cc | 203 } // namespace cc |
| 195 | 204 |
| 196 #endif // CC_BASE_MATH_UTIL_H_ | 205 #endif // CC_BASE_MATH_UTIL_H_ |
| OLD | NEW |