/usr/include/osgEarthSymbology/Color is in libosgearth-dev 2.7.0+dfsg-2+b3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | /* --*-c++-*-- */
/* osgEarth - Dynamic map generation toolkit for OpenSceneGraph
* Copyright 2015 Pelican Mapping
* http://osgearth.org
*
* osgEarth is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*/
#ifndef OSGEARTHSYMBOLOGY_COLOR_H
#define OSGEARTHSYMBOLOGY_COLOR_H 1
#include <osgEarthSymbology/Common>
#include <osgEarth/Config>
#include <osg/Vec4f>
#include <string>
namespace osgEarth { namespace Symbology
{
/**
* Pre-set colors (convenience class).
*/
struct OSGEARTHSYMBOLOGY_EXPORT Color : public osg::Vec4f
{
enum Format {
RGBA,
ABGR
};
/** Creates a new default color */
Color() : osg::Vec4f(1,1,1,1) { }
/** Copy constructor */
Color( const Color& rhs ) : osg::Vec4f(rhs) { }
/** Make from vec4 */
Color( const osg::Vec4f& rgba ) : osg::Vec4f(rgba) { }
/** Copy constructor with modified alpha value */
Color( const Color& rhs, float a );
/** Component constructor */
Color( float r, float g, float b, float a = 1.0f )
: osg::Vec4f(r, g, b, a) { }
/** RGBA/ABGR constructor */
Color( unsigned value, Format format =RGBA );
/**
* Construct a color from a hex string in one of the following formats, (with or
* without the component order reversed):
* RRGGBB or RRGGBBAA
* #RRGGBB or #RRGGBBAA (HTML style - preceding hash)
* 0xRRGGBB or 0xRRGGBBAA (C style - preceding "0x")
*/
Color( const std::string& html, Format format =RGBA );
virtual ~Color() { }
/** Encode the color at an HTML color string (e.g., "#FF004F78") */
std::string toHTML( Format format =RGBA ) const;
/** Dump out the color as a 32-bit integer */
unsigned as( Format format ) const;
/** Lighten/darken the color by factor */
Color brightness( float factor ) const;
// built in colors
// http://en.wikipedia.org/wiki/Web_colors#HTML_color_names
static Color White;
static Color Silver;
static Color Gray;
static Color Black;
static Color Red;
static Color Maroon;
static Color Yellow;
static Color Olive;
static Color Lime;
static Color Green;
static Color Aqua;
static Color Teal;
static Color Blue;
static Color Navy;
static Color Fuchsia;
static Color Purple;
static Color Orange;
// others:
static Color Cyan;
static Color DarkGray;
static Color Magenta;
static Color Brown;
};
} } // namespace osgEarth::Symbology
//------------------------------------------------------------------------
namespace osgEarth
{
using namespace osgEarth::Symbology;
// Config specializations for Color:
template <> inline
void Config::addIfSet<Color>( const std::string& key, const optional<Color>& opt ) {
if ( opt.isSet() ) {
add( key, opt->toHTML() );
}
}
template<> inline
void Config::updateIfSet<Color>( const std::string& key, const optional<Color>& opt ) {
if ( opt.isSet() ) {
remove( key );
add( key, opt->toHTML() );
}
}
template<> inline
bool Config::getIfSet<Color>( const std::string& key, optional<Color>& output ) const {
if ( hasValue( key ) ) {
output = Color( value(key) );
return true;
}
else
return false;
}
}
#endif // OSGEARTHSYMBOLOGY_COLOR_H
|