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 25 26

	},

	toggle: function ( channel ) {

M
Mr.doob 已提交
27
		this.mask ^= 1 << channel | 0;
28 29 30 31 32

	},

	disable: function ( channel ) {

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

35 36 37 38 39 40
	},

	test: function ( layers ) {

		return ( this.mask & layers.mask ) !== 0;

41 42 43 44 45 46 47 48 49 50 51 52
	},

	enableAll: function () {

		this.mask = 0xffffffff | 0;

	},

	disableAll: function () {

		this.mask = 0;

53 54
	}

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


58
export { Layers };