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
	this.r; this.g; this.b; this.a;
	this.hex;
M
Mr.doob 已提交
9

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

12
	this.setHex = function ( hex ) {
M
Mr.doob 已提交
13

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

M
Mr.doob 已提交
18
	};
M
Mr.doob 已提交
19

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

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

M
Mr.doob 已提交
27 28
		this.updateHex();
		this.updateStyleString();
M
Mr.doob 已提交
29

M
Mr.doob 已提交
30
	};
M
Mr.doob 已提交
31

M
Mr.doob 已提交
32
	this.updateHex = function () {
M
Mr.doob 已提交
33

34
		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 已提交
35

M
Mr.doob 已提交
36
	};
M
Mr.doob 已提交
37

M
Mr.doob 已提交
38
	this.updateRGBA = function () {
M
Mr.doob 已提交
39

40 41 42 43
		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 已提交
44

M
Mr.doob 已提交
45
	};
M
Mr.doob 已提交
46

M
Mr.doob 已提交
47
	this.updateStyleString = function () {
M
Mr.doob 已提交
48

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

M
Mr.doob 已提交
51
	};
M
Mr.doob 已提交
52

M
Mr.doob 已提交
53
	this.toString = function () {
M
Mr.doob 已提交
54

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

M
Mr.doob 已提交
57
	};
M
Mr.doob 已提交
58

59
	this.setHex( hex );
M
Mr.doob 已提交
60

M
Mr.doob 已提交
61
};