BOT_DECIMATE(nged)

NAME

bot_decimate - Reduces the number of triangles in the old_bot_primitive and saves the results to the new_bot_primitive.

SYNOPSIS

bot_decimate [-f feature_size] [-c maximum_chord_error] [-n maximum_normal_error] [-e minimum_edge_length] {new_bot_primitive} {old_bot_primitive}

DESCRIPTION

Reduces the number of triangles in the old_bot_primitive and saves the results to the new_bot_primitive. The reduction is accomplished through an edge decimation algorithm. Only changes that do not violate the specified constraints are performed. Specifying the feature_size parameter will result in use of the new GCT decimator (this parameter is mutually exclusive with the other tolerances). The maximum_chord_error parameter specifies the maximum distance allowed between the original surface and the surface of the new BOT primitive in the current editing units. The maximum_normal_error specifies the maximum change in surface normal (degrees) between the old and new surfaces. The minimum_edge_length specifies the length of the longest edge that will be decimated. At least one constraint must be supplied. If more than one constraint is specified, then only operations that satisfy all the constraints are performed.

EXAMPLES

These examples demonstrate the use of the bot_decimate command to create new primitives by reducing the number of triangles within certain constraints.

Example 1. Decimate Specifying Chord Error and Max Normal Error

Creating a new BOT primitive by reducing the number of triangles in the old BOT primitive and specifying the maximum chord error and maximum normal error between the old and new primitives.

mged> bot_decimate -c 0.5 -n 10.0 bot.new abot

Creates a new BOT primitive named bot.new by reducing the number of triangles in abot while keeping the resulting surface within 0.5 units of the surface of abot and keeping the surface normals within 10 degrees.

Note that the constraints specified only relate the output BOT primitive to the input BOT primitive for a single invocation of the command. Repeated application of this command on its own BOT output will result in a final BOT primitive that has unknown relationships to the original BOT primitive. For example:

mged> bot_decimate -c 10.0 bot_b bot_a

mged>bot_decimate -c 10.0 bot_c bot_b

This sequence of commands will produce primitive bot_c with up to 20.0 units of chord error between bot_a and bot_c.

mged> bot_decimate -c 10.0 bot_b bot_a

mged> bot_decimate -n 5.0 bot_c bot_b

This sequence of commands will produce primitive bot_c with no guaranteed relationships to bot_a.

AUTHOR

BRL-CAD Team

This software is Copyright (c) 1989-2021 by the United States Government as represented by U.S. Army Research Laboratory.

BUG REPORTS

Reports of bugs or problems should be submitted via electronic mail to devs@brlcad.org