class Tracksperanto::Import::ShakeText

Import for Shake Text files

Public Class Methods

human_name() click to toggle source
# File lib/import/shake_text.rb, line 4
def self.human_name
  "Shake .txt tracker file and Nuke CameraTracker auto tracks export"
end

Public Instance Methods

each() { |last_tracker| ... } click to toggle source
# File lib/import/shake_text.rb, line 8
def each
  @io.each do | line |
    if line =~ /TrackName (.+)/
      yield(@last_tracker) if @last_tracker && @last_tracker.any?
      @last_tracker = Tracksperanto::Tracker.new(:name => $1)
      # Toss the next following string - header
      io.gets
    else
      keyframe_values = line.split
      next if keyframe_values.length < 4
      
      @last_tracker.keyframe!(
        :frame => (keyframe_values[0].to_i - 1),
        :abs_x => keyframe_values[1],
        :abs_y => keyframe_values[2],
        :residual => (1 - keyframe_values[3].to_f)
      )
    end
  end
  
  yield(@last_tracker) if @last_tracker && @last_tracker.any?
end