| Class | RS::Graphics::RSFilter |
| In: |
rsil/graphics/rsfilter.rb
|
| Parent: | RS::Utils::RSObjcWrapper |
| Class: | RSFilter |
| File: | rsfilter.rb |
| Purpose: | RSFilter represents a Filter for RSImages through wrapping of OSX::CIImage. The input and output parameters of the filter will be generated dynamicly. Consult the Core Image API for information, which parameters are availble your choosen filter or make use of Apple’s CIFilterBrowser Dashboard widget. |
| Created by: | Mario Pehle, 2006/04/29 |
| Required modules: | - |
| Offers functions: | - |
| filter_name | [R] | saves the initial name of the filter |
| input_image | [R] | holds the input image |
| input_keys | [R] | saves possible input keys for the filter as an Array. |
| output_keys | [R] | saves possible output keys for the filter as an Array. |
| Description: | Determines all added filters. You can use this method after you called load methods of RSImageUnit. |
| Precondition: | - |
| Postcondition: | @@filters is changed. |
| Exceptions: | - |
| Uses: | RSFilter#installed_filters, Array#- |
| Returns: | Array |
| Parameters: | Name | i/o/io | default | Meaning |
# File rsil/graphics/rsfilter.rb, line 76
76: def self::added_filters
77: oldfilters = @@filters.clone
78: self.installed_filters - oldfilters
79: end
| Description: | Determines all accessible filters in the operation system - the default ones and those, which were loaded later. |
| Precondition: | - |
| Postcondition: | @@filters is changed. |
| Exceptions: | - |
| Uses: | OSX::CIFilter.filterNamesInCategories |
| Returns: | Array |
| Parameters: | Name | i/o/io | default | Meaning |
# File rsil/graphics/rsfilter.rb, line 57
57: def self::installed_filters
58: oc_filters = OSX::CIFilter.filterNamesInCategories(nil).to_a
59: filters = []
60: oc_filters.length.times { |i| filters << oc_filters[i].to_s }
61: @@filters = filters
62: end
| Description: | Determines the localized name for the given filter name. |
| Precondition: | - |
| Postcondition: | - |
| Exceptions: | - |
| Uses: | OSX::CIFilter.localizedNameForFilterName |
| Returns: | String if valid argument, else nil |
| Parameters: | Name | i/o/io | default | Meaning |
| : | filter | i | - | String, the filter name |
# File rsil/graphics/rsfilter.rb, line 94
94: def self::localized_name filter
95: if filter.respond_to? :to_str
96: name = OSX::CIFilter.localizedNameForFilterName(filter.to_str)
97: name = name.to_s unless name.nil?
98: return name
99: end
100: nil
101: end
| Description: | Represents a Filter through wrapping a CIFilter. See RSFilter#installed_filters for a list of installed filters and how their now is. |
| Precondition: | - |
| Postcondition: | Methods to set input values and to get output values for this filter were added dynamically. |
| Exceptions: | ArgumentError |
| Uses: | OSX::CIFilter#filterWithName, instance_eval |
| Returns: | self |
| Parameters: | Name | i/o/io | default | Meaning |
| : | filtername | i | nil | String |
| : | set_defaults | i | false | Boolean, whether default values should be set |
# File rsil/graphics/rsfilter.rb, line 118
118: def initialize filtername, set_dafaults=false
119: @filter_name = filtername
120: @cifilter = OSX::CIFilter.filterWithName filtername
121: assert "@cifilter not initialized" if @cifilter.nil?
122: raise ArgumentError, 'No valid filter name.' if @cifilter.nil?
123: @input_image = nil
124: @input_keys = @cifilter.inputKeys.to_a
125: @input_keys.each do |k|
126: set_input_image_string = k.to_s == 'inputImage' ? '@input_image = value' : ''
127: instance_eval "def \#{k.to_s}= value\nv = nil\nif value.kind_of?(RS::Utils::RSObjcWrapper)\n\#{set_input_image_string}\nv = value.objc_object\nelse\nv = value\nend\n@cifilter.setValue v, :forKey, '\#{k.to_s}'\nend\n"
128: end
129: @output_keys = @cifilter.outputKeys.to_a
130: @output_keys.each do |k|
131: instance_eval "def \#{k.to_s}\n@cifilter.valueForKey '\#{k.to_s}'\nend\n"
132: end
133: @cifilter.setDefaults if set_defaults
134: self
135: end
| Description: | Gives access to the basic Core Image object of this object, a OSX::CIFilter. |
| Precondition: | - |
| Postcondition: | - |
| Exceptions: | - |
| Uses: | - |
| Returns: | OSX::CIFilter / OSX::OCObject |
| Parameters: | Name | i/o/io | default | Meaning |
# File rsil/graphics/rsfilter.rb, line 183
183: def objc_object
184: @cifilter
185: end
| Description: | Sets the default values for the choosen filter. Note, that this does not mean, the filter may work. Some filters need further input data. |
| Precondition: | - |
| Postcondition: | Filter values are changed to default values. |
| Exceptions: | - |
| Uses: | OSX::CIFilter#setDefaults |
| Returns: | self |
| Parameters: | Name | i/o/io | default | Meaning |
# File rsil/graphics/rsfilter.rb, line 166
166: def set_defaults
167: @cifilter.setDefaults
168: self
169: end