9 : mColor1( color1 ), mColor2( color2 )
17 if ( props.contains(
"color1" ) )
19 if ( props.contains(
"color2" ) )
23 if ( props.contains(
"stops" ) )
25 foreach( QString stop, props[
"stops"].split(
':' ) )
27 int i = stop.indexOf(
';' );
28 if ( i == -1 )
continue;
31 stops.insert( stop.left( i ).toDouble(), c );
42 int r = ( int )( c1.red() + value * ( c2.red() - c1.red() ) );
43 int g = ( int )( c1.green() + value * ( c2.green() - c1.green() ) );
44 int b = ( int )( c1.blue() + value * ( c2.blue() - c1.blue() ) );
46 return QColor::fromRgb( r, g, b );
57 double lower = 0, upper;
59 for ( StopsMap::const_iterator it =
mStops.begin(); it !=
mStops.end(); ++it )
61 if ( it.key() >= value )
66 return upper == lower ? c1 :
_interpolate( c1, c2, ( value - lower ) / ( upper - lower ) );
74 return upper == lower ? c1 :
_interpolate( c1, c2, ( value - lower ) / ( upper - lower ) );
93 for ( StopsMap::const_iterator it =
mStops.begin(); it !=
mStops.end(); ++it )
97 map[
"stops"] = lst.join(
":" );
106 int satMin,
int satMax,
int valMin,
int valMax )
107 : mCount( count ), mHueMin( hueMin ), mHueMax( hueMax ),
108 mSatMin( satMin ), mSatMax( satMax ), mValMin( valMin ), mValMax( valMax )
120 if ( props.contains(
"count" ) ) count = props[
"count"].toInt();
121 if ( props.contains(
"hueMin" ) ) hueMin = props[
"hueMin"].toInt();
122 if ( props.contains(
"hueMax" ) ) hueMax = props[
"hueMax"].toInt();
123 if ( props.contains(
"satMin" ) ) satMin = props[
"satMin"].toInt();
124 if ( props.contains(
"satMax" ) ) satMax = props[
"satMax"].toInt();
125 if ( props.contains(
"valMin" ) ) valMin = props[
"valMin"].toInt();
126 if ( props.contains(
"valMax" ) ) valMax = props[
"valMax"].toInt();
133 int colorCnt =
mColors.count();
134 int colorIdx = ( int )( value * colorCnt );
136 if ( colorIdx >= 0 && colorIdx < colorCnt )
150 map[
"count"] = QString::number(
mCount );
151 map[
"hueMin"] = QString::number(
mHueMin );
152 map[
"hueMax"] = QString::number(
mHueMax );
153 map[
"satMin"] = QString::number(
mSatMin );
154 map[
"satMax"] = QString::number(
mSatMax );
155 map[
"valMin"] = QString::number(
mValMin );
156 map[
"valMax"] = QString::number(
mValMax );
165 for (
int i = 0; i <
mCount; i++ )
170 mColors.append( QColor::fromHsv( h, s, v ) );
178 : mSchemeName( schemeName ), mColors( colors )
188 if ( props.contains(
"schemeName" ) )
189 schemeName = props[
"schemeName"];
190 if ( props.contains(
"colors" ) )
191 colors = props[
"colors"].toInt();
215 if (
mPalette.isEmpty() || value < 0 || value > 1 )
216 return QColor( 255, 0, 0 );
218 int paletteEntry = ( int )( value *
mPalette.count() );
219 if ( paletteEntry >=
mPalette.count() )
220 paletteEntry =
mPalette.count() - 1;
233 map[
"colors"] = QString::number(
mColors );