| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2005 Nokia. All rights reserved. | 3 * Copyright (C) 2005 Nokia. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 void FloatRect::fitToPoints(const FloatPoint& p0, const FloatPoint& p1, const Fl
oatPoint& p2, const FloatPoint& p3) | 175 void FloatRect::fitToPoints(const FloatPoint& p0, const FloatPoint& p1, const Fl
oatPoint& p2, const FloatPoint& p3) |
| 176 { | 176 { |
| 177 float left = min4(p0.x(), p1.x(), p2.x(), p3.x()); | 177 float left = min4(p0.x(), p1.x(), p2.x(), p3.x()); |
| 178 float top = min4(p0.y(), p1.y(), p2.y(), p3.y()); | 178 float top = min4(p0.y(), p1.y(), p2.y(), p3.y()); |
| 179 float right = max4(p0.x(), p1.x(), p2.x(), p3.x()); | 179 float right = max4(p0.x(), p1.x(), p2.x(), p3.x()); |
| 180 float bottom = max4(p0.y(), p1.y(), p2.y(), p3.y()); | 180 float bottom = max4(p0.y(), p1.y(), p2.y(), p3.y()); |
| 181 | 181 |
| 182 setLocationAndSizeFromEdges(left, top, right, bottom); | 182 setLocationAndSizeFromEdges(left, top, right, bottom); |
| 183 } | 183 } |
| 184 | 184 |
| 185 static inline int safeFloatToInt(float x) | |
| 186 { | |
| 187 static const int s_intMax = std::numeric_limits<int>::max(); | |
| 188 static const int s_intMin = std::numeric_limits<int>::min(); | |
| 189 | |
| 190 if (x >= static_cast<float>(s_intMax)) | |
| 191 return s_intMax; | |
| 192 if (x < static_cast<float>(s_intMin)) | |
| 193 return s_intMin; | |
| 194 return static_cast<int>(x); | |
| 195 } | |
| 196 | |
| 197 IntRect enclosingIntRect(const FloatRect& rect) | 185 IntRect enclosingIntRect(const FloatRect& rect) |
| 198 { | 186 { |
| 199 float left = floorf(rect.x()); | 187 float left = floorf(rect.x()); |
| 200 float top = floorf(rect.y()); | 188 float top = floorf(rect.y()); |
| 201 float width = ceilf(rect.maxX()) - left; | 189 float width = ceilf(rect.maxX()) - left; |
| 202 float height = ceilf(rect.maxY()) - top; | 190 float height = ceilf(rect.maxY()) - top; |
| 203 | 191 |
| 204 return IntRect(safeFloatToInt(left), safeFloatToInt(top), | 192 return IntRect(clampToInteger(left), clampToInteger(top), |
| 205 safeFloatToInt(width), safeFloatToInt(height)); | 193 clampToInteger(width), clampToInteger(height)); |
| 206 } | 194 } |
| 207 | 195 |
| 208 FloatRect mapRect(const FloatRect& r, const FloatRect& srcRect, const FloatRect&
destRect) | 196 FloatRect mapRect(const FloatRect& r, const FloatRect& srcRect, const FloatRect&
destRect) |
| 209 { | 197 { |
| 210 if (srcRect.width() == 0 || srcRect.height() == 0) | 198 if (srcRect.width() == 0 || srcRect.height() == 0) |
| 211 return FloatRect(); | 199 return FloatRect(); |
| 212 | 200 |
| 213 float widthScale = destRect.width() / srcRect.width(); | 201 float widthScale = destRect.width() / srcRect.width(); |
| 214 float heightScale = destRect.height() / srcRect.height(); | 202 float heightScale = destRect.height() / srcRect.height(); |
| 215 return FloatRect(destRect.x() + (r.x() - srcRect.x()) * widthScale, | 203 return FloatRect(destRect.x() + (r.x() - srcRect.x()) * widthScale, |
| 216 destRect.y() + (r.y() - srcRect.y()) * heightScale, | 204 destRect.y() + (r.y() - srcRect.y()) * heightScale, |
| 217 r.width() * widthScale, r.height() * heightScale); | 205 r.width() * widthScale, r.height() * heightScale); |
| 218 } | 206 } |
| 219 | 207 |
| 220 } | 208 } |
| OLD | NEW |