lib/import/syntheyes.rb
class Tracksperanto::Import::Syntheyes < Tracksperanto::Import::Base
include Tracksperanto::UVCoordinates
def self.human_name
"Syntheyes \"Tracker 2-D paths\" file"
end
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
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
end