class Tracksperanto::Import::Boujou
Constants
- COMMENT
Public Class Methods
human_name()
click to toggle source
# File lib/import/boujou.rb, line 3 def self.human_name "Boujou feature tracks export" end
Public Instance Methods
each() { |last_tracker| ... }
click to toggle source
# File lib/import/boujou.rb, line 7 def each wrapped_io = Tracksperanto::ExtIO.new(@io) detect_columns(wrapped_io) trackers = {} filtering_trackers_from(wrapped_io) do | name, frame, x, y | if @last_tracker && (name != @last_tracker.name) yield(@last_tracker) if @last_tracker && @last_tracker.any? @last_tracker = nil end if !@last_tracker @last_tracker = Tracksperanto::Tracker.new(:name => name) end report_progress("Extracting frame #{frame} of #{name}") @last_tracker.keyframe!(:frame => (frame.to_i - 1), :abs_y => (@height.to_f - y.to_f - 1), :abs_x => x) end yield(@last_tracker) if @last_tracker && @last_tracker.any? end
Private Instance Methods
comment?(line)
click to toggle source
# File lib/import/boujou.rb, line 63 def comment?(line) line =~ COMMENT end
detect_columns(io)
click to toggle source
# File lib/import/boujou.rb, line 32 def detect_columns(io) until io.eof? do line = io.gets_and_strip if line =~ /^# track_id/ report_progress("Detecting columns") return set_columns_from(line) end end end
filtering_trackers_from(io) { |track_id, frame, x, y| ... }
click to toggle source
# track_id view x y Target_track_1 5 252.046 171.677
# File lib/import/boujou.rb, line 50 def filtering_trackers_from(io) #:yields: track_id, frame, x, y until io.eof? line = io.gets_and_strip next if comment?(line) column = make_column_hash(line) yield(column["track_id"], column["view"], column["x"], column["y"]) end end
make_column_hash(line)
click to toggle source
# File lib/import/boujou.rb, line 59 def make_column_hash(line) Hash[*@columns.zip(line.split).flatten] end
set_columns_from(line)
click to toggle source
# File lib/import/boujou.rb, line 42 def set_columns_from(line) @columns = line.gsub(COMMENT, '').split end