set pg [getSelectedPGroup] if {$pg==0}\ { bell post3DEInfoRequester " \n Error, there is no Pointgroup selected. \n" return } set seq [getSelectedFobj] if {$seq==0}\ { bell post3DEInfoRequester " \n Error, there is no Sequence selected. \n" return } set point 0 set width [getFobjImageWidth $seq] set height [getFobjImageHeight $seq] set filename [post3DEFileRequester "Import Track file..." "*"] if {$filename!=""}\ { set file [open $filename r+]; open3DEConsole print3DEConsole "Import multiple tracks...\n\n" flush3DEConsole while {![eof $file]}\ { # get a line out of file... set line [gets $file ]; # which kind of line... set c [string index $line 0] switch $c {\ "/" {\ # comment, do nothing... } "\t" {\ # 2D coordinate... set frame [expr int([lindex $line 0])-1] set pos2d [list [expr [lindex $line 1]/$width] [expr [lindex $line 2]/$height] ] set curve [lreplace $curve $frame $frame $pos2d] } default {\ # point name... if { $point!=0 }\ { #assign tracking curve to "previous" point... setPointPosition2DBlock $pg $point $seq 1 $curve } if { $line!="" }\ { set point [findPointByName $pg $line] if { $point==0 }\ { print3DEConsole "Can't find point $line. Creating new one...\n" flush3DEConsole set point [createPoint $pg] setPointName $pg $point $line }\ else\ { print3DEConsole "Found point $line.\n" flush3DEConsole } # prepare new tracking curve list... set n [getFobjNoFrames $seq] set curve [list [list -1 -1] ] for {set i 1} {$i<=$n} {set i [expr $i+1]}\ { lappend curve [list -1 -1] } } } } } }