Color.js 1.2 KB
Newer Older
M
Mr.doob 已提交
1 2 3 4
/**
 * @author mr.doob / http://mrdoob.com/
 */

5
THREE.Color = function ( hex ) {
M
Mr.doob 已提交
6

7
	/*
8 9
	this.r; this.g; this.b; this.a;
	this.hex;
10
	*/
M
Mr.doob 已提交
11

12
	this.__styleString = 'rgba(0, 0, 0, 1)';
M
Mr.doob 已提交
13

14
	this.setHex = function ( hex ) {
M
Mr.doob 已提交
15

16
		this.hex = hex;
M
Mr.doob 已提交
17 18
		this.updateRGBA();
		this.updateStyleString();
M
Mr.doob 已提交
19

M
Mr.doob 已提交
20
	};
M
Mr.doob 已提交
21

22
	this.setRGBA = function ( r, g, b, a ) {
M
Mr.doob 已提交
23

24 25 26 27
		this.r = r;
		this.g = g;
		this.b = b;
		this.a = a;
M
Mr.doob 已提交
28

M
Mr.doob 已提交
29 30
		this.updateHex();
		this.updateStyleString();
M
Mr.doob 已提交
31

M
Mr.doob 已提交
32
	};
M
Mr.doob 已提交
33

M
Mr.doob 已提交
34
	this.updateHex = function () {
M
Mr.doob 已提交
35

36
		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 );
M
Mr.doob 已提交
37

M
Mr.doob 已提交
38
	};
M
Mr.doob 已提交
39

M
Mr.doob 已提交
40
	this.updateRGBA = function () {
M
Mr.doob 已提交
41

42 43 44 45
		this.a = ( this.hex >> 24 & 0xff ) / 0xff;
		this.r = ( this.hex >> 16 & 0xff ) / 0xff;
		this.g = ( this.hex >> 8 & 0xff ) / 0xff;
		this.b = ( this.hex & 0xff ) / 0xff;
M
Mr.doob 已提交
46

M
Mr.doob 已提交
47
	};
M
Mr.doob 已提交
48

M
Mr.doob 已提交
49
	this.updateStyleString = function () {
M
Mr.doob 已提交
50

51
		this.__styleString = 'rgba(' + Math.floor( this.r * 255 ) + ',' + Math.floor( this.g * 255 ) + ',' + Math.floor( this.b * 255 ) + ',' + this.a + ')';
M
Mr.doob 已提交
52

M
Mr.doob 已提交
53
	};
M
Mr.doob 已提交
54

M
Mr.doob 已提交
55
	this.toString = function () {
M
Mr.doob 已提交
56

57
		return 'THREE.Color ( r: ' + this.r + ', g: ' + this.g + ', b: ' + this.b + ', a: ' + this.a + ', hex: ' + this.hex + ' )';
M
Mr.doob 已提交
58

M
Mr.doob 已提交
59
	};
M
Mr.doob 已提交
60

61
	this.setHex( hex );
M
Mr.doob 已提交
62

M
Mr.doob 已提交
63
};