OpenWalnut  1.2.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
WColor.h
00001 //---------------------------------------------------------------------------
00002 //
00003 // Project: OpenWalnut ( http://www.openwalnut.org )
00004 //
00005 // Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
00006 // For more information see http://www.openwalnut.org/copying
00007 //
00008 // This file is part of OpenWalnut.
00009 //
00010 // OpenWalnut is free software: you can redistribute it and/or modify
00011 // it under the terms of the GNU Lesser General Public License as published by
00012 // the Free Software Foundation, either version 3 of the License, or
00013 // (at your option) any later version.
00014 //
00015 // OpenWalnut is distributed in the hope that it will be useful,
00016 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 // GNU Lesser General Public License for more details.
00019 //
00020 // You should have received a copy of the GNU Lesser General Public License
00021 // along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
00022 //
00023 //---------------------------------------------------------------------------
00024 
00025 #ifndef WCOLOR_H
00026 #define WCOLOR_H
00027 
00028 #include <iostream>
00029 
00030 #include <osg/Vec4>
00031 #include <osg/io_utils> // for the operator<< and operator>> for Vec4
00032 
00033 #include "WExportCommon.h"
00034 
00035 /**
00036  * Represents a RGBA Color.
00037  */
00038 typedef osg::Vec4 WColor;
00039 
00040 /**
00041  * Creates a color from a hue, saturation and value (HSV).
00042  *
00043  * \ingroup Color utils
00044  *
00045  * \param h hue
00046  * \param s saturation
00047  * \param v value
00048  *
00049  * \return The same color but in rgba format.
00050  */
00051 WColor OWCOMMON_EXPORT convertHSVtoRGBA( double h, double s, double v );
00052 
00053 /**
00054  * Computes the inverse of this color in means of RGB space. The alpha value is untouched.
00055  *
00056  * \ingroup Color utils
00057  *
00058  * \param other The color (RGBA) from which the inverse should be calculated.
00059  */
00060 WColor OWCOMMON_EXPORT inverseColor( const WColor& other );
00061 
00062 /**
00063  * Some default colors.
00064  */
00065 namespace defaultColor
00066 {
00067     // \cond Suppress_Doxygen
00068     static const WColor GREEN( 0.0, 1.0, 0.0, 1.0 ); //!< Default for green
00069     static const WColor RED( 1.0, 0.0, 0.0, 1.0 ); //!< Default for red
00070     static const WColor BLUE( 0.0, 0.0, 1.0, 1.0 ); //!< Default for blue
00071     // \endcond
00072 }
00073 
00074 #endif  // WCOLOR_H
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends