Class: RLSL::FunctionContext

Inherits:
Object
  • Object
show all
Defined in:
lib/rlsl/function_context.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeFunctionContext

Returns a new instance of FunctionContext.



7
8
9
# File 'lib/rlsl/function_context.rb', line 7

def initialize
  @functions = {}
end

Instance Attribute Details

#functionsObject (readonly)

Returns the value of attribute functions.



5
6
7
# File 'lib/rlsl/function_context.rb', line 5

def functions
  @functions
end

Instance Method Details

#define(name, returns:, params: {}) ⇒ Object

Full form: specify return type and parameter types

Examples:

define :path_point, returns: :vec3, params: { z: :float }
define :noise_a, returns: :float, params: { f: :float, h: :float, k: :float, p: :vec3 }


15
16
17
18
19
20
# File 'lib/rlsl/function_context.rb', line 15

def define(name, returns:, params: {})
  @functions[name.to_sym] = {
    returns: validate_type!(returns),
    params: normalize_params(params)
  }
end