From c8aacd8cdc98c69cf11281fbc86c18a9dd9c7113 Mon Sep 17 00:00:00 2001 From: philogb Date: Sat, 18 Sep 2010 00:52:12 +0800 Subject: [PATCH] Add Color methods to prototype object. --- src/core/Color.js | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/core/Color.js b/src/core/Color.js index 1961cf45..cd62785e 100644 --- a/src/core/Color.js +++ b/src/core/Color.js @@ -9,16 +9,22 @@ THREE.Color = function ( hex ) { this.hex; this.__styleString = 'rgba(0, 0, 0, 1)'; */ + + this.setHex( hex ); + +} - this.setHex = function ( hex ) { +THREE.Color.prototype = { + + setHex: function ( hex ) { this.hex = hex; this.updateRGBA(); this.updateStyleString(); - }; + }, - this.setRGBA = function ( r, g, b, a ) { + setRGBA: function ( r, g, b, a ) { this.r = r; this.g = g; @@ -28,35 +34,33 @@ THREE.Color = function ( hex ) { this.updateHex(); this.updateStyleString(); - }; + }, - this.updateHex = function () { + updateHex: function () { this.hex = Math.floor( this.a * 255 ) << 24 | Math.floor( this.r * 255 ) << 16 | Math.floor( this.g * 255 ) << 8 | Math.floor( this.b * 255 ); - }; + }, - this.updateRGBA = function () { + updateRGBA: function () { this.a = ( this.hex >> 24 & 255 ) / 255; this.r = ( this.hex >> 16 & 255 ) / 255; this.g = ( this.hex >> 8 & 255 ) / 255; this.b = ( this.hex & 255 ) / 255; - }; + }, - this.updateStyleString = function () { + updateStyleString: function () { this.__styleString = 'rgba(' + Math.floor( this.r * 255 ) + ',' + Math.floor( this.g * 255 ) + ',' + Math.floor( this.b * 255 ) + ',' + this.a + ')'; - }; + }, - this.toString = function () { + toString: function () { return 'THREE.Color ( r: ' + this.r + ', g: ' + this.g + ', b: ' + this.b + ', a: ' + this.a + ', hex: ' + this.hex + ' )'; - }; - - this.setHex( hex ); + } };