Class: Three::Layers

Inherits:
Object
  • Object
show all
Defined in:
lib/three/core/layers.rb

Constant Summary collapse

ALL_MASK =
0xffffffff

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLayers

Returns a new instance of Layers.



9
10
11
12
# File 'lib/three/core/layers.rb', line 9

def initialize
  @mask = 1
  @on_change_callback = proc {}
end

Instance Attribute Details

#maskObject

Returns the value of attribute mask.



7
8
9
# File 'lib/three/core/layers.rb', line 7

def mask
  @mask
end

Instance Method Details

#disable(channel) ⇒ Object



39
40
41
42
# File 'lib/three/core/layers.rb', line 39

def disable(channel)
  self.mask = @mask & ~bit(channel)
  self
end

#disable_allObject



44
45
46
47
# File 'lib/three/core/layers.rb', line 44

def disable_all
  self.mask = 0
  self
end

#enable(channel) ⇒ Object



24
25
26
27
# File 'lib/three/core/layers.rb', line 24

def enable(channel)
  self.mask = @mask | bit(channel)
  self
end

#enable_allObject



29
30
31
32
# File 'lib/three/core/layers.rb', line 29

def enable_all
  self.mask = ALL_MASK
  self
end

#is_enabled(channel) ⇒ Object



53
54
55
# File 'lib/three/core/layers.rb', line 53

def is_enabled(channel)
  (@mask & bit(channel)) != 0
end

#on_change(&callback) ⇒ Object



57
58
59
60
# File 'lib/three/core/layers.rb', line 57

def on_change(&callback)
  @on_change_callback = callback || proc {}
  self
end

#set(channel) ⇒ Object



19
20
21
22
# File 'lib/three/core/layers.rb', line 19

def set(channel)
  self.mask = bit(channel)
  self
end

#test(layers) ⇒ Object



49
50
51
# File 'lib/three/core/layers.rb', line 49

def test(layers)
  (@mask & layers.mask) != 0
end

#toggle(channel) ⇒ Object



34
35
36
37
# File 'lib/three/core/layers.rb', line 34

def toggle(channel)
  self.mask = @mask ^ bit(channel)
  self
end