class Tracksperanto::Import::Syntheyes

Public Class Methods

human_name() click to toggle source
# File lib/import/syntheyes.rb, line 4
def self.human_name
  "Syntheyes \"Tracker 2-D paths\" file"
end
known_snags() click to toggle source
# File lib/import/syntheyes.rb, line 8
def self.known_snags
  "Syntheyes has two formats for exporting tracks. One is called \"Tracker 2-D paths\" in the menu. " +
  "The other is called \"All Tracker Paths\". You told Tracksperanto to treat your file as " +
  "\"Tracker 2-D paths\", if something goes wrong might be a good idea to try the other Tracksperanto input format"
end

Public Instance Methods

each() { |last_tracker| ... } click to toggle source
# File lib/import/syntheyes.rb, line 14
def each
  @io.each_line do | line |
    name, frame, x, y, frame_status = line.split
    
    # Do we already have this tracker?
    unless @last_tracker && @last_tracker.name == name
      yield(@last_tracker) if @last_tracker
      report_progress("Allocating tracker #{name}")
      @last_tracker = Tracksperanto::Tracker.new{|t| t.name = name }
    end
    
    # Add the keyframe
    k = Tracksperanto::Keyframe.new do |e| 
      e.frame = frame
      e.abs_x = convert_from_uv(x, width)
      e.abs_y = height - convert_from_uv(y, height) # Convert TL to BL
    end
    
    @last_tracker.push(k)
    report_progress("Adding keyframe #{frame} to #{name}")
  end
  
  yield(@last_tracker) if @last_tracker && @last_tracker.any?
  
end