|
@@ -105,18 +105,16 @@ THREE.Color.prototype = {
|
|
|
|
|
|
setStyle: function ( style ) {
|
|
setStyle: function ( style ) {
|
|
|
|
|
|
- function parseAlpha( strAlpha ) {
|
|
|
|
|
|
+ function handleAlpha( string ) {
|
|
|
|
|
|
- var alpha = parseFloat( strAlpha );
|
|
|
|
|
|
+ if ( string === undefined ) return;
|
|
|
|
|
|
- if ( alpha < 1 ) {
|
|
|
|
|
|
+ if ( parseFloat( string ) < 1 ) {
|
|
|
|
|
|
- console.warn( 'THREE.Color: Alpha component of color ' + style + ' will be ignored.' );
|
|
|
|
|
|
+ console.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- return alpha;
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -133,52 +131,29 @@ THREE.Color.prototype = {
|
|
switch ( name ) {
|
|
switch ( name ) {
|
|
|
|
|
|
case 'rgb':
|
|
case 'rgb':
|
|
-
|
|
|
|
- if ( color = /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*$/.exec( components ) ) {
|
|
|
|
-
|
|
|
|
- // rgb(255,0,0)
|
|
|
|
- this.r = Math.min( 255, parseInt( color[ 1 ], 10 ) ) / 255;
|
|
|
|
- this.g = Math.min( 255, parseInt( color[ 2 ], 10 ) ) / 255;
|
|
|
|
- this.b = Math.min( 255, parseInt( color[ 3 ], 10 ) ) / 255;
|
|
|
|
-
|
|
|
|
- return this;
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if ( color = /^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*$/.exec( components ) ) {
|
|
|
|
-
|
|
|
|
- // rgb(100%,0%,0%)
|
|
|
|
- this.r = Math.min( 100, parseInt( color[ 1 ], 10 ) ) / 100;
|
|
|
|
- this.g = Math.min( 100, parseInt( color[ 2 ], 10 ) ) / 100;
|
|
|
|
- this.b = Math.min( 100, parseInt( color[ 3 ], 10 ) ) / 100;
|
|
|
|
-
|
|
|
|
- return this;
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
case 'rgba':
|
|
case 'rgba':
|
|
|
|
|
|
- if ( color = /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([0-9]*\.?[0-9]+)\s*$/.exec( components ) ) {
|
|
|
|
|
|
+ if ( color = /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec( components ) ) {
|
|
|
|
|
|
- // rgba(255,0,0,0.5)
|
|
|
|
|
|
+ // rgb(255,0,0) rgba(255,0,0,0.5)
|
|
this.r = Math.min( 255, parseInt( color[ 1 ], 10 ) ) / 255;
|
|
this.r = Math.min( 255, parseInt( color[ 1 ], 10 ) ) / 255;
|
|
this.g = Math.min( 255, parseInt( color[ 2 ], 10 ) ) / 255;
|
|
this.g = Math.min( 255, parseInt( color[ 2 ], 10 ) ) / 255;
|
|
this.b = Math.min( 255, parseInt( color[ 3 ], 10 ) ) / 255;
|
|
this.b = Math.min( 255, parseInt( color[ 3 ], 10 ) ) / 255;
|
|
- parseAlpha( color[ 4 ] );
|
|
|
|
|
|
+
|
|
|
|
+ handleAlpha( color[ 5 ] );
|
|
|
|
|
|
return this;
|
|
return this;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if ( color = /^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*([0-9]*\.?[0-9]+)\s*$/.exec( components ) ) {
|
|
|
|
|
|
+ if ( color = /^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec( components ) ) {
|
|
|
|
|
|
- // rgba(100%,0%,0%,0.5)
|
|
|
|
|
|
+ // rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)
|
|
this.r = Math.min( 100, parseInt( color[ 1 ], 10 ) ) / 100;
|
|
this.r = Math.min( 100, parseInt( color[ 1 ], 10 ) ) / 100;
|
|
this.g = Math.min( 100, parseInt( color[ 2 ], 10 ) ) / 100;
|
|
this.g = Math.min( 100, parseInt( color[ 2 ], 10 ) ) / 100;
|
|
this.b = Math.min( 100, parseInt( color[ 3 ], 10 ) ) / 100;
|
|
this.b = Math.min( 100, parseInt( color[ 3 ], 10 ) ) / 100;
|
|
- parseAlpha( color[ 4 ] );
|
|
|
|
|
|
+
|
|
|
|
+ handleAlpha( color[ 5 ] );
|
|
|
|
|
|
return this;
|
|
return this;
|
|
|
|
|
|
@@ -187,29 +162,16 @@ THREE.Color.prototype = {
|
|
break;
|
|
break;
|
|
|
|
|
|
case 'hsl':
|
|
case 'hsl':
|
|
-
|
|
|
|
- if ( color = /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*$/.exec( components ) ) {
|
|
|
|
-
|
|
|
|
- // hsl(120,50%,50%)
|
|
|
|
- var h = parseFloat( color[ 1 ] ) / 360;
|
|
|
|
- var s = parseInt( color[ 2 ], 10 ) / 100;
|
|
|
|
- var l = parseInt( color[ 3 ], 10 ) / 100;
|
|
|
|
-
|
|
|
|
- return this.setHSL( h, s, l );
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
case 'hsla':
|
|
case 'hsla':
|
|
|
|
|
|
- if ( color = /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*([0-9]*\.?[0-9]+)\s*$/.exec( components ) ) {
|
|
|
|
|
|
+ if ( color = /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec( components ) ) {
|
|
|
|
|
|
- // hsla(120,50%,50%,0.5)
|
|
|
|
|
|
+ // hsl(120,50%,50%) hsla(120,50%,50%,0.5)
|
|
var h = parseFloat( color[ 1 ] ) / 360;
|
|
var h = parseFloat( color[ 1 ] ) / 360;
|
|
var s = parseInt( color[ 2 ], 10 ) / 100;
|
|
var s = parseInt( color[ 2 ], 10 ) / 100;
|
|
var l = parseInt( color[ 3 ], 10 ) / 100;
|
|
var l = parseInt( color[ 3 ], 10 ) / 100;
|
|
- parseAlpha( color[ 4 ] );
|
|
|
|
|
|
+
|
|
|
|
+ handleAlpha( color[ 5 ] );
|
|
|
|
|
|
return this.setHSL( h, s, l );
|
|
return this.setHSL( h, s, l );
|
|
|
|
|