Sha256: ed40844558c9bf03975510cf069ad7d779f905a36fc9b0f8c9e218dab1913579

Contents?: true

Size: 1.06 KB

Versions: 5

Compression:

Stored size: 1.06 KB

Contents

# Imports 3D Equalizer's text files
class Tracksperanto::Import::Equalizer4 < Tracksperanto::Import::Base
  
  def self.human_name
    "3DE v4 point export file"
  end
  
  def each
    io = Tracksperanto::ExtIO.new(@io)
    num_t = detect_num_of_points(io)
    num_t.times { yield(extract_tracker(io)) }
  end
  
  private
    
    def detect_num_of_points(io)
      io.gets_non_empty.to_i
    end
    
    KF_PATTERN = /^(\d+)\s([\-\d\.]+)\s([\-\d\.]+)/
    def extract_tracker(io)
      t = Tracksperanto::Tracker.new(:name => io.gets.strip)
      
      report_progress("Capturing tracker #{t.name}")
      
      io.gets # Tracker color, internal 3DE repr and 0 is Red
      
      num_of_keyframes = io.gets.to_i
      catch(:__emp) do
        num_of_keyframes.times do
          line = io.gets_non_empty
          throw :__emp unless line
          
          frame, x, y = line.scan(KF_PATTERN).flatten
          report_progress("Capturing keyframe #{frame}")
          t.keyframe!(:frame => (frame.to_i - 1), :abs_x => x, :abs_y => y)
        end
      end
      t
    end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tracksperanto-4.2.0 lib/import/equalizer4.rb
tracksperanto-4.1.3 lib/import/equalizer4.rb
tracksperanto-4.1.2 lib/import/equalizer4.rb
tracksperanto-4.1.0 lib/import/equalizer4.rb
tracksperanto-4.0.0 lib/import/equalizer4.rb