Layers.js 639 字节
Newer Older
1 2 3 4
/**
 * @author mrdoob / http://mrdoob.com/
 */

M
Mr.doob 已提交
5
function Layers() {
6

M
Mr.doob 已提交
7
	this.mask = 1 | 0;
8

M
Mr.doob 已提交
9
}
10

11
Object.assign( Layers.prototype, {
12 13 14

	set: function ( channel ) {

M
Mr.doob 已提交
15
		this.mask = 1 << channel | 0;
16 17 18 19 20

	},

	enable: function ( channel ) {

M
Mr.doob 已提交
21
		this.mask |= 1 << channel | 0;
22 23 24

	},

M
Mr.doob 已提交
25
	enableAll: function () {
26

M
Mr.doob 已提交
27
		this.mask = 0xffffffff | 0;
28 29 30

	},

M
Mr.doob 已提交
31
	toggle: function ( channel ) {
32

M
Mr.doob 已提交
33
		this.mask ^= 1 << channel | 0;
34

35 36
	},

M
Mr.doob 已提交
37
	disable: function ( channel ) {
38

M
Mr.doob 已提交
39
		this.mask &= ~ ( 1 << channel | 0 );
40

41 42
	},

M
Mr.doob 已提交
43
	disableAll: function () {
44

M
Mr.doob 已提交
45
		this.mask = 0;
46 47 48

	},

M
Mr.doob 已提交
49
	test: function ( layers ) {
50

M
Mr.doob 已提交
51
		return ( this.mask & layers.mask ) !== 0;
52

53 54
	}

55
} );
R
Rich Harris 已提交
56 57


58
export { Layers };