set pg [getSelectedPGroup] if {$pg==0}\ { post3DEInfoRequester " \n Error, there is no Pointgroup selected. \n" return } set fobj [getSelectedFobj] if {$fobj==0}\ { post3DEInfoRequester " \n Error, there is no Sequence selected. \n" return } set frames [getFobjNoFrames $fobj] set shift [post3DEPromptRequester "Enter TimeShift Value:"] if {$shift!=""}\ { for {set p [getFirstPoint $pg]} {$p!=0} {set p [getNextPoint $pg $p]}\ { set c0 [getPointPosition2DBlock $pg $p $fobj 1 $frames] set c1 "" for {set frame 0} {$frame<$frames} {set frame [expr $frame+1]}\ { set q1 [lindex $c0 $frame] set x1 [lindex $q1 0] set y1 [lindex $q1 1] if {$x1!=-1}\ { set q0 [lindex $c0 [expr $frame-1]] set x0 [lindex $q0 0] set y0 [lindex $q0 1] set q2 [lindex $c0 [expr $frame+1]] set x2 [lindex $q2 0] set y2 [lindex $q2 1] set startframe 0 if {$frame==0} { set startframe 1 } if {$x0==-1} { set startframe 1 } set endframe 0 if {$frame==[expr $frames-1]} { set endframe 1 } if {$x2==-1} { set endframe 1 } if {$startframe}\ { set sx [expr (0.010416667*($x2-$x1))/0.041666667] set sy [expr (0.010416667*($y2-$y1))/0.041666667] }\ else\ { if {$endframe}\ { set sx [expr (0.010416667*($x1-$x0))/0.041666667] set sy [expr (0.010416667*($y1-$y0))/0.041666667] }\ else\ { set sx [expr (0.010416667*($x2-$x0))/0.083333333] set sy [expr (0.010416667*($y2-$y0))/0.083333333] } } if {$startframe&&$endframe}\ { open3DEConsole set name [getPointName $pg $p] print3DEConsole "Warning: Point \"$name\" has a standalone keyframe at frame \"[expr $frame+1]\"!\n" flush3DEConsole }\ else\ { set x1 [expr $x1+($sx*$shift)] set y1 [expr $y1+($sy*$shift)] set q1 [list $x1 $y1] } lappend c1 $q1 }\ else\ { lappend c1 [list -1 -1] } } setPointPosition2DBlock $pg $p $fobj 1 $c1 } }