|anim_offset -o # # # [-r] in.table out.table|
This filter operates on animation tables of the type used by tabsub and anim_script. Given a table specifying the position and orientation of one object at every applicable time, anim_offset calculates the position of another object which is rigidly attached to it.
The columns of the input table should be time, three columns of position, followed by yaw, pitch, and roll. The output will normally be a four-column file specifying time and position. If the -r option is used, the output is a seven-column file in which the last three columns are copies of the orientation information from the input file.
The position of the object relative to the rigid body should be given on the command line in the order x, y, z, with the -o # # # option. These offset values should be as measured from the centroid of the rigid body.
This filter could be used, for example, to do an animation where the camera is placed inside a moving vehicle.
Suppose that truck.table contains the desired position of the center of the front axle of the truck as well as its orientation at each time. One row of the table might look like this:
35.2 12450 -140 600 90.0 0.0 0.0
Thus 35.2 seconds into the animation, the center of the front axle will be at (12450, -140, 600), and the truck will be pointed in the positive y direction. (yaw = 90).
Now, suppose we want the camera to ride along in the cab, above and behind the front axle and somewhat to the left. To specify this offset, we use the coordinate frame of the truck, with the origin at the center of the front axle, the x-axis to the front, y to the left, and z pointing up. Let the exact offset from the axle to the desired camera position in this case be (-600, 900, 1200), in units of mm. Now we use the routine:
anim_offset -o -600 900 1200 < truck.table > camera.table
The result is a four-column table giving the desired position of the virtual camera at each time. The row corresponding to the sample row above would be:
35.2 11550 -740 1800
With the -r option, the output would have been:
35.2 11550 -740 1800 90.0 0.0 0.0
Now tabsub and/or anim_script can be used to process these two animation tables into an animation script.
The program will only use orientations specified as yaw, pitch, and roll. You can get around this using anim_orient, which converts between different orientation representations.
Carl J. Nuzman
This software is Copyright (c) 1993-2013 by the United States Government as represented by U.S. Army Research Laboratory.
Reports of bugs or problems should be submitted via electronic mail to <firstname.lastname@example.org>.