xform - transform a RADIANCE scene description |
xform [ -c ][ -I ][ -n name ][ -m newmod ][ -f argfile ][ xf0 ][ -a n1 xf1 .. ][ -i 1 xff ] file .. |
Xform transforms each scene description file according to the options given. The -c option causes commands in the file not to be expanded. The default is to execute all in line commands. (See note below about file names.) The -n option causes all identifiers to be prefixed with name. The -m option causes all surfaces to be given the modifier newmod. The -I option causes all surfaces to be inverted, reversing their surface normal orientations. These options are followed by the transformation options, which are described below. |
The -f option causes the xform command line to be constructed from the given file, by inserting each line of the file at the current point in the command argument list. Each line in the file will result in a logically separate invocation of xform, and may may contain any valid xform arguments, including nested -f options. This is a convenient way to specify multiple copies of an object that do not fit a regular array pattern, without having to actually execute xform many times. Separate scene files may be specified this way as well, but remember that the constructed command line must fit the format of initial options (-n, -m, -c, -I) followed by the transform then the scene files. No initial options may appear after the first transform option, and no transform options will be understood after the first named scene file. In the special case where the argument to the -f option is a hyphen ('-'), xform will take its arguments from the standard input. Note that xform cannot simultaneously take its scene information from the standard input if the option is used in this way. Competely empty lines and lines beginning with a pound sign ('#') will be silently ignored. Beginning "!xform" or "xform" command names will also be ignored. |
If one or more scene files are given on the command line, xform will search the RADIANCE library directories for each file. (No search takes place if a file name begins with a '.', '/' or '~' character.) Unless the -c option is present, xform will also change to that file's directory before loading it. Thus, any commands executed within that file will happen in that file's directory, which simplifies object hierarchy construction. If no file is given, the standard input is read. |
The transformation consists of a sequence of operations which are executed in the order they appear. |
-t x y z |
Translate the scene along the vector x y z . |
-rx degrees |
Rotate the scene degrees about the x axis. A positive rotation corresponds to counter-clockwise when looking down the axis. |
-ry degrees |
Rotate the scene degrees about the y axis. |
-rz degrees |
Rotate the scene degrees about the z axis. |
-s factor |
Scale the scene by factor. |
-mx |
Mirror the scene about the yz plane. |
-my |
Mirror the scene about the xz plane. |
-mz |
Mirror the scene about the xy plane. |
-i count |
Iterate (repeat) the following transformation (up to the next -i option) count times. This option is primarily to support the -a option, which is described below. |
Arrays |
An array is a repeated transformation that results in a repeated object. It is specified using the -a option, which takes the number to repeat as its argument. The objects will step by the transformation given between this -a option and the next -a or -i option. The first object will have zero applications of the transform. A two-dimensional array is given by two different transformations each preceded by an array count. |
To rotate ``book'' 30 degrees about the x axis then move 20 in y, prepending the name book1: |
xform -n book1 -rx 30 -t 0 20 0 book > book1 |
To expand all commands and see what information is actually used by RADIANCE: |
xform scene | more |
To create a two-dimensional array of 20 lights, after an initial rotation and followed by a global translation (no command expansion): |
xform -c -rz 90 -a 5 -t 2 0 0 -a 4 -t 0 1.5 0 -i 1 -t 0 0 10 light |
RAYPATH path to search for scene files |
Greg Ward |
Only regular (distortion-free) transformations are allowed. |
genbox(1), gensurf(1), oconv(1), replmarks(1), rpict(1), rview(1) |