Sha256: a95fe1441202de32dad735ae1a1dd95868aa1a38a7bd81b3590a86f987e52715

Contents?: true

Size: 925 Bytes

Versions: 1

Compression:

Stored size: 925 Bytes

Contents

require 'ws_light/animation/base_animation'

module WSLight
  module Animation
    # Slides from one set to another from right to left (obviously depending on the hardware setup)
    class SlideRightAnimation < BaseAnimation
      def frames
        @set_from.length + 1 # one for each led plus one for all zero
      end

      def frame(count)
        set = []
        reverse_set = []

        @set_from.next_frame
        @set_to.next_frame

        count.times do |i|
          set << set_to.pixel(i)
          reverse_set << set_to.pixel((set_from.length * 2) - 1 - i)
        end

        (set_from.length - count).times do |i|
          set << set_from.pixel(i + count)
          reverse_set << set_from.pixel((set_from.length * 2) - count - 1 - i)
        end

        set += reverse_set.reverse if set_from.type == :double

        set
      end

      def frames_per_second
        nil
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ws_light-0.4.2 lib/ws_light/animation/slide_right_animation.rb