Sha256: 12cd526319be8905a97e81d566adbe86841b10eb00b1ddce0cd24e9fcce3189c

Contents?: true

Size: 1.11 KB

Versions: 34

Compression:

Stored size: 1.11 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 parse(passed_io)
    ts = []
    io = Tracksperanto::ExtIO.new(passed_io)
    
    num_t = detect_num_of_points(io)
    num_t.times { ts << extract_tracker(io) }
    
    ts
  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

34 entries across 34 versions & 1 rubygems

Version Path
tracksperanto-1.6.7 lib/import/equalizer4.rb
tracksperanto-1.6.6 lib/import/equalizer4.rb
tracksperanto-1.6.5 lib/import/equalizer4.rb
tracksperanto-1.6.4 lib/import/equalizer4.rb
tracksperanto-1.6.3 lib/import/equalizer4.rb
tracksperanto-1.6.2 lib/import/equalizer4.rb
tracksperanto-1.6.1 lib/import/equalizer4.rb
tracksperanto-1.6.0 lib/import/equalizer4.rb
tracksperanto-1.5.7 lib/import/equalizer4.rb
tracksperanto-1.5.6 lib/import/equalizer4.rb
tracksperanto-1.5.5 lib/import/equalizer4.rb
tracksperanto-1.5.4 lib/import/equalizer4.rb
tracksperanto-1.5.3 lib/import/equalizer4.rb
tracksperanto-1.5.2 lib/import/equalizer4.rb