Sha256: a529fdbbcb091d66ceb33ec71ed54397f642e8ff06569cb9fe614b7eff5d4650

Contents?: true

Size: 837 Bytes

Versions: 29

Compression:

Stored size: 837 Bytes

Contents

# Implements the zip_curve_tuples method
module Tracksperanto::ZipTuples
  # Zip arrays of "value at" tuples into an array of "values at" tuples. 
  # The first value of each tuple will be the frame number
  # and keyframes which are not present in all arrays will be discarded. For example:
  #
  #    zip_curve_tuples( [[0, 12], [1, 23]], [[1, 12]]) #=> [[1, 23, 12]]
  #
  # We make use of the fact that setting an offset index in an array fills it with nils up to
  # the index inserted
  def zip_curve_tuples(*curves)
    tuples = curves.inject([]) do | tuples, curve_of_at_and_value |
      curve_of_at_and_value.each do | frame, value |
       tuples[frame] = tuples[frame] ? (tuples[frame] << value) : [frame, value]
      end
      tuples
    end
    
    tuples.reject{|e| e.nil? || (e.length < (curves.length + 1)) }
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
tracksperanto-2.1.1 lib/tracksperanto/zip_tuples.rb
tracksperanto-2.1.0 lib/tracksperanto/zip_tuples.rb
tracksperanto-2.0.2 lib/tracksperanto/zip_tuples.rb
tracksperanto-2.0.1 lib/tracksperanto/zip_tuples.rb
tracksperanto-2.0.0 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.9.9 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.9.8 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.9.6 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.9.5 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.9.4 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.9.3 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.9.2 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.9.1 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.9.0 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.8.4 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.8.2 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.8.1 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.8.0 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.7.5 lib/tracksperanto/zip_tuples.rb
tracksperanto-1.7.4 lib/tracksperanto/zip_tuples.rb