Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Side by Side Diff: third_party/WebKit/Source/platform/geometry/FloatRoundedRect.cpp

Issue 2191233002: Add platform/geometry pretty printers for logging and testing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fewer redundant spaces, more toString tests Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 12 matching lines...) Expand all
23 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
25 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
27 * OF THE POSSIBILITY OF SUCH DAMAGE. 27 * OF THE POSSIBILITY OF SUCH DAMAGE.
28 */ 28 */
29 29
30 #include "platform/geometry/FloatRoundedRect.h" 30 #include "platform/geometry/FloatRoundedRect.h"
31 31
32 #include "platform/geometry/FloatQuad.h" 32 #include "platform/geometry/FloatQuad.h"
33 33 #include "wtf/text/WTFString.h"
34 #include <algorithm> 34 #include <algorithm>
35 35
36 #ifndef NDEBUG
37 #include <stdio.h>
38 #endif
39
40 namespace blink { 36 namespace blink {
41 37
42 FloatRoundedRect::FloatRoundedRect(float x, float y, float width, float height) 38 FloatRoundedRect::FloatRoundedRect(float x, float y, float width, float height)
43 : m_rect(x, y, width, height) 39 : m_rect(x, y, width, height)
44 { 40 {
45 } 41 }
46 42
47 FloatRoundedRect::FloatRoundedRect(const FloatRect& rect, const Radii& radii) 43 FloatRoundedRect::FloatRoundedRect(const FloatRect& rect, const Radii& radii)
48 : m_rect(rect) 44 : m_rect(rect)
49 , m_radii(radii) 45 , m_radii(radii)
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 if (m_bottomLeft.width() > 0 && m_bottomLeft.height() > 0) { 129 if (m_bottomLeft.width() > 0 && m_bottomLeft.height() > 0) {
134 m_bottomLeft.setWidth(m_bottomLeft.width() + leftWidth); 130 m_bottomLeft.setWidth(m_bottomLeft.width() + leftWidth);
135 m_bottomLeft.setHeight(m_bottomLeft.height() + bottomWidth); 131 m_bottomLeft.setHeight(m_bottomLeft.height() + bottomWidth);
136 } 132 }
137 if (m_bottomRight.width() > 0 && m_bottomRight.height() > 0) { 133 if (m_bottomRight.width() > 0 && m_bottomRight.height() > 0) {
138 m_bottomRight.setWidth(m_bottomRight.width() + rightWidth); 134 m_bottomRight.setWidth(m_bottomRight.width() + rightWidth);
139 m_bottomRight.setHeight(m_bottomRight.height() + bottomWidth); 135 m_bottomRight.setHeight(m_bottomRight.height() + bottomWidth);
140 } 136 }
141 } 137 }
142 138
143 #ifndef NDEBUG
144 void FloatRoundedRect::Radii::show() const
145 {
146 fprintf(stderr, "topLeft=[%f,%f], topRight=[%f,%f], bottomLeft=[%f,%f], bott omRight=[%f,%f]\n",
147 topLeft().width(), topLeft().height(), topRight().width(), topRight().he ight(),
148 bottomLeft().width(), bottomLeft().height(), bottomRight().width(), bott omRight().height());
149 }
150 #endif
151
152 static inline float cornerRectIntercept(float y, const FloatRect& cornerRect) 139 static inline float cornerRectIntercept(float y, const FloatRect& cornerRect)
153 { 140 {
154 ASSERT(cornerRect.height() > 0); 141 ASSERT(cornerRect.height() > 0);
155 return cornerRect.width() * sqrt(1 - (y * y) / (cornerRect.height() * corner Rect.height())); 142 return cornerRect.width() * sqrt(1 - (y * y) / (cornerRect.height() * corner Rect.height()));
156 } 143 }
157 144
158 FloatRect FloatRoundedRect::radiusCenterRect() const 145 FloatRect FloatRoundedRect::radiusCenterRect() const
159 { 146 {
160 FloatRectOutsets maximumRadiusInsets( 147 FloatRectOutsets maximumRadiusInsets(
161 -std::max(m_radii.topLeft().height(), m_radii.topRight().height()), 148 -std::max(m_radii.topLeft().height(), m_radii.topRight().height()),
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 329
343 if (maxRadiusWidth <= 0 || maxRadiusHeight <= 0) { 330 if (maxRadiusWidth <= 0 || maxRadiusHeight <= 0) {
344 m_radii.scale(0.0f); 331 m_radii.scale(0.0f);
345 return; 332 return;
346 } 333 }
347 float widthRatio = static_cast<float>(m_rect.width()) / maxRadiusWidth; 334 float widthRatio = static_cast<float>(m_rect.width()) / maxRadiusWidth;
348 float heightRatio = static_cast<float>(m_rect.height()) / maxRadiusHeight; 335 float heightRatio = static_cast<float>(m_rect.height()) / maxRadiusHeight;
349 m_radii.scale(widthRatio < heightRatio ? widthRatio : heightRatio); 336 m_radii.scale(widthRatio < heightRatio ? widthRatio : heightRatio);
350 } 337 }
351 338
352 #ifndef NDEBUG 339 String FloatRoundedRect::Radii::toString() const
353 void FloatRoundedRect::show() const
354 { 340 {
355 fprintf(stderr, "FloatRoundedRect:\n rect: "); 341 return String::format("tl:%s; tr:%s; bl:%s; br:%s",
356 m_rect.show(); 342 topLeft().toString().ascii().data(),
357 fprintf(stderr, " radii: "); 343 topRight().toString().ascii().data(),
358 m_radii.show(); 344 bottomLeft().toString().ascii().data(),
345 bottomRight().toString().ascii().data());
359 } 346 }
360 #endif 347
348 String FloatRoundedRect::toString() const
349 {
350 return String::format("%s radii:(%s)",
351 rect().toString().ascii().data(),
352 getRadii().toString().ascii().data());
353 }
361 354
362 } // namespace blink 355 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698