This file is indexed.

/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