Class: XRVG::Roller

Inherits:
Object
  • Object
show all
Includes:
Samplable
Defined in:
lib/samplation.rb

Overview

Experimental class to add discrete processing in float processing chains

Roller["white","black"].samples(3) => ["white","black","white"]

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Samplable

#apply_sample, #apply_samples, build, #mean, #rand, #sample, #samples

Methods included from FloatFunctor

#addfilter, #alternate, #apply, #applyhash, #compute, #filter, #generate, #geo, #geofull, #modify, #process, #random, #shuffle, #sin, #ssort, #transforms, #trigger

Constructor Details

#initialize(*args) ⇒ Roller

:nodoc:



543
544
545
546
# File 'lib/samplation.rb', line 543

def initialize( *args )  #:nodoc:
  @index = 0
  @items = args
end

Class Method Details

.[](*args) ⇒ Object

:nodoc:



548
549
550
# File 'lib/samplation.rb', line 548

def Roller.[](*args)  #:nodoc:
  return self.new(*args)
end

Instance Method Details

#nextObject



561
562
563
# File 'lib/samplation.rb', line 561

def next()
  return transform( 0.0 )
end

#transform(abs) ⇒ Object

:nodoc:



552
553
554
555
556
557
558
559
# File 'lib/samplation.rb', line 552

def transform( abs )  #:nodoc:
  result = @items[@index]
  @index += 1
  if @index >= @items.size
    @index = 0
  end
  return result
end