|
@@ -223,54 +223,50 @@ THREE.Color.prototype = {
|
|
|
|
|
|
},
|
|
|
|
|
|
- getHSL: function () {
|
|
|
+ getHSL: function ( optionalTarget ) {
|
|
|
|
|
|
- var hsl = { h: 0, s: 0, l: 0 };
|
|
|
-
|
|
|
- return function () {
|
|
|
-
|
|
|
- // h,s,l ranges are in 0.0 - 1.0
|
|
|
-
|
|
|
- var r = this.r, g = this.g, b = this.b;
|
|
|
+ // h,s,l ranges are in 0.0 - 1.0
|
|
|
|
|
|
- var max = Math.max( r, g, b );
|
|
|
- var min = Math.min( r, g, b );
|
|
|
+ var hsl = optionalTarget || { h: 0, s: 0, l: 0 };
|
|
|
|
|
|
- var hue, saturation;
|
|
|
- var lightness = ( min + max ) / 2.0;
|
|
|
+ var r = this.r, g = this.g, b = this.b;
|
|
|
|
|
|
- if ( min === max ) {
|
|
|
+ var max = Math.max( r, g, b );
|
|
|
+ var min = Math.min( r, g, b );
|
|
|
|
|
|
- hue = 0;
|
|
|
- saturation = 0;
|
|
|
+ var hue, saturation;
|
|
|
+ var lightness = ( min + max ) / 2.0;
|
|
|
|
|
|
- } else {
|
|
|
+ if ( min === max ) {
|
|
|
|
|
|
- var delta = max - min;
|
|
|
+ hue = 0;
|
|
|
+ saturation = 0;
|
|
|
|
|
|
- saturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );
|
|
|
+ } else {
|
|
|
|
|
|
- switch ( max ) {
|
|
|
+ var delta = max - min;
|
|
|
|
|
|
- case r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;
|
|
|
- case g: hue = ( b - r ) / delta + 2; break;
|
|
|
- case b: hue = ( r - g ) / delta + 4; break;
|
|
|
+ saturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );
|
|
|
|
|
|
- }
|
|
|
+ switch ( max ) {
|
|
|
|
|
|
- hue /= 6;
|
|
|
+ case r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;
|
|
|
+ case g: hue = ( b - r ) / delta + 2; break;
|
|
|
+ case b: hue = ( r - g ) / delta + 4; break;
|
|
|
|
|
|
}
|
|
|
|
|
|
- hsl.h = hue;
|
|
|
- hsl.s = saturation;
|
|
|
- hsl.l = lightness;
|
|
|
+ hue /= 6;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- return hsl;
|
|
|
+ hsl.h = hue;
|
|
|
+ hsl.s = saturation;
|
|
|
+ hsl.l = lightness;
|
|
|
|
|
|
- };
|
|
|
+ return hsl;
|
|
|
|
|
|
- }(),
|
|
|
+ },
|
|
|
|
|
|
getStyle: function () {
|
|
|
|