## Name

copyeval — Creates a new primitive object called new_ primitiveby applying the transformation matrices accumulated along the path_to_old_primitive to the leaf primitive shape object at the end of the path and saving the result under the name new_ primitive.

## Synopsis

`copyeval` { `new_primitive path_to_old_primitive`}

## DESCRIPTION

Objects in a BRL-CAD model are stored as Boolean trees (combinations), with the members being primitive shapes or other Boolean trees. Each member has a transformation matrix associated with it. This arrangement allows a primitive to be a member of a combination, and that combination may be a member of another combination, and so on. When a combination is displayed, the transformation matrices are applied to its members and passed down through the combinations to the leaf (primitive shape) level. The accumulated transformation matrix is then applied to the primitive before it is drawn on the screen. The copyeval command creates a new primitive object called new_ primitive by applying the transformation matrices accumulated along the path_to_old_primitive to the leaf primitive shape object at the end of the path and saving the result under the name new_ primitive. The path_to_old_ primitive must be a legitimate path ending with a primitive shape.

## EXAMPLES

The example shows the use of the copyeval command to create a new primitive by applying the transformation matrices along the path to the old primitive.

Example 1. Create a new primitive object by applying the transformtion matrices along the path to the old primitive.

`mged>` `copyeval shapeb comb1/comb2/comb3/shapea`

Creates shapeb from shapea by applying the accumulated transformation matrices from the path comb1/comb2/comb3.

## BUG REPORTS

Reports of bugs or problems should be submitted via electronic mail to <devs@brlcad.org>, or via the "cadbug.sh" script.