BOT_DECIMATE(nged)
Reduces the number of triangles in the old_bot_primitive and saves the results to the new_bot_primitive.
π BOT_DECIMATE (nged) π
okay so you found the bot_decimate page in the nged manual β bestie, you're in the right place, pull up a chair π
β¨ NAME β¨
bot_decimate β the glow-up command that 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 πΈ
So basically, bot_decimate takes your old_bot_primitive, reduces the number of triangles in it, and saves the whole thing into your new_bot_primitive. Iconic. The way it does this is through an edge decimation algorithm β and the key thing to know is that it only performs changes that do not violate the constraints you specify. No chaos, no surprises β¨
Now let's talk constraints, because this is where it gets juicy:
- The
feature_sizeparameter β specify this and you get the brand new GCT decimator. Heads up though: this parameter is mutually exclusive with the other tolerances, so pick a lane π - The
maximum_chord_errorparameter specifies the maximum distance allowed between the original surface and the surface of the new BOT primitive, measured in the current editing units - The
maximum_normal_errorspecifies the maximum change in surface normal (in degrees) between the old and new surfaces - The
minimum_edge_lengthspecifies the length of the longest edge that will be decimated
At least one constraint must be supplied β no constraint, no decimation, periodt π«Ά
And if you specify more than one constraint? Then only operations that satisfy all the constraints get performed. Teamwork, but make it math π
π 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 π
β οΈ okay this part is important, don't skip it: 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. Like, it drifts. It wanders off. It becomes a whole different vibe π
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. Yeah. The errors stack, bestie π
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. Literally none. Free agent. Main character energy, but for triangles π
π AUTHOR π
BRL-CAD Team β we stan π«Ά
π BUG REPORTS π
Reports of bugs or problems should be submitted via electronic mail to devs@brlcad.org
k that's the whole page, you ate that π go forth and decimate responsibly, and remember: one invocation at a time, no cap β¨ this has been the BOT_DECIMATE(nged) page from the BRL-CAD User Commands manual β mwah π
π
π¦ where this page comes from
- nixpkgs unstable: brlcad 7.44.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms