File size: 543 Bytes
2b7aae2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class Layers {
	constructor() {
		this.mask = 1 | 0;
	}

	set(channel) {
		this.mask = ((1 << channel) | 0) >>> 0;
	}

	enable(channel) {
		this.mask |= (1 << channel) | 0;
	}

	enableAll() {
		this.mask = 0xffffffff | 0;
	}

	toggle(channel) {
		this.mask ^= (1 << channel) | 0;
	}

	disable(channel) {
		this.mask &= ~((1 << channel) | 0);
	}

	disableAll() {
		this.mask = 0;
	}

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

	isEnabled(channel) {
		return (this.mask & ((1 << channel) | 0)) !== 0;
	}
}

export { Layers };