| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 2 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above | 8 * 1. Redistributions of source code must retain the above |
| 9 * copyright notice, this list of conditions and the following | 9 * copyright notice, this list of conditions and the following |
| 10 * disclaimer. | 10 * disclaimer. |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 #endif | 151 #endif |
| 152 | 152 |
| 153 static inline float cornerRectIntercept(float y, const FloatRect& cornerRect) | 153 static inline float cornerRectIntercept(float y, const FloatRect& cornerRect) |
| 154 { | 154 { |
| 155 ASSERT(cornerRect.height() > 0); | 155 ASSERT(cornerRect.height() > 0); |
| 156 return cornerRect.width() * sqrt(1 - (y * y) / (cornerRect.height() * corner
Rect.height())); | 156 return cornerRect.width() * sqrt(1 - (y * y) / (cornerRect.height() * corner
Rect.height())); |
| 157 } | 157 } |
| 158 | 158 |
| 159 FloatRect FloatRoundedRect::radiusCenterRect() const | 159 FloatRect FloatRoundedRect::radiusCenterRect() const |
| 160 { | 160 { |
| 161 ASSERT(isRenderable()); | 161 FloatRectOutsets maximumRadiusInsets( |
| 162 int minX = m_rect.x() + std::max(m_radii.topLeft().width(), m_radii.bottomLe
ft().width()); | 162 -std::max(m_radii.topLeft().height(), m_radii.topRight().height()), |
| 163 int minY = m_rect.y() + std::max(m_radii.topLeft().height(), m_radii.topRigh
t().height()); | 163 -std::max(m_radii.topRight().width(), m_radii.bottomRight().width()), |
| 164 int maxX = m_rect.maxX() - std::max(m_radii.topRight().width(), m_radii.bott
omRight().width()); | 164 -std::max(m_radii.bottomLeft().height(), m_radii.bottomRight().height())
, |
| 165 int maxY = m_rect.maxY() - std::max(m_radii.bottomLeft().height(), m_radii.b
ottomRight().height()); | 165 -std::max(m_radii.topLeft().width(), m_radii.bottomLeft().width())); |
| 166 return FloatRect(minX, minY, maxX - minX, maxY - minY); | 166 FloatRect centerRect(m_rect); |
| 167 centerRect.expand(maximumRadiusInsets); |
| 168 return centerRect; |
| 167 } | 169 } |
| 168 | 170 |
| 169 bool FloatRoundedRect::xInterceptsAtY(float y, float& minXIntercept, float& maxX
Intercept) const | 171 bool FloatRoundedRect::xInterceptsAtY(float y, float& minXIntercept, float& maxX
Intercept) const |
| 170 { | 172 { |
| 171 if (y < rect().y() || y > rect().maxY()) | 173 if (y < rect().y() || y > rect().maxY()) |
| 172 return false; | 174 return false; |
| 173 | 175 |
| 174 if (!isRounded()) { | 176 if (!isRounded()) { |
| 175 minXIntercept = rect().x(); | 177 minXIntercept = rect().x(); |
| 176 maxXIntercept = rect().maxX(); | 178 maxXIntercept = rect().maxX(); |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 void FloatRoundedRect::show() | 354 void FloatRoundedRect::show() |
| 353 { | 355 { |
| 354 fprintf(stderr, "FloatRoundedRect:\n rect: "); | 356 fprintf(stderr, "FloatRoundedRect:\n rect: "); |
| 355 m_rect.show(); | 357 m_rect.show(); |
| 356 fprintf(stderr, " radii: "); | 358 fprintf(stderr, " radii: "); |
| 357 m_radii.show(); | 359 m_radii.show(); |
| 358 } | 360 } |
| 359 #endif | 361 #endif |
| 360 | 362 |
| 361 } // namespace blink | 363 } // namespace blink |
| OLD | NEW |