NAME
xform - transform a RADIANCE scene description
SYNOPSIS
xform [ -c ][ -I ][ -n name ][ -m newmod ][ -f argfile ][ xf0 ][ -a n1
xf1 .. ][ -i 1 xff ] file ..
DESCRIPTION
Xform transforms each scene description file according to the options
given. If no file is specified, the standard input is read. The -c
option causes commands in the input 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 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.
The transformation consists of a sequence of operations which are
executed in the order they appear.
OPTIONS
-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.
EXAMPLE
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
ENVIRONMENT
RAYPATH path to search for scene files
AUTHOR
Greg Ward
BUGS
Only regular (distortion-free) transformations are allowed.
SEE ALSO
genrbox(1), gensurf(1), oconv(1), replmarks(1), rpict(1), rvu(1)