Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include "rviz/properties/parse_color.h"
00031
00032 namespace rviz
00033 {
00034
00035 static int limit( int i )
00036 {
00037 if( i < 0 )
00038 return 0;
00039 if( i > 255 )
00040 return 255;
00041 return i;
00042 }
00043
00044 QColor parseColor( const QString& color_string )
00045 {
00046 if( color_string.indexOf( ';' ) != -1 )
00047 {
00048 QStringList strings = color_string.split( ';' );
00049 if( strings.size() >= 3 )
00050 {
00051 bool r_ok = true;
00052 int r = strings[ 0 ].toInt( &r_ok );
00053 bool g_ok = true;
00054 int g = strings[ 1 ].toInt( &g_ok );
00055 bool b_ok = true;
00056 int b = strings[ 2 ].toInt( &b_ok );
00057 if( r_ok && g_ok && b_ok )
00058 {
00059 return QColor( limit( r ), limit( g ), limit( b ));
00060 }
00061 }
00062 return QColor();
00063 }
00064
00065 QColor new_color;
00066 if( QColor::colorNames().contains( color_string, Qt::CaseInsensitive ) ||
00067 (color_string.size() > 0 && color_string[ 0 ] == '#' ))
00068 {
00069 new_color.setNamedColor( color_string.toLower() );
00070 }
00071 return new_color;
00072 }
00073
00074 QString printColor( const QColor& color )
00075 {
00076 return QString( "%1; %2; %3" )
00077 .arg( color.red() )
00078 .arg( color.green() )
00079 .arg( color.blue() );
00080 }
00081
00082 QColor ogreToQt( const Ogre::ColourValue& c )
00083 {
00084 return QColor::fromRgbF( c.r, c.g, c.b, c.a );
00085 }
00086
00087 Ogre::ColourValue qtToOgre( const QColor& c )
00088 {
00089 return Ogre::ColourValue( c.redF(), c.greenF(), c.blueF(), c.alphaF() );
00090 }
00091
00092 }