Controller Time Functions

Time Range Operations

getTimeRange <controller> [#selOnly] [#allKeys] [#children]

Returns a time Interval value specifying the range of time covered by keys in the controller. The optional symbolic arguments specify options:

setTimeRange <controller> [<interval>] [#linkToKeys]

Sets the time range to be an interval other than that covered by existing keys, typically to influence when the out-of-range methods take over. If the optional #linkToKeys argument is given any keys exactly at the start or end of the given interval become anchors for the time range and moving them move the time range for the controller.

If you call setTimeRange() with just the single argument, #linkToKeys , it will set the time range to the current start and end keysin all the controllers affected,

EXAMPLES

   setTimeRange $box* #linkToKeys

This is equivalent to the Recouple Ranges function in the Position Ranges mode in Track View.

Note: When the #linkToKeys argument is not supplied, only the supplied controller will be affected. When the #linkToKeys argument is supplied, the function will also affect recursively all sub-controllers.

Time Operations

supportsTimeOperations <ctrl>

returns true or false depending on whether the controller supports the following time operations

deleteTime <controller> <interval> [#incLeft] [#incRight] [#noSlide]

Deletes an interval of time from the controller, removing all the keys with that interval and, by default, sliding the keys to the right of the interval to the left by the width of the interval. The optional symbolic arguments choose one of several options:

The <interval> argument can be specified as an Interval value or as two numbers or time values defining the start and end times. Number values are taken as frame numbers.

reverseTime <controller> <interval> [#incLeft] [#incRight]

Reverses time in the given interval, essentially swapping keys around so that their time placements are reversed within the interval. The notes on inclusion and interval arguments from deleteTime() apply.

scaleTime <controller> <interval> <float_scale>

Scales the times of the keys within the given interval. Again, the <interval> argument can be specified as an Interval value or as two numbers or time values defining the start and end times. Number values are taken as frame counts.

insertTime <controller> <at_time> <amount_time>

Inserts a block of time at the specified time, effectively moving all later keys out in time by the amount inserted. The times can be numbers or Time values. Numbers are taken as frame counts.

The following script shows example usages of some of the above methods.

EXAMPLES

   -- controller test bed 1
   b=box height:10
   at time 5 animate on b.height=50
   at time 10 animate on b.height=100
   bhc=b.height.controller
   bhk=bhc.keys
   supportstimeoperations bhc
   deletetime bhc 4 5
   bhk
   deletetime bhc 4 5 #incLeft
   bhk
   deletetime bhc 1 4 #noslide
   bhk
   at time 5 animate on b.height=50
   deletetime bhc (interval 5 8) #incLeft
   bhk
   at time 10 animate on b.height=150
   for k in bhk do format "%:%\n"k.time k.value
   reversetime bhc 5 15 #incLeft #incRight
   for k in bhk do format "%:%\n"k.time k.value
   insertTime bhc 12 5
   bhk
   getTimeRange bhc