File indexing completed on 2024-04-28 15:24:26

0001 /*
0002  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
0003 
0004  This file is part of the WebKit project
0005 
0006  This library is free software; you can redistribute it and/or
0007  modify it under the terms of the GNU Library General Public
0008  License as published by the Free Software Foundation; either
0009  version 2 of the License, or (at your option) any later version.
0010 
0011  This library is distributed in the hope that it will be useful,
0012  but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0014  Library General Public License for more details.
0015 
0016  You should have received a copy of the GNU Library General Public License
0017  along with this library; see the file COPYING.LIB.  If not, write to
0018  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0019  Boston, MA 02110-1301, USA.
0020  */
0021 
0022 #ifndef ColorDistance_h
0023 #define ColorDistance_h
0024 #if ENABLE(SVG)
0025 
0026 namespace WebCore
0027 {
0028 
0029 class Color;
0030 
0031 class ColorDistance
0032 {
0033 public:
0034     ColorDistance();
0035     ColorDistance(const Color &fromColor, const Color &toColor);
0036     ColorDistance(int redDiff, int blueDiff, int greenDiff);
0037 
0038     ColorDistance scaledDistance(float scaleFactor) const;
0039     Color addToColorAndClamp(const Color &) const;
0040 
0041     static Color addColorsAndClamp(const Color &, const Color &);
0042 
0043     bool isZero() const;
0044 
0045     float distance() const;
0046 
0047 private:
0048     short m_redDiff;
0049     short m_greenDiff;
0050     short m_blueDiff;
0051 };
0052 }
0053 
0054 #endif // ENABLE(SVG)
0055 #endif // ColorDistance_h