BOT_CHECK(nged)

Test a BoT to determine if it satisfies validity criteria.

πŸ“… published 7.44.0, from nixpkgs unstable

πŸ¦‹ bot_check β€” the vibe check your mesh has been waiting for πŸ¦‹

okay bestie, so this is a nged command (that's the BRL-CAD User Commands family, hi πŸ‘‹), and it's literally the mesh therapist you call when you're like "is my BoT even valid or am I living a lie?"


✨ NAME ✨

bot_check β€” gives a BoT (that's a triangle-based mesh, iykyk) a full test to see if it satisfies the validity criteria. it's giving glow-up-or-flop πŸ’…


🌸 SYNOPSIS 🌸

bot check [degen_faces] [extra_edges] [flipped_edges] [manifold] [open_edges] [solid] {input_bot}

note the space between bot and check β€” it's bot check, not bot_check, so don't come for me 🫢


πŸ’– DESCRIPTION πŸ’–

okay so here's the situation. one of the more common problems a modeler faces when working with triangle based mesh geometry is whether or not the triangles actually form a closed volume in space β€” like, do they properly define an inside and an outside, with no holes or gaps? πŸ•³οΈ

and this question is more involved than it might seem at first glance. even if individual triangles are positioned correctly in space, the definitions of the mesh topology may not properly tie them together to form a closed mesh. it's giving "everything's fine on the surface but the structure is a mess" 😭

to help recognize when this is happening, the bot check provides users with a variety of routines to look for problems. by default, all checks are applied (the solid test). if a 1 is returned, all tests passed and the mesh is a valid solid, defining an inside and an outside. otherwise, a 0 is returned to indicate failure. no in-between, no "it's complicated" β€” just 1 or 0, main character binary energy πŸ‘‘

if more specific information is needed, subcommands can be added to individually run specific checks, returning the same 1 and 0 results as the full solidity test. so you can be nosy about exactly which test is mad at you πŸ”


πŸŽ€ SPECIFIC TEST SUBCOMMANDS πŸŽ€

one bullet per subcommand, all facts intact, let's gooo:

  • degen_faces β€” look for faces that have zero surface area (for example, if a triangle is specified using the same point for both vertices on one of the edges). degenerate faces are so not slaying πŸ’€
  • extra_edges β€” look for an edge that is not part of a triangle, or duplicates an already defined edge. like why are you even here bestie 😭
  • flipped_edges β€” look for an edge that is ordered incorrectly for its local context. yes it's a thing, yes it matters πŸ”„
  • manifold β€” report if the Manifold library considers the mesh to define a proper manifold. letting the library have the final say, iconic πŸ™ˆ
  • open_edges β€” look for unmated edges, which should not exist in a proper manifold mesh. gaps in the group chat, unacceptable 🌸
  • solid β€” run all of the checks, passing only if each individual check is successful. the full package, no skipping, periodt ✨

⭐ EXAMPLES ⭐

Example 1. Basic example

mged>bot check input.bot

run all checks on input.bot. returns "1" if successful, and "0" if a problem was found. zero notes, we love to see it 🫢

Example 2. Specific test

mged>bot check open_edges input.bot

run just the open_edges test on input.bot, reporting "1" if everything looks valid and "0" if one or more open edges are found. targeted interrogation, obsessed πŸ”₯


πŸ‘‘ AUTHOR πŸ‘‘

BRL-CAD Team β€” legends, fr fr πŸ’œ


πŸ’… BUG REPORTS πŸ’…

reports of bugs or problems should be submitted via electronic mail to devs@brlcad.org. if something's broken, tell the devs, don't suffer in silence bestie 😌


quick reminder that 1 = valid solid with a real inside and outside, and 0 = failure. that's the whole vibe check in one number 🌈

and that's the page! brought to you by BRL-CAD, BRL-CAD User Commands edition β€” see you in the group chat πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from