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

Side by Side Diff: Source/core/svg/ColorDistance.cpp

Issue 112653005: Cleanup ColorDistance (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 11 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) 2007 Eric Seidel <eric@webkit.org> 2 * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details. 12 * Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public License 14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to 15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA. 17 * Boston, MA 02110-1301, USA.
18 */ 18 */
19 19
20 #include "config.h" 20 #include "config.h"
21 #include "core/svg/ColorDistance.h" 21 #include "core/svg/ColorDistance.h"
22 22
23 #include "platform/graphics/Color.h" 23 #include "platform/graphics/Color.h"
24 #include "wtf/MathExtras.h"
25 24
26 namespace WebCore { 25 namespace WebCore {
27 26
28 ColorDistance::ColorDistance()
29 : m_redDiff(0)
30 , m_greenDiff(0)
31 , m_blueDiff(0)
32 {
33 }
34
35 ColorDistance::ColorDistance(const Color& fromColor, const Color& toColor)
36 : m_redDiff(toColor.red() - fromColor.red())
37 , m_greenDiff(toColor.green() - fromColor.green())
38 , m_blueDiff(toColor.blue() - fromColor.blue())
39 {
40 }
41
42 ColorDistance::ColorDistance(int redDiff, int greenDiff, int blueDiff)
43 : m_redDiff(redDiff)
44 , m_greenDiff(greenDiff)
45 , m_blueDiff(blueDiff)
46 {
47 }
48
49 static inline int clampColorValue(int v)
50 {
51 if (v > 255)
52 v = 255;
53 else if (v < 0)
54 v = 0;
55 return v;
56 }
57
58 Color ColorDistance::clampColor(int red, int green, int blue, int alpha)
59 {
60 return Color(clampColorValue(red), clampColorValue(green), clampColorValue(b lue), clampColorValue(alpha));
61 }
62
63 Color ColorDistance::addColors(const Color& first, const Color& second) 27 Color ColorDistance::addColors(const Color& first, const Color& second)
64 { 28 {
65 return Color(first.red() + second.red(), first.green() + second.green(), fir st.blue() + second.blue()); 29 return Color(first.red() + second.red(), first.green() + second.green(), fir st.blue() + second.blue());
66 } 30 }
67 31
68 float ColorDistance::distance() const 32 float ColorDistance::distance(const Color& fromColor, const Color& toColor)
69 { 33 {
34 int redDiff = toColor.red() - fromColor.red();
35 int greenDiff = toColor.green() - fromColor.green();
36 int blueDiff = toColor.blue() - fromColor.blue();
37
70 // This is just a simple distance calculation, not respecting color spaces 38 // This is just a simple distance calculation, not respecting color spaces
71 return sqrtf(m_redDiff * m_redDiff + m_blueDiff * m_blueDiff + m_greenDiff * m_greenDiff); 39 return sqrtf(redDiff * redDiff + blueDiff * blueDiff + greenDiff * greenDiff );
72 } 40 }
73 41
74 } 42 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698