Name

rt_bot_faces — raytrace a model, and write a file listing all the BOT facets hit first on any shotline.

DESCRIPTION

Rt_Bot_Faces operates on the indicated objects in the input model.g and fires rays (the same as RT) keeping a list of all the first-hit BOT facets.

The orientation of the rays to be fired may be specified by the -a and -e options, in which case the model will be autosized, and the grid will be centered on the centroid of the model, with ray spacing chosen to span the entire set of objects. Alternatively, with the -M option, a transformation matrix may be provided on standard input which maps model-space to view-space. In this case, the grid ranges from -1.0 <= X,Y <= +1.0 in view space, with the size of the grid (number of rays fired) specified with -s. This option is most useful when rt_bot_faces is being invoked from a shell script created by an mged(1) saveview command. Note that it conflicts with -G# and -g#; negative hit distances have been seen when this conflict was not avoided.

The following options are recognized.

-s#

Number of rays to fire in X and Y directions (square grid). Default is 512 (512x512).

-a#

Select azimuth in degrees. Used with -e and conflicts with -M.

-e#

Select elevation in degrees. Used with -a and conflicts with -M.

-M

Read model2view matrix from standard input. Conflicts with -a and -e.

-g#

Select grid cell width. Do not use with the -s# option.

-G#

Select grid cell height. If not specified, cell height equals cell width. Do not use with the -s# option.

-U #

sets the Boolean variable use_air to the given value. The default for rt_bot_faces(1) is on, i.e. -U1, but the effect of air regions may be disabled with -U0.

-o output_bot_faces

specifies a named file to receive the list of BOT facets that appear as first surface hit on any ray. By default, the data are written to stdout. The format of the output is a header line for each BOT primitive that appeared as the first object on any ray of the form:


BOT: bot_primitive_name

This is followed by a list of facet numbers for that BOT primitive (one per line). The facet numbers are indices into the list of faces (starting from zero) for that BOT primitive. If the output file is not empty, it is expected to contain data from a previous execution of rt_bot_faces, and the data in the file is read, and stored, new data is added to it during the execution, and the output file is overwritten with the accumulated data.

-x#

Set librt debug flags to (hexadecimal) number.

-c set rt_cline_radius=#

Tells rt_bot_faces(1) to use the provided number (in millimeters) as the additional radius to add to CLINE solids.

-c set save_overlaps=1

Tells rt_bot_faces(1) to act like the FASTGEN4 raytracer. Specifically, overlap handling is changed to agree with that of FASTGEN4.

The rt_bot_faces program is a simple front-end to librt(3).