Class: Vizcore::DSL::MappingTransformBuilder
- Inherits:
-
Object
- Object
- Vizcore::DSL::MappingTransformBuilder
- Defined in:
- lib/vizcore/dsl/mapping_transform_builder.rb
Overview
Collects block-style mapping transform options.
Constant Summary collapse
- TRIGGER_MODES =
%i[continuous trigger].freeze
Instance Method Summary collapse
- #as(mode) ⇒ Symbol
- #cooldown(seconds) ⇒ Numeric
- #curve(value) ⇒ Symbol, String
- #deadzone(value) ⇒ Numeric
- #decay(value) ⇒ Numeric
- #evaluate(&block) ⇒ Vizcore::DSL::MappingTransformBuilder
- #gain(value) ⇒ Numeric
- #hold(value) ⇒ Numeric
- #hysteresis(value) ⇒ Numeric
-
#initialize(initial = {}) ⇒ MappingTransformBuilder
constructor
A new instance of MappingTransformBuilder.
- #max(value) ⇒ Numeric
- #min(value) ⇒ Numeric
- #one_shot(enabled = true) ⇒ Boolean
- #range(value) ⇒ Range, Array
- #smooth(attack: nil, release: nil) ⇒ Hash
- #threshold(value) ⇒ Numeric
- #to_h ⇒ Hash
Constructor Details
#initialize(initial = {}) ⇒ MappingTransformBuilder
Returns a new instance of MappingTransformBuilder.
10 11 12 13 14 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 10 def initialize(initial = {}) @values = initial.each_with_object({}) do |(key, value), output| output[key.to_sym] = value end end |
Instance Method Details
#as(mode) ⇒ Symbol
105 106 107 108 109 110 111 112 113 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 105 def as(mode) normalized = mode.to_sym unless TRIGGER_MODES.include?(normalized) raise ArgumentError, "mapping as must be :continuous or :trigger" end @values[:as] = normalized normalized end |
#cooldown(seconds) ⇒ Numeric
84 85 86 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 84 def cooldown(seconds) @values[:cooldown] = seconds end |
#curve(value) ⇒ Symbol, String
48 49 50 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 48 def curve(value) @values[:curve] = value end |
#deadzone(value) ⇒ Numeric
54 55 56 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 54 def deadzone(value) @values[:deadzone] = value end |
#decay(value) ⇒ Numeric
78 79 80 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 78 def decay(value) @values[:decay] = value end |
#evaluate(&block) ⇒ Vizcore::DSL::MappingTransformBuilder
17 18 19 20 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 17 def evaluate(&block) instance_eval(&block) if block self end |
#gain(value) ⇒ Numeric
24 25 26 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 24 def gain(value) @values[:gain] = value end |
#hold(value) ⇒ Numeric
72 73 74 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 72 def hold(value) @values[:hold] = value end |
#hysteresis(value) ⇒ Numeric
66 67 68 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 66 def hysteresis(value) @values[:hysteresis] = value end |
#max(value) ⇒ Numeric
42 43 44 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 42 def max(value) @values[:max] = value end |
#min(value) ⇒ Numeric
36 37 38 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 36 def min(value) @values[:min] = value end |
#one_shot(enabled = true) ⇒ Boolean
90 91 92 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 90 def one_shot(enabled = true) @values[:one_shot] = !!enabled end |
#range(value) ⇒ Range, Array
30 31 32 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 30 def range(value) @values[:range] = value end |
#smooth(attack: nil, release: nil) ⇒ Hash
97 98 99 100 101 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 97 def smooth(attack: nil, release: nil) @values[:attack] = attack unless attack.nil? @values[:release] = release unless release.nil? @values end |
#threshold(value) ⇒ Numeric
60 61 62 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 60 def threshold(value) @values[:threshold] = value end |
#to_h ⇒ Hash
116 117 118 |
# File 'lib/vizcore/dsl/mapping_transform_builder.rb', line 116 def to_h @values.dup end |