commit 64a49088eef58356f0e188d2093f5ee4ee630eb5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 16:25:15 2026 -0400

    Update version number to 7.44.0

commit e74b2fc1ddb0f51e7bd51ffa5c13502584a0fcb9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 16:01:41 2026 -0400

    TODO items addressed

commit 9463f18d6b28c0c86d1cfc31d1f6526dd8ece669
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 18:12:27 2026 +0000

    A few fixes for more obscure build configs

commit 96ec562a9abf1139396e55cb83744e1ca740a535
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 12:32:41 2026 -0400

    Make a stab at fixing MGED Windows I/O setup
    
    Recent changes introduced a problem on Windows.  Based on some work by Chris,
    prior state was causing a double close that intermittently corrupted whatever
    handle Windows has since recycled into that slot, trashing the stdout stream
    when we quit.  See if we can set things up to behave correctly.

commit 542aae6500113d3b2f7fcbd548bb3a17f30e4a38
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 12:04:26 2026 -0400

    Update distclean logic for Windows build
    
    We build with debug enabled, so we produce pdb/exp files in our build tree that
    distclean needs to know about if it's actually going to scrub back to a clean
    directory.

commit 544e3e2bf59edc9d8e5d0ca79c9112587ff80110
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 07:21:36 2026 -0400

    Odd pathname hardening for Tcl tests

commit 8178117c349cf455ea55447e9d1da4d4c3e7032a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 22 23:14:51 2026 -0400

    Rename owner var to avoid X11 conflict when not including tk.h

commit 6a9608a95b1e393b422068bc6749da1e7b62ce06
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 22 21:59:22 2026 -0400

    Use cmake --build rather than raw ninja

commit a79dcd6f8e6bea4a01bdaba11d0b0f1902b76c8a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 22 21:47:43 2026 -0400

    if we're going to run this on windows we need to match the parent build type

commit 65beec7321e64aa22a02e794c8c47b3a5c16e872
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 01:30:38 2026 +0000

    list more files for disclean

commit bd3373bb706874fe392c0ce576329a9148e1ff90
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 01:08:14 2026 +0000

    Make more use of prebuilt bext

commit df2aadf987346dafaecc44ac1ffeadce5ea91fbb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 16:28:51 2026 -0400

    a little more clarity on the rm change since there's now three paths

commit 59fd27654352093f828b936e5f4912282264f784
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 16:18:51 2026 -0400

    replace remove with comb rm

commit def9f14b9a5804226754457142beeb005aed869c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 16:18:16 2026 -0400

    remove is no more, replaced with rm and comb rm

commit 57cdf57685d3ccfc2493f0157044e8cc7f7687d8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 16:17:11 2026 -0400

    update the man page with the new comb command usage.  three forms that bring it more in alignment with the other object commands.

commit b12ab3d90bcb243f727f6e112e207a70da12a3f1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 16:11:50 2026 -0400

    update rm refs to new call pattern

commit 15e26dc1134ad3dac69771255510eefc5a3642bf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 16:11:25 2026 -0400

    redundant

commit cf4ee1011699a12f7bfc3b5e534f5f48cc0a31b8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 16:05:44 2026 -0400

    update the rm references.  actually good examples of the rm obj/mem and comb obj rm mem1 mem2 forms

commit c79316f946e20e757fff6f533f9bfe82a9482b43
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 15:57:11 2026 -0400

    fix mged kicking open a browser on the docs

commit 2a8532e078ff5ec295522d906b5a11954add18aa
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 15:55:58 2026 -0400

    switch to the right var for rm (and leak oed preview)

commit 1e37d7469963ad7e2c4be83301c8be0c1ccd6ea7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 15:54:38 2026 -0400

    update archer's help also for rm

commit 0debfc5150d805143749db1f0bf221bd96f9217c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 15:54:07 2026 -0400

    update the old tcl help

commit 90015ace2418dbd3b8d93def36a11868e918bae3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 15:51:37 2026 -0400

    update pattern coverage on rm

commit 7f38eee8544b8195c9a72c8977b5b8f02c85f69f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 15:50:43 2026 -0400

    update to the latest calling pattern 'comb obj rm'

commit b45699446c237c218233ebd4568f19688acf5523
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 15:45:31 2026 -0400

    update usage to simplify the three common patterns, and de-emphasize all the command switches.

commit 5c68be60db8bd35db3c864690d9125a865ae077c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 22 12:58:08 2026 -0400

    remove command is no more - yank from MGED's setup.c

commit 39becc26f3dac197bca6b275a2dde90dc0db6720
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 11:16:51 2026 -0400

    few more rm tests, make sure it works in all three forms

commit 3ece9553eee58c24c0dea8dd25e7649bed5f9d97
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 11:15:59 2026 -0400

    instead of hard-coded strings, lets switch to a proper command table since it looks like nearly all the options are actually commands

commit 050f49246ea6f4aca199a8acad329d94c5e94fe9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 22 10:25:14 2026 -0400

    Don't extern C something returning a C++ type

commit 83b3405b9f00d4b260a77c1c7ac71869540e6bbb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 09:42:15 2026 -0400

    reference comb rm instead of remove as alternative

commit d03868d1dacba0cef9f4636935aa22d9c822421d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 09:41:31 2026 -0400

    update tests to make sure comb rm works as intended, even if obj is named 'u'

commit a49321891b1cc68abc1ca5857fe3e035f02978e2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 09:40:59 2026 -0400

    add subcommands to comb including the backwards-compatible 'rm' for deleting member(s) but also wrap, flatten, and lift

commit e4c46de92b924676b2f6d7cc3476733055e32355
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 09:36:18 2026 -0400

    remove the remove command, replacing with comb

commit fe88cc6fc7ff76643dfb0185f92b870bba6e2222
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 09:35:11 2026 -0400

    taxonomy doc added

commit 1874b7ea6809acd35095799dbaf460f0320b56bd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 01:17:16 2026 -0400

    add a taxonomy doc to the repo that combines elements of the quick card ref, but enough to get to port regardless.

commit 0f7b9dc1e5a23716eca879b1b7898fbb3963f016
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 21 11:35:25 2026 -0400

    mged manual is fixed (commit incoming)

commit aa0a9e89e7ab485351d3d4967db53c246701512c
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jul 21 17:16:55 2026 -0400

    document cf5c1237f5a39591be89eebcd62c0ea300b0eded

commit cf5c1237f5a39591be89eebcd62c0ea300b0eded
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jul 21 16:44:46 2026 -0400

    fix infinite looping in search
    
    corner case where if we create a child of a matched filter, we'll
    recursively create the child.

commit 735ea54b1f2402d1d8b54075d20c510956eab565
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jul 21 15:32:27 2026 -0400

    remove mged async commnads running via polling
    
    Instead, use tcl events. This avoids the 10ms polling penalty
    introduced.
    
    NOTE: the SIGINT suppression is not strictly defensive. For instance,
    the 'inside' (cmd_ged_inside) and '3ptarb' (cmd_ged_more_wrapper)
    handlers arm SIGINT->sig3 via setjmp, then call cmd_draw -> edit_com ->
    run_ged_async. A SIGINT during the pump would longjmp to the outer
    frame (skipping thread.join() and the dtor - bad).

commit a2faeeb923f548444a873e1450177dffd5cf2256
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 21 11:36:34 2026 -0400

    Call out RT_BOT_PLATE_NOCOS bot creation crash fix

commit 57bbca41a9ca349a993808e5236caedafd345f42
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 21 11:31:51 2026 -0400

    fix search -exec multithreaded bug where rt/rtcheck/lint style execs would hang mged due to thread contention on Tcl printing.

commit ae941f0698ae7d3df02a9ae44945f55c7a8a19de
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 21 01:30:08 2026 -0400

    consolidate all bext updates to the end since they're lessor-impact, and include from/to versioning.

commit f45bda7e9a7e56a8dc1baa7f1b4c254647161fec
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 21 11:27:24 2026 -0400

    search -exec behaviors fixed

commit 2f635f88027bf34ada7000783ceba20f201e74bb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 21 01:20:44 2026 -0400

    nix the older bugs section

commit 30b2870d44cda8d1730e84c4ac177220378122cc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 21 01:20:10 2026 -0400

    fixed locally, close enough

commit fab5edd61955a1b834ee3c400166ce8fae224e73
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 21 00:12:24 2026 -0400

    bump the deferred

commit ecf04b795999f4d391a5b2df50b1fd83a21ca99c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 21 00:11:49 2026 -0400

    wrote notes, reviewed bullets

commit ff2d2990f976845e6f8c788594fcb34325bc93c4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 20 23:54:50 2026 -0400

    not technically bugs and todo already has an entry to improve oed

commit 4f016ea121f79d8f12c75d3fea3a8630f3b708bb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 20 23:48:07 2026 -0400

    after commit review, found ~15 user-visible changes that were missed including submodel, jt, gcv appends, rt auto-obj, metadata, rt pnts, g2asc of more obj, all the proc-db additions+changes, tire tread, fbserv/rtsrv IPC/TLS, bot exterior, and better area/vol/lint validation

commit 633398b0405c4fe47e89589c29ffe8baa049b55e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 20 22:52:11 2026 -0400

    over 220 new man

commit 410bb7e8ff6e22a2b9cd900b8b973d4149c5660a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 20 22:31:01 2026 -0400

    add some release prose summary highlights for 7.44

commit 2394081300fb0fd9f2b3d5493d6e39a6f2905762
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 20 20:14:02 2026 -0400

    Update bext SHA1 to latest
    
    Whoops, should have put that in a branch.  bext state should match
    the update to latest (working) patch version

commit 00a01dce26c7b9233035906d036cbfda453935d3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 20 21:07:34 2026 +0000

    Stand up a libged "db" command
    
    Well, that was more complicated than expected. The Tcl
    db "object" was actually filling a lot of the role of
    a db command, so a lot of its logic shifted to the libged
    source as pass-throughs to other libged commands.

commit 9f72c86436d8761ac081dc44c8fff68c44ad93b9
Merge: 2de691836a 12edeac6e2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 20 12:37:48 2026 -0400

    Merge pull request #247 from Meghna45-code/fix-bot-nocos-only
    
    libwdb, libged: fix mk_bot crash in RT_BOT_PLATE_NOCOS mode

commit 2de691836a71e0fd404f6fd5a60405931563729e
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Jul 20 11:07:16 2026 -0400

    Update search.adoc fix table
    
    add some escape characters to table (pipes were screwing things up)

commit 1e0b74a63036a7924eea66ac92574d6a9ff317a5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 20 09:45:40 2026 -0400

    Back out the bext ap214 stepcode changes for now.

commit 12edeac6e20ff725e6aab9fe6a2de1f7c5e5b482
Author: Meghna45-code <vidhims111@gmail.com>
Date:   Mon Jul 20 17:32:15 2026 +0530

    libwdb, libged: fix mk_bot crash in RT_BOT_PLATE_NOCOS mode

commit 34e2546b77901d209e5f98bdfcb7613c518d0bae
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 20 07:56:22 2026 -0400

    Need to change how we're validating a bext checkout

commit ccda8b67ade93dae5407ea608cb4f7e8eeaa7d99
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 20 00:33:31 2026 -0400

    Unexpectedly, updating shannonbooth patch (apparently) caused breakage running on the CI - back it up for now.

commit e366225907d542917e4b6da3616a3094090584d2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 20 00:20:57 2026 -0400

    fix for stepcode patches

commit 0e76d9b4d9359fc9248b831f31bffbdb8f46a5da
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 19 21:07:10 2026 -0400

    Bump to latest bext sha1

commit 7ef25d649210eda702ece4c1c3695e82e73ebb5b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 19 20:02:24 2026 -0400

    Bump to latest bext SHA1

commit f1a465c45d92b16128f8cdd9fc96cf7ee4d614f1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 19 16:56:17 2026 -0400

    Make sure we're ready for group process termination
    
    Timeout termination raced with child process-group creation and
    returned before reaping the killed child.  We now establish
    groups from both parent and child.

commit 1634bc6b801e2db82a4144c7357ec980c360bc0d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Jul 18 21:23:04 2026 -0400

    More Windows robustness work

commit 42b0cc824545b08fc953ba8b8d0488e1948f261f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Jul 18 15:38:00 2026 -0400

    regress-remrt was still hanging sometimes on Windows

commit 29c14c3006407c2d84fe75328ec6fb9c55d823ae
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Jul 18 13:50:21 2026 -0400

    Need to stop subprocesses before resources get taken away.

commit d53f005a897e355d86e3609b110f9c5faae380a0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 17 17:02:14 2026 -0400

    Add a Windows backend for bu_backtrace

commit fee80b492261d7c8a1b4588cb3152885f90b319b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 17 16:18:27 2026 -0400

    Don't bu_bomb when log fails
    
    Logging failure is a function of enviornment (observed with qged during
    shutdown - hooks are unregistered and no stdout/stderr available.)

commit 58365e34539f74edd978816fd73b34e36ba56487
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Fri Jul 17 14:00:39 2026 -0400

    fix helpcomm path sourcing
    
    need to guard the source with an existance check first. Depending on
    ordering during the build, [bu_dir data] can/does return empty "" - which
    collapses the path to a relative tclscripts/helpcomm.tcl. Instead,
    verify the file was found (bu_dir succeeded) before sourcing; if it's
    not, this keeps the file sourceable at index time where we're guaranteed
    to resolve [bu_dir data]

commit 42322a692a3e4fa8c4b530c34b88ba9312dc991f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 17 10:29:00 2026 -0400

    Make asc2g faster for large input reads

commit 795fafb9bb42349cb7d94aab47fbe3a7a40ef7a8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 17 08:39:03 2026 -0400

    Our teardown process for MGED had some issues (a few of which were libbu/libged level.)  Make a stab at cleanup.

commit 8fe203adb08ecdde023503c68dfc17c0447e9ca0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 17 12:12:14 2026 +0000

    Put back the other view subcommands

commit 5951e3363693c1a13bf556c9d7c4d2c438220849
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 17 07:04:53 2026 -0400

    List file for CMake

commit a48e2027eb1753da743fbee35ac17fe3586a101c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 17 01:25:24 2026 -0400

    Fix regression tests
    
    Looks like list is a no-go for MGED, and concat and glob have similar
    theoretical problems.

commit 0bebd04d7e24f60ce8e8daf143f52d29f4f6d7c9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 16 23:10:14 2026 -0400

    Try some MGED memory cleanups
    
    MGED valgrind exits are usually noisy - try a few cleanups.
    
    Part of the noise is due to how Tcl is normally built. Finalization
    removes allocator roots without returning the arenas, causing Valgrind
    to reclassify memory from “reachable” to “possibly lost.” Tcl documents
    that freeing all memory for leak-checking requires TCL_FINALIZE_ON_EXIT;
    it is not the normal allocator behavior. Tcl finalization documentation
    (https://www.tcl-lang.org/man/tcl9.0/TclLib/Exit.html), Tcl source
    discussion (https://core.tcl-lang.org/tcl/wiki?name=%28Initi%2FFin%29alize).

commit e90ef9cd9622cebf349d36a3eb556ec5569a46c2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 16 23:08:40 2026 -0400

    Make a note that the mapping[MAX_PSW*MAX_PSW] array is what's triggering valgrind large range warnings when it loads

commit a71ddcd0a8106d52887b4cf8311b5d587e3ba67a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 16 22:34:59 2026 -0400

    Correct and optimize search hierarchy evaluation
    
    Tighten up when we can use the optimized -above/-below paths - some
    of them were problematic.  Any -exec specifier currently disables
    the fast paths because the database could be altered and invalidate
    the caches.
    
    Derive -maxdepth pruning only where the boolean plan guarantees a
    traversal bound, and fall back when depth constraints or -exec prevent
    safe reuse.
    
    Other changes:
    
    Preserve DFS callback ordering and cyclic path results, fix relative
    -below depths, nested hierarchy parsing, regex compilation, unique
    result collection, -exec cleanup, and several predicate error paths.
    
    Batch libged local roots, preserve plan arguments exactly, propagate
    search errors correctly, and expand librt, libged, and MGED regression
    coverage.
    
    Document hierarchy depth semantics and plan forms that may require
    quadratic evaluation.

commit bc97bf3e211d85dc2f6941273ba4685a74545e0a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 16 21:03:44 2026 -0400

    Use the sub-interp only for -exec searches
    
    Since there is a fixed cost to search Tcl interp setup, see if we can
    avoid paying it if we don't really need it.
    
    In principle, for non -exec searches, the async thread running should
    suffice for what we need.

commit c4ac4d37d5c941ecdf27e91bd38d05500bf28d24
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 16 20:36:34 2026 -0400

    commit some temp working notes to pick up where left off

commit fe21ee4e2ba441efa9d708b1b313c4a3dfefde54
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 16 20:34:52 2026 -0400

    add the 53 missing ged commands that 'should' just work through the plain wrapper.  also added 21 of the approx 30-40 other commands missing that are essentially aliases (copy -> cp).  left the rest that affected the display (zap, clear, etc).

commit fa36187f1c28119eec9bff55c7c217da15e33018
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 16 20:12:47 2026 -0400

    search performance optimizations, sorting optimizations
    
    Looks like 53563dcc39 was incomplete (either not done or I missed saving
    some changes at some point, not sure which - either way needs fixing.)
    
    - src/librt/search.cpp:506 now carries match state parent-to-child,
      reducing the common case from O(N·depth) to O(N).
    - Mixed -above/-below searches receive the same optimization.
    - Depth-constrained and side-effecting -exec/-print expressions retain
      the correct ancestor-walk fallback.
    
    While we're in here, fix a second hot path - we now render every path
    once into pre-sized shared storage for final sorting. Comparisons no
    longer reconstruct paths or allocate strings, which showed up in
    profiling for larger outputs.
    
    Compared to the previous 7.42.2 release, in MGED we are setting up,
    syncing and tearing down a separate Tcl interp per command run, as well
    as launching search in a separate thread and managing I/O between the
    threads.  The overhead is real, but seems to be in the
    less-than-a-second range (depending on platform.)  For very large
    numbers of search calls in a script that may add up to an observable
    runtime slowdown.

commit 08e39fbee001b255b1d0c1382860faaa75679499
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 16 16:30:25 2026 -0400

    Make sure search's Tcl is shut down win or lose
    
    The Tcl Inteprp used by search is created by the thread that runs it async, so
    it must be shut down by that thread.  Leaving it up and a pointer to it in
    search_interp resulted in a crash on Windows when a failed command didn't
    clean it up and a subsequent initialization tried to clear it out.  Tcl prints
    a message about an async delete from the wrong thread and wipes out.

commit bd53790f691cfd9bf3bac07e4eb7324c8535dd63
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 15 17:29:07 2026 -0400

    final release actions

commit 26777a18325e8995919d9a84989b6037578c9957
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 16 00:37:16 2026 -0400

    More qged work

commit 67d7fa2d392f25b09a539c18e494b318c33b8bef
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 16 00:20:18 2026 -0400

    Make a stab at fixing/improving some QGED behaviors

commit 091ed7f9c07ccc9310d5acf8ad10ebd6a32c65e5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 15 13:06:12 2026 -0400

    New bext SHA1 - get latest FreeBSD updates and fixes

commit 07b9fe1573f5a0168ef7afc9a1fb845eae5172c5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 15 12:26:02 2026 -0400

    Add the find_package_zlib for the gcv jt plugin

commit e51b4817a95e6823a656314615d73dbc8290ea3d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 15 14:33:03 2026 +0000

    Make MGED aliases available without Tk
    
    Provide the alias and unalias Tcl helpers independently of Tkcon and load
    them during MGED's base interpreter setup.  Aliases defined in .mgedrc now
    work in classic and headless MGED sessions without attempting to initialize
    Tk or requiring an available display.
    
    Have Tkcon use the shared implementation so its existing alias behavior is
    preserved without duplicating the helper procedures.  This also allows user
    aliases to be captured and replayed cleanly in the Tcl interpreter used by
    search -exec.
    
    Expand the search -exec regression coverage to exercise the public alias
    command, global and namespaced aliases, aliases targeting Tcl procs and GED
    commands, fixed and dynamic arguments, and worker-side alias queries.

commit 937775803223c15904a97590f105a935e7e7989c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 15 10:04:45 2026 -0400

    Pull in the latest FindZLIB.cmake from bext
    
    Will need to see if BRL-CAD's usage needs updating, but as a rule we need to
    keep our Find modules in sync between bext and brlcad so find_package calls in
    each do the same thing.  bext has the more modern one, so we should be using
    it.

commit b4d072dd511cb163f119a304799c7d2aca69fb4b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 15 07:01:07 2026 -0400

    For brledit print usage if -h or -? is supplied.

commit f81a81e72c88a75b39aacb5b4451943f757a34d0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 14 22:52:05 2026 -0400

    Fix header

commit 1bf5eb9d6b6eae12dd1414d4cd499ce3de6e84e9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 14 18:36:33 2026 -0400

    Add/restore view dir subcommand

commit d25579a6ba2f2a0b768cb3ba608dec46e07031eb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 14 17:19:46 2026 -0400

    Robustness fixes for non-GUI MGED I/O
    
    commit 24a4603b39 set classic MGED stdin nonblocking. With a PTY,
    stdin/stdout/stderr can share status flags, so large ordinary search
    output hit EAGAIN; bu_log treated it as fatal and bombed. This is
    unrelated to search -exec or the secondary Tcl interpreter.
    
    Changes:
    
    - Classic cbreak input now stays blocking, reads one guaranteed-ready
      byte, then drains only Tcl-buffered bytes— avoiding both event-loop
      stalls and paste inefficiency. Non-cbreak pipe input remains
      nonblocking. src/mged/mged.c:1763
    
    - bu_log/bu_putchar now use raw standard-stream writes, retrying EINTR,
      EAGAIN, and EWOULDBLOCK under the existing serialization lock. It uses
      write on POSIX and _write on Windows. GUI hooks and threaded
      search -exec handling are unchanged. src/libbu/log.c:65
    
    - Added a nonblocking-output regression test that verifies a 128 KiB log
      message is complete and uncorrupted. src/libbu/tests/test_log.cpp:142

commit 515819a7f5ef2049721693762ad541ca1c1bd9dd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 14 18:44:22 2026 +0000

    Try to make MGED bu_log behaviors more robust
    
      - src/libbu/hook.c:71 moved one hook too many, causing
        out-of-bounds memory access. A delayed, platform-dependent
        failure in a later bu_log is consistent with this.
      - The global log hook list was mutated without synchronization.
        It now uses a dedicated semaphore, with a thread-local
        recursion guard in src/libbu/log.c:62.
      - An invalid output_hook replacement removed the functioning
        MGED hook before validation. src/mged/cmd.cpp:1427 now preserves it.
      - Worker output is drained after join(), ensuring no output can
        arrive after the final drain.
      - GUI stream redirection now uses dup2() rather than assuming
        close() followed by dup() reuses descriptors in src/mged/mged.c:3219.
      - Pipe data is passed to Tcl using Tcl_DStringAppendElement, handling
        braces and other Tcl-sensitive output safely.
    
    Added concurrent hook mutation, parallel logging, recursion, hook deletion,
    and invalid MGED output-hook tests. The sourced-proc search regression now
    exercises the preserved-hook path.

commit f110978fe8d75a5f2e57e7c507f8196d637dcf61
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 14 13:56:48 2026 -0400

    Update to Qt 6.11.1

commit 5d596a2ddfc422d6495ef4b580d6930f2c2e5a64
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 14 15:47:07 2026 +0000

    Remove completed TODO item

commit 0308de3f25e27cadbe5afcbab63f146f02cdb63d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 14 14:48:44 2026 +0000

    Trying to make the search -exec Tcl sync more robust

commit 1e851ac6ccdb5872b46938e1b0864c25472b0c69
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 14 10:43:52 2026 -0400

    Use older strclear/plief until the main CMake updates drop

commit 488afd00920006923a337daeb97bee94e6e7ae0c
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Tue Jul 14 10:19:23 2026 -0400

    Update search.adoc Add examples to mimic dbfind and dbfindtree
    
    Add 2 examples that specifically mimic behavior or soon to be removed commands dbfind and dbfindtree.

commit 3d6c1635a62c71f63d3f1226760982c0d62fa62a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 13 10:40:48 2026 -0400

    Various cleanup details related to recent logic changes
    
    Haven't tried distcheck itself yet, but distclean should do better now.

commit 8d9f87202ee92e00b99537974b9a0e268f55d8fc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:45:51 2026 -0400

    one char nudge for symmetry and so we're not under the logo

commit 47d6480afa18869bf161f869468d6d324973ff80
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:38:57 2026 -0400

    enable existing boolweave test even if it's inadequate

commit e315010cce85f120c4139a86ef79377dbbadd677
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:37:58 2026 -0400

    oops, add main change providing mirror support to brep objects

commit 5f3b8397fc68c894b71e5e5f6fc7e27e26229d63
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:36:19 2026 -0400

    improve rendering performance with lights, minimizing malloc/free calls a whole lot more (128 -> 8192).  timing issue exposed in new rt heat map outputs.

commit 1d306bde6b7786cfcf3e98970bec52433995b13a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:32:50 2026 -0400

    gist pages now include the file size

commit b09e44a84710c2ebdcfbc822f55feae25800c560
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:28:53 2026 -0400

    add a test for icv's file handling

commit 22cfd4833becdfd342b61d386a88e0a934d1ba3a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:22:50 2026 -0400

    added ability to mirror brep, minimally tested but looking good.

commit e442c6be476d5666c8372c60f405227f83edbe71
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:20:09 2026 -0400

    related to the mirror bug, need to flip some transformed comb leaves

commit ab1e29ec806d1f72dbc6a11fcfefd60daf80e17f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:18:22 2026 -0400

    fixed corruption of rhc entity upgrading.  was a 1-char typo causing it to read the wrong field.  technically was likely a v4 import failure on any RHC.

commit 118e45cdda01fab46bac9ef447ae5c08cc699748
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:14:24 2026 -0400

    fixed a really old bug in archer if you tried to open a database named the same as a command.  issue was an ' ls' call.

commit 329d436946c9efebfe243a7d6c3908820c223687
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:10:48 2026 -0400

    more keyword search guts

commit 4c5e4f8eb60b7aa92c6294d0ff357f1c541156f2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:10:17 2026 -0400

    fix a bug in file tracking (typo)

commit 70c3824d85342f64451f6e9b09cccf08a30eb623
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:07:36 2026 -0400

    add search to the man browser gui too.

commit 469337f06df1230d772c726a1d8dd290360065bf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:04:57 2026 -0400

    if they want keyword searching, route it a little differently

commit b4b907949cb7e9502dc2611ec1a3c684bfba5230
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:03:55 2026 -0400

    more keyword searching guts and passthrough

commit ebf81d3744447484fc5413b7b89f23da56484c9f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:03:11 2026 -0400

    oops, add the new helper proc for searching man pages

commit f15efb022828a922664dc4a7e5bfb36c878508ae
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:02:08 2026 -0400

    add searching of the manual pages to the mged GUI

commit 3d07ce6e970b44836ff549a1ad86614185ad7cd7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:01:06 2026 -0400

    fixed an mged ancient bug where pasted text would sometime get captured underneath the yellow cursor box

commit 29f862276c13985d9b7fee0a8805ddd59274d519
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:50:17 2026 -0400

    baseline affirmation, jt mesh successfully imported

commit f739f74d487b41e921a359e531b8cabd3e34a1a5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:47:03 2026 -0400

    add full text keyword searching of manual pages.
    
    added to brlman, man, and apropos, with -k and -K options that saerch synopsis+options+description and entire manpage respectively.

commit 93d3ed01e2c295a118ee75b517b93c2c5e8d69ef
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:41:36 2026 -0400

    add full text keyword searching of manual pages

commit 2f454bf4c7ae6694740c054e9d4ef8ab1ac565de
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:39:26 2026 -0400

    make sure we can v4 export rhc

commit 982e9abe5d3e9480aeb95551f808ba32b7951963
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:38:20 2026 -0400

    make sure sphere case works

commit 13925659548295716c714a6be0048c4398688098
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:36:53 2026 -0400

    add jt file format

commit 6a1f0ab73d8c1ab266026f5f0783144a98b8aca5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:36:23 2026 -0400

    KISS. lets not pollute API w/ inconsistently long names just because of some minor detail on the clean one that got their first.  just icv_create().
    
    others introduced at some point have the same problem, but they can get cleaned later.  immediate issue is not halting our own builds because of deprecation labels.  removed deprecation labels as unnecessary (MI, icv isn't published/documented) and actively messy.

commit c63ef3688513dd3fe02340391e0656c3a79123e8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:26:50 2026 -0400

    fix indent

commit aedf574e5558fac6a67b61102d2ae470da1903a6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:07:50 2026 -0400

    todo fulfilled, but migrate the common cases to the manpage

commit 71c6e324e005b5e2c6bf1ce0349257d5b97ac60c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:06:02 2026 -0400

    add a deeper unit test that captures much of the new behavior including the safety exclusions

commit e1749fa9e755e833d038d2fbb957029e7be2cbd9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:04:40 2026 -0400

    rm has a safeguard

commit bd84801d5e949172f135db98d83e37cefb150ddc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:00:30 2026 -0400

    ged rm is a big deviation from the old behavior to the point of needing multiple protections, but ultimately landing more secure and expected for those familiar with linux/posix/unix/bsd/etc.  it now kills but only when not externally referenced (unless forcing).  see manpage for details.

commit 3cd7cf7c7d871cd8d0c61debb1c41b6b871e9e9b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:52:24 2026 -0400

    update rm command with the documented changes.
    
    now rm is effectively kill or killtree but also still sometimes just removing a recipe instance.  to get the prior 'rm comb foo' one must insert the slash: 'rm comb/foo'.  if someone new really does want to kill comb and foo, they'll have to force it rm -f.  if a comb or member are referenced elsewhere in the db, rm aborts (unless it's forced).  only controversial dec was to not allow rm -rf to kill more than the comb specified when referenced externally, but not the underlying children also -- justification is they weren't named, so we're doing the safe action especially considering they could literally be any assembly easily (intentinoally or not).

commit 9ce51a97f96e4ea05da8dd28ffee4892836d76ff
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:40:31 2026 -0400

    no longer a bug, but still needs more work to go faster.

commit ab6523e871123b25fc354187bcd372f421f9f1ee
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:37:02 2026 -0400

    fixed a bug in gqa where perfectly symmetric objects (like a simple sphere) reported wrong volume.
    
    gqa was terminating iterative volume estimation early because all three ortho views are in perfect agreement no matter the resolution.  Now it checks against the previous volume to determine whether we were also in agreement with the previous iteration.

commit 20c86177d1a3ab2e094fed9b04ddd080a19838c5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:29:27 2026 -0400

    verified an old infinite loop bug was not actually inf, just wildly quadratic time.
    
    this partially improves the situation though still not performant beyond about 200k cloned entities.  the test case originally documented is 1M and still takes several minutes:
    
    make sph sph
      clone -i 1 -t 1000 0 0 -n 100 sph
      kill sph
      g line sph*
      clone -i 1 -t 0 1000 0 -n 100 line
      kill line
      g square line*
      clone -i 1 -t 0 0 1000 -n 100 square
      ... never returns ...
    
    Still, this is a good checkpoint and fixes a secondary issue introduced recently where sph cyl and such are recognized keywords which made the above test case not work.

commit 9eb195d7516bd8d3d05a3da8d9f2c0ff672d11ee
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:17:15 2026 -0400

    stub in the command, just a placeholder

commit 38d622a2aba3cd5ea3d49ba1994d09ca8a0b3ff8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:11:48 2026 -0400

    Revert "stub in the command, just a placeholder"
    
    This reverts commit 6c43a295c7a232e77d76f706f9017ae3c986b492.

commit 6c43a295c7a232e77d76f706f9017ae3c986b492
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:10:24 2026 -0400

    stub in the command, just a placeholder

commit 9912455bab44f082db08e42e8aa2e6d9d9d1ddb1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:06:49 2026 -0400

    implemented support for perspective rendering in rtedge.
    
    refactored into a function since the old code merely shifted the view ray orthogonally as needed for neighboring cells, the ray logic now takes the camera plane into consideration to properly do perspective warping.  opens up a lot of interesting possibilities...

commit 83130df65eac2d79a30aea4f3793cb5cb766bb05
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 01:55:13 2026 -0400

    switch back to a simple linear interpolation so we minimize accentuating minor fluctuations near zero

commit 15bedc60ee508116896c7bdb5d4852cd0d883c20
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 01:16:54 2026 -0400

    avoid assertion failure later, needs to be associated with this rtip

commit a1597470cc2c8e79a476a5fd7f4cec7f278c5e99
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 00:54:51 2026 -0400

    apply a work-in-progress patch from nearly 3 years ago that fixes submodel path references taking into account absolute and relative paths (now taken as relative to the parent .g instead of current working dir).  fixed export, prep, and plot, but more still needed.

commit 5a64a8f90fcf9bb8ab42e8a3fad3efc191df0c35
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 00:43:09 2026 -0400

    finally parsing topology correctly, we have bots! not yet correct,b ut progress!

commit 243fd91c9140a9e58db6cea31c703747f271dca4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jul 12 22:29:21 2026 -0400

    fix end of elements parsing and jt 10 packet framing. topology reconstruction

commit d3bc8ae8c0a68ad52ce3a5a3298a990128fae13b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jul 12 21:29:52 2026 -0400

    more mesh coordinate types

commit 701a336c518af813fb43f7227e27819a024c916d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jul 12 19:47:00 2026 -0400

    preliminary support for some of the .jt file format using the publicly available spec.
    
    imports triangle strips, meshes (with colors and uvs coords), compressed data, int-encoded, big and little endian -- all to bot format.  doesn't yet do hierarchy, brep, metadata, etc.

commit 232631ed43e0740a406a5525c399a7d916029698
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jul 12 02:04:09 2026 -0400

    basic test of context

commit 96dff58ba3511ac826eaaed8e546ff880e3f4f27
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jul 12 02:03:11 2026 -0400

    close the dbip before releasing the context internal

commit 101b4dee4f72b2958547e494b6c2324191749cac
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 12 13:48:01 2026 -0400

    formatting

commit 69a7c32f836475257e3a1b0bc653422136910a70
Merge: d46d178a18 886ee76ff9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 12 13:46:10 2026 -0400

    Merge pull request #231 from laithaldaeef/main
    
    Fix missing *3 stride in BoT normal array indexing in k-g converter

commit d46d178a18e5baeddcc3058c532b3b1d99d0cc3a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Jul 11 18:51:38 2026 -0400

    include file size on the sheet, use the International Electrotechnical Commission (IEC) standard to avoid 1000 vs 1024 ambiguity.

commit c363f3206ea04f209a7a3e1c7e4c27d5042083ad
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 10 10:22:36 2026 -0400

    Satisfy gcc14 Werror=calloc-transposed-args warning
    
    Per the man page the signature is calloc(size_t nmemb, size_t size) where the
    number of members comes first and the size of the member comes second.  It
    looks like newer GCC is spotting a sizeof() in the first position now, so we'll
    go ahead and swap them.  Addresses #243 reported by rezahousseini.

commit 53f4f2f7025c03e4848782fc3a84124d0713c594
Merge: 2174d72627 2e4cdc0b29
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 10 10:10:10 2026 -0400

    Merge pull request #225 from rupeshca007/fix/art-code-quality-improvements
    
    Fix minor bugs and code quality issues in art/appleseed renderer

commit 2174d72627dfdd598d3eeb725dc482801fe5845f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 10 09:35:36 2026 -0400

    Remove old CMake find module, update bext SHA1

commit 58ad660f0832694ee5261f4ed42c7ac30a7c3ef0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 23:23:06 2026 -0400

    update to rt -l8 being cputime

commit 47b3f0360eb13e9072eda23f9acdf226c16cad6e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 23:22:08 2026 -0400

    add a preliminary dev doc on how to add a new primitive to BRL-CAD using superellipsoid as the example.

commit a66d687606406d9bc8791cfe857e61448bcc9c74
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 23:19:46 2026 -0400

    now using cputime for rt l8

commit df11ddf5dedfb8833e711a19f518a147258e634e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 23:16:01 2026 -0400

    updated to cpu time

commit 9fbee2925afa81a794c5666b33cf8d17f20dda74
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 23:14:59 2026 -0400

    update the reference image for l8 after switching to linear

commit 3d80f1eb59480c434dd1d1c6e3b11ec7afa9da13
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 14:01:49 2026 -0400

    update the -l8 gallery render for heat graph

commit 2ce1935564da5cb6f171e598a810f7ec1f1b5b58
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 3 12:30:56 2026 -0400

    Remove bu_bomb/bu_exit behaviors from libicv
    
    The library shouldn't bring down the application - it's up the caller
    what to do with error states.
    
    - Added/kept new non-terminating APIs: icv_image_create, icv_crop_rect,
      icv_render_info_destroy, icv_image_take_render_info.
    
    - Kept deprecated wrappers preserving old disruptive behavior:
      icv_create still bombs, icv_rect still exits on invalid
      crop.
    
    - Updated internal users to call the new APIs and handle failures in rt,
      framebuffer ICV paths, crop utilities, animation CLI paths, tests, and
      render metadata ownership.
    
    - Fixed icv_image_create so its documented NULL failure behavior is real
      for invalid size, overflow, and allocation failure. Added private
      ownership tracking so stdlib-allocated image buffers do not corrupt
      libbu allocation/free accounting.

commit 17d9a82b2816666cbde2a1738a6dabf97a730759
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 3 11:50:46 2026 -0400

    Harden libicv processing and image comparisons
    
    Improve image-processing correctness, robustness, and test coverage across
    the library. Specific changes include:
    
    - tighten bounds and edge-case handling for cropping, resizing, rotation,
      filtering, pixel operations, color conversion, image metadata, and image
      statistics;
    - handle empty, undersized, boundary-aligned, malformed, truncated, and
      unusually sized image data more predictably;
    - improve channel-count, allocation, format, and parameter validation across
      image creation, file I/O, and animation operations;
    - improve perceptual image-difference support, including fixed-size DCT hashing
      for consistent image signatures;
    - replace perceptual-hash-based drawing comparisons with Structural Similarity
      (SSIM), evaluating local luminance, contrast, and structural patterns so
      harmless rendering variation is tolerated while meaningful visual changes
      remain detectable;
    - consolidate libicv tests into broader behavioral coverage and add APNG,
      PImgHash, RLE, robustness, and developer-example tests.
    
    These changes reduce unexpected behavior for invalid or degenerate inputs while
    providing more representative image comparisons and broader regression
    coverage.

commit 0e032dd95e161fcf33f78c743b46ae2c98a49346
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 9 20:21:12 2026 -0400

    Typo

commit 6def8bbd4149db4e043fbaf5ef2d2315209f4326
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 9 18:50:37 2026 -0400

    Right, these aren't floats - use >=

commit ebab661fa1c2830f9ee1dc626c52bd716aefb5d6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 9 14:39:28 2026 -0400

    Stash a gdb usage note from a branch

commit a58a7c4932878fa64552a4db2148e41d6fd43a8c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 9 13:38:11 2026 -0400

    Adjust key max length checks for libbu cache

commit f4b3c6b4af98fe2432f408c0d67f54b12f039d1f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 14:00:42 2026 -0400

    document the new rm behavior in detail since this is a stark change to an old command.
    
    by default, the old pattern 'rm comb obj' will be rejected unless -f is specified, or a dash is added to get the prior behavior 'rm comb/obj'.  for now, taking a safe approach on a forced recursive delete, only applying the forcing on the object specified, but we may want to change that to be recursive.

commit bedb86220af660d4cd330a049a957b1bfb46f0c4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:48:58 2026 -0400

    mention the old rm command behavior since it's finally changing

commit 90cf06138bf10b72b21135f15da0c058bc0f91a9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:43:50 2026 -0400

    include an -l8 heat mode example since that can help with debugging geometry

commit 651aff7f24bf9cdda34f5fac456d8ffbb2d8ef28
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:42:28 2026 -0400

    mention new -k/-K searching options on man command also

commit 694418116ea98c6742522fa52ce57ab2a2efa8c1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:41:19 2026 -0400

    adding -k/-K synopsis and full-text keyword searching to apropos as well

commit dc871a9b7db5ce7ccdc8c68829cd004ebc1c7567
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:40:42 2026 -0400

    adding -k/-K synopsis and full-text keyword searching to brlman

commit b48dd68bed632111435a5ba4818c84c0e5301d13
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:38:54 2026 -0400

    document the newly working -l8 heat graph option

commit 9107a5c25fc20f24939e814a29a6bf26b5e3c458
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:37:09 2026 -0400

    document remainder of rtuif apps via reference to rt's manpage to minimize duplicating some of the method detail, but say the gist that it gonna pick a def obj.

commit a394e0ffad99d86af35b39a3a3c668afda7af3e8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:35:22 2026 -0400

    document the new automatic object selection method being used given rtshot doesn't go through rtuif

commit f7e08af31ff590f7d98218dd6bb83c9921a9cdb3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:28:49 2026 -0400

    document the default object behavior in reshoot as well

commit 488313fa6fb21e6a39e4f8c6f4ef19baaa15c25c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:26:06 2026 -0400

    document the new default object behavior

commit 67d3016fc8c064dc781286b58dc04e64a80987de
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 12:55:47 2026 -0400

    document rt -l8 heat graphs.
    
    technically started back in 2010 by Stephen Kennedy, but unfinished work.  recently made properly working with dynamic logarithmic range so we can see a proper scaled result.  also fixed output bugs/assumptions now that we're going through icv, and using better timing.

commit 53c4638d9c7b0cd65554a11009355f9979e6d61d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 12:49:04 2026 -0400

    fix rt heatgraphs so they actually work.
    
    was using the global librt timer, which was nfg, now bu_gettime() precision.  was also doing linear scaling which pretty much resulted in a nearly black image most of the time, now logarithmic through the range so we can more easily see the variation.  also fixed a bug where heatgraph was assumedly outputting as pix, now going through icv as a proper second draw pass

commit 4f82c74f9325a920f232704d1c8740e9943468a5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 8 16:02:00 2026 +0000

    bu_bitv_to_hex - round the logical byte count up rather than down
    
    Generic_Twin.g is generated by fast4-g (build/build.ninja:76817). Some
    plate-mode BoTs in that model have face_mode bitvectors shorter than 8
    bits.
    bu_bitv_to_hex() was computing the serialized length with floor
    division by 8, so a 1..7 bit vector serialized as the empty string.
    When gsh later read that database, bu_hex_to_bitv("") emitted:
    
      ERROR: bitv length is not a multiple of two.
      Illegal hex bitv: []
    
    fixed by rounding the logical byte count up instead of down:
    
      - src/libbu/bitv.c:398
      - added a regression test for a 3-bit vector in src/libbu/tests/test_bitv.c:330
    
    Context against rel-7-42-2:
    
      - The serializer bug itself is old; rel-7-42-2 also used full-byte
        truncation in bu_bitv_to_hex.
      - The behavior changed later in commit cfacbff01e, which changed bu_bitv_new()
        to preserve the exact requested nbits instead of rounding bv->nbits up to the
        storage word size. That was the right semantic change, but it exposed the
        stale assumption in bu_bitv_to_hex().
    
      - Before that commit, short vectors often looked like 64-bit vectors
        internally, so the bug stayed masked on 64-bit builds.

commit a176d482448e798367100d34f9da5dd2dc798b9b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 09:59:21 2026 -0400

    new docs on adrt rendering

commit cb86b280e4fe33d2854926333a3c264a3f9b7d95
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:30:34 2026 -0400

    add a new article that overviews and compares adrt with rt

commit d1926cf8e2b2a7b6623cf09fcd88119dc0de14b4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 09:58:12 2026 -0400

    added a new proc-db that generates seashells/snailshells as demo

commit 2f2387ff68a97d92e7fcdcdbae2e9973c487f178
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 01:33:30 2026 -0400

    add seashell to our proc-db gallery

commit 06f65ebd60e0805de059bedcbf0d5149c9e444b9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 01:31:39 2026 -0400

    add another interesting new procedural database for making snail/sea shells.
    
    creates them as bots, which is a first for proc-db also, and nice variety addition.

commit 7a99a7e8f604f77711a633c158872b679a8cb993
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 08:23:14 2026 -0400

    make gcv appending work.  was checking wrong pointer, and need a dirbuild to actually resolve the lookups correctly in wdb_dbopen()

commit 667da3eb214d798625177255cf62b2574d6545f6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 08:21:37 2026 -0400

    restore and improve checks for appending.
    
    check all the append flags, and make sure there's an existing _GLOBAL, so we only skip _GLOBAL in that case.

commit bff57eb4c93acce68d91e551b80b0b34d29f2bfc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 7 22:04:03 2026 -0400

    prevent segfault if no more args

commit 8347b29f6552b5e798d01740604bea21e51054b3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 6 09:05:59 2026 -0400

    adjust wording

commit 3e108eee9780cd659e059348d74d054695e34440
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 6 02:11:40 2026 +0000

    Add compression optimization for APNG images

commit 5d7ce4a21ab897c47ab895ac5d8201523e537fd7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 6 02:07:43 2026 +0000

    ws

commit 6dcc7b2b72c9efdff5a201ae7ab36e45dfdc3dfb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:17:36 2026 +0000

    Get us compiling with Clang21 on FreeBSD

commit 10c845d42b2fe3b65d9f603ad5b86cc2ba5d6a55
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:16:48 2026 +0000

    ged_exec main doesn't need extern

commit 9495a9e72fb4e8cae22efbdaed01eea3bbcc27d0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:15:53 2026 +0000

    use snprintf for sun_path

commit ec730e46c8f1b88bacca880b3bc5de4a1e009892
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:15:01 2026 +0000

    extern cleanup in liboptical for Clang 21

commit 31710846e2662d398192ae2762c0c27d2ca4c814
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:13:48 2026 +0000

    Threads::Threads needed on ged draw tests

commit 8614c10c8245353c6cd359e99489b713259852e7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:12:55 2026 +0000

    iges converter build adjustments for Clang 21

commit 97c7d6efddb7f3c66c80d83a35f87596b34c7a45
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:12:13 2026 +0000

    Varous rt extern adjustments for Clang 21

commit b0597fd8ba244bcfa8458e4afc746f0e0015eb11
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:07:17 2026 +0000

    Clang 21 build fixes for date.h

commit 4b8054a5ee244a705a4d0834becb876f6300a547
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:03:46 2026 +0000

    Clang 21 build fixes for libfort

commit f96784b8b385eabb700b026c2b5248516881febe
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 23:52:00 2026 -0400

    Use APNG images to hold libged draw ctrl imgs
    
    We have a lot of PNG images serving as control images, but we may need a
    lot more in the future as we check more behaviors.  To allow for
    expansion without growing the file counts beyond reason, use APNG images
    (which can store pixel-accurate images) to pack sets of images into
    per-test containers.
    
    This ability may be useful for more than this one use case, so to do it
    properly we added support to libicv for generating APNG images.  While
    we're at it, also consolidated the simulate command's MJPG writing into
    the same framework.  To do the latter without lots of temp images we
    needed in-memory JPEG support, so added that for both JPEG and our other
    formats.

commit 2adbc49f9b26011f078d58565b3b11c13ef00099
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 23:32:51 2026 -0400

    delay automatic default-object loading when commands are piped to rt since they may include geometry load instructions

commit 958aed46d293ef5173119d85962d494b561bcdab
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 23:17:23 2026 -0400

    if reshoot doesn't have an object listed, this avoids crashing.  also means we may not shoot our last reshoot shot if it's supposed to be a miss but crashing is the worse real symptom to address.

commit e58f47366f172619e332bd64a224b75bbcd5c9af
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 23:05:37 2026 -0400

    add some initial support for importing x3d nurbs

commit 23b6a19fdf914660f52abe8f72ea40e9e43fcad4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 23:03:23 2026 -0400

    add preliminary brep/nurbs import support for x3d files coming in via assetimport.  assimp explicitly skips them, so we directly use pugixml on the x3d dom to bring them in as brep.

commit adee625c078e5edd6f6f5034ba1df3f22c508d10
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 22:44:19 2026 -0400

    include a nurbs regression test case for x3d import.  will require adaptations in gcv.

commit 5c0e77262148792838cd688242b7db3d56373e97
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 22:41:59 2026 -0400

    update changes ref

commit 8aa45ee666ddda75d01ea21c809932ef4488f942
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 22:40:20 2026 -0400

    updated changes refs

commit 165e619a400a3658009247b22dd74cd45c9b09e1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:35:57 2026 -0400

    reword for simplicity and hopefully clarity on the BRLCAD_API() macro and how it pertains to compatibility testing

commit 649370d334d97f5093a4461343a2cfbea53cdd25
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:28:48 2026 -0400

    don't need to ref CHANGES any more

commit 6a4daa115387d0572aeb6d20475d47bf6f324f0a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:27:07 2026 -0400

    update is in doc/changes now

commit 85a360da0968151ccdf5978e79cc926313dc0d6f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:26:10 2026 -0400

    update CHANGES ref

commit d29ac5a796a209ce0a6a9085f5917d589c57d86c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:23:40 2026 -0400

    preliminary conversion of api/ui change tracking.
    
    we were using a CHANGES file that encompassed four concepts (policy, minimally-impacting listing, deprecations, and obsoletions) which are now broken into four separate files.  policy remains at the top-level, but the other working files now live in doc/changes along with helper logic that publishes them and automaticlaly turns them into update scripts.

commit 253954556db1c6acdacc43d56c95bac903b0fb0c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:19:35 2026 -0400

    replace CHANGES with CHANGES.adoc + doc/changes

commit 3af05d52636146604583d4b63dc7d3cd90d9be18
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:18:09 2026 -0400

    initial change policy update that spells out where the deprecations, obsoletions, and minimally-impacting changes get described (now three separate files)

commit 44d8d4f4767e5a92d7cd784c309b85f03b1a88a3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:15:09 2026 -0400

    deprecations are a standing thing, not a to-do

commit 7aa9fea9199dc37842afbcc6c787b294bd743fa1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:13:55 2026 -0400

    new location of deprecations and obsoletions incoming

commit cd818b21a1d5449ea0fcbf39920e9b5e5376e088
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:11:52 2026 -0400

    prep for CHANGES asciidoc migration

commit fe01fb86a74a3036e560ce7aa347548591f40f5b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 16:39:02 2026 -0400

    Fix names to avoid collisions with our own definitions
    
    Ah, right, we use those strings to denote full colors not just indices.  Call
    out that they are index positions rather than full-fledged bu_color entities.

commit 9db0656ab57fb7307aa758268dd4984bc6dda70a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 16:29:22 2026 -0400

    List other similar constants in bu/color.h  Removal will have to wait, but we can set up the definitions to use now - go ahead and do so.

commit 961621735c92808614de9da581001ee47739982a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 16:23:57 2026 -0400

    List libbu color.h RED/GRN/BLU for eventual renaming
    
    These are so short and generic I'm not sure a proper CHANGES regex could be set
    up, so I'm just going to list the rename in the deprecation set.

commit edc5820129b42ebb647620feb46eb5ecbe3b0252
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 00:06:43 2026 -0400

    Update checkout version in Distcheck distcheck.yml template

commit edfa99510d3f83fce2ba2663ff1c3e98ec7cc807
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 20:23:48 2026 -0400

    update all the remaining rt* docs similarly with cleaned up synopsis and descriptions, all options listed, and good examples

commit 7519ca0f467b129949a9d9178694c92a814b1c72
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 20:23:19 2026 -0400

    improve the image type table, clean up docs, conciseness, and easier to nav.

commit a5ed359341b7212c35f193a8a84b2f17bda7cf87
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 20:21:24 2026 -0400

    less technical irrelevance-to-user info like protocol, and stick to the UI.

commit 4ef7bfaec440c280e7ba11d1d56f8c6328ff4573
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 20:20:15 2026 -0400

    big description expansion and examples added

commit 464431727da83004476682e4945ee6c66ddd5930
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 20:18:20 2026 -0400

    tighten up the docs for rtedge with more consistent opt descriptions

commit a70536414b6c9d4b0b9728c71ec96e0e8290aec8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 20:16:55 2026 -0400

    big doc expansion with description and examples

commit 7d217bb7ed62c43393c3ec61484849542334e0bf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 20:16:19 2026 -0400

    elaborae rtcheck docs, especially description

commit ff4688a92e5da0f55b0c2242e4c79924905aeeb4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 20:15:34 2026 -0400

    big cleanup of rtarea doc now with new diagrams

commit 052e2ae6b93895c6e680763f1a907868d8256eda
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:54:55 2026 -0400

    cleaned up rt doc text and restored the token/tls example

commit 76c24f5ef9e73496f774401d5adb2cef253584c1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:47:39 2026 -0400

    fill out more detail on the old fastegen file format

commit ecb9bf6100b11cc5e8aa8720fba395130f997418
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:47:08 2026 -0400

    elaborate on how reshoot works

commit 9d25b1c6e70ab7f24b61c6dfb4ac40ec68be721b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:46:26 2026 -0400

    elaborate on how rtshot works

commit 491479b32d85bffb84b2362e7df48b568a377a98
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:44:47 2026 -0400

    massive reduction for readability as it had way too much example output included (which is all subject to change)

commit b206344b4a8752a27d973689cae52b3f4a0c87f2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:42:41 2026 -0400

    include some examples

commit a419b64711d491e3116b3452e564b6775cef028b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:42:15 2026 -0400

    general doc cleanup, synopsis consistency, descriptions, options, and examples.  unverified but preliminarily reviewed.

commit cabee2ad53259f780b97b5ac0fd17932ab914541
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:42:07 2026 -0400

    looks like the waypoints are needed regardless

commit b61fb17aab8f2f2f353c48a1b26d41db43990448
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:41:08 2026 -0400

    reduction and cleanup for readability

commit aba72b417ff0cfefca2c76e7af97aca75aa0e025
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:39:00 2026 -0400

    elaborate all the options, and include examples

commit b5604b85e5bedb6f0986e277dbcd6d7d80564832
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:34:17 2026 -0400

    make the example focus on cli opt usage instead of interactive since latter is discoverable

commit 73e298600b18f26601e43878d622fbeb926530f0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:29:12 2026 -0400

    note the help opts, elaborate on what it does

commit 00f78f70121014824717170ca52eac1b54fda450
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:27:58 2026 -0400

    update all the d* tools with cleaned up docs, better examples

commit 6afe886e0fd47331f43701fafa0b9efde7c1da73
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:26:15 2026 -0400

    didn't even realize this command existed, updated docs

commit 6064ca09a3ebd06eeba8ae1f266b0b094d7dbc43
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:25:35 2026 -0400

    update png docs with better functional examples and all opts described

commit ce8aaf44f308f43842e384814032f17742ed31f2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:23:44 2026 -0400

    update terrain doc with better examples

commit baf6ace8ed167a2ce89d9119ac79cb70dd0152e2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:22:51 2026 -0400

    tighten up tire text, note opt modality added for tread

commit 3277e83c2f5db2924a5c680dfc007e2f0c76d957
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:21:31 2026 -0400

    cleanup all the g* tools with cleaned up descriptions, short and long opts, and more

commit b84e2fed53711022e3ae0f94d5c1cfdd1989b33e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:17:32 2026 -0400

    show some auto tool examples

commit ec3b8265ec4ae70ced11d22f91ff544628d9ca46
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:16:42 2026 -0400

    clean up all the importers with consistent options and better examples, albeit unverified

commit 58abc5a4ef99427d8bf2431f9b2842840d9a3814
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:13:53 2026 -0400

    cleanup all the stats docs, include examples

commit 7e754f1a08526a29cb479af9ffc4e209b9fe85e8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:13:07 2026 -0400

    general cleanup of gif cmds

commit 697aa73e17cf1ca46cd190e7599fa031cd377c13
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:12:01 2026 -0400

    expand docs on all options

commit 4faf51aac4df73e5116494f50b7ce8b0a71cf7a9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:11:19 2026 -0400

    expand synopsis with actual options, add better examples

commit 59c6a12db40a8737eea9f092f82b603d8385aec4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:10:14 2026 -0400

    unverified cleanup, but significant

commit e060dc43212b85ceff9de04f0320a7586cb0b79e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:08:49 2026 -0400

    one of the first I worked, updated with improved description, includes nice descriptions

commit 2b5d0c41e712b138908c249fa1981819691678df
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:07:54 2026 -0400

    super similar to window_frame, but they appear to work together.  gen updates.

commit f748afb191c5d349e6cbb33075b84ae164f661b4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:04:36 2026 -0400

    focus on options since interactive mode is discoverable and more likely to change

commit 5e47939fe4489c91e1f603fc6fef9a1ec297b634
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 19:02:45 2026 -0400

    improve description

commit 35e383b6982bd50e334ec00be16047991eb6ae71
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:58:15 2026 -0400

    general consistency updates to opts and synopsis across all the bw tools

commit 1ef7de45e15c332ddd9ad3b802af6de2ed88ccf5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:55:06 2026 -0400

    elaborate the docs all around, improved writeup.
    
    not fully vetted, but looking much better on the whole.  WIP.

commit 866f78133e3859dd8adcaec816b51cc844409f3e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:51:38 2026 -0400

    consistent synopsis and description text, more examples

commit db879c958f7f8baa1294d10bcd660145db3d6fe1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:49:38 2026 -0400

    cleanup on all the pix pages.
    
    elaborate on all the options, clean up the text, lots of better examples, but will need to validate them later more carefully.

commit 6bf6e5ffc731de7fac998e7e9b32d8e8a617f56c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:43:57 2026 -0400

    elaborate all the plot3 tools with better desc and loads of examples

commit 41a4c1cf7f0ec93f9d7e80628c7ea0d5acf76102
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:42:14 2026 -0400

    elaborate the opts and desc on the procedural generators. focus on cli since interactive mode outputs may change

commit a0d2414f790f59ddee75d98317ebc4f3c501ed8f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:42:04 2026 -0400

    elaborate the opts and desc on the procedural generators. focus on cli since interactive mode outputs may change

commit 4bc016eb91b4ce1d25175c67a25679bda226a1bb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:38:05 2026 -0400

    clean up the example and explanations

commit 4b1e1c022fc3cbb5f7e633c3d4d08aff5e1eb110
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:36:47 2026 -0400

    minor cleanup

commit 4cbb3b8fea3b7d23dd56a0df41085b332564bbbd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:36:03 2026 -0400

    unverified, but more involved example

commit 8903962e7b1343a1e34b2a87403b1d339b58676e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:34:17 2026 -0400

    improved description and synopsis

commit 15bfdfaa3fce456176c9424026849f1354dcf1bd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:32:13 2026 -0400

    fixed usage, not just .g files

commit 0ddab423990e916874bb35137f87f429b0a2cafc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:31:08 2026 -0400

    better description, but what a weird format

commit 7b80d1398b467913392a576e57175d5f0d1a0fb4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:29:03 2026 -0400

    better description and explanations

commit 4e9d7872f5971849dd490707210db09a38946240
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:27:02 2026 -0400

    clean up 3dm-g page, include -v option, better example

commit 0725f334752d8b583b2a064a90b7062851e5ffd0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 1 18:11:47 2026 -0400

    add 52 new manual pages for commands that are installed.
    
    pages were generated from their sources, and reviewd both systematically and manually but not with a fine comb.  each has synopsis, description, options, and one or more examples.
    
    Added commands include:  a-d adrt_master adrt_slave ap203e2-g ap214-g ap242-g art brledit bw-a bw-d c-d d-a d-bw d-f d-i d-u d2-c dm_ogl_probe double-asc f-d f-i g-ap203e2 g-ap214 g-ap242 g-jack g-off g-vdb gchecker gex gltf-g gsh i-a i-d i-f ifc-g imgdiff jack-g off-g pix-spm plot3-dm qisst raw-g rtsurf shp-g spm-fb tgf-g tree ttcp u-a u-bw u-d u-f

commit e5027501f2f5699809433de5c7d169b8fc941b23
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 1 19:57:30 2026 -0400

    Bump to checkout v6 for github actions

commit 65ed3ba43e958e0019ef2d3400398fdd667c3dde
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 1 08:35:31 2026 -0400

    Capture tclindex build output to log file

commit 49c8017fcd49633e4a92191930839b6926801896
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 14:13:36 2026 -0400

    Set up to be more strict, but don't turn it on yet

commit 6c59756ea4877d1e0fab398fcf35b7d7c1836d0f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 10:03:23 2026 -0400

    Check for 'didn't work but returned success' cases

commit 40e6a0d93d3d4a8b31d21fba2cf0dfae98c482b4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 07:40:39 2026 -0400

    strncmp -> bu_strncmp

commit a8815160e9a56c5226f91e556774f729b16a7a53
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 03:59:06 2026 -0400

    add the earth world model by cliff yapp contributed long ago, migrated from sf tracker

commit 98dd8b05a8a8883b600e5eabf6aa23b6c98a71f9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 03:25:48 2026 -0400

    rename to earth.png to match

commit cc36a0324b8dc40dded313cc00c37ce10a0c1096
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 03:25:39 2026 -0400

    rename to earth.png to match

commit 8c9012b88a8b36793918ba833f2dfc085081f87f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 03:20:46 2026 -0400

    add the earth world model by cliff yapp contributed long ago, migrated from sf tracker

commit 9a2bd24b4f21c5bd6bedb2768eb8962cfc2b9821
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 02:33:41 2026 -0400

    migrated bicyclce wheel and photo frame from sf.net geometry tracker

commit fffb384d8d9694bdd6e2ca0dd9bcf438649c1760
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 02:32:27 2026 -0400

    csayni contributed a nice picture frame model back in 2010, now included.

commit 77db7b8da744a263583b31e3e656aee3ecba19dc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 02:17:35 2026 -0400

    add a bicycle wheel demo model made and contributed long ago by lee butler (migrated from sf geometry tracker)

commit 12f01d680f9e232cb373406be1ee4496cc3db7ec
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 02:15:13 2026 -0400

    add a photo holder demo model made and contributed long ago by csanyi_pal (migrated from sf geometry tracker)

commit aa250cf0de97e95430532eb1f798a628ee3d882d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 02:12:49 2026 -0400

    update reshoot/rtshot/rtsurf to indicate object param is now technically optional also

commit 97e63c14e00aa1a61d9195f1e9a00fd1ce1e84a9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 02:08:40 2026 -0400

    def_tree now takes an obj, which can/may be NULL and results in automatic behavior

commit 39b3b421a627d26278135fb4f030fb1de5bc6fd1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 02:06:11 2026 -0400

    update sig to match

commit 176c56fb2ddb7a8c17f53e2ccddfb68c85766486
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 30 02:05:58 2026 -0400

    set the stage for making specification of objects optional, using the new db_default_object() api

commit 79d9de26df3ad59157fed00ff6943b532f099f5b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 17 09:05:39 2026 -0400

    undo coupling to specific output printing

commit f0b3a0526ec486a1f5d8ac7fda3ce99b9ea33f7c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 17 09:00:57 2026 -0400

    fixed bug - set mode on the input stream, not just stdin, and messaging when just one file arg specified.

commit 0f106f579619d48f03d15302288a41c9c8dfc0f0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 17 08:56:50 2026 -0400

    more atoi() to str conversion with input validation

commit f0e5d02e1350b6e44b158319650895dd9a287ed6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 17 08:56:27 2026 -0400

    replace atoi hack for identifying a numeric host with an actual numeric host check

commit d61ab7bb8242165d963bf0d8f611f4b16b82d3ad
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 17 08:52:51 2026 -0400

    about to make this leap

commit eaaed552c6c23d00e875cb9d10d04904952ec7ef
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 17 08:52:23 2026 -0400

    tighten up the wording

commit d571dde9a1226f2c1f992550a21417ba6ba86d68
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 17 08:40:40 2026 -0400

    more atoi conversion with input-bounded checks.  pixborder no longer ignores trailing and terrain no longer fails onto defaults.

commit 112e0aa3ac59f6a9b139ee3740835b9b9e40a09c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jun 28 14:52:36 2026 -0400

    -Werror=format-truncation= error

commit 82533ae662740baf7a7a33b69af04facee18f0b9
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jun 23 15:38:47 2026 -0400

    fix mged voxelize creating duplicate solids
    
    when voxelizing a comb with overlaps, each overlap is added n times to
    the output region (as a duplicate solid) due to libanalyze/voxels.c
    calling once per-region instead of per-voxel.
    
    NOTE: it would be much more performant to collapse the linked list
    rather than do a db_lookup but we intentionally do the guard at the
    libged layer since other consumers of libanalyze/voxels.c rely on the
    per-region behavior (specifically g-voxel). de-duping the return there
    would be much more invasive and break expected behavior.

commit ad1291cc49f369d17cb42c77847ea994ca030a59
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jun 23 13:56:51 2026 -0400

    restore crash-on-exit fix
    
    looks like e4d2604fa72061f39e6f58099c279039a886fa8b squashed
    6f3c978d0fd686118f4bad013dad95c768904260 to reintroduce the crash.
    Don't restore Tcl_Finalize() from the original commit since we're
    manually handling that now with mged_request_shutdown +
    shutting_down + quiesce_tcl ?
    
    I'm not convinced the state management is quite right since in theory we
    shouldn't be getting invalid handles in the final exit (or maybe we
    don't need a final exit?) - but this atleast resolves the crash.

commit d19144d3acfe4c3ffb65880775b4ac0a62f33bf8
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Mon Jun 22 16:07:28 2026 -0400

    fix hrt matrix application
    
    need to use the right macro (MAT3x4PNT -> MAT3x4VEC) and apply the
    translation to the top half

commit 313dbf2af129396117180c8f3d437357774e261b
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Mon Jun 22 15:11:37 2026 -0400

    use the right macro - these are vecs not points

commit ffc39678be302065dd565366c962530cff37fc9d
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Mon Jun 22 11:35:52 2026 -0400

    fix non-ascii characters
    
    somehow non-ascii "0-" got into the descriptions and were doing weird
    things

commit 0b49d7a864859d3a2e9644019701c579deb305ad
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jun 21 08:17:42 2026 -0400

    Make a note of Manifold's new Contains API

commit f4fca22899c371f5ee642ec83bf7959a7d0a837e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jun 21 07:35:51 2026 -0400

    Add a note about meshoptimizer

commit 1b5dd70f31d774326f57408e450324924df8f224
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 19 16:59:24 2026 -0400

    Wchar-subscripts warning in clang on OSX

commit 51b68c549803d634ddd216729c8b44f3ff1af1fb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 19 00:15:56 2026 -0400

    Add a couple missing bu includes

commit 832c8ea6cbd86dc5b70d4c7905cabd458ea38808
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 18 23:57:57 2026 -0400

    Fix problem with removing missing key from bu_hash
    
    Fixed src/libbu/hash.c so removing a missing key from a populated bucket
    advances through the chain and is a no-op instead of looping on the same
    entry. It also now decrements the entry count after successful removal.
    Added coverage in src/libbu/tests/test_hash.cpp:133 using a missing key
    that hashes into the same bucket as an existing key.

commit cc6fc01b35190a61e655e65522f514fdebbee7a3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 18 23:39:30 2026 -0400

    Consolidate vectfont/tig logic into plot3.h
    
    We consolidate the old (and little used) logic from vectfont.h and
    tig.h, which are plot routines, into plot3.h.  Functions are renamed
    into plot3.h style, and plot3.h is substituted in for vectfont.h or
    tig.h.  CHANGES is updated with the include and rename search/replace
    expressions.

commit 0c5f42327328eecbff12baaeb9ff9cf7ca2de9b3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 18 09:54:36 2026 -0400

    Windows build warnings

commit f79c2f559df4cfee4e3b7a1d188c5a7a63938193
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 3 19:13:57 2026 -0400

    Taking a stab at a portable Tk osmesa based dm backend
    
    The idea here is to use the osmesa software rasterization of OpenGL
    rendering and Tk's native TkPhoto widget to provide a portable, feature
    rich alternative to the X dm that works reliably.  So far only tried on
    Linux, but going ahead with the commit so it doesn't fall out of sync
    with main.
    
    Theoretically this could work with Aqua Tk, but we're not wired up to
    test that and it will likely need some adjustments to handle that
    environment.

commit b140f2bbfa87e6a549b1227003e7f759ebbd8f01
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 17 15:45:32 2026 -0400

    Restore the remrt/rtsrv changes, this time assigning the ht_path to the right temp variable for processing.

commit ef51ff62875c499f649be27620502048964976ab
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 17 15:34:17 2026 -0400

    Revert "get remrt and rtsrv building as C++"
    
    This appears to break the regress-remrt test, at least when building in the
    regular C mode.
    
    This reverts commit f424a19bd0d50802278a9d220a9c29e00867e61e.

commit 452476d199abe6e7b208b0411efba1488d045515
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 17 14:30:34 2026 -0400

    Fix ordering

commit 8d85701b7f72585d3eedc040c2f879f752c3c1ea
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 17 14:29:36 2026 -0400

    These strings can be treated as const

commit 9503e305b38cc40c01c1e8251e17ea5d86b94b9a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 17 14:16:11 2026 -0400

    Remove the NO_CXX flag from libnmg and MGED
    
    We're not usually building C++ only, and if we leave these it will incorrectly
    look like full success when we do a full C++ build.

commit bb40c260c2620b957cc2e1a87703c3807d4f97ad
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 17 14:13:26 2026 -0400

    More C++ compile fixes
    
    This gets us pretty close except for libnmg and MGED.  libnmg has some thorny
    elements to it - it exposes char * pointers in the API where static strings are
    used - and MGED has a lot of pending simplification with the switch to librt
    editing so I don't want to complicate that merge right now.

commit f424a19bd0d50802278a9d220a9c29e00867e61e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 17 13:32:14 2026 -0400

    get remrt and rtsrv building as C++

commit 42d3bffb555860bf20006dfc75696468ec08bcd8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 17 13:15:12 2026 -0400

    Get tclcad building as C++

commit 4860ca7369698444ba95883c222f7ecbc505f97d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 17 12:36:48 2026 -0400

    Updates to librt et. al. to compile as both C and C++
    
    This gets us as far as rt building as C++

commit 2eebafd876ff19eb6ed749c175663b47638c48af
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 17 02:19:07 2026 -0400

    when a title text just slighly overflows, dynamically adjust the size down, but only a few notches to see if we can get it to fit -- at least fit for cases where it only partilal overflows. right now using about a 10% overflow metric.

commit 5c137a4f83cf48a2ef28548b2c64ccb919cd9d04
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 17 01:53:36 2026 -0400

    more atoi to str conversion for proper bounds checking.  these are a bit more complex but the basic pattern is holding.

commit 1d90ab39ccfae81967bd808c590bf0c63f7d9d73
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 17 01:43:20 2026 -0400

    link in the two new galleries somewhere so they're at least discoverable

commit 672488ed06e3910dd829818706f850def4e8fa94
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 23:38:50 2026 -0400

    remove externs - causing issues on OSX

commit be408ace9fdac89f19acabf95d7ff2b76ff7d2b5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 23:36:02 2026 -0400

    Revert "See if we can handle the title extern via ext.h"
    
    This reverts commit b2e97836bc847be0efdd8453264bb406aef62059.

commit b2e97836bc847be0efdd8453264bb406aef62059
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 21:22:12 2026 -0400

    See if we can handle the title extern via ext.h

commit 99f05d9ad0998cb96333a8b90180f27a232cda42
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 19:51:39 2026 -0400

    Simplify - malloc doesn't seem to be using these, appear to be just labeling strings

commit 846b794d890f51a8e3151fee6cd9fe8d8a93a2be
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 19:45:36 2026 -0400

    List file for CMake

commit 2b6e91f72ef909f5ed94c34497f516052bcaf4f1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 16:53:45 2026 -0400

    List EXTERNVARINT in CHANGES

commit dd52929609796aa708babb3f53cdab1b9bbcf404
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 16:19:58 2026 -0400

    vtk plugin was matching any xml file, resulting in our regress failures - tighten check

commit f16afe512f4870c50df5a38afb253a478c7c0da6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 16:00:14 2026 -0400

    Work around some gcc linking issues with <filesystem> on Redhat

commit 331c848a5172eafc703f9ea841555563b6b83c58
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 14:35:53 2026 -0400

    More C++ building changes

commit f4556d17434c6147739c11ca1e0dc8c82e820a0c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 13:56:19 2026 -0400

    Just use extern rather than defining EXTERNVARINIT - extern is legal in C too

commit c32af58f94601eaafa10c94649ef966dfb137a44
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 12:57:13 2026 -0400

    C++ only build fixes to get us as far as libbg

commit fd36b6b61ff281f04fefd205ee60d586300a8b03
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 16 12:20:40 2026 -0400

    Adjust C/C++ CMake language setup

commit d528862905661cfe5d41082a6c403bfd5c458f6b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 17:08:51 2026 -0400

    more C++ compile fixes

commit ab2532f5aefbfdff83c55a20c0efd0d09b6ea600
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 12:44:21 2026 -0400

    get iges-g and step-g building in C++

commit b4aaaf738c97c0b70bca3179da114474b71f5341
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 12:14:23 2026 -0400

    Various tool C++ fixes

commit a9bcd64254a4d86f3f4e89e66e473c24060fce73
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 11:30:01 2026 -0400

    More libged test, libicv test and bwish C++ build adjustments

commit 7284adc4bbfcd7f4d3265fc66d657e6d6aa1546e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 11:17:41 2026 -0400

    C++ fixes for librt tests and benchmark

commit c0c1c234413a19f7e85d48ef1449b3ebc1a9616b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 11:02:10 2026 -0400

    List libnmg pr functions using char * in CHANGES for VLS switch
    
    C++ building shows we're playing fast and loose with char * vs const char *
    in libnmg - let's get set up so we can be cleaner about this and leverage
    bu_vls.
    
    Made a couple of minor C++ adjustments, but more work will be needed for libnmg
    to build properly in the mode.
    
    Also set up the brlcad_addexec and brlcad_addlib functions so we can disable
    C++ for one library even when we're otherwise enabling C++ for everything -
    basically a per-level version of the turn-off-C++-for-this-file feature

commit 88a88deb2d24801043c67dba84226fcf63d621db
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 10:26:40 2026 -0400

    Another C only uuid file

commit 79d23fcd213d82e8b2565d10027acb5aa840a74f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 10:26:23 2026 -0400

    libpkg C++ compile tweak.  libpkg is supposed to be independent, so we're explicit here rather than using __BEGIN_DECL

commit 146e5f3423c6211646e7defd13a98fcc0f2e6192
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 10:12:11 2026 -0400

    Use const string in libdm struct

commit 7a81200a559937e7a041e67788571dc32943a371
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 09:59:59 2026 -0400

    C++ build fixes for libbg

commit fedd8c366d8744521483005ca1a101bb3b3bd891
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 09:54:02 2026 -0400

    Don't want to decl isnan or isinf if we're building C++

commit f4067a65904e8dcd37852fbc5a62b38855ab2710
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 12:57:23 2026 -0400

    add a render style gallery to the docs, showcasing (nearly) all the major renderers or render settings that result in a different image.  need to add a few more.

commit 9c474bbefc663d5ecae393dd31a9d09205513e84
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 12:18:01 2026 -0400

    almost there, more atoi to str conversion with range checking

commit 40ef6b2fcf992994815b4acf35824a230d8a0d9e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 12:14:55 2026 -0400

    add new API to auto-identify default geometry, or auto-report tops.
    
    new db_default_object() API identifies what single object can serve as a default iff it's not a disabled feature on this database, or iif there's only one top-level, or iff there's only one comb, or iff only one comb matches db name, or iff only one object has a name matching an all*/scene* convention.

commit 15d970ffc823b4568f1433208294fe6921f9f50d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 11:14:21 2026 -0400

    use stderr for output like everything else

commit c6f1fe137c6128c4f31fb8251a8e57e8115a29bf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 02:40:25 2026 -0400

    more atoi replacement with safer str method and range checking.

commit 98d3bdc80fe9b6fffdea1e8ceaa4297f92fceb6b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 02:22:36 2026 -0400

    more atoi elimination in favor of more robust str input and range checking

commit 9561919a971da6e018ba59f56d55c6a13b0f22f9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 02:07:36 2026 -0400

    fixed subcombs that have a matrix in the hierarchy view.
    
    if the top-level object's subobjects have matrices over them, they were not displaying in the hierarchy preview correctly.  this is because they were being tracked by name, not by path, as we passed to rtwizard.  now tracks that path but still displays just the obj on the page.  this was a user-reported issue.

commit 3236184942e1945181cf03fde49c8e70f98813cf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 01:37:30 2026 -0400

    more atoi cleanup with better validation and range checking

commit 7c3de8881863745aea2eb03b38dc38a3a1e45a50
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:38:33 2026 -0400

    match the manpage per exporting to file or redirect, and make sure we cleanly handle all the entry points (manual and automated)

commit 63154b19ae9616a23976fd8546035be59e6d71a8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:38:23 2026 -0400

    match the manpage per exporting to file or redirect, and make sure we cleanly handle all the entry points (manual and automated)

commit a8348bff6ec019363caa009b231289325da122b3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:32:33 2026 -0400

    significant cleanup, rewrite of prose, lots of examples

commit 571bc3da0a1878a488be8b3bd14802e21e791e0c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:31:58 2026 -0400

    correct manual section, improve the writing also, and options where we had something handy

commit 1185f949807a6478371c2ea5c28add41dce62682
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:30:25 2026 -0400

    reorder opts for clarity, clean up writing as well

commit db7f6403d73469a5e67709f7b63e3914efb72bb3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:28:40 2026 -0400

    same with icv, wrong section, and a substantial rewrite of the options

commit 3a0305eb37997f29c403a6e6e8bd828deea0f826
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:27:37 2026 -0400

    Wrong manzmanual section, but elaborated on the options also

commit 5bd872c2b861aea3ff9e97e6699e132cedb34ec5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:26:12 2026 -0400

    ditto spell out all the options

commit 63f20224bd7892e4a087576bc7153a4ecbf01e54
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:25:07 2026 -0400

    spell out all the dang options, not just punt with 'options ...'

commit 807239ef4d61e11025728c466c6bf757ffa674fc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:24:34 2026 -0400

    cleanup the output

commit 77eac601bbb1b14e846c9e43dfb5c1ecd40abff0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:23:15 2026 -0400

    drop the commentary, rewrite for focus on options and examples

commit 6544d3a188d21151f3ff0ebfd8f10c038446605f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:22:00 2026 -0400

    big doc rewrite, spell out all the options

commit 712b010c5acad70df29eaf41e015b730e4b6d7ff
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:21:02 2026 -0400

    pretty big rewrite, call out the historic bits less

commit bec3c7cbb2e33c6cfc6d7e83b5af430feb153b7f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:18:24 2026 -0400

    clean up all the converters' descriptions, options, amd examples

commit 2b69291d899503866a4b0adad4c59ad035207952
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:15:36 2026 -0400

    big cleanup of the description and options, without all the distraction.

commit 8b210af2e80e9645cef5db63700b895049b4036a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:14:47 2026 -0400

    add help

commit ac5a1672cb329c15d98db07387df1e50490e246f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:14:31 2026 -0400

    cleanup opts

commit cd82ecfc9fa4f25f873883e632ba6ae122cbce0f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:13:25 2026 -0400

    spell out dbupgrade's options, instead of relying on word of mouth discovery.

commit 78febaee4ca1a260202dad4ef465ce620e58cc98
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:11:19 2026 -0400

    elaborate the description, options, and example with sync'd information

commit 47cfa7b332676e5f4a6dcd17b59e729d3f7ef78f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:03:13 2026 -0400

    wrong section

commit a502f5e172e79370edd3312ffb15376093c7fd06
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:02:49 2026 -0400

    clarify it'll write to file as well as redirect

commit 5d976907793108ef09c6a6a01a0e58c93f897f52
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 15 00:01:01 2026 -0400

    note pixrect can go to file or redirect

commit b9698fadbd781250a686b17f8dda7eecafb1888d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 23:59:02 2026 -0400

    lots of general cleanup and examples added

commit 1b3e948a4a073ec4b0d6380c0087692a4809b9c1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 23:43:58 2026 -0400

    funny, still says v4 is 'current'.  updated with an example.

commit 2f02d6b9afa3c598a57a99e4e49a0405f5c547fe
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 23:42:14 2026 -0400

    document comgeom importer better, more clearly

commit bbd9c275b70ac85e560a11c3757b58823f0eaa08
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 23:39:20 2026 -0400

    wildly expand input options documentation and loads of examples.

commit 85af6141f237e76ecd393b78e495535a52789743
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 23:35:36 2026 -0400

    document options and usage+examples more clearly

commit 0328f7c42f19f4ee4964b32a44a6a000c91d3406
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 23:31:49 2026 -0400

    document the options

commit 608357f367d65c7d58ea992d4cb6b5315542d661
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 23:30:48 2026 -0400

    note these commands can also go to file or pipe.  expand opts in detail, and examples.

commit 9f1949e0a823b4ababc7ee0d79ccf619233113e2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 23:26:05 2026 -0400

    massive doc cleanup to make it more clear what all the opts do.
    
    separate the commentary into concrete detailed examples.

commit 0be2dbf3c7fe209c27efd43bc348c7d268287e74
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 23:25:07 2026 -0400

    simple cleanup, add an example

commit c233050cca4111fd9c6087b47aa593c6bd8a1243
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 23:24:42 2026 -0400

    note output can be redirected and/or specified

commit 991359e61ef353c248e0e368dd3d7f8ad034829b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 22:12:09 2026 -0400

    even bwish gets an example and cleanup

commit 46b03496b533b953f06982ff9168d8e1d47f58d4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 22:11:22 2026 -0400

    doc cleanup

commit d93ef26cd413985404432a45da75e61d8929103b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 22:10:50 2026 -0400

    bwfilter now does indeed support both -o and redirection output (optionally, it was implicitly required previously due to a bug)

commit e2622d3ad7ed9cef2b21d83d9b8acc0b0739ca99
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 22:07:28 2026 -0400

    cleanup more atoi option handling to use str* handling instead and range checking

commit 3134923f1419d812043bdcc6cec833946fdc1d8f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 22:06:54 2026 -0400

    make bwfilter do what the docs and usage said, namely that -o and redirection both work

commit 4622f61bbfdfe29990e45d9c1cbccdc08d322390
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 21:47:10 2026 -0400

    more parsing updates to avoid atoi instability

commit d64e8b519401aea5d99425ebb9de0fdd2b03a756
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 21:39:28 2026 -0400

    fix usage; more clear which are exclusive.  include a couple good examples

commit 7328041011354b21833919758bc995d79314e325
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 21:37:32 2026 -0400

    significant rewrite with arguments called out separate from narrative

commit 2ecbf728431344f963061997e11cfe65e285b7db
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 21:36:45 2026 -0400

    document help option and all opts more clearly

commit 334fac13f3da69ecbe44e8ba324ec76e8bed663d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 21:34:52 2026 -0400

    more atoi elimination, and input type checking for robustness

commit 8150a789c61874178a2356039d7f2ccbabe350cb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 20:02:04 2026 -0400

    turn the light brightness down, turn checker repeat down, move the light up

commit 3f87cba5c7b8aea458a5e0e237208c1898e46b2b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 14:49:28 2026 -0400

    add all the irregular arb test cases to the db samples, set colors and arranged into a scene.

commit 3833123e25bda425d87a7f4548a0072a29bc817c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 13:55:29 2026 -0400

    show usage and quit instead of pretending all is fine

commit e182fb9d5d9388c5215ea4892169175eeb04b5ca
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 13:43:18 2026 -0400

    gist should no longer be displaying black boxes when the render is 'empty', which happens by default on air objects.

commit 28c4e5a46f5980e906b5ddbeb9e18035c298b768
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 13:41:30 2026 -0400

    no more black boxes in hierarchy view.
    
    take more active steps to ensure when rt produces a background-only image (or fails to render or there is really any other issue), that it skips the empty ones.

commit 0b9627d07d0518ce09611291962691d83c8f9b70
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 13:35:17 2026 -0400

    gqa test wasn't enabled?

commit 6cbc5a6c78a5827b731ea8c856c6756ae869d08d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 13:34:34 2026 -0400

    expand test coverage of -Aw vs -Am on pure modeled air and mixed solid+air cases.  there was a report they didn't match, but appears to be thus far.

commit b5bf42b959eae02b2e6aefbd27047560055f8fd5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 12:09:42 2026 -0400

    document all the options, provide better examples

commit f6f008f6ae71c1daca6a4e59216f12bde09bedf2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 12:07:50 2026 -0400

    elaborate docs, examples especially.  explain the init files.

commit 0339ac9beaa8ee478a7c30c82d2721e1c9dfba38
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 12:06:28 2026 -0400

    Expand examples and clean up opts writeup

commit 5dc581998d75067fadb24b1f620b0257238bf2d7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 12:05:04 2026 -0400

    document -F and include examples, clean up options

commit 46395830dc52ebeba39f6a08cf5d962d2e584aa2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 12:03:55 2026 -0400

    document the help options, improve the text

commit 9e5e802dd90a1281ee788361e40d9e237b6c1fcb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 12:02:53 2026 -0400

    add missing -F full precision option, gltf/glb support, and all the long opts

commit 91da56912a57e555fa862cd2a74225de10be7af2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 12:00:29 2026 -0400

    reformat and clean up, already comprehensive

commit 5feec88c32bc43503f80cab09210527b4fb51d6c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 08:39:48 2026 -0400

    five more atoi conversions with bounded validity checking.  definitely begs for refactoring, but still better

commit ec05fe749e695f436abe2833682767ac1a9685f1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 08:05:49 2026 -0400

    update atoi-to-str handling on five more (fbframe, fbcbars, fbclear, fbline, fbgrid), clear refactor pattern emerging

commit d0ea22c7bf16b603f15db31c2829d70fbbba6169
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 01:39:11 2026 -0400

    reorder to avoid forward decl

commit a5f98868fb01e579faf16ac585a44a3185437977
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 14 01:33:56 2026 -0400

    confirmed a bug in fbgamma when specifying all three r/g/b gamma vlues (off-by-one on bu_optind usage.  there was a workaround, namely to specify a dummy 4th value, but still a bug and now fixed.

commit 73600799eb8a9c493560804c2fd6bb6caf3a79ea
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jun 14 03:26:39 2026 +0000

    Add in a first cut at a procedural tree generator.
    
    There were old TODO notes about looking into ngPlant, but
    for a basic start with AI assist it proved more straightforward
    to implement what we need rather than pull in a dependency or
    fork external code.
    
    The trees produced are very basic - no photorealism here, but
    it's a start.

commit 00b40c634d8eccff8900905c0ffcdeea8363d22d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Jun 13 22:17:06 2026 -0400

    fixed bug in fbgrid where -o wasn't right -- the old grid mode was using fbp which wasn't initialized (so would have just opened a default fb or crashed) and wouldn't have been even usable unless FBFILE was set.

commit 072583f4239fef52229540d3568ba033868807bc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Jun 13 21:52:34 2026 -0400

    fix bot_dump and dbot_dump usage with full list of types supproted (missing gltf formats)

commit 81f67a93fcd9ec0d4dc56cd45660680625118719
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Jun 13 21:50:27 2026 -0400

    another small incremental, swap atoi for strtol with bounds checking, and let user know when options conflict

commit 73fc51ed031ec25c8d7686449ff82246b162a937
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Jun 13 21:43:38 2026 -0400

    more atoi to strtol conversion for improved/fixed opt parsing (particularly on bad input)

commit c9c1c01c0f611060cda7e2fda6d972d7d582d4e2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Jun 13 21:14:29 2026 -0400

    expand with a good example and full synopsis

commit 3748dcb1df40c05c45c7b0a06fa79b677db6f175
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Jun 13 21:07:08 2026 -0400

    improve fbzoom arg parsing to not use atoi() since it's non-deterministic on bad inputs.  fix usage statement while we're at it.

commit c2e6e0fde9682d426a5b828aefc2f0e2dc17a128
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Jun 13 21:04:25 2026 -0400

    implemented preliminary import support for vtk's file format (at least their non-xml ascii format) to gcv as an import plugin

commit 7422f7817ce96f16f7f665a8571058e8eb0f7ca4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 17:04:05 2026 -0400

    Use different commenting style so interior doesn't trigger gcc warning

commit 4c749f0dd9dbb40cd08ffb40ee01ed61d2dc196d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:43:49 2026 -0400

    missed one

commit a73171eed48ba1adf9b51713d5efeedffad7adea
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:42:27 2026 -0400

    add a procedural geometry generation doc with examples for all of them.  the gallery can be generated on-demand during the build when BRLCAD_GENERATE_GALLERY is set in case images are being updated.

commit ec913235dc8d084a750682b2d74cc8fee5aae8ee
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:35:44 2026 -0400

    add all the image prerenderings for the 60 procedural database generator output types

commit d75b0a8570910acd88483788444af97cc630d03c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:32:24 2026 -0400

    insert instead of push

commit 1c592ef42e37e57e1fcef9160358d32c987f7196
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:31:13 2026 -0400

    implement a preliminary vtk importer.
    
    suports pretty diverse mapping of VTK entities to BRL-CAD entities including:
    
     *   POLYDATA (POINTS only)         -> a single pnts object (mk_pnts)
     *   POLYDATA (VERTICES)            -> pnts/sph/datum (--vertices)
     *   POLYDATA (LINES)               -> datum/pipe/rcc (--lines)
     *   POLYDATA (POLYGONS/STRIPS)     -> a single bot (mk_bot)
     *   UNSTRUCTURED_GRID              -> arbN cells and/or a bot (--cells)
     *   STRUCTURED_POINTS              -> vol, or dsp/ebm for 2D (--grid)
     *   RECTILINEAR_GRID               -> rpp cells or a bot (--grid/--cell-max)
     *   STRUCTURED_GRID                -> arb8 hex cells (--cell-max)
    
    Only supports the legacy ASCII format, not binary nor the newer XML.

commit 2a387e04611d58c293b1460a328116ab0623aec1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:24:19 2026 -0400

    lets get some initial testing in place for vtk import support

commit ab314129c7668df1f12ba5d0e1203d10e1aa64a7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:21:05 2026 -0400

    add recognition of vtk files

commit 49e8eaad47b68582b3e863fc080bc426a97d42d0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:20:28 2026 -0400

    declare our new wdb funcs for mk_pnts, mk_datums, mk_dsp_obj, and mk_ebm_obj

commit b6a8ecc825bcb0f898ea05cb69e3d83f57261563
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:19:22 2026 -0400

    implement very basic O(n) ray tracing of point clouds, linearly just treating them as spheres.  probably only good for a few hundred points.

commit 8987ce0a5685f745642aeaa1edf05272ac6e4914
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:15:32 2026 -0400

    make sure ged_exec_human gets the right command name.  probably a more systemic issue we can address.

commit 9cf3337a5b5248d3635a351a0aaf2adfb708d1bf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:14:10 2026 -0400

    do the same for ebm, allow use of an existing ebm.

commit 2d5f1bc88171c2fdd2cd5b3d366a52ad1ea6ef05
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:13:47 2026 -0400

    implement a sister function to set a DSP's datafile to an existing BINUNIF

commit 5254dc492af3a458984063f01a2df65a40b3733e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:12:55 2026 -0400

    implement a mk_datums() that creates a chain of datums

commit 120469e9653b63b57fa00bcfcea5b924413b4804
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 15:11:29 2026 -0400

    implement mk_pnts for creating PNTS via libwdb

commit 4974c81adee7e4e37483765ecfaf5f1420d98dd8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 09:32:23 2026 -0400

    Make sure we've got targets before trying to work with them - minimalist builds may not define them.

commit f76215fd0ccc847d30465d4ae184d4c10d1f13f7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 12 06:28:58 2026 -0400

    Make bu_log happy, update bext SHA1

commit d330708313f3f67b23f1ab38ac492fe041e20670
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jun 11 13:15:29 2026 -0400

    implement rt_pattern RT_PATTERN_SPH_QRAND

commit 6860637b1b1fce2f9f5de88adb9f2394ecb98477
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jun 12 00:54:30 2026 -0400

    minor enhancementavoid using atoi() for safety, using strtol() and full bounds check instead.

commit 1c1042666d9a1c5c305b893881caca14028c20df
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 22:06:10 2026 -0400

    Various corrections to tire logic

commit 8bd6e80a92ae6eb58e391fefdabc8debc56b3026
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 20:30:22 2026 -0400

    Tweak man pages

commit a1a35dc15f58dfe025a394b75cfe0e75c72e5c29
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 19:59:27 2026 -0400

    list file for CMake

commit 2d62025184a4ed959ad8227747bac968c9e1a0da
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 19:16:08 2026 -0400

    Correct source location

commit df54e5cf28e577bae468d0553e20daae3df7d01c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 17:10:03 2026 -0400

    Add TODO for option handling on selected shapes tools

commit a536ed8ece280b0b70eaa83bc341c20a2e671173
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 20:45:53 2026 +0000

    Checkpoint work on improving tire tool

commit ad0566c40f7e8b47359332d0093da0f29df7c59f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 11 16:39:39 2026 -0400

    rm command needs a visit before release to avoid unintended data loss

commit fa6e71f4e4797013edbe7d69daff69bd065aa9cc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 19:00:14 2026 +0000

    First cut at a propeller shape generator.

commit 9cb7c9f1de7ad31f2fd45b635c2bf1839bf02316
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 14:27:15 2026 -0400

    Make a note as to the intended (and NOT intended) purpose of naca456 geometry

commit a64866a4c3bb39bd7d191f8f8935c3163e468eaa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 16:50:47 2026 +0000

    Remove the naca456 readme file

commit fa09d9a0750f7a73fe57b7e4d4ec7df948e3a91b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 12:27:27 2026 -0400

    Move naca456 to shapes

commit 923304537d2a7fddcda897795a23bf284520604e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 07:33:40 2026 -0400

    Our minimum standard is C++17 now - no need to conditionalize

commit 9d1a6b0a049cded49f25c9bb9c088d2e5169c33a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 07:32:33 2026 -0400

    fix CHANGES entry

commit 5c7cdc7f696aef2f8b37d01a8ff8e8a7ac5ef0b5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 11 07:23:43 2026 -0400

    Add some more wing tip options.  naca456 is a procdb, so it needs to be a NO_INSTALL.

commit e0b153c8ce0ceb9ba148aa35782f75895d4c9cb2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 11 01:27:12 2026 -0400

    er, no don't commit the merge, commit this one

commit f8602d49c61366da48eea63b9929b89aa4e38e5d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 11 01:07:31 2026 -0400

    add refs for color

commit 7d7082990f8305694b50eefa9e6cc6ffee9279d2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 11 01:05:08 2026 -0400

    add missing ref geom

commit 9a337fa49f14045be526f33a38f425cfeb3398c5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 23:28:56 2026 -0400

    Round the wing tips for naca456 outputs by default

commit bec28f2cfca561738815ef6266584e523938b6f6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 22:56:41 2026 -0400

    List ISSUES.adoc for CMake

commit 1be4a2d0c613c78745ecb04f53d2eb1bd377d319
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 22:42:05 2026 -0400

    Add C++ only per-target option to the brlacd_addlib/brlcad_addexec CMake functions
    
    Instead of setting ENABLE_ALL_CXX_COMPILE, which is an all or nothing
    proposition, this lets us add an ALL_CXX flag to individual targets so
    we can try out C++ only building on more focused subsets of the code.
    
    Tested on libbu - found a few legit issues, and a couple more source
    files that are legitimately C only.  (At least as implemented currently,
    anything using bu/uuid.h is relying on C99 syntax that is a no-go in
    C++.)

commit c2211e55071359d5af259f808d66363098ebfe0e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 21:43:33 2026 -0400

    Add ability to designate C-only sources for ENABLE_ALL_CXX_COMPILE
    
    Previous attempt went haywire, but this is something we'll want to be
    able to do so add back in the ability to flag a file that legitimately
    can't be built as C++.
    
    Also add back the -Dregister= property assignment for the build-as-C++
    case as well - the reverted patch had mistakes from an earlier attempt
    that damaged comments/text and didn't get fixed correctly, but that
    experiment was unrelated to the -D approach.  The -Dregister= method
    worked in testing, so it appears to be the proper answer for the
    register keyword not being usable in C++ mode.  (We don't want to just
    delete the register keyword because testing has previously shown there
    are places in the code where it still helps performance.  We're not
    actually planning to convert all our sources to C++ - we just want to be
    able to build as many of them as we can in that mode so they're ready
    if we do have a legitimate reason to convert one to C++.)
    
    The other piece that should be worth saving from the mess is probably
    the use of const for a bunch of strings that don't need to be mutable,
    but extracting that from the patch while avoiding the incorrect parts
    will be delicate - leaving it for later.

commit 30a934351e6adfcc3820f000fd7d3b18b37d7011
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 21:21:55 2026 -0400

    improved the performance of ray tracing on objects without shaders, transparency, or air set.  testing indicated about a 15% boost on models like moss.

commit b8095164a85208d429c905640bb0efa8bfe2c823
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 21:17:57 2026 -0400

    nice little performance optimization giving about 15% boost on some scenes.
    
    if there are lights but only opaque surfaces, we don't need to compute all hits on rays for the secondary rays.  we can just stop on that hit so long as there's not a shader set, not air, not transmissive/glass/etc.

commit ea0ab59842ba0b31b3c717dd2488292dbb67f1ba
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 21:03:32 2026 -0400

    autoview requires a -s option for scale now

commit 2b40a669bb197a38513ad5c0fa69ab30497ff8c1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 21:00:40 2026 -0400

    add support for specifying objects to the autoview command.
    
    this implements the same support we added to the rt -c autoview script command, and discover I added scale support to the autoview command a decade ago.  since that wasn't exactly published proper, treating it as minimally impacting and documenting the new behavior in the manpage (namely that -s # specifies a scale).  otherwise we'd have a conflict with objects using numeric names.

commit 4e2b79364c44566bfc283ce8ad0f08cc65a30348
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 20:54:12 2026 -0400

    add a prelim ISSUES.adoc file for review and discussion that combines BUGS and TODO.  not convinced adoc buys us much here, but worth testing.

commit 5d66359e768844a2614b628d6052cf21ce00d58f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 20:26:27 2026 -0400

    Revert "Updates for building C files as C++"
    
    This reverts commit e09b768258b8302f10a4c3dcbf3ce2b100182c15.
    
    already stated in the revert message for 3a9d6607dd but looks like this
    is the actual destructive commit, the other just patched over one of the
    issues.  basically, this commit conflated a lot of legit c-as-c++ build
    fixes with a lot of low quality changes and mistakes.  seems to have
    blindly deleted the word register throughout comments by mistake
    (probably undid the code changes but after too aggressively deleting the
    word from mention).  replaced safe {0} with unsafe memset (better to
    quell the warning).  made a real mess of the export decls, and picked
    some atrocious new names to inconsistently sprinkle throughout.

commit d9a0b685ce42f1210d44fae23bf12d06a2bcaeec
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 20:19:48 2026 -0400

    Revert "C++ and C do this differently - fix C build."
    
    This reverts commit 3a9d6607dd679974fa17300f37043515c5cb7930.
    
    while it did break the build in a minor way, reverting because this
    patch is riddled with mistakes and inconsistencies.  it erroneously
    deletes register from comments all throughout the code leaving the text
    in a bad state (all the places we talk about registering something
    especially).  it defines a new set of preprocessor symbols to block out
    extern "C" despite there already are a couple defined, and then
    inconsistently proceeds to use both all throughout the code.  it also
    got rid of {0} init, which is a C thing but technically still valid C++
    but strangely promoting memset as being a suitable alternative (not at
    all equiv, more brittle, more crashy).
    
    on the whole, the changeset is low-quality and not a good base to fix.
    still worth doing, but needs to be redone to get C-as-C++ working.

commit 64581bce025d1a5189812cb35ed0ea5664e08f71
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 20:38:09 2026 +0000

    Do some input validation for tire parameters

commit 3a9d6607dd679974fa17300f37043515c5cb7930
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 20:10:54 2026 +0000

    C++ and C do this differently - fix C build.

commit e09b768258b8302f10a4c3dcbf3ce2b100182c15
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 19:51:35 2026 +0000

    Updates for building C files as C++

commit 783678a12428069344965bcf61d0e56b7c178c52
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 11:42:25 2026 -0400

    try to bypass gcc warning about format being non-literal as it's very much intentional here, but really don't want the mess of a compiler-specific pragma if we can avoid it

commit aad05653499c59e920028254a6d1cc62ac37e4fa
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 11:08:02 2026 -0400

    quell bad-function-cast warning, make a helper return the quantized value

commit 168cf1a66a65c9dc9b926b7237348a8122380569
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 11:10:12 2026 -0400

    resolve conflict, use the tracking var

commit 39ae9c79aa81ebd130af6176bf732a542b13c1bc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 10 10:54:46 2026 -0400

    completely rewrite the sscanf unit test.  previous was wholesale wrong as it attempted to compare against system sscanf instead of just asserting its own behavior, not match whatever libc is doing.

commit 109dde31aa618f5451ec672d1186e1885804e21f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 10:54:34 2026 -0400

    Fix Wfloat-equal waring in loftwing

commit 60ac96450d15e482bf5e861bb568d301cf6e889d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 13:33:49 2026 +0000

    BSD build fixes

commit a7711ca6d37afeca9d7de99cc112d2add4bfd553
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 07:37:43 2026 -0400

    Improvements to naca456 proc-db
    
    Improvements to robustness, regression testing.  Need to see if we
    should fold loftwing ARS generation into this as a 3rd primitive output
    option.

commit e4ca74595bdc362db2aee2f60644c2c5d23d9578
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 07:37:18 2026 -0400

    Fixes for procdb building

commit 07e8ea81da5c1689ac6af0f593ce2a662104567d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 06:21:21 2026 -0400

    improve brep output options

commit e2a12a92a50ca954f306a34b6d5047ea7dc2d329
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 07:16:38 2026 -0400

    Put back the naca license info

commit ea772f59a77a955811dde8f1b4e344cc01c82750
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 10 00:44:29 2026 -0400

    Add naca456 wing geometry generator
    
    Back in commit 5b84dba47228 we removed our first attempt at translating
    the PDAS naca456 code into BRL-CAD.  Took another AI-powered stab at it
    and got considerably further.  More work to do, but wanted to checkpoint
    current progress as it can already produce geometry.

commit 8db14dbb7d3cce41d0eed0db3d609f0423556641
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 23:26:58 2026 -0400

    See if we can wire in some more regression tests

commit 47d41d27c2a73e7f4c64c32da1b54c3f09d15a3c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 22:26:36 2026 -0400

    Get dsp, iges and red tests running on Windows
    
    While we're at it, have red test exercise brledit (added a simple
    programmatic mode so it can drive the red test.)

commit b58d123cbc3218fdfcd8d2d45a8a88149ece1f91
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 22:41:33 2026 -0400

    lets make this more interesting, chainmail woven torii

commit 0e121f2424b659c1da77c30a267a35b4452ef9ab
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 22:28:20 2026 -0400

    the molecule proc is expecting an undocumented data file as input, so supply a sample

commit 70d480f3e0215ba3ddc743d57fe5829bc8f87a53
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 22:26:44 2026 -0400

    enable our new procs: gears, helicoil, lattice, loftwing, specimen, terragen, and voxelize

commit 2af39c090e154edadff8b297cf1ee0fcf58e941f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 22:24:45 2026 -0400

    a more proper terrain demo with water, sky environment, and procedurally generated terrain.  impressive result that will be generally usable in demos

commit 5c61f067a6dab6de9efe1471a3fe81874ebfdfe0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 22:22:49 2026 -0400

    demonstrate vol and ebm with a satisfying triple-periodic gyroid shape generator (for vol).

commit a235079d7afe802a1c0e3524f76a157861013fd8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 22:20:32 2026 -0400

    another platter of primitives demo, this focusing on and exercising all the minorities

commit 18c542f649ac71fcf1ac05256df9f16a3c98cca1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 22:14:35 2026 -0400

    put ARS to use with a proc that can make wings and propeller blades around hubs

commit 093aef3beb78f035c0f42daf46d7825697dadac0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 22:12:29 2026 -0400

    added one of the coolest new additions since sphflake, a geodesic-spherical shape with layered patterns and cavities.  serious stress test for tessellation and boolean eval.  also the first proc that'll let us exercise cline vs rcc.

commit 9409c23ad1f9cc9a8506464e1e8a148fc600f8e8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 22:03:14 2026 -0400

    default to 3 levels

commit 1d7d0ce0f803f227ce3353ff899a392aa86fc707
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 22:03:01 2026 -0400

    another helical pipe demo, similar to coil and wire, but a little different construction

commit 322ecd92aadae9f9630f9f844e3e18fd2fcbe1b5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:58:26 2026 -0400

    lets add some showcase procedures.  this one is a new gears proc that makes an involute spur-gear train using sketch/extrudes.  need to attach the teeth, but pretty cool.

commit 7f0fc6c83e164b334723ae7d3e19cdd60ed06010
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:53:47 2026 -0400

    needs more work, but another interesting recursion pattern

commit b8b8b122fc3dfc45fc51a84f0b42543f2400a932
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:49:45 2026 -0400

    some bug because interior isn't cutting through the co-planar face I think, so switching to exterior for default

commit 284fe1d62e1ec207f9bf523e22f5f0016df2ca61
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:46:13 2026 -0400

    make this proc resilient by default, creating two intersecting brep surfaces.  we put that into a nice scene for vis.  if user specifies a -x/--intersect option, it'll be debug-ready

commit c17faac3bc6fe584e9678f34ef85adf2140d192d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:42:17 2026 -0400

    while nmg-nurbs are on their way out, this shouldn't be bombing.. needs a quick study to make sure it's not a regression.

commit a16cba539f5bb21302355ade72efa0f14a29b2d8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:36:23 2026 -0400

    need to investigate more how this is doing anything at all, but does render something (just not what it is supposed to).

commit 4047c838925e672c972bb7ad9aae46152cddcdb8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:33:46 2026 -0400

    while it is a sketch demo, we wanna see it so make an extrude to go with it.

commit 5d5428748e51521e8d0668d884f530ee58cff1d0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:32:49 2026 -0400

    more evidence of horrible regression, but keeping for debugging

commit fc3d7204baa33835c904d00674738c979bf57559
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:30:16 2026 -0400

    not a keeper, but make it actually be a doorless windowless building for a hot sec

commit 36e9e4f49a88e82535dae4adfcb2008ed09f2258
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:26:08 2026 -0400

    set the title based on the wall type, and auto-out to a .g same as the progname base

commit d491f032092e06851432bf0593a0a5eccf58e1cd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:19:37 2026 -0400

    assemble the objects into a scene so we can view this.  some arb8-to-nmg regression was introduced because this basic box case used to work, now commented out.

commit 05eb37f71ebfebb70a082b9839d4afbe772bacb4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 21:18:05 2026 -0400

    looks like kurt is still incomplete, but now at least renders the surface of evaluated points.  TODO: use the normals that were computed.

commit 3fc0b905ab8b4af818ee4fbc40de12bc1db9a5da
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 19:51:03 2026 -0400

    make default actually be a typical brick, actually a wall, with mortar

commit 3bcd8bd277966b9de6c47298fa7d17964593e3d3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 19:49:18 2026 -0400

    allow the output name to be specified, do better with help opts

commit 5d61a1ccc0ec32aad873a9fcff2d9a66175844a9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 21:36:57 2026 -0400

    Centralize platform wrapping of NUL vs. /dev/null handling

commit 0cf4835bb59f301a958aa719e2efca8dfe4ccd9b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 21:26:50 2026 -0400

    See if we can do some testing of our new aggregate libbrlcad lib

commit 28a69148ff83ddebaecb70456a91331f4bb7abd5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 21:18:45 2026 -0400

    null device is platform specific

commit 595da0e9b24c182a931360f5826dd7642b82877a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 20:57:17 2026 -0400

    Testing remrt and rtwizard in a Windows context, more fixes popped out.  A few other Windows adjustments.

commit a72fd0f6b8ede907e209054b0e7d3ec5d2aabc94
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 19:47:32 2026 -0400

    make sure we emit a relative path

commit 5df825f1c84396a422c24256f041febb87aeb681
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 19:43:58 2026 -0400

    guick hack to get us to passing, but this test is bogus as-is and needs rework

commit 989d531d8bfedd4769db0188e96db8fbfc99a542
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 19:43:08 2026 -0400

    after hours of exhaustive profiling and study, writing down thoughts on the primary optimization avenues we have on tap.  the assessment was purely based on the benchmark render call patterns, and the resulting prioritized list of candidate actions based on those numbers, so some things would shift around if we were to target cases not consistent with the benchmark (e.g., nurbs or complex csg or pbr or ...).  still, captured most of my intuitions and priorities.

commit 1b6674a01bb1808e22d19428c3108464e63bcf9d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 19:36:24 2026 -0400

    implement a new -c "autoview obj1 obj2" option so we can automatically center the view on something other than the object(s) listed for rendering.  this is very helpful for scene rendering where there is ground, sky, lights, etc, and a common source of frustration/confusion.  not a substitute for proper camera/view objects, but a very simple customization option that fits the ecosystem.

commit aed49eb8ca407979efdf50de8a84fd85710c566b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 19:33:29 2026 -0400

    document the new autoview script command and include a more basic but common example to be the first listed

commit 5f49dd84f3180e68d5e8d5f96f02b06f007c0c18
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 21:46:25 2026 -0400

    initial vshot test!

commit b3c0d135c4a2e73fa6ef33252b9a8a811a717c38
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 21:29:32 2026 -0400

    performed a deep analysis of what appeared to be 20 of the hardest TODO/BUGS entries, and these were the resulting notes.  mostly all reasonable, all annotated with a [HARD] label so they're easier to find.  also includes an assessment of how parallelizable the issue is, whether we might be able to brute through the solution space.
    
    actual assessment also included a score of open research problem / no known-correct solution, concurrency heisenberg, numberical/geometry kernel robustness with no ground truth, cross-cutting change, backwards-incompatible format/protocol needing migration+revalidation, but those notes mostly weren't included other than commentary.
    
    unsurprisingly brep/nurbs bool eval was #1 :)

commit 2b5f1ebc3ece11a569a2bdb21d0a7a47577aab76
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 20:48:38 2026 -0400

    replace the hard-coded temp file with a bu_temp_file() construct instead.  should consequently improve or help fix the tables command on windows.

commit 6116bf2f02c3771147c329f4847433d97cbf218b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 20:43:46 2026 -0400

    rotobj was deprecated back in 7.18 but be more actively vocal now.  users still have orot and rot and edit.

commit 8af19b8e0dcb27b79cc86789f4568ab71cab16a0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 20:41:00 2026 -0400

    report what went wrong if we encounter an unexpected attribute, instead of failing silently.

commit 109419ce9d5cb0547a8be07f6ea03982ed0ccbbb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 20:36:21 2026 -0400

    if we get to the end of the list, emit a message on what went wrong usage-wise

commit 0973fcfd574347c287da7c5dfc4847fe58d3f0f7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 20:30:32 2026 -0400

    dbfind was deprecated in 7.18 but now blathers loudly at runtime.  giving more visible notice given its prevalence.

commit 5aa02ba89fdad7f3105080a29835bd31580168c2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 20:28:12 2026 -0400

    killall no longer blathers lookup failures when object are referenced but don't exist (at least not any longer)

commit 3fb1e6779832b89e8642f846f174ea71171e7e89
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 20:23:14 2026 -0400

    give notice that dbfind is deprecated, should be using search instead

commit 8ccb919f7932eb7927ff7b9d1ea489c1324678ca
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 15:32:13 2026 -0400

    Whoops, got a preliminary state of the test_dir.c change in the last commit.  Update.

commit dce87786f437ed508220aea0c0e89356b0348b1f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 15:23:22 2026 -0400

    More IPC libpkg/remrt/rtwizard work
    
    Testing in an AI sandbox with limited networking revealed some
    additional limitations/incompleteness in the non-TCP routes for remrt
    and rtwizard.  This takes a stab at resolving them, although it needs a
    lot more testing.

commit b447cdd5dc466cc9d3e681903cbee84d6b78d4c9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 13:56:56 2026 -0400

    dsp fixes

commit 78bdfaca64dc78d08f480503b90ab39438f121ba
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 13:56:29 2026 -0400

    libged test fixes

commit c395453bde3bc81be44d4ac4ca1c610329e37b1e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 9 13:01:19 2026 -0400

    libbu test fixes

commit 8ad3084a6f7e550a76c62929a81a2dc7bcb5a053
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 07:23:07 2026 -0400

    add help opts and clean up writeup on what its good for

commit bee3d34371cc31e3e0b9d6aec7c533f677321125
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 07:21:57 2026 -0400

    tighten up the writeup, include help opt

commit 7045b3403b4a0c7062bca270755cbfeb46368004
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 07:20:59 2026 -0400

    correction, doesn't take a .asc file contrary to the command name.  add help opts

commit eedacb1f6083bc4fe8aebb0f640480cb877aa02d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 07:19:35 2026 -0400

    somehow both args are optional..

commit 586644076df57cde1efebb42a411d0fff842fd2f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 07:17:05 2026 -0400

    include an example, fix typo

commit dd01da9b628d8f6d8c1909aecef22537cf578179
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 07:16:23 2026 -0400

    synopsis wrong, annoying requires redireciton

commit fe2c930b286829f27eb2d9c4529758dfe48c4863
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 07:15:46 2026 -0400

    synopsis wasn't right on output forms (supports both before and after), and note the long-opts

commit 9d2afc642125da9f296ef6894cb5f4e05bbc9c26
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 07:13:15 2026 -0400

    document the new materials and no-materials opts

commit 3c50f50c0d47c9386f2a2ec38608c9de77fa475b
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jun 9 09:48:08 2026 -0400

    cleanup code duplication

commit 3fc79bed1fead00404716f184c7a2eeb2dd26b28
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Mon Jun 8 16:59:40 2026 -0400

    create dsp surf area & vol functions
    
    Use calculations based on the primitive itself rather than Crofton
    sampling for more accurate values.

commit a8c5aa1c7d54f05583165793cc203f594b9cda68
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 07:09:11 2026 -0400

    add a couple tests to make sure the materials and no-materials options are working on obj bot dump

commit 13ef62bf627d8824d8bd58d591379fe99c05bdda
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 07:08:41 2026 -0400

    add color export support to glb/gltf as well as expand color export support for obj.  now consistently applies color if path is specified, respecting inherit flag when set.

commit f4fe4ec5b8f6a1a561cdd1d38dd4b2e00b66c673
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jun 9 06:53:51 2026 -0400

    make hierarchy labels not overlap, inject ... ellipses

commit 4e4959f9ce3aca9168e12005afd62b33e44f3c1a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 18:50:26 2026 +0000

    check target fixes

commit e0e5d27f9cbcacc62ec034170cd8e4d7e9007e56
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 14:55:29 2026 -0400

    Windows tweak for brlcad lib building

commit cae6a65e7dd9a4f1155b4a3f6f9942e55d8a5069
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 18:13:53 2026 +0000

    Add an option to tolerate facetize component failures and keep going.

commit 2414479fec3cccd3699a206151e91c899d88f843
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 18:12:56 2026 +0000

    Adjust OpenSSL linking in libdm

commit 3111d0d95fff480b181bfcb68b187395c8681311
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 16:35:58 2026 +0000

    Improve facetize error reporting

commit 2b97a5f6ad1da32d477c5e310de7b9f8bc308a7f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 12:29:44 2026 -0400

    Fix function signature

commit 5c09fc74e24eaf1a07c452554058073ff63713f6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 15:52:04 2026 +0000

    Update facetize sampling to focus on potentially positive volumes more tightly.

commit 90bfc9b1006d73fdcf68aab7c094132fdcc99c5e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 15:31:58 2026 +0000

    Fix FreeBSD - link in execinfo if present

commit 846cf87fd6a33cf566ece3c394272823094aa553
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 11:38:38 2026 -0400

    Set the non-cache USE_OBJECT_LIBS

commit 5c59f6f74f7ffbc557f5b61c1a8dc969bb905d95
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Jun 8 10:39:02 2026 -0400

    Add new version of Havoc
    
    fix holes in front skin, file is now v5 instead of v4

commit a92edfe8a65f6e693e3047bc38a538edae43788b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 10:00:34 2026 -0400

    After discussion with Sean, we'll use rt_shootray_context for the name here.

commit fd19df27f21bd24a20b82cf6fda332034a029423
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 8 07:50:14 2026 -0400

    See if we can turn the BRLCAD_ENABLE_BRLCAD_LIBRARY option into a working feature.

commit 80794600fda1525bb09184127e5d3adfcd5ebf0f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 03:30:14 2026 -0400

    try aligning to the left of the ambient area when all the images are over it

commit 4741efddec2d6529cdc5eee02f8548f5921fc4ea
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 02:32:43 2026 -0400

    work on fixing windows backtracing, export appropriately

commit 474d08ad663effac8dbd5a57f26a53269fd1916e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 02:26:39 2026 -0400

    more de-null-casting

commit d49f57acdba6087724a622a6c01916e32cdeb570
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 02:23:06 2026 -0400

    lets not cast null

commit b05c80edce78a1fa81dd347b5de0ae081f2d19c3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 02:11:11 2026 -0400

    address another user-requested gist change.  maximally fit long titles.  we loop until it fits.

commit e2138d437a7e4be8258572ee29b9a5d81fd5d7b0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 01:57:21 2026 -0400

    just pass NULL

commit 3befc3ff3ade2151e1aaec70cfc6d3b793cb2540
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 01:51:24 2026 -0400

    Restore test_backtrace.c fixes

commit 49853dd18cb3a8c42e482d499e258fd1dc95c25c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 01:50:53 2026 -0400

    Revert accidental dirty tree commit

commit 4b287348f97042e171071158cd37f46732ee52a0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 01:39:56 2026 -0400

    Fix MSVC build failures: bypass bu_sscanf %%n stack behavior and fix variadic NULL arg to bu_dir

commit fadf84ab57dd0a452f6d9d77b9c8a949b944cb30
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 01:21:22 2026 -0400

    fix c++ compat warnings in tests

commit 153fe501c929881b76f717e74fd3414e65183a81
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 01:21:10 2026 -0400

    up to about 31 new man1 manual pages

commit 6a03057ec4b0bdd960fc7d0fcde18c5c8146029d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 01:18:17 2026 -0400

    add man1 pages for gcv, ihist, imod, isst, istats, lowp, pix3filter, pixcount, pixelswap, pixembed, plot3stat, rtsil, smod, step-g, umod, and ustats

commit 5f6fcbdb860c3c4b6d93e2b20e0346a8f88aefd4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 01:09:54 2026 -0400

    init to null

commit ca2d908284d31bbc1ad783e7ed3a6dc39bb974cc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 00:31:38 2026 -0400

    add unit tests for anim, msr, noise, rand, sobol, str, tabdata, ulp, version, and wavelet

commit fa0ab0496b9bfe63ef1e44c453283b8c2a092f9b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 00:28:03 2026 -0400

    some improvements to use existing funcs to get consistent behavior

commit 929fd989efafb1749eb12f691b53ee9373de67f2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jun 8 00:24:48 2026 -0400

    fix bn_read_table_and_tabdata() which was not reconstructing serialized object correctly, and fix other bugs like incorrectly throwing away parsed values we' processed arleady.

commit c43a0e2d31a4df8de90ecce4c52aa7a1cd5d6c7f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 23:54:09 2026 -0400

    fix sobol iteration so repeated calls to bn_sobol_next() land on the same as bn_sobol_skip(.., #)

commit 034ba634af1f2a712ce0b328fc6ff4618c09e523
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 23:37:45 2026 -0400

    no longer conditional, require double-precision Bullet for consistency

commit 400fdf492700bcbc6fdaffe92048fa73ae0c9137
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 23:36:21 2026 -0400

    address broken opengl dm on mac, now auto-detecting.
    
    for a long while now, the ogl interface has been busted on Mac M-series arm64 systems due to a combination of factors including bugs in the xquartz/x11 implementation and apple's shipped support for rosetta emulation changing.  the issue being essentially that opengl support remains broken (though sounds like a proper upstream fix may be in the works.
    
    there is online mentions that x11 on mac works via ports and it should still work on intel x86_64 systems.  as such, our solution here is to test at runtime whether ogl initializes, even taking precautions to be resilient to crashes/aborts/etc but running in a new libbu subprocess encapsulation.  if it doesn't work, we can now actually gracefully fall back to the older non-ogl x11 interface.  this essentially fixes mged, rt, and friends on mac so that defaults work once again without having to manually specify x11 dm/fb.

commit 1bf201c0986bdf6a74f0a16f583afd2402ee3503
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 23:16:14 2026 -0400

    gist prints summary counts in hiearachy view now instead of generic '...'

commit 5fb0ec4ecb1be73d774a3e65c002ed95bfa35279
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 23:14:13 2026 -0400

    instead of just printing '...' in the hierarchy summary, enumerrate how many objects instead so it's useful context

commit 50526fb6669b0d963b47e0ff74b81c45fda04682
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 22:50:42 2026 -0400

    obj export now also spits out an mtl file

commit 87eb97138038366993cc2682b64bb70ade7732d7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 22:45:18 2026 -0400

    force our build to only use double-precision Bullet.  did a pretty broad survey of all the major distros and looks like Bullet is usually compiled with 64bit as a sidecar lib (usually with a suffix), so we look for those specific conventions they use.  specifically fixed for homebrew on mac.

commit c412d139cd5f16b0c2ded5dbfc09fdade7fe0c3b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 22:32:01 2026 -0400

    interesting way to undo bu_list aliasing

commit ef7fe3c08414a53e58e9352004ff1b2c435720b0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 22:12:54 2026 -0400

    implement basic get/put/adjust support for datums

commit 884fe0909472d8ef1957e594bc73f2fd0d49ffeb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 22:06:54 2026 -0400

    form synopsis was lazy/wrong, now expanded proper.

commit 5a7deb39e8dbb16467bddedb71ad946b309910ef
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 22:04:14 2026 -0400

    added support for datum get/put/adjust, which enables export to/from .asc format files.

commit 96b0135b81d8e382c00f38bdcd19dd3e203aeeeb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 22:02:11 2026 -0400

    implement basic get/put/adjust support for datums

commit 602b6616625ee89a0e16aab03b9a8dbe50daf68d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jun 7 23:02:27 2026 -0400

    g-obj needs M_LIBRARY

commit 2553cc8f32bf438a68c2ec488c0211b2719ea761
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jun 7 22:53:28 2026 -0400

    Avoid Werror=unused-result complaints with gcc

commit b1a45185a1a55e8b4fdbdd1c8f82821060c2034f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jun 7 22:51:38 2026 -0400

    no such target

commit d392802b32b27c15cc30c8af69dc564a02e8b28a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 21:40:55 2026 -0400

    clean up the man page with clear options and improved prose

commit 3967dca11b0415dc0465b9a9a63cdd8e4f109269
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 21:27:57 2026 -0400

    loadview is covered by later entry that summarized over 110 new pages

commit c6739a0ea9f117524166a387a049ac0befb5dc47
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 21:26:46 2026 -0400

    elaborate a smidge to fix the CL typo, DSP got better tessellation, raytracing, and more.

commit c032eeaa40edf2bf5d6f35fefdcb6cfafbc47890
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 21:23:27 2026 -0400

    add color support to obj export.
    
    writes out a mtl file named same as the output file, referencing the color information contained in the mtl.  the material name has the rgb embedded and adding the -m option makes it also write out the aircode, los, and material_id as well (into the mtl name).

commit dce9e3de3873d1af9ccdfc29675588960a0fb1e3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 21:22:12 2026 -0400

    refactor, use bu_bitv_count_set() instead of manually iterating

commit 5a06bc7583228e8c31901f3c6ca4eefb3d63b5d3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 21:18:03 2026 -0400

    document the new color export support

commit e925a81615302c10cabaec7b38a1bf2cff6d0a03
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 21:17:17 2026 -0400

    add color support to obj export.
    
    writes out a mtl file named same as the output file, referencing the color information contained in the mtl.  the material name has the rgb embedded and adding the -m option makes it also write out the aircode, los, and material_id as well (into the mtl name).

commit 88e75bb86091f1ce7ca89850e927d336da22f379
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 19:41:24 2026 -0400

    quell doc warnings

commit 5e922a9e20376b37bd54bb3c18d58a84cc77afe6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 19:02:16 2026 -0400

    old test was defunct, now actually invokes backtrace and checks for symbols.  also checks bomb separately.
    
    now fires off a 3-chain frame, gets output, and checks it.  we do actually check that symbols are in the report, which is will fail if stripped.

commit 1dc12366c392bd0e1586be477867dd29dea4b0a4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 18:21:01 2026 -0400

    add unit tests for argv, backtrace, dir, list, sscanf, gethostname, and fchmod

commit 4de37beeb60346a315e4194fecc4abebf40ad85d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 18:13:59 2026 -0400

    shift from testing c++17 to testing bu_fchmod, since that's notionally what needs to work std::(permissions is the current sausage)

commit 14e1b799dba591a9cd9e19302b703d9a501b7f5f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 10:39:00 2026 -0400

    fix masking of failures and subtle path assumptions

commit 7f8dc7bf041ae748273f627631904ad1bde34004
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 09:55:18 2026 -0400

    zero means success

commit 11c4f9995920e067b61f52118e58b53c6715d633
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 09:49:29 2026 -0400

    one more ref

commit 66975de10a970536f51bd1488e3b743e276f27ce
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 09:48:02 2026 -0400

    rename bu_process_create_opts to bu_process_opts since we can reuse it in bu_process_func()

commit 96984159fc695ae48af2d6b9f3c25ddb797c47df
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 09:44:38 2026 -0400

    include second trace path using execinfo for backtrace() instead, now distinguished from the debugger method

commit 08b9ef2d0fe4b62f479ba3de4cd732b34a664755
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jun 7 09:30:26 2026 -0400

    List files for CMake

commit 7f56565fe9cd6ba3b958e31591d254b71632c345
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 08:33:58 2026 -0400

    create a renderer showcase script that demonstrates nearly all of the visualization modes, lighting styles, and output formats available.  work in progress but intent is dual - high level integration test as well as visual summary for docs.

commit 76eae87e18ceee33e34e573e0490fc8293aa0940
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 08:30:14 2026 -0400

    renaming bu_process_create_opts to bu_process_opts so we can reuse on bu_process_func()

commit 574773576b7d3babe40913398c35a41eb3be74ab
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 08:24:22 2026 -0400

    these manpages exist, out of date entries

commit 56f4f0b4f088acccbf76140ca20335eece5a606d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jun 7 08:24:01 2026 -0400

    gqa manpage has been updated repeatedly since this.  several manpages missing is too vague, but they're being audited and fixed.

commit ae0f55601e0538bef91c6dc6eaa800c5ac69ae20
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 00:37:39 2026 -0400

    make sure we can get info back from bu_process_func()

commit 58bfc155530429d7d36234f8830731e205a4310b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 00:36:17 2026 -0400

    initial implementation of bu_process_func() for running functions in safe isolation

commit c5954e5f51dda034ac102100e9134621f262fa4f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 00:30:46 2026 -0400

    plan out new API for running a function in a forked subprocess.
    
    several potential uses, but motivating use is testing whether facilities that might otherwise abort/crash/exit are successful or not, like testing X11 or SIMD.  bu_process_func() captures stdout/stderr if requested as well as reports the manner of termination (including signal or exit, or timeout).

commit 04164be4a701a3eec12cfb3bc77cdd4abe25aca1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 00:10:00 2026 -0400

    note the sausage is not guaranteed

commit 199edb3983aaa93b18c7a0b155200695d8c858aa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jun 7 07:41:27 2026 -0400

    Update the regress solids.pix reference image for new DSP raytracing.

commit 8e2d40e1048775ba541b2500ef53445383fba303
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jun 7 07:38:36 2026 -0400

    Avoid CMP007 warnings

commit 1a47a2682f7b440785312f90827e0c6e08af10d0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Jun 6 22:35:54 2026 -0400

    Adjustments to properly enable new find_package support.

commit 714673a4259ff2fa5da5567de09e90cead9b418a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Jun 6 21:48:43 2026 -0400

    Simplify

commit 334689cbb0bc30eeb6aa660993447b5afc48360b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Jun 6 21:40:52 2026 -0400

    Adjustments to dsp testing

commit eed80114ffb4bf651bd3c8431d1bb6dc53ea6891
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Jun 6 14:01:09 2026 -0400

    Add m library

commit 1c9bdf028345a92cabcdffdfb60591e249c25568
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 5 20:36:34 2026 -0400

    Build fixes

commit 1ed131d974ffccd9cda097c77f2b78538bfe41d6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jun 5 15:09:42 2026 -0400

    Improve DSP raytracing robustness and simplify tessellation pipeline
    
    Rework DSP ray/terrain intersection handling to produce more reliable
    segment ordering and more consistent results with tessellated output.
    The cell-top intersection logic now uses an explicit in/out state machine
    driven by triangle hit order and hit normal orientation, rather than the
    older fixed-slot hit assembly.  This makes leaf-cell traversal more
    robust in the presence of diagonal split artifacts, incomplete segment
    cases, and upward-ray traversal through the foundation and terrain zones.
    
    Adjust segment accounting so a_onehit only limits traversal when
    positive, allowing all-hit modes such as Crofton and compositing to
    collect complete results.  Add a safety swap for inside-out segments in
    rt_dsp_shot, reorder foundation vs. terrain-zone processing based on ray
    direction, and expose DSP terrain buffer/transform metadata for testing.
    
    On the tessellation side, replace the simplified TerraScape path with a
    decimation-based pipeline for reduced meshes.  The new approach builds an
    initial surface mesh, collapses coplanar regions, decimates with mmesh,
    extracts boundary loops, triangulates bottoms with detria plus Steiner
    points, and assembles the final NMG directly from a temporary BOT using
    a fast hash-based edge join.  Supporting changes also improve boundary
    vertex handling, bottom-face manifoldness, hole detection, and Steiner
    point generation performance through RTree-backed proximity indexing and
    O(1) active/visited lookups.
    
    Additional DSP cleanup fixes include:
    - avoid double byte-swapping binunif uint16 height data
    - avoid mutating dsp_stom during export
    - update bbox/HBB terminology comments
    - remove obsolete cell-top plotting debug code
    
    Add a new rt_dsp_raytrace_check regression test covering synthetic and
    real DSP cases, comparing HBB/DDA Crofton raytracing against exact
    height-grid reference area/volume calculations and checking direct ray
    behavior, normals, and timing.
    
    Together these changes improve agreement between DSP CSG raytracing and
    DSP tessellation, reduce pathological tessellation costs on large or flat
    regions, and provide regression coverage for future DSP intersection and
    meshing work.
    
    This came out of the comparison work done while testing the facetize
    command's output - we wanted volume and surface area to agree between
    CSG and tess mesh outputs with reasonable tolerance, and that exposed
    weaknesses in our DSP methodology.

commit db350f8da6d4af692934d1065d22c99dc2edbd03
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 23:02:34 2026 -0400

    Expose arb8 repair abilities through an "arb repair" cmd
    
    This should allow us to correct certain categories of non-standard or
    "almost but not quite valid" ARB8 shapes.  There are some in our
    share/db .g examples that can be found with lint to use as test inputs.

commit c5600c622a8c37958706098b9dd11d21e211744d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 22:59:08 2026 -0400

    Add a TODO note for manifold's Hull()

commit 620ce6bebf38adabfed09059d0deea678926e5a5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 22:40:20 2026 -0400

    Fix integration of QuickHull with BRL-CAD tolerance
    
    There was an API impedance mismatch between BRL-CAD and QuickHull:
    
    BRL-CAD relies on BN_TOL_DIST (0.005 mm) acting as an absolute precision
    tolerance in world coordinates, but QuickHull treats the epsilon
    parameter as a relative multiplier, multiplying it internally by the
    maximum coordinate (bounding box scale) of the shape.  This resulted in
    thin shapes being considered coplanar and collapsed their hulls.
    
    Modified src/libbg/chull3d.cpp to correctly pre-normalize BRL-CAD's
    absolute BN_TOL_DIST tolerance before passing it into QuickHull.
    bg_3d_chull and bg_3d_chull2 now compute max_coord = MAX(|x|,|y|,|z|) of
    all input points, and pass BN_TOL_DIST / max_coord into
    qh.getConvexHull().  This ensures QuickHull uses exactly 0.005 mm as its
    internal epsilon.

commit 1280aa41b1e986d3647303d12a1eb660cca01c89
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 20:07:49 2026 -0400

    Remove a few obsolete TODO entries

commit ee1e2a33bccbb06dd27e7a65d7f503ac3494f6dc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 19:43:53 2026 -0400

    Squelch Wshadow as well for geogram srcs

commit efdef5eb7c0192a41bf21b3d851ba587322db8f0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 19:50:01 2026 +0000

    Suppress geogram float-equal warnings rather than just preventing them from being errors

commit bf4e603b00670c6ba9e4d727498b0359d2a8ab28
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 19:32:13 2026 +0000

    Do some cleanup on the arb8 editing code.

commit d283164a0a6bea95db0fb0d4ebff556b26fb67c1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 15:18:31 2026 -0400

    fixed vdeck truncation

commit 400873e6aa2fd7779ba82c011cde5f986f54629f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 15:17:56 2026 -0400

    no longer truncates

commit 5289e60724c3983ec383fdb40182e44547c71459
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 15:17:32 2026 -0400

    make sure mv and mvall don't try to target an object with slashes since that makes them unusable afterwards.  common copy-paste issue since tops/ls print obj/R often enough.

commit 1c3e265f74a3bb5949d5312b0a6d4d001cbd346d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 15:16:16 2026 -0400

    wrap fileno in extern C

commit 771309c286c6ab193e4dbf9c0e558cfae95d0171
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 15:14:33 2026 -0400

    bunch completed already

commit eeab9a61c2328002fa656c23138cc8bfc0954924
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 14:11:11 2026 -0400

    fix truncation of region names.
    
    while vdeck is allegedly a fixed column format, which will result in truncation by design, the region name is being written into the last 'comment' field and the last item on the line.  let the reader truncate instead of the writer.

commit 5c66207e43eaabec50a4515152721c954a69f944
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 13:24:03 2026 -0400

    rtweight avoids printing NaN better when density/mass/vol/centroids are zero

commit 805341fea1d99e9284264265459e0133f5a95916
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jun 4 12:21:54 2026 -0400

    if densities are zero and/or resulting total weight is zero, print zero instead of NaN due to base2local conversion.

commit 683668f4a2afc6a9fff1cb10bad65910d06a552d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 14:40:19 2026 +0000

    Clean up the flag names

commit 780f33f5ce3f21986b202b0a05764484ab769624
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 07:48:35 2026 -0400

    Fix syntax, typos

commit 4e1f4c207ee3f6b02264665c3594ff748e2b8029
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 3 23:32:44 2026 -0400

    Add method for specifying specific subtype to use in librt editing
    
    arb, tgc and ell have specializations, but we may not always want to
    handle those specializations as their subtypes - we may want to handle
    an arb4 as an arb8, for example.

commit 1b9d87bb076b8502c3bdea00348de8b1dddf0e4a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 00:56:12 2026 -0400

    Canonicalize edited arbs in librt arb edit code
    
    Try using our validity detection and repair routines on proposed arb
    edit changes to immediately catch invalid inputs.

commit bc9841315d8cf5fe42ecc63a34f54f3ec774d968
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 07:36:25 2026 -0400

    Use Eigen to improve bg_make_pnt_3planes robustness
    
    Try falling back on SVD-based computation in small numerical ranges.
    
    While we're at it, see if we can improve our compile flag testing
    in the libbg CMakeLists.txt

commit c85ad141ddfe234d02a9332dff825a3f036ff580
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 3 22:12:41 2026 +0000

    Add work on arb8 repair
    
    Attempt to repair an invalid or non-canonical ARB by reassembling its
    input points into a standard ARB4-ARB8 vertex ordering.

commit ab615c543e9d47d13adcb01572be8d8a05b0a3a6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jun 4 00:49:30 2026 -0400

    bg_fit_plane triggers the same pedantic warning

commit a33f9540c824291beca96bc48c3df4be19a97de6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 3 09:26:47 2026 -0400

    List a few rt/geom.h structs for renaming

commit fade3d924e0cf7175e02d3d2d4b712fc6f980575
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 3 19:05:07 2026 -0400

    Make some libbg read-only function parameters const
    
    Also list a couple in CHANGES where we would need to update callers to avoid
    pedantic compiler warnings.

commit 7250d7a26035b2ecc42452bd2482380f716300d9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 3 17:25:50 2026 +0000

    Improve lint checking for invalid ARB primitives

commit c81147e9f5749a21a94e218b42426d0d866b7099
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 3 17:11:29 2026 +0000

    Validate b before dereferencing

commit f5fb69e16934f18dbc078bed820931e8bae27c58
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 3 17:54:22 2026 -0400

    photonmapping is finally be working again

commit d64fbd31fb9df3c12b715f7ec4406007d1feff8c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 3 17:41:48 2026 -0400

    fixed photon mapping in rt.  was struct application and resource corruption that seems to go back all the way.

commit 065d7d9939bfcc3aee3aefe8994eb29b53f6229d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 3 11:47:02 2026 -0400

    Looks like we've slimmed down our bext patches

commit 6e11e82ff334836ba2b53410ead5965c52aafd34
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 3 15:22:05 2026 +0000

    Remove file - wrong branch

commit 9d5e529244a66d6f9ff27a7173d7dd89cf1feca2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jun 3 15:21:15 2026 +0000

    stash notes

commit ca7af0adee85a28fc3f37c21cac9af15d4ad4413
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jun 3 03:32:58 2026 -0400

    fix photonmapping (rt -l7) which has been throwing a crash for quite a long time.  it was reusing the app struct for secondary rays resulting in spatial partition corruption. also was a second set of corruption bugs loading from cache.  also changed resource struct to reuse the already-allocated set from parent instead of re-allocating another set.

commit f31cefe58eab6849da39056cc845496f8720cfab
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 2 19:51:23 2026 -0400

    Use a local resource struct for rt_prep_parallel
    
    We don't actually need to use an rti_resources struct here, and using a
    local container helps further reduce our dependence on the rti_resources
    container.
    
    The bigger change needed to get us off of rti_resources is updating
    callers to do their own cleanup rather than having rt_i_destroy do it.
    That will ultimately be a cleaner/clearer resource ownership model, but
    will require client side code changes so it goes in CHANGES for
    deprecation announcement.

commit ede762f51ecafcb0972653658c22032387fcf528
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 2 18:12:28 2026 +0000

    Remove obsolete pieces code and make submodel resource management self contained

commit b9d32957dedb4a3a69ab5e81422b8eb700ac9228
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 2 09:33:55 2026 -0400

    Remove rt_i/resource TODO
    
    rt_i API is added.
    
    With the rt_init_resource() contract already documented, we shouldn't
    need to add create/destroy API even if we do make an rt_resource_internal
    struct - rt_init_resource() gives us a place to do that setup.

commit 826671d4c034127d8bdfc8daffd4f411c0558507
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 2 09:17:05 2026 -0400

    We'll go with current gist behavior for 7.44

commit 23344567c3c239f6a09bc2b3eea6b8e5d09517eb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 2 09:14:34 2026 -0400

    List the struct resource related librt function updates in CHANGES
    
    Two categories, broadly speaking - the last parameter removals (ultimately
    judged minimal) and non-last-parameter changes.  The latter are deprecated and
    have alternatives (except when we're just making something non-public as an
    implementation detail.)

commit 37c2b45ee607df9641c2ff2e677e9d5a0c5b4887
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 2 00:08:13 2026 -0400

    Mention struct resource in CHANGES
    
    Not clear yet how hidden we'll be able to make this, but at the very
    least let's make it clear most of the struct entries should be
    officially considered non-public for API purposes.  Hopefully we can
    Pimpl them, but that'll need to be carefully benchmarked to check for
    performance issues before we'll know if we can get away with it.

commit 8573f5fa0672dc7b03a718b1fd4601e98c0a0855
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 1 20:43:47 2026 +0000

    Fix memory management issues with gcv_region_end and assimp gcv plugin

commit 82022df5dd5d64760ffdf63513570ce34b4a0470
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 1 15:27:28 2026 -0400

    Add rt_i_create and rt_i_destroy, as well as rt_i_init and rt_i_clear.

commit 63d869f8e526dc44b6531a4e0ba59879b06d7a8a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 1 15:13:14 2026 -0400

    No need to stage this resource lookup through BU_PTBL_GET and rti_resources

commit d37ee011ca255c380c3a8d6233d6e90851ffe2eb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jun 1 12:29:50 2026 -0400

    Note we will be retiring the rt_nurb_internal type in favor of rt_brep_internal when we remove nmg nurbs support.

commit e38b879b707f4169842face3085e56bf02f2439c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun May 31 23:23:25 2026 -0400

    Note to set the stage for further librt improvments

commit b9bc08134fa77881370e6a311924eb1d138dd87a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun May 31 22:49:17 2026 -0400

    More static analyzer cleanup

commit e0d7f06c82ada7a0679ff10f43e644ad27287809
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun May 31 22:04:50 2026 -0400

    More static analyzer warnings

commit f951eae38a9e526365ec7790781fb4cf3b01fb7a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun May 31 21:45:54 2026 -0400

    Add a few static analyzer fixes

commit d2e9dd9192d2dcf6ebb9b0fea0dfd84baf03a91a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun May 31 00:16:05 2026 -0400

    Clean up older build support tools
    
    These days the prevalence of pkg-config and CMake makes the old
    brlcad-config and brlcad.dll logic obsolete.  (We're modernizing our
    find_package support for CMake for the next release - probably should
    look at our pkg-config support too at some point, not sure where that
    stands.)  Clear out no-longer-used logic and documentation.

commit b00a94b6408ed01e6d558a4878bc3b3e7e4e6347
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 30 11:54:44 2026 -0400

    add an initial architecture doc for libpkg understanding.
    
    belongs under doc/, but there's no established home for dev docs like this.  starting here until a home is established.

commit 22a7711748c1aaf30f10f23ed1bddb8759645cf9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 29 16:52:32 2026 -0400

    Update RTree.h path

commit b37de31958a86340c459e50b513cca5794e1e5c9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 29 14:50:56 2026 -0400

    RTree.h isn't a public header - move it to src/libbg.

commit 58f729f5dc59d48f101b76ebd9248552ed7faeb0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 29 14:09:29 2026 -0400

    Update bext sha1 to latest

commit f6c02c0557555fff94bde636f8a543b44a0aaa9a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 29 12:30:59 2026 -0400

    Use vls for paths

commit edfd9e8e4520a66211643c226b08e13ebf35f303
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 29 12:14:36 2026 -0400

    Address a few static analyzer warnings

commit 71d3b0ccbae24b3c3ef6196918f11f15339feedb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 29 09:58:46 2026 -0400

    Move photonmap.h to optical subdirectory

commit 4f05e6ec0c21e5105a30e21e1f96d8a7ce7059f3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 28 22:15:48 2026 -0400

    Add M_LIBRARY for bark executable

commit c7fec63b9d8d2443939c0c9c7ef57c682257b446
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 28 16:13:38 2026 -0400

    List bu/vfont.h in CHANGES

commit e02724d78d08cf1fd9bd5cdb0edd24a835aaec09
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 28 16:09:35 2026 -0400

    List the tinycthread API we exposed in libbu in CHANGES

commit a8210e296f223343d63a5f5461155520666dad92
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 28 16:06:41 2026 -0400

    Remove reference to tc.h

commit cb1b9f931d16197ebacb6215019b8e44a5894f32
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 28 15:58:26 2026 -0400

    We'll be simplifying libnmg to planar-only geometry - list nurbs APIs in CHANGES.

commit 9553e7b05132dd6ea21b508e9fa92d085c5408dc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 28 07:04:59 2026 -0400

    Adjustments to assetimport writing gcv plugin

commit a44cb0908a81ef571a9425171e269f88d65b4453
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 28 06:54:15 2026 -0400

    Make ttcp regression test stand alone

commit 715c7384872becd1aa1fdaba365c46a5e7ea05f8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 28 06:32:27 2026 -0400

    Fix ttcp -B mode data truncation on Windows
    
    The -B block output regression test intermittently fails on Windows with
    mismatched file sizes. Two bugs in the transmitter and receiver combine
    to silently drop data in -B mode.
    
    Root cause
    
    Transmitter: premature WSACleanup()
    After shutdown(SD_SEND) + closesocket(), WSACleanup() may fire while the
    socket is still in FIN_WAIT, causing Windows to send RST instead of
    completing the graceful teardown.
    
    Receiver (mread()): partial-read data loss
    mread() accumulates bytes into a block before writing. If recv() returns
    -1 (e.g. WSAECONNRESET from the spurious RST) after a partial read, the
    old code returned -1, silently discarding already-buffered bytes.
    Regular mode is unaffected because it writes after every recv().
    
    Changes
    
        mread() — preserve partial data on error
    
        if (nread < 0) {
            if (count > 0)
                return (int)count;  /* return bytes already buffered */
            perror_sock("ttcp_mread");
            return -1;
        }
    
        Transmitter (Windows) — drain before closesocket()/WSACleanup()
        After shutdown(SD_SEND), loop recv() until 0 to ensure both FINs are
        exchanged before Winsock cleanup:
    
        (void)shutdown(fd, SD_SEND);
        while (READSOCKET(fd, drainbuf, sizeof(drainbuf)) > 0) {}
    
        Without this, WSACleanup() can abort a connection still in FIN_WAIT,
        triggering the WSAECONNRESET that hits the mread() bug.

commit d26205611e0234592caaacf153640307315087a5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 21:10:11 2026 -0400

    Don't static test librtuif - it intentionally leaves symbols to be provided by other code in executables, so full archive closure is invalid in this case.

commit f06199d40936d9c400bb6c4364ebba69d3f7bf4b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 20:18:34 2026 -0400

    Fixes for regress-licenses and regress-repository

commit 646ef9fa2de8f05d327804b788a204d85ae59123
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 20:10:14 2026 -0400

    Another try at reworking the regress fuzz detection.

commit c55a4e82ed148e78f47174ab9380dd88ceb34739
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 19:57:08 2026 -0400

    Quell clang Bullet3 warnings

commit aae39baa8e36e466e741f415c77883c943beee81
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 16:38:38 2026 -0400

    Looking like we need PNG_INCLUDE_DIRS with FreeBSD to avoid pulling in wrong png.h

commit 3fcac5be6e3e94b50834340e85e6a996cc89c9f0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 15:59:03 2026 -0400

    Clang doesn't like the @par here

commit 2a2322449709db66fab6ad11f5cff6595427bd90
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 15:58:15 2026 -0400

    Fix cmakefiles entries

commit 2510cdb85a5320880bcb1e3064d012a7467162ad
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 15:47:51 2026 -0400

    Actually test for getaddrinfo and use it if present

commit 07aff8e56916e049dc910ac84b46b56f408ffbb3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 15:47:26 2026 -0400

    Use C++ random

commit 9500877ae96ba08ad9dc9e5cde67dd7250bdf80d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 15:09:14 2026 -0400

    restore BU_BITV_LOOP_START/BU_BITV_LOOP_END macros.
    
    intent is to replace with the callback interface as it is cleaner, but have to deprecate.

commit edf903415d2f75e3ff78f9016aa0fe5492828add
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 14:59:11 2026 -0400

    documented in COPYING and decided long ago that testing infra would be bsd or more relaxed.  intent is maximum permissive.  updated headers accordingly.

commit 920f51f2b449c81154a1e26a5d70e9848c421199
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 14:44:51 2026 -0400

    rename all tests to have a consistent test_{group}[_subgroup] naming convention.
    
    this minimizes the risk of test sources conflicting/matching with implementation source file names, which causes problems with various IDEs and other tools scanning the repo.  it also creates an exec pattern that distinguishes test targets from non-test targets unambiguously, and makes finding tests more consistent (no longer having to guess or search if logic is in a prefix/suffix/nofix file).

commit fd9e7b745370dc40e111f3f9d8c89e0039b9288c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 14:40:29 2026 -0400

    rename runner to have a test_{group} prefix, targets plugin libs too

commit 644110088408253d8207e1515b8e84d36ad944dd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 14:38:55 2026 -0400

    make sure there's just at least that many since there will be multiple when renamed

commit e6534b0c786df69ad4e12a1e7afa6dca5a9ade99
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 12:52:43 2026 -0400

    massively simplify instead of nm brittleness.
    
    if the compile definitions we got from find package indicate system is double, go with that, otherwise just assume float.  looked at homebrew, ports, apt, pacman, apk, emerge, and dnf and only one of them had libbullet as double (apk) with the rest appending suffixes or installing into ad hoc secondary locations or simply only doing float.

commit ddc958bd8b1fa8b701a6dac5cf87626eda5b71ba
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 13:56:01 2026 -0400

    Add sys/stat.h for FreeBSD

commit 97f1f63d5c245cc62b0283cf1fea33d6043dc353
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 12:29:56 2026 -0400

    if we're not using system bullet, assume double since that's what we set.  default to double.  if it's system, check for float if we can run nm though we still might have mangled names.

commit 16873214cb4dee5676ef1aeba6a099384075e3df
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 10:59:12 2026 -0400

    c++ requires including a nul byte when using a string literal, C does not

commit cfa483131cefb1215a1b800251aedba4095a4b16
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 09:56:51 2026 -0400

    ged help command was overflowing a static array

commit 78ef79d5d276a34e62ab445ef264019a6ba1a181
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 09:55:23 2026 -0400

    fix two crash bugs involving the help command.
    
    the large MAX_WORDS array allocated on the stack was getting overflow writes corrupting the stack, typically observed as a crash on exit or sometime after running 'help'.
    
    there was also a separate bug if the number of dirs exceeded 2048, though I don't think we hit that limit.

commit 7c4c62df9bd789d11f3da4fae05b3448cf11ceff
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 27 01:48:34 2026 -0400

    no validation criteria yet, but add a test that runs it at least

commit 56e1eb5e0790a84f88af9e8ce9d950aa392e776d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 20:58:59 2026 -0400

    apply same optimization to bu_bitv_vls(), now 60x faster and less than half the time as the stl variant.  uses builtin_ctz11 to fast-skip zero bits in sparse sets when we're using gnu or clang.

commit 319a24ac9591e602742c755d33bcd6cbf95191bd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 11:36:38 2026 -0400

    Can't assume alloca on FreeBSD - test for it.

commit 95c67b8e71354ad26736237577ab030dbb1e0794
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 27 07:26:26 2026 -0400

    Bump array size to hold null

commit cfacbff01e91c37a10db5d43750745f9e1bc7098
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 20:53:08 2026 -0400

    oops, we do want to keep track of the requested number of bits separate from the alloc multiples, needed for proper printing purposes. tddd ftw.

commit 872b650ac0df30ae2506602d21650f74a452aab8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 20:45:57 2026 -0400

    zeros for nouns

commit 5c1b1551a7794669467234c6d7f786c7f215a915
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 20:44:22 2026 -0400

    re-implement bu_bitv_to_hex() as it was incredibly slow.  400x speedup.
    
    it was calling bu_vls_printf() for every byte, but now doing a single bulk append.  went from being half the speed of stl to being nearly 100x faster.

commit 553651abe75a9c126d354fd0ec1fe4e325a120e4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 20:08:43 2026 -0400

    make sure we init with the right number of bits available (64).
    
    document the static use case also that avoids dynamic alloc when caller doesn't need more than 64 bits.

commit c995de771e98588dd8a2b00547da1630c3cb8c3b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 20:07:57 2026 -0400

    nbits guard is wrong, always have to clear.  if nbits is zero, we still can just set it also

commit 2118ceb3ec71a00a2fbe445767ca0f4faab334ec
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 19:51:35 2026 -0400

    ws cleanup

commit c925adab842c3bcf0dc325b50b465a989c417b38
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 19:45:42 2026 -0400

    fix underflow bug where caller asking for fewer than 64 bits would have resulted in massive allocation (probably OOM-abort).  note we don't need to alloc more, and avoid re-zero'ing after calloc

commit b105f213467dc1999e9f9ab17bc4c7ef242bc6c3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 19:43:21 2026 -0400

    note how we have 64 usable bits in the struct

commit 5b8e4e3e636481608d02565510a306756f0dff3d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 19:37:05 2026 -0400

    switch from 1-byte to 8-byte default bitv.
    
    this aims to address a longstanding issue with the bitv[2] creating misalignment (and potential padding).  switching to a 64bit type improves the alignment and quells the warning (on mac at least).
    
    extensive performance testing showed no significant change across debug or release builds (though in theory the aligned struct should give better cache coherency).  even compared against vector<bool> and it's on par in all the calls that are performance critical.
    
    5 bu_bitv_clear
       5 bu_bitv_or
       7 BU_BITCLR
       8 BU_BITS2WORDS
       8 bu_bitv_dup
      10 bu_bitv_to_hex
      15 bu_bitv_vls
      37 BU_BITSET
      40 bu_bitv_free
      42 bu_bitv_new
      45 BU_BITTEST

commit 95e10b642329db24e45129bc985a8970f6ddaebd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 19:37:00 2026 -0400

    switch from 1-byte to 8-byte default bitv.
    
    this aims to address a longstanding issue with the bitv[2] creating misalignment (and potential padding).  switching to a 64bit type improves the alignment and quells the warning (on mac at least).
    
    extensive performance testing showed no significant change across debug or release builds (though in theory the aligned struct should give better cache coherency).  even compared against vector<bool> and it's on par in all the calls that are performance critical.
    
    5 bu_bitv_clear
       5 bu_bitv_or
       7 BU_BITCLR
       8 BU_BITS2WORDS
       8 bu_bitv_dup
      10 bu_bitv_to_hex
      15 bu_bitv_vls
      37 BU_BITSET
      40 bu_bitv_free
      42 bu_bitv_new
      45 BU_BITTEST

commit cf4c2826655d09982c65d26791e585aba64b0072
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 19:11:16 2026 -0400

    gonna provoke some tdd failure.. add api testing across avs, cmd, endian, observer, units, and vlb.

commit 88e40fb2ba31b276cc90f9ceecd74c1331a8a88e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 18:37:16 2026 -0400

    remove bitv_private.h

commit ab108e5c3e88883e8fc2604b41cbc0b25ed3ef5f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 18:36:29 2026 -0400

    remove bitv_private.h (encapsulation test was a dead-end)

commit 04fe2db9b1466d9236aa28df1123dde7d1c09f01
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 18:17:07 2026 -0400

    fix bullet detection.  was looking in noinstall, but it's installed.

commit 0cc12eb7f815baace181b6177a3bc358d60a3558
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 26 16:07:45 2026 -0400

    List file for CMake

commit e4d2604fa72061f39e6f58099c279039a886fa8b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 26 15:40:51 2026 -0400

    Try to be cleaner about Tcl/Tk shutdown when quitting MGED.

commit a8ca15733abe4737c0ff14f2238f081e7beb42f0
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu May 21 16:28:51 2026 -0400

    cleanup
    
    caught while auditing behavior change. Don't use a failing fu, and free
    alloced ptbl.

commit 0a70997f02b9b0e9570acb66efb9bf625be070e5
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu May 21 16:22:24 2026 -0400

    restore behavior
    
    Don't fail on non-closed rings. Although techincally invalid, prior to
    de27f90 the raytracer will still produce an image - which we want to
    maintain. Keep the check and warning but don't abort.

commit eab203ca4a5db95a71e8dadbf1fa0f2b95af0bdd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 25 21:42:19 2026 -0400

    header says return -1 when not found in the set, so make sure we return it when not found

commit 27fafb07fa9eee58142ad66be8e39b4f18a60084
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 25 21:37:55 2026 -0400

    fix bug decoding identity matrix. need to actually copy it.

commit ce18ee053bc3a7caa210d9ce2b2667778e69f0e1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 26 11:28:53 2026 -0400

    Note potential Windows MGED issue to resolve for release.

commit 6f3c978d0fd686118f4bad013dad95c768904260
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 11:18:23 2026 -0400

    Call Tcl_Finalize() instead of Tcl_Exit() so Td doesn't try to close descriptors and pipes that we might have already closed.

commit 87ccdb8c82c230e875cc80b0fbf68105a6138773
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue May 26 11:17:29 2026 -0400

    reduce the logic depth, and not null out  too early

commit 3c6ccd385c5206209b141c65057b984b5c049830
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 18:49:26 2026 -0400

    when launching mged on windows, console window was spewing messages, which quoting the dot-paths fixes.  this was the error:
    
    wgl_open: wm deiconify .topid_0.ul failed: invalid character "."
    in expression ".topid_0.ul eq [winfo t..."
    wgl_open: wm deiconify .topid_0.ur failed: invalid character "."
    in expression ".topid_0.ur eq [winfo t..."
    wgl_open: wm deiconify .topid_0.ll failed: invalid character "."
    in expression ".topid_0.ll eq [winfo t..."
    wgl_open: wm deiconify .topid_0.lr failed: invalid character "."
    in expression ".topid_0.lr eq [winfo t..."

commit 48b4fe2339587b0bb5671de70432b6f691fa285e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 18:36:15 2026 -0400

    add a preliminary manpage for the new near command

commit 36df107bf59aad2cff4eee36c8321d66791f12f8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 18:05:18 2026 -0400

    looks possible for a bad list to deref null, so make sure not

commit ca0b6ca434136ad146b05ac6c4e1187c018ecf1c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 17:59:33 2026 -0400

    don't declare db_read or linkage is wrong on windows

commit 4257f03062a1f74913cd7465c2785984a3a02aa6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 17:47:59 2026 -0400

    quell going pointer to number

commit a253b39d0ff7ba292e6eedc55aabfc8de7a802ec
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 17:47:18 2026 -0400

    needs noexcept declaration else latest msvc build failure

commit 61806795dc8b205937c1705ed6c2d25d3a77edea
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 17:41:28 2026 -0400

    make sure we're not null before inserting.

commit 4d283e42fea3f976935dd63ddd70d6ee834cd25d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 17:41:01 2026 -0400

    windows defines ALTERNATE so suffix it here

commit 90de63ec6f24e00a033bd68448032362ab891452
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 26 10:19:20 2026 -0400

    Make aligned_allocator const

commit e6acdc8d84fbebb91229c1e33a8302ff43e4ea1c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 26 10:02:15 2026 -0400

    Fix build

commit c142519ebccb2c3fdd449a2ea4ed07b551860b71
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 25 17:43:16 2026 -0400

    add a batch of man1 pages that didn't exist previously.
    
    adds manpages for archer bombardier damdf dauto dauto2 dconv ddisp dfft dmod dpeak dsel dstats dwin fence human

commit 98970aadd73ff14e4fce97d16859298fb0c22e75
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 25 17:42:30 2026 -0400

    add a batch of man1 pages that didn't exist previously.
    
    adds manpages for archer bombardier damdf dauto dauto2 dconv ddisp dfft dmod dpeak dsel dstats dwin fence human

commit 721260ee29b222997dce3f57d5104d81bdf7ade2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 25 17:28:18 2026 -0400

    all three bumped up to 256 creations

commit a02f75f8c74d0febd9c9aed5438115646f229861
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 25 17:25:03 2026 -0400

    clean up the description and usage

commit ad9e99cedb6dddc7f68a13ffab51df2c188766aa
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 25 17:19:56 2026 -0400

    also updated, supports 256 windows

commit eb9f784a3f926d74a82ccf3e3e93a1ede94f56a6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 25 17:19:33 2026 -0400

    also updated, supports 256 windows

commit ade6d4ba97f99ab23fdb6cca2550fd91f051d63f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 25 17:16:20 2026 -0400

    already out of sync, wire can be 100 segments

commit 276d61aecfd8d8b316370f24935c9bc053404044
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 23 13:08:18 2026 -0400

    enable testing the macros

commit ee615b7d44cd23e7af673abf94b4ba3f06402431
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 23 13:07:27 2026 -0400

    add a bitv macro test

commit ec2a283b4285fc1dba61259f82bceb918314ed46
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 23 13:05:26 2026 -0400

    set the stage for making bitv guts private if we can do so without affecting performance

commit cc474089316982f976fff055045cafca1ff60659
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 23 13:03:49 2026 -0400

    unused MAX_EXTENT

commit d91713d2174c6dc231f59207546dadfb16546d21
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 23 13:02:34 2026 -0400

    this backwards compatibility pass makes it incorrectly pick up subcommand registrations.  stick to the X() registrations which should probably be renamed.

commit 50dbc0eb877f3371230c9bc07daa644090659e43
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun May 24 10:29:45 2026 -0400

    Couple more TODO list updates

commit dad93281c18b12823a31887936862744b9d036fa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun May 24 09:47:35 2026 -0400

    Remove obsolete TODO items from the list

commit 5efe48bbdc9be0f5feabc45e1aeb18d307bd4c31
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat May 23 13:38:15 2026 -0400

    See if we can consolidate the introspection logic for characterizing libs

commit 4436ff860cac8923cceaa7bfd2633afb3999b7e5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 23 10:54:22 2026 -0400

    after significant discussion with cliff, it's time to adapt the change policy to enable faster code evolution and changes while still giving adequate notice and migration support to other parties relying on brl-cad

commit eb2815dd99f75189eae5ab5753c9fd8b312730f3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 23 10:36:50 2026 -0400

    whoosh, lots of new command manpages exist now.
    
    three that still reside in mged need to be resolved

commit 472528463d0a91e6c7ac04944f95fc952faedac3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 23 01:09:10 2026 -0400

    if path is already absolute (which it is coming from lemon), then don't smash two fulldirs together

commit b176471ba362373d3b737a0ab58b8fec024ba27f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 22 17:08:42 2026 -0400

    Add Config.cmake style find_package(BRLCAD) suppport, call out PUBIC and PRIVATE libs
    
    BRL-CAD poses a complex problem when it comes to find_package - rather than
    require callers to implement a FindBRLCAD.cmake, try to use CMake's newer
    mechanisms to provide what is needed ourselves as part of a BRL-CAD install.
    
    Related to this effort, we also separate out the libraries our libs and
    executables use into PUBLIC and PRIVATE libraries.  We also have added a test
    that tries to test out our static libraries (sans libged and libtclcad, which
    are too large for our testing enviornments in full static configuration) to
    make sure we are defining our setup correctly for them (they are not usually
    tested in the main BRL-CAD build.)

commit 2edab774e24bfa6a1b320bd75c1774e6ac516b93
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 22 17:05:52 2026 -0400

    Avoid linker warning about -Werror=stringop-overread

commit 6621e7065dabce109dc0e380a25d96e4a43bcd11
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 13:27:17 2026 -0400

    needs more work, but try harder to find git on a default visual studio install

commit dd8e269caa9fe7a12064b91a770d4127d80cde99
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 03:13:58 2026 -0400

    new near command for finding objects near to an object or point implemented in response to user request

commit a11c52b89cbcf7c53be5fb6896774380b922ed35
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 22 03:11:59 2026 -0400

    add initial implementation of a 'near' command for reports objects in proximity.
    
    does a quick bb check and shoots rays within the overlapping bb to determine how close objects are to a given object or point.  defaults to auto, but has options for ray spacing, what comb context to limit it to, and max number of samples.  implemented in response to a user request.

commit f36620d116f927bcf08765575f73bd70526dcc6a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu May 21 14:25:31 2026 -0400

    we need to document meshing/remeshing/decimation

commit 977f66f730bdb2fba3d7ad36c1a9cfc609599ed2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 21 19:39:32 2026 -0400

    Get distcheck-source_archives passing

commit b810770cba69f329a9e948a07db1e14a29b88027
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 21 16:09:31 2026 -0400

    Tell cmakefiles about ged plugin srcs

commit ee5a29072d4691f0dbc4ff21c1e02305c12756a1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu May 21 01:47:24 2026 -0400

    shouldn't have to specify sources already listed by targets

commit 379e738482e0fb819c605f48955e35f43b0b0716
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu May 21 00:49:21 2026 -0400

    latest bext 7eaec4272310a7a741817c8f680d8db49abe2387 with shallow cloning

commit 88ed7e63955e2ded553a329b0e77939e0573ef12
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 20 22:31:17 2026 -0400

    make sure the precompiled header is generated outside SCHEMA_OUT_DIR.
    
    exp2cpp wipes out the SCHEMA_OUT_DIR files which gets it out-of-sync with the pch use.  ultimately resulted in mac build failures:
    
    path/to/build/src/conv/step/step-g/CMakeFiles/step-g.dir/cmake_pch.hxx:5:10: fatal error: 'path/to/build/src/conv/step/step-g/CONFIG_CONTROL_DESIGN_stepg/precompile_stepg.h' file not found

commit 68821c1c260b3d0bfa22726874e63d0faa856b67
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 20 20:23:29 2026 -0400

    build failures in external codes, unclear if this satisfies minimally impacting

commit e055fb77b28e6ddfab33d153878a66ea17aca137
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed May 20 19:43:46 2026 -0400

    user request to report adjacent objects (e.g., objects within 0.1 inches from the surface of a specified object).
    
    gqa already has an adjacent air option, so this is potentially another analytic case or a generalization.

commit b21d137de95f33ae078eca4ad880e9356cbff983
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 19 16:18:34 2026 -0400

    Fix sketch/polygon round-trip plane offset math
    
    db_scene_obj_to_sketch and db_sketch_to_scene_obj could introduce offsets when
    converting between view polygons and sketch primitives. The conversion was
    mixing plane points with basis vectors and losing the sketch-derived plane
    during scene-object creation.
    
    Conversion math
        Preserve the sketch-defined plane after creating the scene polygon object.
        Export sketch u_vec / v_vec as vectors relative to the sketch origin, not
        absolute plane points.
        Align bg_plane_closest_pt UV output with sketch vertex coordinate storage.
    
    Round-trip coverage
        Update polygon/sketch tests to compare reconstructed scene geometry rather
        than requiring identical sketch parameterization.
        Add a non-zero plane-origin case to catch axis/origin offset regressions.
    
    Core correction:
    
    bg_plane_pt_at(&sketch_ip->V, &p->vp, 0, 0);
    bg_plane_pt_at(&u_end, &p->vp, 1, 0);
    bg_plane_pt_at(&v_end, &p->vp, 0, 1);
    VSUB2(sketch_ip->u_vec, u_end, sketch_ip->V);
    VSUB2(sketch_ip->v_vec, v_end, sketch_ip->V);

commit 04c2aa6569740a8bae9210810b42922e2e1da26c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:48:49 2026 -0400

    more fully documented in rtwizard(1), so keep  rtwizard(n) simpler to not replicate it.

commit 66781c07976fa786fbd14bf132a7332fdaf17572
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:46:24 2026 -0400

    do a better job explaining how/what rtabort does.  aborts them all.

commit b09df27298c41cdafeade147766013867d603dec
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:45:54 2026 -0400

    spell out all the options, don't punt

commit b1684bc92b9bbd206d2f7165c2e20ede66fb14bb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:45:32 2026 -0400

    explain globbing and pattern matching

commit 37b41c8cc76460e1063f4cebc921a4639ae177cf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:45:09 2026 -0400

    note i is same as instance, elaborate usage and examples

commit 1b65f0579037ac61ae2161a1c491c4b773da765b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:44:25 2026 -0400

    weird command, does seem to be a simple app runner

commit 75d6cbe9e9e86ffde9c53c80491fbd72d2457e51
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:43:28 2026 -0400

    spell out all the subcommands

commit be042eea5a20cb0e6470365c17b3a52b1b32638a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:43:02 2026 -0400

    elaborate and include better examples

commit 7f70668cad33f12f7597ddcd7a4acb5ed406ea83
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:42:38 2026 -0400

    better examples

commit cf68ca8a36b552d6d501dc42e81333a386cb5b27
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:42:20 2026 -0400

    note comb_std and c are the same, elaborate options, better examples

commit de67a47e9858a985dc8b25dc335a7a15ab06ee52
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:41:41 2026 -0400

    reconcile the cc and constraint commands which largely overlap but have different forms with 'constraint' having more read/write options and cc just doing a simple creation.

commit 10ef911f010de42fd8f4fcfaa892dceb2aed1754
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:35:19 2026 -0400

    expand all the options, better example

commit dba6a792f42b66b88b9f64ae1380593a81d526ff
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:34:45 2026 -0400

    missing the -C option

commit e6993509a7087e19279a34bb8b9bc2fb77ab25c7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 09:34:19 2026 -0400

    major rewrite, elaboration, and source-reconciled correction of several man pages

commit c8ef2dd8cda5f69e020929ab299d5de278ab0a3e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 18 07:29:48 2026 -0400

    List mann scanner as exempt from bu_setprogname check

commit 121c42b09348583ae770e70bcfc5cca472e839b4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 18 07:26:11 2026 -0400

    regex expression was crashing on Linux

commit b1d713d944bb2d6654dc4be19e6247f06d3ed589
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 01:24:31 2026 -0400

    prose summaries are supposed to be strictly for end user impact, so move note to CHANGES.
    
    elaborate a bit on the nature of the change and why it fell outside deprecation, but still needing to be documented.

commit 2ca3238870a889e7101abd269a38d264e4bd2db5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 01:07:20 2026 -0400

    about 200 man pages have been edited and/or added.  more work needed, but this greatly expands ged command coverage and examples.

commit 1decfdd093b0f6f32ef91c7e5f1521ee7b0b8308
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:52:56 2026 -0400

    refactored, we need the guts which live in who plugin

commit fe7ccb76eb2bf389e452cee71fff77cb2708a2ee
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:51:57 2026 -0400

    refactored the solid_report command as well, common code.  make sure it's committed

commit b55e394b535e22c177e1b18ff5ddac7994d9309d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:50:46 2026 -0400

    no longer need resources for the treewalk

commit 9b146200f4c2b029701fcf3397e0008acec8f9da
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:49:44 2026 -0400

    need to declare override

commit c9126d2173e80e21868a1a103fc291cdaafc6a41
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:49:04 2026 -0400

    def can use another set of eyes on this, but more logic to look harder for zlib and eigen3; and telling other logic where to find them.

commit 0f3f3baa7fc905e4d3d7e2a44e797bc5f8cc9231
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:47:34 2026 -0400

    looks like it needs to be ZLIB_STATUS not ZLIB_LIBRARY to get ON/OFF state

commit 8f20fb8e05fc35981374621485d4b9e33075214d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:44:54 2026 -0400

    maybe a better fix, but noticed eigen, opencv, and zlib seem to lose track that they were enabled on/off, so make sure they're on when bext_enable_all is set.

commit 020de0f680bc755a5ef704ee4e8579fa1a201404
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:38:44 2026 -0400

    refactor and isolate librt's spatial partitioning.
    
    this lets us get an easier handle on how the spatial partitioning is implemented, as now the majority of logic resides in a specific place, single file.  it also makes it easier to introduce a null method that doesn't do anything.
    
    as anticipated, the null method can actually speed up traces for very small scenes but becomes exponentially worse as more objects are being ray traced.
    
    did not see a noticeable change in performance on the refactor itself for nubsp, but does warrant additional testing.

commit 7195e5d8c9547596eb5b6f537e9dba5036a58e4d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:37:53 2026 -0400

    list the spatial partition methods

commit f4725fc8e006d053c1788281852f7b472365ee5e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:31:54 2026 -0400

    consolidate solid_report into who/who2 as a solids subcommand.
    
    this also lets us refactor them to use a common core, and easier to identify what options were available/needed/missing/etc.

commit d958b2c7275438338bce3f5049e340ce8333c916
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 18 00:25:31 2026 -0400

    add 113 new manual pages for ged commands not yet documented.
    
    includes some works-in-progress, some deprecated, some that need to be deprecated, consolidated, and more, but substantially closes the gap.
    took multiple iterations and fully manual review to get them all into a minimally viable state with accurate synopsis, descriptions, options and subcommands, and hopefully  useful examples.
    still needs some more iterating and validation, but now covers all but a select few that were manually excluded.

commit 9d4388ad45ea2e0032bc79b6f786ef934bb3e2ff
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:58:05 2026 -0400

    group lc options by their relationships

commit c468aceb0fcfd33dfb63c2d6e80e7fd74046dd64
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:57:21 2026 -0400

    improve writeup clarity

commit 5eb07eccec9b17801ee6fb728ac9198f5d759f7e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:56:35 2026 -0400

    elaborate text and examples

commit 6a02a65641b5ea5f7aeb4b3b789c1b0e7fab9531
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:56:08 2026 -0400

    elaborate the description and examples

commit 0b729b9742e3722d6b52c1e6d7e3e0d40d158a03
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:54:59 2026 -0400

    concise name, but put rest in description.  note relationship to rcodes, idents, and wmater.

commit f6992a6f8162df16b549f107e7f3520933762080
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:53:38 2026 -0400

    expand the actual list of subcommands

commit 1c2b116ee0822fd51050d315f66bbd9e7f035ab3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:53:14 2026 -0400

    it's still wildly more complicated than the synopsis indicates, but still spell out some of our options

commit 7a035b92a0a36a0df36fba7c169c1cf2d13de8f0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:52:03 2026 -0400

    document the -D option and command alias with underscore

commit 3a7ba763d6eb1ca6e24d79deae9dfb0b5e022da9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:51:17 2026 -0400

    note the two forms of overlay, plot and image

commit f39f9e06d680dc5c0bc23e35b10c532f5314e294
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:48:07 2026 -0400

    better idents/solids/regions/table write-ups that are consistent with each other

commit a160f4f3ee59de291a5701524d8152e92e404927
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:45:12 2026 -0400

    better eye_pt docs noting the get/set forms

commit 8d2c92a2ce772edd51f620601475155c2fbf4bd5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:44:39 2026 -0400

    document -a all option and better description.

commit 3a2851b07ca684cf17729aa03e2fc7faf250c7a8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:43:53 2026 -0400

    explain db_glob more fully.
    
    actually tries to expand full command strings, which means almost certainly doesn't work well with objects having spaces and special chars.

commit d9c2e1f5cfbcb85ec3dcdc50010e9d4d08bce785
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:41:47 2026 -0400

    expand bb options to actual

commit dc65ab8f7b72fa0f06f53c0775b307f5e645ac4b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 23:34:37 2026 -0400

    animmate is no more

commit 034a207ce3bd3bab0d80d9d1e9cf9abdc375d9c1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:17:25 2026 -0400

    second though, no get_dbip

commit b5f842ff62f7f1c15057be9bc744821349e8d7c6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:15:41 2026 -0400

    document the tire command (should be dynamic plugin command)

commit 5309c2a792d00ebea4e3674357541d299bd1ee4c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:14:10 2026 -0400

    initial select command doc

commit 21d4a8b766a9ca0fa42b3b737f2d0ec1955fa82d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:13:46 2026 -0400

    again learned something new, document sdata_lines command fo radding secondary drawing set

commit dd9a9caa157798c88b44c4d50bb4e1b6eb8fb14e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:12:38 2026 -0400

    initial rselect manual page

commit 9f745d1bad432fe3c4ddce6d31fe0fd0ef48eaf2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:10:50 2026 -0400

    initial man page for 'png' command that saves an image of the current display

commit 250a2e6b96e07214cbefb88832f572601cb10da7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:10:06 2026 -0400

    add initial pipe_ACTION manual pages, even though these need to be reworked as subcommands

commit 775a74004a182af8b765cf9725c7f91e7aaa3eb8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:09:08 2026 -0400

    initial pathsum man page

commit c84e09070c7e203efc69ce8e4811a86b243f52f3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:07:34 2026 -0400

    initial man pages for metaball_move_pnt and metaball_delete_pnt even though these need to become subcomands

commit 6d0d60402c0578474650f62b79a77efb526b1e01
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:05:13 2026 -0400

    initial get_dbip manpage, even if it's a dev cmd

commit 2985e1efa92e70e90e7f421775f70e6cab91ccd9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:04:18 2026 -0400

    add new dbversion man page

commit 30d90e4a2ce360b433b18d61dd1a61f8dc205568
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:03:48 2026 -0400

    dev doc, but add for completeness

commit f920cbf198966533d9e48f5ab36900b93a76dd72
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:02:53 2026 -0400

    add data_lines man page.. didn't know this existed

commit 44ed7aaaa9dd92629aa8592c0403eca5b68abb1b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 13:01:35 2026 -0400

    initial closedb manpage with example

commit 23f9b2e9051c034b422cd8398cf2219aec7f14e1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 12:39:07 2026 -0400

    might have this wrong, but looks like html is generated from the manpage, so let the log indicate what's happening with an arrow

commit 0f2a8397a093267c07cb2e88862debd4f232ff50
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 12:12:28 2026 -0400

    in prep for merging of solid_report into who as solids subcommand

commit 64ba393552667ee828e114a14ecb5b9b5b775090
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 12:11:44 2026 -0400

    this may need work, but see if we can get away with the file being bigE and the guts documenting 'E'.  document the -s option.

commit 4a04cf9a3a660ab2ffb1c8f6dc55e7fcaee98c95
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 12:10:24 2026 -0400

    include an example

commit c5f5fa23e9c63de7a6ab47ffdc652bc3bf27d6ca
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 12:08:30 2026 -0400

    expand options for -s, -V -U

commit 2d82d825a0fc99d6f009709ca2932ca63a95c6c4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 12:07:26 2026 -0400

    document -s option

commit 241291c7f6cd677a93549b1c2edf92b96b76fdf0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 12:07:08 2026 -0400

    add opts section, explain

commit a9d06325508840b5a358af49f785fcf946086b19
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 12:06:46 2026 -0400

    document the -s option

commit fd0f2e4bfa1788f4669e43488c75443e4c0ea8cb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 12:06:10 2026 -0400

    note t is really an ls alias at this point. manpage made it sound like something completely different.

commit 4d5a6da25bfb23137ee870b083799c2debff5d3e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 12:02:10 2026 -0400

    more clearly describe the synopsis, add an example

commit 22be86976528d4838c344e10c7ff42bfddaf7a45
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:57:53 2026 -0400

    document -q and -v and -r opts

commit 69ee9c424aa0130f002d096c202e75a4b02de90f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:57:13 2026 -0400

    note it's an alias to 'who solids', and encourage migration

commit 96f0815f90c2ed420d39d43eba9015b8f0e70445
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:55:23 2026 -0400

    add example.  this needs a regression test..

commit 8e3603113eefd11b1bb75f9d2937efc2f621c3f1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:54:54 2026 -0400

    add help

commit de20ccbffb874dd2ecd49c1eb83fd208e2fbafdd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:54:46 2026 -0400

    add help opts

commit a9c3d3b5250e26aee80c30c4dacb0dc91e98d767
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:54:04 2026 -0400

    fix synopsis, add examples

commit 7f5b572b279decfdc87ab942c1f0b930b1373892
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:53:29 2026 -0400

    link to the aliases

commit 8c65113520f60f0b3157cb41e18a6704d1bdaae2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:52:46 2026 -0400

    meh

commit 809987f51dd2cc1b07320127008b9c00408ce6a2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:52:29 2026 -0400

    document full usage and opts

commit b45adc9140f638202043cf96f3dc07d742b80aa4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:51:58 2026 -0400

    there is now, example added

commit c5c439c105a64fab860dc64a353cd25f1e7eba3b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:51:36 2026 -0400

    add a trivla example with leader to next command

commit 01bfbcafe774e68c16847797016fca9d65380bcf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:50:56 2026 -0400

    expand the options into a table instead of para

commit 654b1688d71b23336100aab85f90a0ae68156556
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:50:30 2026 -0400

    note -h option

commit 88194fec13a5a62ef30df279f8b654edafc3b3bc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:50:10 2026 -0400

    minor caveat, ws

commit 2398dc075719f1c4bd13ed371e2b4a38dc60bb2c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:49:25 2026 -0400

    add options section with all short+long opts

commit d896fc69ecb7eaf0870fbb8f750eacaf0190d966
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:48:20 2026 -0400

    add a couple examples

commit d83ed5e54610acf5c8a242b4bad3ebcfcf93d1eb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:47:06 2026 -0400

    swath of doc cleanup, long opts, added missing opts, and organization cleanup

commit b8eea78865a642b09bb65b8f75d6d4b9daa607d7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:38:07 2026 -0400

    document -L, -D, and reference the long opts

commit 5f0f28f5e05231ae333ea4e300210d7e93eb6dad
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:35:37 2026 -0400

    mention help

commit d1b3be66de1f94ebe7136e434276cd0fe1ab2755
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:34:40 2026 -0400

    document all of the invocation forms, describe the options, and provide some examples

commit 3619bcc7ff639f891844dfbab476490bff1ff8e9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:33:50 2026 -0400

    document the -h and -o options, learned something new myself!

commit 19f71302c1eba44a2965173cba3744318f85ec2b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:32:49 2026 -0400

    spell out all the options including -A and -o, and their long opt form

commit 8b7fbef64db0361148c596a5c4a035a6fa60658e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:31:05 2026 -0400

    doument more long opts

commit 925a7c19b99be8a212041ab645c82dcb3e3309b1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:30:53 2026 -0400

    added an example

commit acb45e8c36731e7ba567d98c558cf15ec9a4e3f3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:29:00 2026 -0400

    document the -n option, list -q

commit 96c3c4244893bcdfc4ed6c50487a44eb5fa86b99
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:17:43 2026 -0400

    document the non-recursive -R option

commit bef6e66baf12950607251726b19fffdfee9a1982
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:17:05 2026 -0400

    add a couple non-trivial examples

commit 0fdf04ccc7706803f9acc70ef1457aaf89f377bc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 11:16:24 2026 -0400

    add examples, unverified.  looks like grouper / gr is a tcl proc along with dg (done grouper).

commit 1c86004ba215760937f92fa3e70c8edb181c4262
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 01:59:29 2026 -0400

    document the long opts

commit e953c83516f8fca3cd35b6f2eb3a147489440c45
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 01:59:05 2026 -0400

    document the confirm option

commit 6b83eadd49ae072887533c729eed51baaaef5965
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 01:57:49 2026 -0400

    document a few opts missing

commit 1b18b42859d6bdd3709feccbf79a201ec5563ca3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 01:56:45 2026 -0400

    note synonym for quit

commit ac54795becaae0e55354f4b06b3e976ba2f4e85c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:41:10 2026 -0400

    expand all erase methods, explicitly call out the -r -A and -o

commit 49ff35acac029de342b7e2f029c52991a78f67ea
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:39:24 2026 -0400

    cleanup description, get rid of /bin/ed assumption

commit 9d55e4e9d38e27303882f18d5ec784fd1e207469
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:33:09 2026 -0400

    document the -h -v options

commit 47629c22b674b629df25fb6d051991386637ee0e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:32:22 2026 -0400

    include examples

commit b5ac5483057513cdf54777c8a483a819bf49ea45
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:30:06 2026 -0400

    document the long opts

commit a1e0f612af667575b8e367092208e0ac741da243
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:28:15 2026 -0400

    add basic description and example

commit 78d783ef1d98f271e3661021c344feb7658bc644
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:26:41 2026 -0400

    do same, document brep selection subcommand

commit 52f7cf0c5e9aa62c690129cdb6bce5866f67d021
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:23:46 2026 -0400

    document actual brep intersect subcommand arguments

commit a77d8f508d995554728bd454b13e038b857b5b30
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:18:46 2026 -0400

    document all the brep subcommands

commit ecdd5ffbc61307fe7f1e5f09a1a1c7c24f0bc64e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:15:45 2026 -0400

    add simple bot_sync example

commit 6785880257f7242f07c619e7be72bb0a1dde9967
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:14:53 2026 -0400

    add simple flip example

commit 89ff3c36e6983a16660646f0f06827389765259e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:13:17 2026 -0400

    expand options section instead of packing into description

commit c586bffb1e6fecbabbd37ef084ce0900f38bbf2d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:09:54 2026 -0400

    better area example

commit 52bf6a240d6188699b19d2fa2cfdc1619029f164
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun May 17 00:07:20 2026 -0400

    document all analyze subcommand synopses separately

commit 588227acec9c68c1e30e998c933602cddba842af
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 16 17:14:33 2026 -0400

    update to ef7b75463308b6c7c87a244b475cb7acb0359700 to get geogram update, update patching and clean rules

commit c034687c0b1095cf164bcb238da8ed98c44c7569
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat May 16 00:21:55 2026 -0400

    fix error when build dir happens to have an adoc matching something being built.
    
    in my case, happened to have a copy of an adoc in the build dir, and it 'exists' so the build logic added the file name as-is, later resulting in an error when being run in another location.  we need to expand out the source-relative path, and presumably need the handle full path overridsies.

commit 4e3c221153fc4f4b7213d2c64ab04c2af404ba2d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri May 15 22:10:51 2026 -0400

    add a manpage validity check.
    
    that every libged command has a page, has all expected sections, and options are documented

commit 26ca9d7b67c9e0d50e49d87b6c1eb8848f77a1eb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu May 14 19:28:58 2026 -0400

    make sure _USE_MATH_DEFINES is not already defined

commit faa869a7481564a4f7c19553a8aaaff197d5366f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 12 12:45:42 2026 -0400

    Update ttcp to work on WIN32
    
    Also added a regress-ttcp script to try and exercise things.

commit 3739beca9d4e2496d502a8a19f8b4406a69d9721
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 11 16:15:19 2026 -0400

    Re-engineer the facetize pipeline for more robust behavior
    
    This commit turns on work attempting to improve facetize outcomes on CSG
    boolean hierarchies using implicit solids.  A number of elements added to librt
    and libnmg in previous commits are needed to achieve these results:
    
    1. Improved behavior with abs/rel/norm tolerance settings.
    
    It has long been known that various BRL-CAD primitives react poorly to
    facetization tolerance settings that vary appreciably from the default values.
    This had to do with a combination of lack of guards for extreme inputs (for
    example, tol norm 0.000000001 would result in certain primitives subdividing
    beyond levels we could handle - and even if they had somehow succeeded, the
    number of triangles produced would be unusable.)  The new logic both adds
    clamping guardes for extreme values to limit how refined things can get and
    implements various improvements to the tess algorithms themselves.
    
    2. Improved triangulations for planer faces with non-linear boundaries
    
    NMG typically produced "triangle fans" for such faces, with all triangles
    sharing a single vertex on the outer polygon.  This functioned but was usually
    not the cleanest triangulation option available - the new logic leverages other
    BRL-CAD functionality to produce CDT triangulations of those polygons.
    
    3. Corrections to various surface area/volume analytic formulas and methods
    
    When performing validation of tess output meshes against the original
    primitives, we discovered various errors and limitations in our analytic
    functions (when a triangle mesh and the primitive differed widely, we needed to
    determine whether the triangulation was at fault or the CSG primitive wasn't
    reporting itself correctly.)
    
    4. Improved raytracing-based sampling for complex area and volume calculations
    
    Many of the more complex solid shapes like TGC do not have analytic solutions
    for surface area and volume - in those cases, we have leveraged the
    Cauchy-Crofton sampling methods first implemented by Sean Morrison for the
    rtsurf tool to generate converging numerical estimations we can use as control
    values to check BoT output properties.
    
    5. Maturing and wiring in the "perturb" methodology for clearing parallel faces
    
    A long standing problem with facetizing CSG trees (and a known problem with the
    Boolean evaluation problem industry wide) is an operation involving co-planar
    faces.  This is mathematically very difficult to resolve, and even when a
    library like Manifold can "handle" it the output is not necessarily what is
    expected.  In earlier work we had observed "sliver" triangles in areas the
    librt raytracer said should be empty.  In prior work we had added
    post-processing steps to clear these faces with some success, but a recent
    update to the latest version of Manifold exposed a weakness in that approach.
    
    Newer Manifold versions use double rather than float for internal storage, and
    that means BRL-CAD primitive meshes that had previously been forced to act
    co-planar in narrow tolerance situations are suddenly being handled as fully
    distinct "close" faces.  This is not in fact wrong, although it looks like it
    to a casual inspection - the BoT being produced is accurately reflecting the
    low level geometry description.  It is the CSG raytrace that is discarding the
    very tiny "solid" segments being returned by the almost co-planar faces, and
    producing sometimes startling visual and hit behavior differences between a BoT
    conversion and the CSG original.  This is also prominently seen in the
    Cauchy-Crofton surface area calculations, where the BoT and CSG answers
    disagree due to the CSG boolweave raytrace discarding small segments the BoT
    intersection keeps. Indeed, the CSG surface area calculation is also "wrong"
    due to shallow incident angles resulting in segment lengths between the close
    planes being long enough to keep.  In effect, close ARB planes are
    demonstrating view dependent behavior when they are being subtracted at
    distances close to the BRL-CAD distance tolerance.
    
    To achieve the "right" answer here - i.e. a BoT that visually matches what a
    CSG raytrace would show - we detect when those mismatches occur and
    automatically "bump out" the faces of the subtraction arbs.  We also adjust
    non-subtraction solids a little (when they have implementations of the perturb
    callback) to help avoid these problematic interactions.  Historically this is
    what we have told modelers to do manually to avoid failing boolean operations.
    With this improvement, both problem detection and correction (when possible)
    should be handled under the hood.
    
    Note that even this improvement does not handle *all* cases.  In situations
    where a CSG expression results in a tiny sliver geometry, facetizing,
    area/volume calculations and even CSG raytracing itself may do unexpected and
    different things that result in the output mesh disagreeing with the source CSG
    volume.  In those cases however the recommendation is for the modeler to
    revisit the original CSG description and try to determine what the modeling
    intent was - many times these sorts of failures are the result of an actual
    error in the original description.

commit a6d21c4c4225b6d6635f8ff4e8542accf4c1f2e1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 11 16:12:09 2026 -0400

    No longer need the Geogram status line

commit bdcc4b63f62231997c881787ed92f26e68eb500a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon May 11 12:00:11 2026 -0400

    update to get latest bext mac fixes

commit f2f24f70af85ed5307293ec571aa9361adb7197e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 11 10:48:13 2026 -0400

    When we can, use libged dm cmd for MGED dm cmd implementation
    
    MGED's dm has more subcommands than libged's, but when we can use the libged DM
    command prefer it.

commit ded434e9b3f62aaa5f574a6a2a738deee272b4c6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 11 10:44:11 2026 -0400

    Adjust MGED tk grid setup for quad view

commit 770cd09e469798b3bc1244a9ca2f9f8786489356
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 11 10:42:39 2026 -0400

    Add support for adaptive zclip calculating

commit 328356eb546859afe89035c8b328cc2f3617e363
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat May 9 15:25:04 2026 -0400

    Shouldn't be looking for Geogram anymore

commit bff64927facccbcc9ca16b518433b92e092a720d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 8 17:35:22 2026 -0400

    Implement Unix-style rm per deprecation plan

commit d56c893b85d35918c7ed4b040479c3ed8f3e91ce
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 8 17:34:20 2026 -0400

    Have libged glob cmd use librt db glob

commit 6d64cc9d3735b93556820fc1f6b459501330e7b1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 8 16:47:14 2026 -0400

    Define a librt comb glob using the libbu API.

commit 4ee1f15dae8df35fd3df0395a46b0fb5ff59ef26
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 8 16:29:12 2026 -0400

    Flesh out the libbu glob API.

commit 0d7a95b32a53894adf99e7f7a1e0c080ca603105
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 8 15:43:24 2026 -0400

    We will need new function to target for chull deprecation - add.

commit af1c255069556836620d822722b435160c9a52c3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 8 15:41:12 2026 -0400

    Hmm.  Still had some users of SMALL - update to SQRT_SMALL_FASTF

commit 04d0dffbbc1bc497d08de4bd2e3cb1deb86f81b6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 8 15:24:44 2026 -0400

    Remove a few old deprecated vmath.h macros, old nmg deprecation

commit 049bf97c4d3312cdf19ddf3b9db9b6e74cd41d6f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri May 8 15:17:03 2026 -0400

    We want to avoid visual artifacts - go with 32 bit depth

commit fad7c8aa5ea140d845897bd69abfc5fefbc75f9c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 7 22:29:44 2026 -0400

    Respect -a dm type override when launching MGED

commit f88d25aa574ec41146f09057621cb8be4e4cc402
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 7 13:47:33 2026 -0400

    Check for 6.9 rather than 6.0 Qt

commit 6adcdf62dde3f70ec00dda3907c1b8ca56d6b9ea
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 7 12:14:59 2026 -0400

    Aaand MSVC didn't like the clang fix.  Try an enum

commit 2ab21fb89f0f560b6288101b6e7953adb0fa90ef
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 7 11:04:28 2026 -0400

    Clear -Wunused-lambda-capture error on OSX

commit 858ccc4f8d200600a69006fcf96b4030abfe290c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 7 10:59:34 2026 -0400

    Only deiconfiy if the dm Window is a toplevel window - it doesn't work otherwise

commit e4b20751dd468519025da1c87f943d9c25623cb1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 7 10:47:32 2026 -0400

    Early work on a Qt widget for sketch editing
    
    One thing we will eventually need if we're going to have a CSG Qt geometry
    editor is a way to interact with sketches.  There are a couple of Tk widgets
    MGED and Archer use for this purpose, but we don't currently have a Qt
    solution.  Stash some exploration of ideas on how to got about exposing such an
    ability in a way qged could eventually use.

commit 547bc0b6ad3656baeef4ffbb4011e509d28e28bc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 7 10:46:42 2026 -0400

    Stash some more of the librt edit work (focusing on pipe constraints).  Not wired into MGED.

commit e3a54f5352f9dd3ab66150c8203ea5d84235f44b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 7 09:51:54 2026 -0400

    Use OpenGL wireframe rather than fast path for tests
    
    Unsurprisingly in retrospect, there are pixel differences between the fast
    wireframe path and the proper OpenGL swrast version - use the full version for
    the image tests so we match.  Should add a test specifically for the fast path
    as well, once the dust settles, but that can wait for the more substantial
    drawing logic rework to land first (post 7.44) so we won't have to keep
    updating another image.

commit 5a27333586f6e61ce780af7cac187774b2c8f336
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu May 7 06:58:21 2026 -0400

    Add some work on improving QGED wireframe speeds
    
    One of the drawbacks of the swrast osmesa-backed 3D rendering pipeline
    was it was significantly slower (2x-3x) than the X backend for wireframe
    only rendering.  These changes implement a fast path in the style of the
    X backend for swrast, as well as trying to address some other potential
    bottlenecks in the qged drawing pipeline.  Speeds now should be
    reasonably close when using the fast mode.  This was the last major
    reason to prefer X to swrast for rendering, so we should be close now
    to being able to retire the X libdm completely in favor of swrast (it
    does shaded mode, albeit slowly, so it is more capable than X.)

commit 4fc5cc8428b26dd1bdc346762978bcb8a777967e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 6 22:29:24 2026 -0400

    Just disable building these for now

commit b3b8fdba1c0a6cf90b9d2194215ebce45b45c954
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 6 19:55:26 2026 -0400

    Bump bext SHA1 again working on bullet3 MSVC issues

commit 8d5ada2d73a51f6869dc0f473b13e09979013ec2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 6 12:53:58 2026 -0400

    Bump bext SHA1

commit 97cf0b6857e98fb9a10cf170ac5d2702c16d44fc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed May 6 09:00:10 2026 -0400

    Keep simulate tests off for now

commit 7542aa6504671c2c33b592da5c64872e6fa64f04
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 14:49:48 2026 -0400

    Fix include, bump bext, make bullet missing be non-fatal

commit 927acad3a272fab47f0cf63110a73c7bb0452a4d
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue May 5 14:34:20 2026 -0400

    fix callback recursion counter

commit 1e172dbeb448fc9d2a28cf0c5f933bcdf86ebc9b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 14:01:51 2026 -0400

    Bump bext SHA1 to include bullet3, enable by default.

commit 9c222511a5fa857531394bfc44229425e585ce60
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 13:01:47 2026 -0400

    Per suggestion from Sean, add support for single-vector plane specification to rt -k as well.

commit 0d69d1d6c7ea4acaa26092b3344eafadc9448000
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 12:10:27 2026 -0400

    See if we can use GL_FLAT for better performance with swrast wireframes
    
    This will need an osmesa tweak as well, but getting the BRL-CAD side change in.

commit a766b00a407dd66497f45e32774da313b9b596a4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 10:12:59 2026 -0400

    Enhance rtwizard, fbserv and remrt/rtsrv
    
    We make some add-ons to the IPC protocols and mechanisms for fbserv to
    better support running multiple rtwizard instances at the same time -
    this was what had been stopping us from being able to hook up our
    rtwizard test targets.  Running distcheck means firing off multiple
    builds, each of which may simultaneously try to start their own rtwizard
    tests - even if we forced them to be serial within a single build, that
    was no guarantee of contention avoidance across multiple builds.  Now,
    however, there is an option for fbserv to generate a key clients must
    use when communicating in order to have fbserv accept their input - that
    allows us to avoid confusion and incorrect images in the chaos of
    multiple parallel builds.
    
    We enhance remrt/rtsrv the same way, as well as getting them to be
    portable to Windows.
    
    Also, we have enhanced libpkg to support using pipes for IPC, in
    addition to TCP.

commit 699bde1c76599fda2020c7d90a50fd4b0d30b091
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 10:33:25 2026 -0400

    Document point + normal specification option for rt -k cutting plane

commit 0c20db05d3e3dde8777073abf56fc5322be247df
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 10:27:11 2026 -0400

    Add a x,y,z,nx,ny,nz plane specifying form to the rt -k cutting plane option

commit 663d3240567fc25a701defd4b02e99f847001f7c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 10:11:00 2026 -0400

    Put the long opts in the actual option descriptions

commit d111f87d04f0e261a061b3f6b394829c5d6c5f3d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 10:05:20 2026 -0400

    Keep the b=1 avoidance guard for pure black in benchmark
    
    When trying to match rtwizard render outputs, it seems the bench/ref/m35.pix
    image didn't have a guard disabling the b=1 bump when it was originally
    rendered.

commit feca851e16350ea5500edfdf04b87b69c4bf68dd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 10:02:44 2026 -0400

    Initialize mdl_min as well as mdl_max

commit e542a120aaf8e477c0d658166a7c664b41edb213
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue May 5 09:55:51 2026 -0400

    Mention long opts in rt usage

commit 0ad52ff7bed69c1c4d314b30a029f4ee7a2ee53b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 4 16:53:12 2026 -0400

    Replace system Geogram dependency with local subset
    
    Geogram's cross-platform portability is somewhat spotty - they use per-platform
    definitions, and you have to define a new set for each environment you want to
    run in.  We are using them for repair and remesh, without pulling in any of the
    more elaborate dependencies they optionally use.  Rather than trip over portability
    issues, it proved practical (after a lot of iterations) to boil down the code
    to a more focused subset.  We did try to re-implement, but although that was more or
    less feasible for the repair logic there are a LOT of subtlties to the
    remeshing algorithm that proved rather confounding.  "Strip it down to the core
    we need" proved to be the safest way forward in the end.
    
    While we are at it, we also have taken a stab at implementing a "uv unwrap 3D
    polygon" method for hole filling repairs to try for increased robustness - in
    theory this should handle some cases that would otherwise be a bit difficult to
    process.  We are also explicitly scoping "bot repair" to focus on getting a
    manifold, rather than worrying about whether that manifold satisfies the lint
    criteria like "no long superthin triangles" - that's up to post-processing.  An
    "ugly but manifold" BoT is still viable for booelan evaluation, which is one of
    our most important appliations, so we shouldn't be rejecting anything that we
    can use for such an operation as an invalid repair.
    
    To try to "clean up" an ugly BoT, combinations of repair, remesh and bot
    decimate -f can be effective for some inputs - however, be warned that if you
    need to do multiple remesh/decimate cycles you want to decimate first before
    feeding a remesh output back in for another round of remeshing.  With the
    GenericTwin 4003 example, the following proved reasonably effective:
    
    bot repair 4003.1.t0
    bot remesh 4003.1.t0 4003_fine.bot
    bot decimate -f 100 4003_fine.bot 4003.bot
    bot repair 4003.bot
    
    To clear the one small visual artifact (not a manifold issue) you can
    remesh again, but at the loss of some edge sharpness.  Probably more we can
    experiment with here going forward.

commit db463b2a9ecf7f72819a4ef7135fca1dbd48341e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 4 14:01:45 2026 -0400

    Missed a file

commit c2f0f446b422d5c5519695a1033629811132321c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 4 12:45:03 2026 -0400

    list libbg for libnmg

commit 46fa871d0049d3f5f3bff0f707e549fad6814d29
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon May 4 12:36:05 2026 -0400

    Stash more in-progress simulate cmd work.

commit dbcbe40653d58701c628d3f4cf7e431cf69fd7ec
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun May 3 00:51:39 2026 -0400

    db_read is already declared in rt/db_io.h - shouldn't need it here.

commit 7e63e94b4b804f109bcc267ad0578b7b7b6f5c9b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun May 3 00:04:31 2026 -0400

    More edit command work
    
    The idea is to have the edit command use primitive-supplied descriptions
    to figure out what parameters are available to edit for a given
    primitive type and how they may be manipulated.

commit fb91b13816b1ffe9b333f854e3749aa92b16dea0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Apr 30 23:38:31 2026 -0400

    Not sure how useful it'll be but try adding support for private library specification.

commit da8d194bd9eb45d7fba0376caa59c7726cdac523
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Apr 30 16:52:00 2026 -0400

    add empty dispatch trigger for manual testing

commit ffda7c0f6fe2c8726fafb8c3f277baa27771d8b2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Apr 30 14:27:53 2026 -0400

    Shallow copy doesn't duplicate vls string.

commit e2d94c41f723d96c8b891d3348e6cf789e2834c1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Apr 30 07:38:23 2026 -0400

    and full circle, re-introduce linker test (this time without the pretend-lib hack) for msvc since we need to just pass the full fuzzer flag to cl

commit c9743f772b2c8f30d4bd5625d4ffcde0966aa600
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Apr 30 00:51:20 2026 -0400

    significantly rework fuzzing logic to be more robust, and fallback so it can still always run

commit 5fa1dd9ee649e6ffb6a9ae57319c095038c6e4bd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Apr 30 00:06:15 2026 -0400

    Fix off-by-one in libicv's pixel writers
    
    Make a few fixes to libicv writing:
    
    libicv pixel writers (src/libicv/fileformat.c):
    
    icv_writeline / icv_writepixel accepted y == height (and x == width) as
    in-bounds, then wrote one row / one pixel past bif->data. Bound checks
    tightened from > to >=.
    
    libicv PNG writer (src/libicv/png.cpp):
    
    Dropped static from png_color_type — process-wide storage was a race
    between concurrent png_write calls and could flip the IHDR color type
    mid-call.
    
    Error path called png_destroy_read_struct on a write-side png_ptr;
    switched to png_destroy_write_struct.
    
    text_chunk.text_length was set to the JSON byte length with
    PNG_TEXT_COMPRESSION_NONE; libpng requires 0 here. Now zero, with a
    comment.
    
    bif->height == 0 would underflow bif->height - 1 (size_t) and walk the
    heap. Row loop guarded.
    
    rt BUFMODE_SCANLINE invariant (src/rt/view.c)
    BUFMODE_SCANLINE updates scanline[].sl_buf and sl_left without
    RT_SEM_RESULTS, relying on each parallel chunk (per_processor_chunk =
    width) covering exactly one scanline. That holds only when cur_pixel's
    starting value is scanline-aligned. With -b X Y where X != 0, pix_start
    = Y*width + X is not aligned, chunks straddle scanlines, two CPUs race
    on the same row, and the do_eol flush can bu_free sl_buf while another
    CPU is still writing it.  Added a guard at mode selection.

commit e1f4ae6ce2371586c00196110492ca70207832ce
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 20:15:02 2026 -0400

    Re-enable long options on rt
    
    Fix regress-repository complaints, address AmbientIntensity issue and
    fix handling of certain -c configurations.

commit f62ea391b4b2f52e81d0cd7425dcda7a235dfd9a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 29 16:06:11 2026 -0400

    See if unsetting CMAKE_TRY_COMPILE_TARGET_TYPE helps.

commit 40fc3a65907dc5e8c54097c2ecaf93449fa60d71
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 29 14:56:25 2026 -0400

    Make a design pass to improve and simplify new clone options
    
    Worked with Sean and AI to clean up and simplify the new pattern options on
    clone.  This should improve both clarity and usability while simplifying and
    cleaning up the implementation.

commit 2038413a8807cd35341732e903661cb50bd5e63b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 29 12:59:01 2026 -0400

    Fix if conditionals for fuzz logic

commit 831937ae6a6f87854a092cc087bc1985a044257b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Apr 29 02:06:24 2026 -0400

    looks like a typo, should be wsf since that's what we checked for

commit 75f349b3dd63d31634b366f27df594c5f426af8d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Apr 29 01:59:33 2026 -0400

    be a little more richly descriptive about fuzzing status

commit 2b4aa0f07e7fbb219552019c93d5f8ef32ab9a6c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Apr 29 01:47:57 2026 -0400

    move bench before doc so all TARGETS are defined before we process docs

commit 36cc842c610fdf8d803839a764f7722487b41651
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Apr 29 00:48:52 2026 -0400

    variable just to make it longer or..

commit e58543571f8b401238f6d3ae7e3576947f0687a6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Apr 28 23:20:57 2026 -0400

    animmate invokes the tool, but provide an example anyways

commit d85ac43970a858b518165a09ba57c9272acfaa38
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 23:56:40 2026 -0400

    make a note to check if arb editing is watching for non-standard point ordering.

commit 7e465a1fbf3e48117ebe2b94790f228658c2fcdf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 23:05:05 2026 -0400

    libbu: remove O_TEMPORARY from Windows mkstemp
    
    O_TEMPORARY on Windows tells the OS to automatically delete the file
    when the last file handle referencing it is closed. If we then call
    fclose(fp), the OS deleted the file - not always what we want.
    
    This fix removes O_TEMPORARY -  temp file cleanup is already handled
    correctly by the atexit-registered temp_close_files() function that
    calls bu_file_delete(), so O_TEMPORARY was redundant and harmful.
    
    This should allow us to enable a never-fully-completed test for
    rt_datum.

commit 66a3498a9b076c286709ff53549abb8882baf5ef
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 20:07:24 2026 -0400

    Revert "Enable long options in rt command option handling."
    
    Whoops, lost track of which branches I had and hadn't tested.  This one
    isn't ready yet - revert.
    
    This reverts commit 7439e7c2f82864be3cd47f95c72134ad802ce40b.

commit a5dcd9d4670390ccc637d4910cabd7632bc8f287
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 19:43:27 2026 -0400

    Fix DBI cache format-mismatch infinite recursion and test cache isolation
    
    1. src/libged/dbi_state.cpp - infinite recursion / segfault on format mismatch
    
       When dbi_cache_open() detects that the on-disk CACHE_CURRENT_FORMAT does
       not match the format file, it calls dbi_cache_clear() (which removes only
       the per-file LMDB directory, NOT the format file) and then recursively
       calls dbi_cache_open().  The recursive call reads the same stale format
       number, hits the mismatch again, and recurses indefinitely.  The result is
       a stack overflow and segfault - exactly what was observed when the main
       branch test suite ran after a newer-format cache had been written to the
       user's real cache directory.
    
       Fix: call bu_file_delete(dir) to remove the stale format file immediately
       before the recursive dbi_cache_open() call.  The recursive invocation then
       finds no format file and writes a fresh one with CACHE_CURRENT_FORMAT,
       breaking the cycle.
    
    2. Correct tests to use a local cache
       src/libged/tests/draw/faceplate.cpp
       src/libged/tests/draw/aet.cpp
       src/libged/tests/test_select.cpp
    
       These faceplate draw tests did not redirect BU_DIR_CACHE to a local scratch
       directory.  All other draw tests (basic, lod, quad, select, bsg_parity,
       lod_crossrun) already use a private per-test cache dir.  Without
       isolation, any format mismatch in the real user cache triggers bug #1.

commit 7439e7c2f82864be3cd47f95c72134ad802ce40b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 16:11:23 2026 -0400

    Enable long options in rt command option handling.
    
    We have essentially exhaused the single letter options for the rt command's
    option specification, and the -c 'set var=val' pattern lacks discoverability.
    We've been using bu_opt for a while now - this commit translates rt's existing
    option handling into bu_opt and adds long option forms for many of the options.
    Eventually we'll probably also want to look at exposing long options for
    variables currently only exposed via the -c mechanism, but for now the focus is
    simply on migrating the existin getopt setup correctly.

commit 7f165d038a619f17af5da59f0ddaf55b2a1f1e08
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 16:16:26 2026 -0400

    Add tree shaking for non-overlapping subtractions in librt
    
    When we are building a CSG boolean tree, we know at the time of tree build that
    any subtracted children cannot contribute to the shape of their parent if the
    bounding boxes of the instances don't overlap.  We use that to cull any such
    subtractions out of the tree before we start raytracing, to avoid doing extra
    intersection work we know will not be needed.
    
    For most geometry models this won't have much impact, but for pathologic cases
    (a contrived example is taking our tank_car.g model, making a copy of the top
    level tank car, offsetting it, and making a subtraction comb of tank_car -
    offset_tank_car) being able to think out the tree can improve performance by
    almost an order of magnitude.  Since it does help in those rare-but-legal cases,
    we go ahead and add it as a refinement.

commit 5dd9ec906e2cb5346dc01b796087c1240f924b73
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 16:22:05 2026 -0400

    Avoid tmp_v collision in unity building on MSVC

commit ac0a463f280333852b2085659c5d7c23d315ddca
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 15:51:56 2026 -0400

    Loosen point/tri drawing mode tolerance
    
    Now that we're getting better image diffing, it's becoming more apparent where
    we weren't seeing variation.  Need to back off our tolerancing for this test,
    since a fair bit of subtle variation is expected.

commit a68a6bbcd70ecd3b10aa42a74daabb7ca2c7e1aa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 15:43:59 2026 -0400

    Stash in-progress work fleshing out the libged edit command
    
    Still needs a lot more testing, but makes a stab at implementing the rotate and
    scale modes for edit.  Consolidates on edit.cpp and utilizes the new librt
    routines.

commit e15b8cb3c8d5462c1638cec4c1cac973c0cc35d5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 28 15:26:30 2026 -0400

    Fix libicv diff comparison to match pixdiff
    
    The original libicv diff implementation didn't properly match pixdiff - correct
    its approach.  Also add an abilty to encode scene data in PNG images to
    (theoretically) allow reproducing pixel difference shotlines via raytracing
    with NIRT.
    
    imgdiff command updated with appropriate options - probably should look into
    whether we can deprecate pixdiff in favor of imgdiff with a little more work.
    
    Also, now that libicv should be producing more correct diff results, add a
    icv diff subcommand to the icv utility (that was where I went looking to use
    this capability first.)

commit 63ecf0c1e5673da7cf4268c21303ac49cf7d3b78
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Apr 28 00:51:51 2026 -0400

    update the saveview+loadview pair so they're in sync

commit 2d0c722702dd721a7dd74dfcc696c37598b07d87
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Apr 28 00:30:48 2026 -0400

    expand tops manpage with all options

commit 89d1c29f9f1c47282cfd8930ccf8a53e0c9dee91
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Apr 27 21:59:39 2026 -0400

    Add libbv camera API, move LoD cache to libbu API
    
    More drawing cleanup support work being staged.  The LoD move to libbu's
    cache wrapping API should be functionally equivalent since LMDB is
    backing the libbu implementation (although we're bumping the format
    anyway just in case.)

commit d0df8970e5188edaf55fd54fb4bcfdcddc984945
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Apr 27 21:04:56 2026 -0400

    Add a libdm dlist sensor API
    
    Staging part of the work from another effort to try and improve our
    drawing stack.  This isn't wired to anything yet - just setting up
    for work to come.

commit 667998ce6dc34efbadab42a0f6df0092b65b52b3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Apr 27 15:13:32 2026 -0400

    More removal of unneeded resource pointers from functions
    
    This lets us eliminate quite a few additional instances of rt_uniresource in
    the code.

commit 0718165c4486b55ca8adc9b1c58e74a45a546d37
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Apr 27 14:35:05 2026 -0400

    Set bot exterior bot type to RT_BOT_SURFACE explicitly.

commit 48a267b06e8d947d40397196255a6295f41c8605
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Apr 26 22:19:49 2026 -0400

    Hide more of the rt_i opaque struct entries

commit d04c6cfd19abc8bc504a46fe29923bb75bbc76c2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Apr 26 21:32:48 2026 -0400

    Update CMakeLists.txt

commit 33eb7afe0e2dede18e16732da29562f918a2a93b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Apr 26 21:21:32 2026 -0400

    Downstream use has been replaced by MOOSE - remove

commit 64985965322b2cd411eddb10c15ab700b25ac3e0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Apr 26 14:42:33 2026 -0400

    Remove struct resource from the db I/O functions
    
    We don't actually need the resp resource when we're reading and writing
    - it's critical uses are in the raytracing code, not I/O.  Remove the
    resp parameter from the I/O functions and adjust the code accordingly.
    
    We have to be careful here - most functions take the resource pointer as
    their last argument, and the calling conventions of C should allow
    binaries compiled against older lib versions to run, but there were a
    few cases where struct resource was *not* the last argument.  In those
    cases we deprecate the old functions and make the wrappers around new
    versions, updating our code to call the new versions.  In most/all cases
    we'll revert to the old name once deprecation is complete - doing it
    this way to try and minimize disruptions during transition.
    
    We have also retired re_directory_hd and re_directory_blocks from the
    struct resource container in favor of the db_i internal's
    dbi_directory_hd and dbi_directory_blocks.  These weren't really public
    facing resources to begin with, and if I'm interpreting some of the
    comments in the rt_i code correctly I think we may have actually fixed a
    structural problem with memory management there.
    
    This is a first step towards either completely eliminating struct
    resource or (more probably, at least in initial stages) making it a
    private, hidden librt managed function of an upgrade to the struct
    application data type.  The latter will require shifting away from the
    current explicit user malloc/free of struct application to librt
    provided create/destroy routines for the struct application container
    (or preferably something with a better name like struct
    rt_thread_worker_data - struct application, in addition to being way too
    generic, sounds like a single global resource along the lines of Qt's
    QApplication, when in reality it's the per-thread container responsible
    for our ability to handle data in multi-threaded raytracing...)
    
    This was actually a good case study in both the utility and limitations
    of AI in a refactoring case of this sort.  It correctly identified that
    struct resource wasn't critical in I/O operations, and did most of the
    work to remove/update logic, but it made a number of mistakes adjusting
    the APIs.  For example, it noted that the majority of internal I/O calls
    used NULL matrices, so it thought it could eliminate that parameter as
    well as the struct resource parameter.  There were a few other cases of
    a similar nature, as well as a number of other adjustments and cleanups.

commit 16766cfe85c2fcd5f51cb1b282964a268bac7bcb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Apr 26 03:04:31 2026 -0400

    scrub source references. lets stay higher-level and only mention products.

commit b7df9a1fc12d6b0bafa95387b53f48019c2e63da
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Apr 26 02:05:51 2026 -0400

    add prelim summary of all the main algorithms and features in BRL-CAD

commit b7ecb1d3a4a921c8c17e5b9a2e21acd6ee905332
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Apr 25 23:43:03 2026 -0400

    Need dbip when actually using rt_obj_import/rt_obj_export

commit cac618524c72529e48f246d40abc71a025bb0483
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 24 14:46:45 2026 -0400

    Don't hard fail if we don't find GDAL and STEPCODE - just message and disable

commit c219b05dcb3be6e2f294adf161988546dc8633dd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 22 23:06:11 2026 -0400

    Stash a Claude Opus 4.7 analysis of struct resource removal prospects.

commit f858258a4ae644af86437b10b5af695f3bfa90fd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 22 22:01:50 2026 -0400

    First stages of making rt_i internal info actually internal
    
    The pattern here is similar to db_i, and the solution is similar as well
    - make an opaque internal struct to hold the "opaque" rt_i entries.  For
    the statistics we make a struct and group them there.
    
    This first pass intentionally doesn't handle all of the "OPAQUE"
    entries - there are a few that need more careful study due to how
    they are being used in the BRL-CAD code.

commit 9bf6a6eb26de9f4fdd089b6b56804bdbc7d47e83
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 22 21:02:04 2026 -0400

    Simplify algorithms and control options for bot exterior

commit 75c59f7896339a110a43ea4b3063972accdde965
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 22 20:02:45 2026 -0400

    Going 1 order below (M_PI / 360.0) is too much for NMG to handle - document that this limit is quite sensitive and important.

commit 4a2be9e1545c90b853704ae88bbc2ba475fe0f28
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 22 16:31:58 2026 -0400

    Add a bot exterior subcommand that builds a set of exterior triangles
    
    This is still being tested, but it is now interesting enough it's worth
    committing.  Using raytracing for visibility testing, we can build up a set of
    triangles from the bot that are "exterior" triangles.
    
    Although it is not on by default, also checkpointing some logic (currently
    using OpenVDB but I'm not sure that's actually necessary for this) to do a
    "flood fill" based test for whether a triangle is exterior.  For that
    definition of "exterior", the test is not "can we see it" but "would it get wet
    if we submurged the model in water."  What you want to define as "exterior"
    will be application dependent, so options will be available to control which
    interpretation is used.

commit 5a6b44b2b7d0e8e1509e5068235a65a66a08574f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 22 12:27:38 2026 -0400

    Add include for bu_setprogname

commit ffd7f4e7f3a155453af542a5097cbd4c06aac376
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 22:40:47 2026 -0400

    Use libbu tbl API instead of directly using fort

commit f577b1d002e25a38765dfdd73004d3d43a31c264
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 22:40:19 2026 -0400

    Loosen the test thresholds on the meshing dependent drawing tests.

commit 88bb29551ca3684b740c287d1e8599121c06e398
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 21:40:58 2026 -0400

    Use approximate matching - seeing 2 pixels off in the basic v20 test on OSX.

commit 5cd4f7e9670df922bd25f7bff908c5a38e073449
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 20:20:29 2026 -0400

    Hmm. Is Windows not converging as quickly for some reason?

commit 458c82e7082ac96865caf237736336d5d91d6de0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 19:44:00 2026 -0400

    Make crofton target total a settable variable, bump it a little

commit fa6bbc12bbdbe412a6703eeb7e4ad741424eb160
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 19:39:10 2026 -0400

    Centralize signal.h include
    
    OK, that's enough fun with the signal.h XCode popping up randomly.
    Replace BRL-CAD uses of signal.h with one include from bu/interrupt.h
    where we can deal with this in a single shot.  We'll keep the
    workarounds in the stand-alone headers like libtermio.h, but most of
    the includes we can consolidate.

commit 3d89e85ad725f2815366add10e135eb914d91921
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 17:00:02 2026 -0400

    Add ebm and vol tess work.

commit 07479dc2c06d28ef33231afa192810b109b33469
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 16:59:14 2026 -0400

    Add --raytracing mode to lint tool

commit f0344813cff3f6cbf9fbb483bd4e4b5eb09334ed
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 16:17:29 2026 -0400

    Whoops, not ready to enable this one yet.

commit 7dfbc16ee8de807f9f3d1d187db6da2633ce66a8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 15:45:14 2026 -0400

    Add testing tools for tess work
    
    These are used to exercise per-primitive tess routines systematically,
    collecting timing and information.  The full facetize pipeline is more complex
    in order to be fault tolerant - these let us run the core routines directly.

commit a69bdaccfd02475440e6e4a70c200b9516027115
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 15:42:52 2026 -0400

    Add remainder of primitive tess/area updates, wire volume and surface area funcs into functab

commit 2df6e45ad3a49490c88090696052bbfa0a5565b1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 15:37:50 2026 -0400

    Adjustments to PIPE tess routines

commit 20a3c52e53d6d97172812560bd5724b4b247d1f4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 15:12:06 2026 -0400

    OSX spotted it - point2d_t shouldn't be used like that with std::vector

commit 619331a6ed38572763815f50cc915b0ce09c843d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 14:49:56 2026 -0400

    Update hrt tess code, add perturb

commit da503e2f33b0c20779a47f98a7f989331161b4f3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 14:44:56 2026 -0400

    Add support for intermediate fast-path NMG assembly

commit dd5f12a76b904c40827583b258d564af82e4b705
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 14:42:42 2026 -0400

    Add rt_comb_volume and rt_comb_surf_area using Cauchy-Crofton

commit 183ebdaf9d6d7be1c4028ff2b427834e6c0412ba
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 14:41:31 2026 -0400

    Update crofton to return the total number of ray-surface crossings accumulated

commit 3e4d7f24137c6b245719e3ebe1cd55de49f1eab1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 14:38:56 2026 -0400

    Put back deprecated notices

commit 79f386e34ed5cec3950c7795ff064da537437ea3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 14:37:49 2026 -0400

    Add rt_bot_csg_miss_check sampling function.

commit 7546bf03cf56d5fe899853b87b05a44e4c05cb59
Merge: 44de64b755 2a46778c72
Author: Daniel Rossberg <33295041+drossberg@users.noreply.github.com>
Date:   Tue Apr 21 19:42:18 2026 +0200

    Merge branch 'main' of https://github.com/BRL-CAD/brlcad

commit 44de64b755948a28c0fb08fec309a49d62c56a21
Author: Daniel Rossberg <33295041+drossberg@users.noreply.github.com>
Date:   Tue Apr 21 19:39:30 2026 +0200

    declared some more local stuff as static
    
    or removed the function entirely, because it was an unused dummy
    quell multiple definition conflicts when linking the libraries statically

commit 2a46778c72108f6e868e03675aa71fec1671d4e3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 13:00:36 2026 -0400

    Add tess updates for ETO primitive
    
    Similar to those made for TOR - limit triangle explosions due to extreme
    tolerances, support self intersection cases when producing triangle meshes.

commit f1603e488d531c6e7fe46cadc1348a1dcee4cb04
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 10:50:24 2026 -0400

    Updates to tess routines for EHY, EPA, HYP, RHC and RPC
    
    Similar updates to these - limits to prevent infinite recursion and bad
    behavior at extremes.  HYP previously wasn't generating a valid output mesh -
    we should be producing a good one now.
    
    Also update area and volume calculations as appropriate.

commit de27f9007f188a656869c50a873de2c7fded33bf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 10:41:07 2026 -0400

    Adjustments to the ARS tess routine

commit 91961d006fce08c2702973946eec5c248f9781a0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 10:38:42 2026 -0400

    Just use the tessellated ARBN for surface area and volume analytic answers.

commit 96e29bdb6a6b889e075285bbe9ac4a05fe723c61
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 21 10:00:23 2026 -0400

    Add updates for ell, tgc, tor and NMG triangulation
    
    This is a focused commit of the primitives with tessellation changes that have
    an impact on our libged drawing tests (TOR, ELL, TGC and planar primitives
    using the NMG CDT face triangulation.)  We're commiting these four updates
    together so we only need to update the drawing images once.
    
    The changes are summarized as follows:
    
    libnmg - use detria to get a better face triangulation than the "all triangles
    sharing a single vertex" we were getting previously.  The cleaner triangles
    both produce better wireframes and appear to assist with boolean evaluation
    (better spatial separation.)
    
    ell - added guards against infinite recursion and "triangle bombing" when
    tolerance settings are extreme.  Use Cauchy-Crofton sampling for surface
    area (no closed form solution.)  Added perturb callback function.
    
    tgc - guards against extreme triangle counts, improvements to algorithms
    to better handle difficult input vector combinations, improvements to
    surface area calculations.
    
    tor - added guards against infinite recursion and "triangle bombing" when
    tolerance settings are extreme.  Support facetizing cases where the radius goes
    zero or negative - in that case we return the outer surface.  (Not technically
    valid definitions, but it is possible to create them and the failure mode was
    catastrophic previously.)
    
    Updated drawing test images to reflect new triangle outputs.

commit 878f52244ac2c9fe44a028158da4d28c56855482
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Apr 20 15:00:23 2026 -0400

    Handle 3 hit point grazing case in TGC
    
    In the specific case of 3 hits returned from a TGC, we can discard the middle
    point.  Counts higher than 3 indicate a problem with either the prep filtering
    (allowed an invalid TGC definition through) or the root solver itself.

commit b20d9b7c5938b849e806168a7e44295b3dc9e5b4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Apr 20 11:31:18 2026 -0400

    Get the tolerance clamping utility functions in place
    
    For a lot of the primitives, we need to prevent exteremly small tolerances from
    causing cascading triangle generation that results in unusable geometry (and
    usually hangs or crashes the program as we run out of memory.)  These utility
    routines are intended to centralize the defaults, and allow environment variable
    override if the standard limiters don't work for a particular application.

commit 56b03ac259f3164f5dc7a0c291193472561ad14b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Apr 20 10:56:02 2026 -0400

    Add lint test and helpers for non-standard ARB8 ordering
    
    Facetize, surface area, etc. will sometimes show odd results for ARB*
    primitives if they do not follow the standard convention for defining points -
    ARB8 defines an order for encoding duplicate points, and if that order isn't
    followed assumptions made by some of the routines break down.  For some of the
    metrics like surface area and volume we can recover with the convex hull as
    long as we're not dealing with the newly supported concave cases, but at the
    end of the day these aren't encoded the way they are supposed to be. (A few of
    our sample models do have a few arbs that trigger this test, so this isn't
    theoretical.)

commit 0f821dad59ba437c648f50a5ab54a0a1a89fe3dd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Apr 19 21:07:50 2026 -0400

    Implement more libged "exists" command options
    
    The "exists" command is intended to map to the BSD "test" command
    roughly the same way "search" maps to the BSD "find" command.  We had a
    more or less stubbed version of this file - fill it out with various
    geometry specific types and checks.

commit 1746d669b9d862b0e9a24794ccb3bdc45280a89b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Apr 19 07:10:37 2026 -0400

    More OSX complaining about deprecated

commit b1c5c99fd035358019eb0d11f7254cbc07cdae4b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Apr 18 22:48:59 2026 -0400

    Apparently OSX clang is picky about @deprecated

commit 4220d5c8de7dfa00af93df20f367e361ea6812f0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Apr 18 22:27:38 2026 -0400

    Update copyright headers - it's 2026

commit 728627f981a109ae1c07869a45c2c1ff81cea07c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Apr 18 22:08:22 2026 -0400

    Adjustments to libged-static + plugin system build logic
    
    We had the shared library target for libged using the correct CMake
    mechanisms for collecting plugin sources and definitions, but not the
    static version.  We were still building a static version, but it was
    missing most of the actual logic - got a report from Daniel Rossberg
    that trying to link to libged.a resulted in many failures such as:
    
    /bin/ld: libbrlcad.so: undefined reference to `__ged_cmd_ptr_fbclear_cmd'
    
    Also observed the static library for libged was much smaller than the
    shared, which suggested missing logic.  Was able to confirm locally -
    libged.a was 17M vs. 33M for the shared version.With the above fixes the
    libged.a static size is now 81M.

commit 4c0ab85d654762568ac959a0d2f987d8c8e12619
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Apr 18 18:01:18 2026 -0400

    Fixes to BSPLINE→BREP conversion
    
    Bugs fixed in rt_nurb_brep
    
    CV index transposition — SetCV(k, j) → SetCV(j, k). With j iterating
    s_size[0] (u) and k iterating s_size[1] (v), the original code silently
    swapped u/v, producing geometrically wrong surfaces on any non-square
    control net.
    
    Rational weights dropped — Surface was constructed with is_rat=true but
    CVs were always set via ON_3dPoint, discarding the homogeneous w
    coordinate. Now uses ON_4dPoint(Xw, Yw, Zw, w) for rational surfaces,
    matching the homogeneous convention already used by the BRL-CAD snurb
    storage.
    
    First surface never got an outer loop — if (findex_before < 1 || ...) is
    always true for i=0 (no faces exist yet), so NewOuterLoop was
    unconditionally skipped for the first surface. Fixed to if (findex_after
    == findex_before).
    
    Unconditional verbose logging — 6 bu_log calls fired on every conversion
    regardless of outcome. Now a single diagnostic log fires only when the
    output BREP fails IsValid.
    
    New C-callable in-place converter: rt_nurb_to_brep
    
    /* Converts a loaded ID_BSPLINE rt_db_internal to ID_BREP in-place.
     * Returns 0 on success; -1 on failure (original left unchanged). */
    int rt_nurb_to_brep(struct rt_db_internal *ip);
    
    Declared in the new include/rt/primitives/bspline.h (installed alongside
    hf.h/pg.h, pulled into raytrace.h), with C linkage so it is callable
    from plain C translation units.  Pipeline wiring
    
    table.cpp — ID_BSPLINE.ft_brep was NULL; now set to rt_nurb_brep.
    Enables brep_conversion() and any other ft_brep-driven path to handle
    BSPLINEs.
    
    dbupgrade.c — Adds an ID_BSPLINE migration block calling
    rt_nurb_to_brep. Failure is non-fatal (logs a warning and falls through
    to write the original BSPLINE), preserving the invariant that old
    BSPLINE I/O remains functional even if conversion fails.

commit 329418985ce60722a7df8b09e8c7c3b46ded8f0b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 17 15:32:40 2026 -0400

    add an ars bicone example to primitives.asc

commit 87a7607a8972d52080625e12379c03884e1ad28f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 17 15:27:36 2026 -0400

    Add a trimesh volume calculation function

commit 0ff8b7aace95f393a7e0dd2289d5bae5d00d73de
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 17 15:27:01 2026 -0400

    Handle memory stability requirements when using detria

commit 461844c095d1dc3e67312642a436eac591baee20
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 17 15:25:54 2026 -0400

    Make sure the bg_3d_polygon_sort_ccw function is working from the point centroid

commit d99810b26b9ae15031c7f507df36aaf7889d37b2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 17 15:02:47 2026 -0400

    Document some interesting (observed) properties of the Crofton SA
    
    This is a really interesting corner case - havoc.g's r.wind6 region (and a few
    others) have arb-within-arb subtractions that are nearly coplanar.  Crofton
    analysis revealed something very interesting about how our raytracing interacts
    with that case.  It turns out that the arb faces in these cases aren't *really*
    coplanar - they're just close enough that for angles looking "down" on the
    windows the interior thicknesses reported during raytrace are below tolerance
    and boolweave culls them out.  HOWEVER, that is *not* true for all angles - if
    the shotline comes in at a very shallow angle, it does get an in/out segment
    that is above tolerance and a segment is returned.  This doesn't make much
    difference for the volume calculation, since the segment lengths are small, but
    it makes a *huge* difference for the surface area - the interior of the
    "window" is now filled in for a noticable percentage of the sampling rays.  The
    subtraction planes sitting right near the tolerance limit of boolweave is
    essentially creating view dependent geometry behavior in the raytrace.  The
    Crofton surface area calculation *does* still converge - but not to the CSG
    volume answer we would expect from the subtracted arbs.
    
    We have another new problem with this same case that also manifests in current
    code.  In our original Manifold boolean evaluation these planes effectively
    were coplanar, since Manifold used float internally - during facetize our
    repair logic handled the interior slivers that got produced. However, we are
    now working against a newer Manfold that uses double internally instead of
    float.  That means we *are* reliably getting the internal faces now, and the
    facetize results look completely wrong compared to the CSG raytrace - even
    though it is actually *correct* per the underlying geometry description.  In
    order to get a mesh that matches user expectations in this case reliably and
    automtically, we're going to need to a long-wanted feature - automatically
    perturbing the CSG solids before boolean operations.  Doing so can get us out
    of "bad" coplanar region behavior, but we have historically had to tell
    modelers to fix cases like this themselves manually.

commit d3a6827d9ed3f2dc90bbcefb3aaf28260f9bff1b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 17 14:26:14 2026 -0400

    Stage the new forms of rt_mk_parabola and rt_mk_hyperbola
    
    Kinda wondering if these should just be internal to librt...
    If so the public API should just be deprecated outright rather
    than the new one being exposed, but needs discussion.

commit 160d1cd47c49b3907a3cf019041d106660c8d91e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 17 14:01:57 2026 -0400

    librt: add configurable Cauchy–Crofton estimator for surface area and volume
    
    Introduce a unified implementation of the Cauchy–Crofton integral-geometry
    estimator for computing surface area and volume via stochastic ray sampling.
    The Crofton formula relates geometric measures to statistics of random line
    intersections: surface area is proportional to the number of boundary crossings,
    and volume to the accumulated chord lengths of rays through the solid. This
    approach is especially useful for primitives lacking closed-form solutions or
    for complex/implicit geometry where analytic formulas are difficult, expensive,
    or unavailable.  It is based off of the work done originally for the rtsurf
    tool by Sean Morrison.
    
    We add rt_crofton_shoot() for operating on prepared rt_i instances and
    rt_crofton_sample() as a high-level entry point for arbitrary primitives.
    rt_crofton_params allows callers to control stopping criteria via
    maximum ray count, equivalent-radius stability threshold, or wall-clock time
    in order to support making different tradeoffs in accuracy vs performance.
    
    Also adds standalone tests validating accuracy against analytic shapes (sphere,
    RCC, tilted geometries) and regression coverage for sub-mm cases, along with
    basic convergence and timing checks.
    
    For now the tests are disabled - we need other changes not in this commit
    before the tests will pass.

commit 28c3a434bdcba755ad32683ea31452225e21123f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Apr 16 11:50:42 2026 -0400

    Spotted by Keith - we weren't respecting the -S flag when redrawing a previously drawn comb

commit fe2f5cf2b51cdfb071f35356c22e03a98fd5cff9
Author: Daniel Rossberg <33295041+drossberg@users.noreply.github.com>
Date:   Thu Apr 16 16:53:50 2026 +0200

    declared some local functions as static
    
    quell multiple definition conflicts when linking the libraries statically

commit 4d7c66226bd14cee7ac83a6ba84d3a7e869c2754
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 15 20:07:18 2026 -0400

    Update qged view settings plugin for new data struct

commit 52a2895815b94e382dc0e45002cd1d9d7babdf97
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 15 13:17:45 2026 -0400

    Don't bu_bomb if something isn't right with dbi_filepath on ebm tess

commit c01f9fd99b6b5e025e14bfe62941608b1c7857da
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 14 14:11:02 2026 -0400

    Appears to be fixed with the shift to libged garbage_collect (explicit global attribute saving)

commit dfce7ad9613b740eb22a50064ce6e801b0a7fd98
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Apr 13 15:34:23 2026 -0400

    Fix rt_ell_surf_area: PROLATE/OBLATE formulas applied to wrong spheroid types
    
    The ell_type assignments in the EQUAL(mag_a, mag_b) and EQUAL(mag_a, mag_c)
    branches were swapped — an oblate spheroid was classified as PROLATE and vice
    versa, applying the wrong closed-form formula. The EQUAL(mag_b, mag_c) branch
    was already correct.

commit 138a870efa0888d622c1d4ee2bcb7f6868b97b40
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Apr 13 13:43:10 2026 -0400

    Make the librt arb8 area calculation match libged's analyze version
    
    The two implementations didn't agree, and it looks as if the libanalyze version
    (what the analyze command actually uses) gives the correct answer - we can get
    an independent answer from the facetize bot of an arb solid, and BoT answers
    didn't agree at all with the original librt answer.

commit fbb4cb589ea321d55aeb7cec38d8ff7f8e12175b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Apr 13 12:07:49 2026 -0400

    Correct ELL_CIRCUMFERENCE calculation

commit a242b4a8b9bd3b54fd93486807de1a3607397358
Merge: e566500ab4 9834cf8b45
Author: Daniel Rossberg <33295041+drossberg@users.noreply.github.com>
Date:   Sun Apr 12 19:42:33 2026 +0200

    Merge pull request #230 from LorenzoSanti34/fix-element-beam-multicard
    
    Fix ELEMENT_BEAM multi-card parsing in k-g converter:
    - Fix optionsCounter not incrementing after Card 1, causing option cards (THICKNESS, SECTION, etc.) to be misrouted back to the Card 1 branch with "Too short ELEMENT_BEAM" error
    - Fix local variables (eid, element) resetting on every line, causing option data to overwrite stored elements with empty data

commit e566500ab458e3b14fdb5f61f2c8839e18c9a8cc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Apr 11 08:34:41 2026 -0400

    Update libbu opt tests for behavior adjustment
    
    Two existing tests asserted the old fatal-error behavior for grouped
    flags containing unrecognized characters:
    
        h_5 (-?4): ? is a known flag, 4 is not → whole token is now an
        unknown positional arg; flag variable is not set (the token is discarded
        before any flags are processed). Updated from EXPECT_FAILURE to
        EXPECT_SUCCESS_INT_UNKNOWN(..., 0).
    
        h_7 (-?=4): same reason — = is not a flag char, opt_process returns
        -1, whole token becomes unknown arg.
    
    Other callers that previously checked bu_opt_parse() == -1 for this case
    (gsh, nirt/diff, libanalyze/nirt) are not broken: unknown args with a
    leading - are either caught by explicit post-parse checks (nirt main.cpp
    already does if (argv[i][0] == '-')) or cause an error at the later
    stage where the arg is consumed.

commit d8876fb06d8a176c9bd672b517122a1a4d0d7d80
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Apr 11 07:08:49 2026 -0400

    Fix bu_opt swallowing of sub-command flags
    
    Switching MGED to use bu_opt exposed a couple issues with bu_opt
    when trying to run the conversion.sh script.
    
    sh/conversion.sh was completely non-functional: every mged -c file.g
    search . -name foo or search . -print invocation either segfaulted or
    exited with a usage error before executing the GED command.
    
    Root causes
    1. NULL shortopt dereference (segfault)
    
    opt_is_flag() and the grouped-flag descriptor scan in bu_opt_parse both
    did desc->shortopt[0] without a null guard. Options declared with a NULL
    shortopt (e.g. --rcfile, --no-rc) are valid and common; iterating past
    them crashed.
    
    2. Grouped-flag parse error swallowing GED sub-command flags
    
    When opt_process() encountered -print as a separate argv token, it
    correctly identified -p (pipe) and -r (read-only) as valid mged flags,
    then hit -i (unknown) and returned -1 — a fatal parse error.
    bu_opt_parse propagated that -1, causing mged to print a usage message
    and exit before the GED command was ever run.
    
    For MGED, this was a regression from the old bu_getopt-based parser,
    which stopped processing options at the first non-option positional arg
    (POSIX mode), so -print was never seen as an option candidate.
    i
    Changes:
    
        opt_is_flag() and grouped-flag desc loop: add desc->shortopt &&
        guard before desc->shortopt[0] comparison in both locations.
    
        opt_cnt == -1 handler: instead of freeing all tables and returning
        -1, free only the partially-built opts list, insert argv[i] into
        unknown_args, and continue — exactly matching how a fully-unknown
        option is handled. This makes search . -print, search . -name foo,
        search . -type X etc. all pass through as GED command tokens.
    
    After the fix, sh/conversion.sh --bot --nmg share/db/*.g runs to completion.

commit bb67437a1eb49a6ebeb3cacdf56db9a5e0c9b893
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 10 13:45:04 2026 -0400

    Add command line setting options for .mgedrc entries
    
    Add support for MGED's command line to override select entries in the
    .mgedrc file at runtime.  We do not override all of them (many are
    difficult to set up as options and unlikely to be useful) but this gives
    users a way to control these values at a scripting level without having
    to write an .mgedrc file

commit a2a0c089e6a3b74da331e21d560c7d4c5a75dbae
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 10 12:16:14 2026 -0400

    Add support for a sentinal that client programs can enable to detect when commands finish.

commit ff694b5ae71fd24cd7a7d4ab37ec03ea92681c00
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Apr 10 11:44:50 2026 -0400

    Startup fixes for MGED display managers
    
    In mged -c -a mode, respect a .mgedrc size setting.
    
    Attempt to fix mged -c -a wgl behavior on Windows (needs testing)

commit ff180df30e6dcc9aaf1704d88d5ca104756891d3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Apr 10 10:32:21 2026 -0400

    add new iterate_geometry doc to the list

commit 2024d767f6a0d8cfb2d61a4402fbe66dc499d406
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Apr 10 10:31:36 2026 -0400

    Add prelim guide for the database traversal APIs
    
    provides an overview of the existing LIBRT api calls available for traversing geometry database objects, including usage scenarios and key characteristics of the various traversal functions (e.g., data struct involved).

commit 6318e4885c29585cd435060beed1a26728442e51
Merge: 029075133d 0d9ba5f071
Author: Erik <erik@brlcad.org>
Date:   Thu Apr 9 13:14:37 2026 -0400

    Merge pull request #56 from GregoryLi0/brep_epa_debug
    
    epa->brep translation bug fix

commit 0d9ba5f07175f769b90acd82eda7c55322775fbd
Author: Erik Greenwald <erik@brlcad.org>
Date:   Thu Apr 9 11:34:17 2026 -0400

    Style: use tabs for indentation, spaces after commas
    
    Whitespace-only changes to match project conventions.
    No functional changes.

commit 029075133df71b3f85bf2f48a41eb4b833609a19
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Apr 9 02:51:38 2026 -0400

    and one more again, restructure semi blindly watching ci logs

commit 7958d406243d17ef70816e78e6cadd2415078a75
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Apr 9 01:15:46 2026 -0400

    one more reordering

commit 831b3593f120bee333ba69ceb1ecc7b6bb0136a3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Apr 9 01:12:44 2026 -0400

    more reordering required, flying blind

commit 21cef9334d23fc5d0c7b5c3cd778fb77b94a4bf4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Apr 5 08:10:07 2026 -0600

    reorder to avoid nmg collusion, reorder to avoid predecl

commit 586d0d7b6b77c7298eccbcb394614e4241b6b963
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Apr 5 08:05:56 2026 -0600

    use a diff prefix to not collude with nmg api

commit 29bb49460cf07ae2fc1523475554ad13badef1fc
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Apr 8 12:20:54 2026 -0400

    expand -d usability
    
    user-requested way to skip the density related calculation alltogether
    => "-d 0"

commit 58b2897a50042c16ce4c6b9cd9a67fb86231240d
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Apr 8 12:15:13 2026 -0400

    improve parsing helper
    
    parsing raw gqa output in practice is pretty fragile - tighten some of
    the checks. Also collapse parseMass and parseVolume into one helper.
    
    Slight behavior change - if stod() fails, bu_log a warning instead of
    hard failing

commit e44c88c25b0d43ebd8e97fb3c2a6863e5abf53cf
Author: Erik Greenwald <erik@brlcad.org>
Date:   Wed Apr 8 08:19:42 2026 -0400

    Fix heap buffer overflow in rt_ehy_tess and rt_hyp_tess
    
    The vells[] vertex array allocation loop iterated forward, giving the
    largest array to index 0 and progressively smaller arrays to higher
    indices.  The top face code then writes nseg entries to vells[nell-1],
    which had the smallest allocation — a heap buffer overflow.
    
    The identical code in rt_epa_tess correctly iterates backward (nell-1
    to 0), giving vells[nell-1] the full nseg slots.  Fix both EHY and HYP
    to match EPA's allocation order.
    
    Found via valgrind on an isolated EHY test case:
      "Invalid write of size 8 at rt_ehy_tess (ehy.c:1424),
       0 bytes after a block of size 112 alloc'd at (ehy.c:1417)"

commit 515d0bf438a8df456730e26c52d4e252b9d14e0d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Apr 7 11:51:06 2026 -0400

    Fix quoting in bot and facetize search examples

commit 34bf6dddcc2033056a1da0320be32b7ae06eb0ec
Author: Erik Greenwald <erik@elfga.com>
Date:   Mon Apr 6 11:08:15 2026 -0400

    Fix FindLMDB to search default system paths
    
    FindLMDB only searched when LMDB_ROOT was set, missing system-installed
    liblmdb-dev entirely. Add fallback to default CMake search paths.

commit b0c8fca95063c935fa206e57ab7fee29c27df268
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Apr 5 07:56:18 2026 -0600

    update docs to reflect asciidoc conversion, and not dupewhat's already in the other man pages

commit 372704282a06daf08e1a1f55d001085dfe9cb763
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Apr 2 11:44:07 2026 -0400

    Add some work on Region-of-Interest support for Bullet simulate
    
    Still something of a work in progress (so not announcing anything yet), but
    this gets us much closer to actually having objects be able to interact with
    large terrain files.  Previously, the huge bounding box of the terrain and the
    tiny bounding box of the object being dropped on it didn't play well in Bullet.
    This attempats to define a Region-of-Interest (roi) that effectively makes a
    subset of the larger terrain bounding box we can use for the interaction math.

commit f95f5a2fdf4b5c555676762f8aaca64eb710b7bc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 1 20:10:30 2026 -0400

    librt: make db_dirbuild idempotent and call db_update_nref automatically

commit 5ba0fa71828606cb87608561987d535ff662cc24
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 1 16:54:03 2026 -0400

    Make another stab at a Tcl search exec interp

commit 00cc859be6e023c927e3800d109009d97e891559
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 1 14:27:47 2026 -0400

    Back out separate Tcl interp for search -exec running change
    
    This is more involved than one might think - backing out for now.
    
    Reverts commit 90f111e54e0248ec0acf757bfc58e77847989f8d.

commit e22ee182ecd4d16b514f31dff4f2bfd68a5d3a0b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 1 11:59:57 2026 -0400

    Eliminate rt_cline_radius in favor of rti_max_beam_radius
    
    rt_cline_radius in globals.c was the last mutable per-session global in librt -
    eliminate it for the per-rtip rti_max_beam_radius instead.
    
    This should mean we are now able to reliably open multiple .g databases and
    raytrace them simultaneously.

commit 4750f779dcb26f505d6b920cf40c23f76f579cfa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 1 09:11:28 2026 -0400

    Properly set the stage for removal of the material_head global in librt

commit faef611807c2ce5fc7046d361359620d796c0882
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Apr 1 09:55:34 2026 -0400

    Looks like spsr.cpp may not be happy with clang unity building - skip

commit 0bd9a9a0774ad9043f44f9527bd7726a5917b0c6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 31 21:34:00 2026 -0400

    remove obsolete tie entry, update TODO

commit a1fa4a194bf7d6e3951d8cb3c484c1041434eea8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 31 14:51:57 2026 -0400

    Move db_i "PRIVATE" entries to the actual private internal container
    
    This an ABI change, but these entries were always explicitly marked
    PRIVATE so they were not part of the API contract.

commit f0ce1544013c1062e6982820d96c2ef7448001d0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 31 13:43:45 2026 -0400

    Fix rtweight/gqa iterations looking for material objects
    
    Previously, were only looking at the first entry in a hash bin - need to do a
    double iteration over all indices and bin contents to check all objects.
    
    While we're at it, switch to using FOR_ALL_DIRECTORY_START/FOR_ALL_DIRECTORY_END
    macros.

commit 5a132ab60df67d1f30b3076406dfc2ca3a249cb3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 31 12:10:42 2026 -0400

    Restore stdout and stderr setup specific to Windows - evidently even modern Tcl doesn't really hide all the details here.

commit 886ee76ff9da4f4f8d6cbf364a2d872fc67569cd
Author: laithaldaeef <FINALLAITH1994@GMAIL.COM>
Date:   Tue Mar 31 20:50:52 2026 +1000

    Fix missing *3 stride in BoT normal array indexing in k-g converter

commit 90f111e54e0248ec0acf757bfc58e77847989f8d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Mar 30 21:35:07 2026 -0400

    See if we can use a separate Tcl interp to allow Tcl script search -exec running

commit 24a4603b39a7cece23a8bc7ed5cf9a4eacca368e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Mar 30 20:52:23 2026 -0400

    Fix Tcl channel blocking in stdin_input and std_out_or_err
    
    Got Copilot to reproduce this one.
    
    Root cause: Tcl_Read(chan, buf, N) on a blocking Tcl channel uses
    DoRead(allowShortReads=0), which loops calling read() until exactly N
    bytes accumulate — unlike POSIX read() which returns whatever is
    available. This stalls two handlers:
    
    1. mged -c cbreak mode: Tcl_Read(chan, buf, BU_PAGE_SIZE=4096) fires
       for each single keypress (1 byte in cbreak mode), then spins on
       read() waiting for 4095 more bytes, permanently blocking the event
       loop. Confirmed via PTY test: stdin_input was called but
       Tcl_Read never returned.
    
    2. GUI puts test: Tcl_Read(chan, line, RT_MAXLINE=10240) reads the 5-
       byte output ("test\n") then blocks on read() on the now-empty pipe
       waiting for 10235 more bytes. Confirmed via btclsh pipe test: with
       blocking mode, handler stalled; with non-blocking, handler returned
       the available bytes immediately.
    
    Fix: set channels to non-blocking mode before registering channel
    handlers. With CHANNEL_NONBLOCKING, DoRead exits the loop when the
    buffer drains, so Tcl_Read returns whatever bytes are available.
    
    Also guard stdin_input against:
    - non-cbreak Tcl_Gets returning -1 for EAGAIN (not EOF) on a
      non-blocking channel — only call quit() when Tcl_Eof is true
    - cbreak Tcl_Read returning 0 for EAGAIN — add count <= 0 early
      return before the buf[0] sanity check to avoid bu_bomb

commit d6c1f9d5c54d68205d9f9c12d554d1c6cfd2671f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Mar 30 12:57:54 2026 -0400

    Enable async cmd output collection in MGED
    
    Tcl doesn't like mulitple threads trying to write text output at the same time,
    but our bu_log callbacks were trying to do exactly that when triggering from
    things like a multi-core raytrace.  We've been "getting away" with it for the
    most part, but severe loading on Windows in particular has been known to cause
    problems with the MGED command prompt.
    
    We alleviate that problem by launching ged_exec commands in a thread, with the
    bu_log callback set up to write safely to a separate holding area and the main
    Tcl thread doing the job of "flushing" that content periodically.
    
    One nuiance with this approach is we need to be aware that we're already inside
    a Tcl_Eval when running commands like search -exec, which can launch their own
    commands.   Allowing arbitrary nested Tcl_Eval evaluations doesn't play well in
    the Tcl environment - allowing fully arbitrary Tcl script execution in search
    -exec results in having no way to guarantee correct behavior.  To avoid this,
    we restrict search -exec to running libged commands rather than supporting
    arbitrary Tcl procs.
    
    Even with that restriction, however, there are still per-command callback hooks
    available in libged for appliations to register their own logic to - they are
    also a potential source of trouble.  So callbacks must be disabled when we're
    execing inside a search command run - a mechanism has been added to support
    this at the libged level.
    
    With the current setup, testing:
    
     search / -exec l "{}" \\;
    
    on the Generic_Twin.g example appears to complete successfully on Linux.
    
    Similarly,
    
     search ! ( -type bot -or -type comb ) -exec draw "{}" \\;.
    
    appears to draw the correct geometry.

commit 9834cf8b45ccfa5d8a6724d56b0a337b4c0679b6
Author: LorenzoSanti34 <lorenzosanti121@gmail.com>
Date:   Mon Mar 30 17:44:41 2026 +0000

    Fix ELEMENT_BEAM local variables resetting across multi-card lines
    
    The element ID and element data were declared as local variables
    inside the case block, causing them to reset on every line. When
    option cards (THICKNESS, SECTION, etc.) were processed, the element
    ID was lost and options were written to an empty element.
    
    Replace local eid with persistent elementId declared alongside other
    state variables. Update option handlers to modify the stored element
    directly via data.elements[elementId] instead of overwriting it with
    an empty local copy.

commit b4a13df904caf9250623277e87073a73b123d9f0
Author: LorenzoSanti34 <lorenzosanti121@gmail.com>
Date:   Mon Mar 30 17:43:19 2026 +0000

    Fix ELEMENT_BEAM optionsCounter not incrementing after Card 1
    
    After parsing Card 1 of a multi-card *ELEMENT_BEAM keyword (e.g.,
    *ELEMENT_BEAM_THICKNESS), optionsCounter was not incremented. This
    caused Card 2 (the options data) to re-enter the Card 1 branch,
    failing with "Too short ELEMENT_BEAM" since the options card has
    fewer tokens than expected for Card 1.
    
    Increment optionsCounter after Card 1 when beam options exist, so
    subsequent cards are correctly routed to the options branch. Also
    reset optionsCounter to 0 after all options are consumed so the
    next element's Card 1 is parsed correctly.

commit 291e668a9e305d0f0a150a904651f4342dc29929
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Mar 28 00:27:43 2026 -0400

    More thoughts about the multithreaded I/O issue

commit e226ce54a0c67705351d0b480c8de46b491f8442
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 27 16:22:04 2026 -0400

    Whoops - incorrect view axes file rename

commit c4f8c502b0aa51609712653e73070c64419bc304
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 27 15:57:07 2026 -0400

    Rename some files to avoid warnings in an MSVC compile about same-named files going to same output in Unity build

commit 85a2b4c95262f88c4a6e3c8b93c1a2e08a92f902
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 27 13:52:00 2026 -0400

    Rework MGED to use Tcl_Channel on all platforms
    
    We've wondered for a long time if we could use Tcl_Channel on all platforms to
    give us a unified answer to our I/O needs - it appears the answer is yes, at
    least on modern systems.  This commit replaces our non-Windows Tcl logic with a
    Tcl_Channel based solution.
    
    mged.c
    
        stdin channel: Tcl_GetStdChannel(TCL_STDIN) replaces
        GetStdHandle(STD_INPUT_HANDLE) / Tcl_MakeFileChannel(STDIN_FILENO)
        — the canonical cross-platform way to get Tcl's stdin.  Note that
        Tcl_MakeFileChannel on Windows expects a native HANDLE, not a CRT,
        so we still need to use _get_osfhandle() on Windows
    
        stdin reads: Tcl_Gets(chan) / Tcl_Read(chan) / Tcl_Eof(chan)
        throughout, replacing the split between bu_vls_gets(stdin) (Linux)
        and Tcl_Gets(chan) (Windows)
    
        Completed the cbreak newline handler — the USE_TCL_CHAN branch had
        /*XXX Nothing yet */ here, meaning commands typed in cbreak mode
        never executed on Windows
    
        GUI stdout/stderr pipe: the Windows CreatePipe/HANDLE path is
        removed; the POSIX pipe()/dup() approach (already behind HAVE_PIPE)
        works on all platforms including Windows CRT
    
        Guard semantics corrected: #ifndef USE_TCL_CHAN → #ifdef HAVE_PIPE
        for pipe setup/teardown; use HAVE_WINDOWS_H for cbreak terminal
        control and _get_osfhandle(fd) (which is the actual platform
        distinction)
    
        Removed unused fd field from stdio_data struct; libtermio.h include
        made unconditional
    
    fbserv.c
    
        fbserv_set_port: replaces POSIX-only pkg_permserver + Tcl_CreateFileHandler
        with Tcl_OpenTcpServer (cross-platform, callback-based TCP accept)
    
        fbserv_new_client_handler: unified to always use Tcl_TcpServerAcceptProc
        signature (ClientData, Tcl_Channel, char*, int) as required by
        Tcl_OpenTcpServer; extracts the OS fd via Tcl_GetChannelHandle to
        construct the pkg_conn
    
        fbserv_new_client / fbserv_drop_client: Tcl_CreateFileHandler/Tcl_DeleteFileHandler
        replaced with Tcl_CreateChannelHandler/Tcl_DeleteChannelHandler + Tcl_Close
    
        fbserv_makeconn and the c_chan/c_handler client fields are now always compiled in (no guards)
    
    mged_dm.h
    
        #ifdef USE_TCL_CHAN guards removed from struct client (c_chan, c_handler)
        and struct mged_dm (dm_netchan) — fields always present

commit e014fd420dc024e50ac89f21694f6d5b75de41c0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 27 09:32:29 2026 -0400

    Regress targets may depend on db targets - do this block after db is added

commit 71b801bf6c2166b7b8f486583e2e3f6646eb1862
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 27 08:54:08 2026 -0400

    Exclude various libbu files from Unity building, enable by default
    
    Still haven't narrowed down exactly which file or files are the problem in
    libbu, but if we exclude this set from the libbu Unity build we appear to have
    success on the CI Windows runner that was previously failing.  Good enough -
    this still gets most of the libbu files into a unity build, which is enough to
    help improve our build times.

commit dbc6504d6acc63a5af3cf69619f15b7fe916ec53
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Mar 26 17:04:14 2026 -0400

    Hmm.  CI testing suggests it's libbu that's having the issue in Windows UNITY release building

commit 80437037d33dda42daf8ec0ba309830c97ad6e63
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Mar 26 16:37:35 2026 -0400

    Various adjustments for Unity building
    
    Consolidate OSX signal.h NSIG workaround for MGED
    
    Add some undefs to help with winnt.h conflicts in Windows Unity builds
    
    More min/max guarding - make sure winsock2 doesn't mess with min/max
    
    We don't want to include the init files - too much chance of something going
    wrong.  For now, we are disabling all of the unity builds to allow this to
    function on Windows, but we would like to understand why it's not working
    
    Adjust some files to clear unity build errors and avoid the need to SKIP them

commit ac797cecd01c4fff8d7502ae9ced3cb1d32029ef
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Mar 26 12:43:43 2026 -0400

    remove globals from fb ged commands, rename bot global in wdb_importFg4Section

commit f64dcec59be05eab39d53020561276252ff546f1
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Mar 25 16:38:39 2026 -0400

    add option to allow specifying density file to gqa

commit b212dc2e90e33904d31707cfa0f6a521c15133bd
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Mar 24 14:48:02 2026 -0400

    make adjusting the options table easier
    
    re-indexing the full array to add / remove options is annoying

commit e5ec165089f65eac2e0acca68fdfe87ff228ca7e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 24 13:03:07 2026 -0400

    Nope, not ready yet on Mac or Windows

commit 62046fae14f533117fa641b759d8c4c1fcbee83e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 24 10:30:46 2026 -0400

    Turn on UNITY building by default
    
    We can always restore the OFF default if need be, but the speedup during
    building is proving to be quite handy in practice.

commit e6b9ba54b25dd8a95cfbe441259caa465b80aa76
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 24 09:34:38 2026 -0400

    Update librt editing code to match latest experimental work
    
    This code is still not active in MGED editing, so it's not user impacting as
    yet.  We are committing current progress to help minimize the differences (and
    corresponding rebasing difficulties) between main and the working branches.
    
    Once the tor pattern was established, AI was able to add scaffolding for the
    other primitives, but they have not yet been individually checked and verified
    (and they will need to be.)

commit 7f63884d39494213a038c9455887841cebb83401
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Mar 24 09:15:30 2026 -0400

    better help printing
    
    extra or unknown options were being silently ignored and returning as
    opt_parse does not return an error nor set a message - giving no user
    feedback

commit a29fed34069788fdbaf2d16f05a34cd9d7078846
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Mon Mar 23 16:05:05 2026 -0400

    fix gist crashing with bad units

commit 9ceed520d9142564e6f88811516826a119f17cc7
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Mon Mar 23 11:41:13 2026 -0400

    fix 'search -type sph'

commit 180fd8b81bbaeffb23db1ed5f259cb22da6deb1e
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Fri Mar 13 10:09:44 2026 -0400

    add ability to distinguish sphs from ells

commit 2e4cdc0b29e3104491d434e4cae694d775f34be7
Author: Rupesh <rupeshkuneed@gmail.com>
Date:   Sat Mar 21 11:30:59 2026 +0530

    Fix minor bugs and code quality issues in art/appleseed renderer
    
    - brlcadplugin.cpp: Fix incorrect header comment (ARTPLUGIN -> BRLCADPLUGIN)
    - brlcadplugin.cpp: Fix char loop variable overflow in get_objects() for
      object counts > 127 (char is signed), changed to int
    - art.cpp: Fix float literal (200.0) assigned to size_t variable
      light_intensity, changed to integer literal (200)
    - art.cpp: Fix grammar 'a orthographic' -> 'an orthographic' in comment
    - art.cpp: Fix missing apostrophe in error messages ('Dont' -> 'Don''t')
      across 5 bu_bomb() calls

commit 11eecfe986b9c5eab550ed99bd060303eac77ed4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 20 23:40:28 2026 -0400

    Replace OpenMesh calls with embedded smoothing and subd
    
    We were only using OpenMesh for a couple of features, which ultimately
    proved amenable to refactoring into stand-alone headers.  We can avoid
    needing to worry about OpenMesh as a dependency this way.

commit fb7c7be9bedc1adc54f08e6df7c2e8b8bc226f9a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 20 20:25:27 2026 -0400

    Need stdio.h for some of the jpeglib.h API evidently, at least with a system install...

commit 5657e2d15035b3f82782a4cc0c82a02166ea9c48
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 20 10:21:22 2026 -0400

    Add JPEG support to libicv (lets rt write out .jpg images)
    
    We already have libjpeg in bext anyway for GDAL, so we might as well make it
    available for use in libicv.  Note that a JPEG write cannot save every original
    pixel exactly in the JPEG output file no matter what quality setting we use -
    doing so is not possible due to the nature of the JPEG format itself.  If you
    need full preservation, you'll still want to use PNG.  We try to strike a
    balance between file size and quality with a 90% quality and disabling chroma
    subsampling (for the moment at least, libicv does not expose quality settings
    for image writes) - however, those specific settings are not a guaranteed part
    of the libicv JPEG output API.
    
    Bottom line - if you need full quality, use PNG.  JPEG is available if you want
    "smaller and probably good enough".

commit eb71eb7275413d41b4f41cf13bca3f6fc1fdf0f2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 17 23:27:29 2026 -0400

    Performance adjustments for the dsp primitive

commit 9726413ecd850b04bdad588dc6853f96fc210981
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 17 21:22:20 2026 -0400

    Convert DocBook documentation to AsciiDoc
    
    Leveraging a C++ translation of the asciidoctor tool called asciiquack,
    we are converting our DocBook documentation to the AsciiDoc format.
    
    There are a number of motivations for this - first and foremost, it has
    not proven to be a particularly friendly editing format for contributors
    to use.  Second, DocBook is not particularly well integrated into
    various modern web frameworks for online documentation that we would
    like to be able to leverage.  Third, our processing toolchain for
    DocBook -> html/man formats (the two we use in practice) was quite heavy
    and complex.  We had done some work to produce PDF files, but it is not
    an ability used in practice and requires tools not part of our
    dependency management chain.
    
    We had previously been reluctant to migrate to AsciiDoc due to its own
    tooling requiring a sizable ecosystem of dependencies also not part of
    our toolchain, but the Ruby->C++ translation of asciidoctor demonstrated
    enough capability to meet our basic in-repository needs.  Accordingly,
    we can now make the transition - and set the stage properly to leverage
    online infrastructure more effectively.  (Not to mention having a more
    approachable source format for potential contributors.)
    
    For the moment, we are simply not adding PDF conversion support -
    asciiquack does enable it at a basic level, but until there is a
    demonstrated need for it we'll stick with just the formats that are
    known to have active use.

commit e98c76941d82fd3853b8d4d7870a665d8bf48e1d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Mar 16 15:26:38 2026 -0400

    Mention clone changes in NEWS

commit f6ad1dc408f6c3afe89f83e6ccd49848582930e4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Mar 16 13:11:35 2026 -0400

    Improve clone progress bar logic and man page

commit 1a7d0e92d9a93faf6cf92689500463b9316ab4bc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 6 17:09:00 2026 -0500

    Fold MGED pattern tool functionality into clone command
    
    Progress bar callback still not working quite right.

commit 53563dcc39048cb2e0dc04ab5e3b8f229cbe5d1c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Mar 16 15:25:00 2026 -0400

    Improve search's -above option performance
    
    Using the -above option in a search filter specification previously resulted in
    O(n^2) performance behavior - basically unusable for large CSG models.  This
    commit optimized the common case (non-nested -above specifications) to reduce
    that to O((n*d) where d is the tree depth.

commit d601de85cba953251be56dcbbe0949fa5c616ffb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Mar 16 13:13:42 2026 -0400

    Improvements to npush
    
    Get depth and region halting options working, use stable
    keys for more reliable tree walking.

commit cf97e6fef151f00307fcab3c0f808cd0fb6b81ae
Merge: 5f4a0c066b 757a3dd5a5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 13 21:58:24 2026 -0400

    Merge rel-7-42-2 changes back into main
    
    Also update version numbers

commit 5f4a0c066b3d37c3b4371f46b3b9e068b465cccb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 13 09:37:32 2026 -0400

    Exempt brledit.cpp from bu_setprogname check - intentionally separate, doesn't need dirs

commit dc2cca5853d24d9dea90f2cecb61529e04b42fb7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Mar 12 16:49:14 2026 -0400

    Move brledit to libbu - for bu_editor to work reliably, it has to be there for anything that might call bu_editor - which means it has to be there for libbu.

commit 433722851eb94d7cd0f1c24808191e32e3e742cd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Mar 12 15:16:57 2026 -0400

    Move brledit to src/util, set up its license file - it needs to be installed as the last resort editor

commit d0de263e100a49e67a4e339c8a69ba084d40d4e1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Mar 11 23:15:01 2026 -0400

    hah, can consider those investigations done.

commit df16ccaeb3c3593a714e17dc5484c45f3bf2d80b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Mar 11 14:42:16 2026 -0400

    Address race condition in libbu semaphore system
    
    This manifested on FreeBSD - in bu_semaphore_init(), there is an
    nsemaphores <= bu_nsemaphores check.  However, if bu_nsemaphores
    gets lowered by a thread with stale information, it can result in higher
    value semaphores being re-initialized.  Once reinitialized, the code
    that originally thought it had the semaphore no longer owns it since
    it has been reset.  On Linux this evidently is not a fatal failure,
    but on BSD we get an EPERM return.
    
    Fix is to only update bu_nsemaphores count if the proposed nsemaphores
    count update is an increase over the number already set, so we never
    accidentally re-initialize already initialized semaphores.

commit bd9fb72146d53312538fb41c7cde3fc880240e6c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 10 14:32:52 2026 -0400

    Fix potential negative cell index in DSP
    
    The initial cell computation cX = (minpt[X] - bbmin[X]) / cs only clamped the
    upper bound, so a floating-point entry point landing slightly outside the
    bounding box would produce a negative index into dspb_children[].
    Fixed by clamping to valid indicies.

commit 12185dd7f9a1cbbdca23811d58b560143cbab204
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 10 14:26:11 2026 -0400

    Fix problems in libbn's noise subsystem (impacts some rt shaders)
    
    We've long observed problems in multithreaded raytracing when using shaders
    leveraging the libbn noise system, but hadn't tracked down the issue.  AI
    analysis zeroed in on two problems:
    
    The while-loop folding large coordinates into [0, LLONG_MAX] could not converge
    for values > ~1.66e35: at that scale max2x - dst[i] equals -dst[i] exactly in
    double precision, so the fold oscillates forever. A secondary issue: values
    above INT_MAX caused ip[i] = (int)floor(p[i]) to overflow, yielding garbage
    hash indices and non-finite noise output.
    
    Fix: Replace the while-loop with a single fmod. Since Hash3d already masks with
    & 0xfff (period = TABLE_SIZE = 4096), folding into [0, TABLE_SIZE) is
    semantically equivalent and safe — fmod preserves the fractional part
    (fmod(x,n) - floor(fmod(x,n)) == x - floor(x) for integer n) and is O(1) for
    any finite input.
    
    The "optimistic unsynchronized first scan" read etbl and etbl_next without
    holding sem_noise. Concurrently, build_spec_tbl() (which holds sem_noise) can
    call bu_realloc(etbl, …), freeing the buffer the first thread is reading. This
    use-after-free corrupts state and can manifest as rt worker threads hanging or
    crashing.
    
    Fix: Hold sem_noise for the entire lookup — single scan, no double-checked
    locking.
    
    Unit tests were also added to libbn for both issues.

commit fd68159bca94fb0c79675867cebd33607a2ef314
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Mar 10 09:41:56 2026 -0400

    Only guard the define that actually needs rt_wdb

commit dc18b9458d2499e26cdace1d0690e9fa61b72e98
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 6 20:31:31 2026 -0500

    Eliminate swrast_getDisplayImage side effects, make tests more robust

commit 631fd28780b3414f6b23c3f0580a46817ac5e491
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Mar 6 17:06:32 2026 -0500

    Help screengrab work with osmesa in mged -c

commit 9bbfc183763ff4484efabe9be643ff7caccb3a61
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Mar 4 21:24:55 2026 -0500

    Remove the Co3Ne method from facetize
    
    OK, I'm convinced - this algorithm really isn't designed to produce
    manifold output - it's "close but not really" and I've not been able to
    figure out a way to reliably construct a manifold from its outputs.
    That means for the facetize use case it's basically unusable, and SPSR
    is our *actual* sometimes-viable fallback algorithm.  Adding complexity
    for no value - yank it.

commit 0e8c00d24970f3f4b7a6c56730d23297ad96b187
Merge: 23e4fe2c6d d80116169a
Author: Daniel Rossberg <33295041+drossberg@users.noreply.github.com>
Date:   Wed Mar 4 13:50:43 2026 +0100

    final merge of pull request #203 from BraghinAndrea

commit d80116169a1eaeb7d793bb252d2da8a47915ffc0
Author: Daniel Rossberg <33295041+drossberg@users.noreply.github.com>
Date:   Wed Mar 4 13:50:12 2026 +0100

    fixed the build issues
    
    - std::find() is declared in algorithm
    - multiple dfeclaration of a variable
    - unused enum element

commit ad401e4ff17751e829582802041983b0b794cc3c
Merge: 23e4fe2c6d 7e5466a594
Author: Daniel Rossberg <33295041+drossberg@users.noreply.github.com>
Date:   Wed Mar 4 13:32:08 2026 +0100

    merge pull request #203 "Update k_parser.cpp"
    the logic for handling section shell length and the error related to it in case of multiple sections under the same keyword

commit 23e4fe2c6ddbb591e9ee0cc74cce8eef4fe10ebf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Mar 2 11:11:12 2026 -0500

    Reapply "Complete removal of deprecated redblack tree from libbu"
    
    Patch releae is being handled separately - yank deprecated redblack tree
    implementation.
    
    This reverts commit de35eab67b37bfea998b9abba545c20dc299eb26.

commit 5d275223e6907c67eedb1118f09895eacbb6413e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Feb 28 22:12:59 2026 -0500

    Add optional unity building for faster compilation
    
    Added BRLCAD_ENABLE_UNITY_BUILD option to CMake to utilize modern
    CMake's ability to combine source files for faster compilation.  OFf by
    default while we shake down, but in initial testing on Linux with Ninja
    it shaves about 25% off of the overall build time.

commit e3426fb8015a80a1a62d94a2676223845a566924
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Feb 28 16:06:17 2026 -0500

    Have the f_bv_35_25 and f_bv_45_45 functions call their actual matching C functions

commit 368ea4f68ac459ccfdfeba5b057fda3d25a00c42
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Feb 26 15:46:44 2026 -0500

    more sane sanity check
    
    check more than just the last face index

commit 8a44c1bd82bbeecd8f6a4ab7d54002999bced30e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Feb 19 13:12:33 2026 -0500

    document how to get a list of all commands registered with the tcl interpreter

commit 037d3e28b4cad0058bd81250bb739ab8fd162d9a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Feb 17 11:27:38 2026 -0500

    Right, the Qt6 approach won't work with Qt5

commit 0f43c41d00c1c6844eeeec156982bab521732d1e
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Tue Feb 17 10:33:04 2026 -0500

    Update search.xml
    
    add a note about wildcards and escape characters

commit 99b351b73362c0fdcc46682e200a1b9dd8c51894
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Feb 11 10:16:18 2026 -0500

    Updates for warnings and deprecations with newer Qt6

commit 236fd716061e6702dfb1e640f412bdf98ef4066d
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Feb 13 13:36:59 2026 -0500

    Update in.xml
    
    add datum solid type, remove a bunch of extra (and inconsistent) periods

commit 8a1256dfde8a37c9b1fb96d9844f5e152a474b6c
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Feb 13 13:24:37 2026 -0500

    Update search.xml
    
    add note about default behavior for clarity

commit 4c2eeae618fa79a9cb9d043edb884cb0f911445e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Feb 13 11:46:46 2026 -0500

    Migrate libged to using bu_plugin.h, enable static+dynamic setup.
    
    This represents a major cleanup of the libged plugin architecture.  Previously,
    all commands were loaded dynamically as individual shared objects, which
    significantly slowed program launches - particularly during debugging.  With
    this new setup, most commands are built directly into libged during compile
    (although they are still architected as plugins and can optionally be built
    that way.)
    
    A new macro scheme has been established to reduce the verbosity of defining the
    plugin logic - each command in a plugin has a single definition line used for
    both static and dynamic modes.  Most commands can use the simple "X" form of
    the definition (there are many examples) but in a few cases the command name
    may preclude using the short form - in that case, a slightly more explicit
    XID form of the command definition macro can be used.  (The short form is
    more sensitive to C/C++ name collisions with command names, or command names
    that aren't valid in C - examples like 3ptarb, ?, dup and stat show how to
    use XID to handle these cases.)
    
    We are using a private libbu abstraction of the core plugin mechanisms to set
    the stage for allowing multiple libraries to have their own plugin systems
    without needing to duplicate the somewhat finicky cross platform logic.  The
    static bundling mechanism is specific to libged, because it requires code
    awareness via a scanner in order to allow staticly compiled-in commands to work
    reliably, but the dynamic mechanisms are more universal and bu_plugin.h has
    been deliberately architected with an eye towards making it simpler to define
    such systems.

commit 6f9a28aa81b5eb74680db51dd9801cc74043ed44
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Feb 13 11:39:34 2026 -0500

    Initial test of a mechanism to allow for either built-in or plugin loading of cmds.

commit 11cfb60ccb6e0410c52f64561050cd5f52ca688e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Feb 13 11:12:46 2026 -0500

    Fix BRL-CAD summary reporting when Config.cmake is involved
    
    We don't always get variables - sometimes we get full-up paths to check as
    well. Check the changed items both as paths and variables, since they can be
    either.

commit 0a8a286e34a6f81d3f44f84b0f1f1bac863394e3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Feb 4 10:00:05 2026 -0500

    Correct BoT raytracing behavior when starting pt inside mesh
    
    Josh found a test case (long small arb subtracted from narrow large arb) where
    the new raytracing code wasn't properly evaluating the subtraction.
    
    Turned out that the new code wasn't backing a starting ray point that was
    inside a BoT mesh out of the mesh before intersecting with the BVH tree - the
    result was that only the triangles after the start of the ray were reported.
    That in turn resulted in single hit reports that produced no solid segments -
    with nothing for boolweave to process from the subtraction solid, we got no
    subtraction in the rendering result.
    
    Fix is straightforward and consistent with how other primitives are handled -
    back the start point out along the ray for the solve so we properly get all
    triangles from a mesh intersection even when the originally specified ray pt is
    inside the mesh.
    
    This evidently didn't show up in more normal testing because it is rare for a
    starting ray point to be set up inside geometry - when the same geometry
    configuration was set up as a union rather than a subtraction it worked,
    because the staring ray point calcluated for the scene incorprated both
    bounding boxes.  The overall scene bounding calculation does not incorporate
    subtractions (since they do not contribute positive volume they're not a good
    basis for things like autoview sizing) and in most geometries that means the
    ray point is already backed up "far enough".  The corner case of a subtraction
    volume outside the overall scene was what was needed to trigger this issue.

commit fa85521fd564bca1adb033e1b38b5a6096216311
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jan 21 18:11:35 2026 -0500

    this is wrong

commit 106f5fa6e553595b11b33b888841c4dad4ee91fa
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jan 21 18:06:55 2026 -0500

    get rid of the magic number
    
    since we're now ensuring the ray origin WILL be outside of the root
    node, we can ditch the -1 magic tolerance value here and use the
    standard slab rejection criteria.
    
    Use SMALL_FASTF instead of straight up 0.0 to give us a little
    fuzz protection.

commit 0cf43403e8a3746b6312535e5b0ba884e0f0272e
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jan 21 18:00:10 2026 -0500

    only backup our ray pt if we need to
    
    the rp->r_min has already accounted for if the ray is inside the
    bounding sphere. We can us it directly to back up rather than blindly
    applying a bounding sphere diameter backout. This has the added
    benefit of keeping our bot_shot_hlbvh_flat() function signature clean
    of the soltab.
    
    we can also do the backout in-line to avoid the tiny load/store overhead
    and improve formula readability.

commit 042338c49cbc3b72658ff5d4960f24de997a15fa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jan 21 15:50:03 2026 -0500

    For the initial fast culling test, back our r_pt out in the inverse ray direction.
    
    Also try avoiding NaNs, but not sure this will make a major difference either
    way performance wise.

commit 399356125e8429125aad10ae7f2461a86ecb4843
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jan 23 14:13:12 2026 -0500

    If we don't have a database open, report that.

commit 07e4fda73b3f2efcc3b593d3acc60ef1924aafd8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jan 23 11:14:12 2026 -0500

    Revert "Checkpoint some work on sanity checking comb member matrices in asc2g v4 reading.  Not enabled yet."
    
    Having stashed it, back out the v4 matrix check work - since it adds libbn API,
    should only do it if there is a real feature addition to justify it.
    
    This reverts commit 408174d0b939c6c097293723da21384ddc58ee5c.

commit 408174d0b939c6c097293723da21384ddc58ee5c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jan 23 11:07:26 2026 -0500

    Checkpoint some work on sanity checking comb member matrices in asc2g v4 reading.  Not enabled yet.

commit db8e79d886dd12e417930deb9eee8d978aaf310b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jan 21 16:56:27 2026 -0500

    While I'm at it, do the same check in g2asc

commit 12ec562e6cdb1c9e7d910392e87f0831e100f7f1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jan 21 16:52:18 2026 -0500

    Update asc2g to not overwrite input file if specified as output
    
    Ugh.  Let's not do that again.  Sanity check that the user didn't
    specify the input file as the output file.  Previously that would
    dump output to the input file and corrupt it.

commit fb2757bee85730fe39eb3a8405300f573de512f7
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jan 20 14:44:01 2026 -0500

    improve readability
    
    probably way overkill on the comments but oh well

commit 42ce6f5d64c1ac1fb0a335d1fbc934ef6e0c7014
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jan 20 13:27:54 2026 -0500

    pretty sure we want don't want bitwise

commit 3eba161f7b0aa5e825b16b85bf8fcb5ec7a817b0
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jan 20 13:26:42 2026 -0500

    make sure we're not accidentally wiping out the ray

commit e7c5ca378047573b00f806dc6c0f3177cd07b610
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jan 12 15:11:40 2026 -0500

    Fix default behavior of open cmd when creating non-extant files
    
    Back in commit e0384c3abc29a6b4 in 2023, I added a -c option to open for
    creating files. In the process, I inadvertantly broke the default ged open
    behavior when supplied with a filename that didn't yet exist, and various uses
    of the opendb command in MGED and Archer depended on that.
    
    This restores the "create by default" behavior.  To allow for cases were we
    don't want that, we need to add an "o" option to disable it and only open
    existing files - the default behavior needs to remain create.  We'll leave
    the -c option for compatibility, since it is harmless.

commit 3707905ecdca2be7cde5986032c14c8e862d1c01
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jan 9 22:02:27 2026 -0500

    Not sure about the other two, but exposed region count is user visible.

commit f63f9229c5eff437bbfe17c20c4853877e217810
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jan 9 22:00:43 2026 -0500

    Last of the AI spotted issues in viewarea.c - need to change what we're counting based on the type.

commit e7124a9d47a5862529ee52033e77c7a21ca7c810
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jan 9 21:54:57 2026 -0500

    Don't write into buffer[l-1] if l == 0

commit 092ed28518dc028f6c1b0f79a083ac1bb750bd44
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jan 9 21:29:33 2026 -0500

    Use zu for size_t printing

commit 252e76fd4ee468f7a54cee94a326d481954c9e0a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jan 7 15:30:54 2026 -0500

    Add a few include relocations to help minimize gedcmds diff

commit e2275bbff79ddcb7151f61dc3bb605e55bff53bb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jan 7 15:29:23 2026 -0500

    Update brlcad_find_package to pass args
    
    We were one-off handling one of the find_package args - instead of
    doing that, add a more general approach.  Also do better about
    getting locations from imported targets.

commit e2260e257bbb0c11f0d68fdbdb0d116ae126b5f4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jan 7 15:11:54 2026 -0500

    Also have mmesh integrated now

commit f9a39703a1938b09cd0ad1ee5aef5347c01a732d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jan 7 15:10:03 2026 -0500

    Remove a couple of completed TODO items.

commit 3681a66dba642d55fa1a5c108f5e8de246f878b4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jan 7 11:39:11 2026 -0500

    List README.adoc for CMake

commit a01688ff2d7750a8993b43e277574228310355dc
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Wed Jan 7 10:22:32 2026 -0500

    Update lc.xml
    
    update notes for flags to reflect actual behavior (-d flag claims to only list 1 region per id but actually is designed to list only duplicate ids (regions that share ids)).

commit 493801fb450219f20a64ab9eb0713221a0c366d3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jan 6 19:23:46 2026 -0500

    stub in an adoc test file.
    
    will be better to git mv the main README to preserve history if this pans out.

commit e7fb6619591d342c295c6249d678a8645d9ee99f
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Jan 5 10:05:29 2026 -0500

    Update gqa.xml
    
    add note on density file order

commit 446c9604feaecf9a90c58213e65f06f6a0aa65cf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jan 2 15:39:26 2026 -0500

    Fix rle image conversion support.  Remove utahrle dependency.
    
    Looks like our previous RLE image conversion integration wasn't quite right.  While we're at this,
    also implment a basic single-header read/write implementation of the RLE image specification so we
    can eliminate the need to bundled libutahrle.  RLE is a very rare image format in the wild these
    days, and it's not terribly complex, so rather than require a dependency for it (which we are also
    maintaining, as there is no active upstream) consolidate support to a single built-in header file
    implemented from the spec.

commit 6662c3318e3460720adcbab0f73c0c25b623763c
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Dec 31 15:06:35 2025 -0500

    document Josh's changes
    
    7cc0f24a162ee601cd824461760df67f572a88d1
    b570d5dc2e46b8d83e18f4e5a6d25776d8d44dba
    cbe6c1d6cb1c3811e2b4286bccd5ed30cff5edeb
    091e4c881df57c95380d1452004cf22ed870e395
    b3cccb00e93dc5f635c3b9219844f5f2768ce88a
    561a8e50a79a69b771699f7814f8bf5e0e812f3a
    a7cf1dc61237a73a637ad4ea8b865079d05327fd
    f29054f9e133d177822a907ce54219bbf15728b3
    908911eb6aeea1ba6a9695cfd0fdcd41e53c5ee9
    27b23a1c1590a8a835f8134f5abf3f5ca43ed4eb

commit a4ec1112b1d019db92afd7ba7b2587185ec8231b
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Dec 31 13:34:48 2025 -0500

    quell deprecated usage warning

commit b90147b26d61529d170874cc705d44a3462dba4f
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 14:34:39 2025 -0500

    Update helplib.tcl

commit 27b23a1c1590a8a835f8134f5abf3f5ca43ed4eb
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 13:29:33 2025 -0500

    Update view.xml
    
    expand view save notes (with options listed out) and add example

commit 0e17a6386d2ea0763a5d85e6c7f7cb6bbda9b929
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Mon Dec 29 12:56:55 2025 -0500

    want a literal ampersand here

commit 44c5c2fbf7d2b84dca4e5a12aaad85274975ef55
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 12:49:20 2025 -0500

    Update get.xml
    
    reword name description to match syntax

commit 908911eb6aeea1ba6a9695cfd0fdcd41e53c5ee9
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 12:29:52 2025 -0500

    Update get.xml
    
    add notes about adjust

commit b466ae0e7af483e97cc838cfb44e111251a51801
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 12:27:15 2025 -0500

    Update CMakeLists.txt
    
    add new adjust page

commit f29054f9e133d177822a907ce54219bbf15728b3
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 12:26:54 2025 -0500

    Create adjust.xml
    
    add new page for adjust

commit a7cf1dc61237a73a637ad4ea8b865079d05327fd
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 12:12:14 2025 -0500

    Update helplib.tcl
    
    update adjust to show that it works on solid parameters (not on metadata attributes). Make a note on get for the same (although it works on some basic attr as well (default region ones I think))

commit 561a8e50a79a69b771699f7814f8bf5e0e812f3a
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 11:52:52 2025 -0500

    Update draw.xml
    
    note on what -A -o does

commit b3cccb00e93dc5f635c3b9219844f5f2768ce88a
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 11:46:38 2025 -0500

    Update B.xml
    
    Add flags to match draw command and quick note on -S and -m1.

commit 091e4c881df57c95380d1452004cf22ed870e395
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 11:39:07 2025 -0500

    Update draw.xml
    
    fix spacing issue after -A -o

commit cbe6c1d6cb1c3811e2b4286bccd5ed30cff5edeb
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 11:02:48 2025 -0500

    Update voxelize.xml
    
    adjust example to be 100 size and note defaults for each value.

commit b570d5dc2e46b8d83e18f4e5a6d25776d8d44dba
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 10:29:56 2025 -0500

    Update gqa.cpp
    
    add p in options after -A (for display with -h)

commit 7cc0f24a162ee601cd824461760df67f572a88d1
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Dec 29 10:17:18 2025 -0500

    Update center.xml
    
    fix typo (extra > in example)

commit 8706832f069615632434bcf5e3780262e781c497
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Dec 23 16:05:55 2025 -0500

    another stab at better scaling gqa grid
    
    We need to always work in mm. Otherwise we restrict our grid to 1 UNIT -
    ie if we're working in m, the grid can only go down to 1m = 1000mm (is a
    very loose grid).
    
    Also, set the grid lower bound to be 1/10th the upper to see if we can
    get some cheap convergence and higher accuracy value without sacrificing
    too much speed.
    NOTE: this value is still largely arbitrary and would be nice to verify
    how much error this is introducing over a much slower precision run.

commit 60f05e8bd99db0659e6b9683bb4e2ea57de8dcaf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Dec 19 13:36:48 2025 -0500

    Try using -w instead of pragmas for lemon srcs

commit 8745b38c6b040bdc9b1d805b945f24c5af772939
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Dec 18 15:36:00 2025 -0500

    no peaking into yytos - not portable across versions

commit c43d90f3dfc24a9b06f9ebcd4db726e884f3a8a4
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Dec 18 13:48:45 2025 -0500

    fix indices

commit be8a902be50f252ddba365dc346a29c2eaa5152b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Dec 18 12:05:15 2025 -0500

    It would be better to deal with this using -w, but until I figure out how get things building.

commit 38531dcc372ecbf38f16deddf777c95b861217f6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Dec 18 07:24:18 2025 -0500

    Suppress the unused-parameter warning in lemon generated code
    
    The error message code tried to work around this by using the variable
    in question, but that is proving to be unreliable across different
    versions of lemon - using yyminor appears to intrude on data structures
    that lemon treats as internal, and what works with one version won't
    work with another.  Instead, just use the pragmas to avoid the
    compilation failure.

commit bc176ddd81f1d91e1e24b6b2160ce7bde9d24133
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Dec 10 09:30:28 2025 -0500

    Update bext sha1 hash to get correct expparse patch

commit 22c963434199b91327de2e5b31ba2a1f3f47368b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Dec 10 09:17:36 2025 -0500

    Need *full* dependency setup for the source archives check
    
    By bad luck, we had a cache miss in the bext CI dependencies due to an upstream
    commit just before a Source Archives check fired, and it fell to Source
    Archives to produce a new bext.  Problem was, the Qt dependencies weren't
    present, so it couldn't do so successfully - build failed.
    
    The way configure is set up, we *need* bext to be able to proceed, even with
    just a Source Archives test - and changing that would be very difficult/
    invasive for such a minor convience enhancment - we can already do the check,
    as long as bext is set up correctly, and we need that for basically all other
    cases anyway.  Better to just make sure we have the deps uniformly, so this can
    succeed if we hit this corner case again.

commit 0dbd82a10040edc45754242ab36ed130a0259fb8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Dec 9 17:11:06 2025 -0500

    Updates to work with modern lemon

commit 1e685ab4fe8d6b4dec841a6b2220b2b2d2155a62
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Dec 4 15:05:13 2025 -0500

    Remove outdated TODO entry - we've switched to mmesh

commit 48a87e7e134c84a71f46db95c59adbaf68f048be
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Nov 26 10:21:29 2025 -0500

    Fix static initialization order issues in libged/libdm plugin registries
    
    Global registry objects (using STL containers) in libged and libdm were defined
    as static variables at file scope. This risks "static initialization order
    fiasco" - static constructors from other translation units (TUs) may access the
    registries before they are initialized, causing crashes or undefined behavior,
    especially in static builds with plugins.
    
    The solution is to convert global registry objects to function-local static
    "Meyers singletons". All registry accesses now use singleton getter functions,
    ensuring construction is ordered and thread-safe by C++11 guarantees.
    
    With this approach function-local statics are initialized on first use,
    guaranteeing that any plugin constructor or TU macro accessing the registry
    always gets a fully constructed object, regardless of cross-TU initialization
    order. This makes static and dynamic plugin registration robust across all
    platforms and build/link scenarios.

commit 35bf1f3ca0ce283719037b2060cea7cd1fe2e032
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 25 16:28:46 2025 -0500

    Fixed a crash with bot -h when we don't have a database open - no reason we can't still print help.

commit 9c6710bc05daf8774ab159142af3a1437d1ea34c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 25 12:06:00 2025 -0500

    Remove embedded ports of Geometric Tools algorithms
    
    With bext, we have the upstream project from which these algorithm
    implementations were orignially derived. Simplify our own code by directly
    using the upstream and removing the translations - upstream is actively
    maintained, so in addition to code simplification we will benefit from any
    bug fixes and improvements they make.

commit 554ff0380f443c4028d1fde8004518dfb72635ec
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Nov 21 23:06:38 2025 -0500

    Update and enhance GED graph cmd
    
    It's been a long time since this was tried, and Adaptagrams has apparently
    changed quite a bit.  This update attempts to get things running with a newer
    version of Adaptagrams (assuming a new CMake build system's outputs for
    find_package).
    
    We also add a basic SVG output mode (which is the default now) that uses higher
    level Adaptagrams layouts to explore more visualization options.  This output
    doesn't need the Tk window - any SVG viewer should be able to see the outputs,
    and they do display in Firefox.
    
    The actual motivation for touching this right now is to try and get a GED
    plugin that depends on an LGPL library (and isn't centrally important
    functionality) working to serve as an "always build as a plugin" test case.
    The CMake build of Adaptagrams is a prelude to getting it running on Windows,
    since any plugin adjustments will need to be tested there, but that will also
    set the stage for making the graph command available reliably there as well
    and lay the foundation for doing more interesting things with this capability.

commit a788c096152fe0181402ab05b08f4744f9c4a250
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Nov 21 16:33:56 2025 -0500

    Fix libged (i.e. MGED's) handling of nirt -c option to disable ray point backout

commit 45cad0bd6fb0e8fff343eb8d5909d5aaf64fa924
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 18 15:21:58 2025 -0500

    Add NEWS item for gdiff -G similarity grouping mode

commit 06e65f520f07207e59e0f5bd1ff07bb21e78aecf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 18 15:21:01 2025 -0500

    Improve formatting of gdiff group output.

commit 35902eb18b6b557f74f73dc88f12898b7c25e1ff
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 18 12:51:23 2025 -0500

    Update gdiff man page

commit 648318e0b01ee607fe9998deb0424de64e95394f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 18 11:33:32 2025 -0500

    Sort the top level for reporting purposes

commit bea41dd03f25c771d6176aced297aa12867bc596
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 18 10:37:10 2025 -0500

    Sync verbosity in local opt copy

commit a519bfebb10548daab3531c18fcc885e6a84352d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 18 10:32:44 2025 -0500

    Improve output column alignment

commit 03d8ac73f205efb0e330feaa0f5bb4819be85207
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 18 10:32:28 2025 -0500

    Verbose reporting support

commit 5f89d68431ee199fc47b82addbcf1cbc6dd83205
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 18 09:58:26 2025 -0500

    Remove SsdeepNET license and unused header, add TLSH license

commit a5d39900361ec2f762dbc4d23c18a2a75e2dfc20
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Nov 17 17:11:31 2025 -0500

    Add cached hashes read/write
    
    In order to support redoing diffing without forcing an
    expensive recalculation of hashing values every time,
    we want to support writing out and reading back
    cached values from a file.

commit ed308be46321306d4c1d497ec679adca53eda235
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 21 16:13:38 2025 -0400

    Consolidate hashing of names and geometry, add options to gdiff

commit 9ce816166a2a79cf338148aafd93d44f804052c3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 21 15:08:47 2025 -0400

    Adjust filename bin reporting, default to slower-but-better geom check.

commit 6c649d170e53c592067c9ba3146b71b7da528b82
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 21 12:50:04 2025 -0400

    Checkpoint testing of clustering algorithms

commit 8be7434ff19ee21e981253902fcb849fb8efcadd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 21 10:45:56 2025 -0400

    If we don't have path args or file lists, check cwd

commit 54b2a479ba2dd10dc09beec12a3b855805c593ec
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 21 10:28:02 2025 -0400

    Make threading for hashing a theoretically configurable option.

commit d1dd14d0fb2f5041bbc4a6ab8627c769f0b8bada
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 21 06:27:09 2025 -0400

    Checkpoint testing for parallel speedups

commit 2ae9cf252d927b84a8416b304c7c8271a164cb65
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 21 00:03:18 2025 -0400

    Checkpoint scalability experiment

commit 794123b50c34b8e9cdef3934d9f3334441b27a2f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 20 23:28:26 2025 -0400

    Checkpoint work (AI assisted) trying to improve reporting for various options.

commit 4f0985043c0d27ff7968d0cedc576fd0798e0285
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 20 21:50:17 2025 -0400

    Sort files to process newest to oldest in order to 'seed' groups with the newest file as the key.  Seed the name data to make sure we get non-zero hashing even for short inputs.  Report all groups, even if only one member.

commit 70328079c20d5628267a9f74f414eec2c273c229
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 17 15:23:17 2025 -0400

    Remove ssdeep - not a good fit for gdiff
    
    The ssdeep algorithm is sensitive to addition/removal of data mid-file, which
    is entirely likely when comparing .g data.  tlsh seems to do better in that
    regard.

commit 37d4fe6621fcbacdff1643816d28a5a6a35e3f64
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 17 14:22:07 2025 -0400

    Checkpoint work on making grouping more flexible.

commit ba680e2fb9a3421c3e6aede59944b49bd2a0d46d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 17 11:44:18 2025 -0400

    Set up to support more options for grouping

commit e92cb441b4e088498e5292c0be74b2621c5c8d1d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 17 10:08:21 2025 -0400

    Nope, we do need to assemble the string - way faster than incremental update calls

commit 8a6dbc7505b603159e5061617c2bb3bc73e627a5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 17 09:44:32 2025 -0400

    Looks like we don't need to assemble a string.  Sort the names before hashing.

commit dfb9d8b2cd17daee00b53a5ff344ccc441d746a9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 17 09:18:25 2025 -0400

    Clear gcc warning

commit 0457b146aa0d1ad11ad6f3f61bf5cf3bbc30fd27
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 21:58:35 2025 -0400

    Stash a levenshtein routine for unsigned long long vectors.

commit 09a3b26273d8484f5e7ee05820fb7c61e4da3f77
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 21:29:49 2025 -0400

    Experiment with TLSH hashing
    
    ssdeep properties may not be a good match for what we're wanting to do
    here, so set up a version of the tlsh algorithm to test out.  Leaving
    ssdeep for now in case it ends up being useful later.
    
    May need to try out Levenshtein distance as well - current idea is to
    hash all the bu_external data of the objects with bu_data_hash, assemble
    a sorted set of all those unsigned long long values, and then treat the
    arrays of those values as input sequences for a Levenshtein distance
    calculation - that could let us get a sense of how many objects have
    changed geometry between two files. We could also independently do
    something similar instead of the hash-the-string-of-names trick we are
    currently trying...
    
    Another trick to try might be to get editing distance metrics for file
    names and pre-bin similarly named files for closer study.

commit abe4e79f775238b0750616c2c084a10ccd98759b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 17:20:26 2025 -0400

    test name-only check

commit 92c762ea7b1b62a98152c8a2c8b6918e38b67f92
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 16:19:17 2025 -0400

    Add some more methods for incremental hashing

commit 3f3bd8f56e360d2e60173ed39aa3d667bcc749fd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 11:14:05 2025 -0400

    Tweak wording

commit 41c3211566d6061eda64c9f09177262de61ff8e4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 11:09:42 2025 -0400

    tweak comments

commit 55f2b4bb7328c9d35f4f0a7877cbdc70e9c84341
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 11:06:06 2025 -0400

    h == c check is unnecessary

commit ed5bacba5f3fea7ff354015834e7cca6b72fc7a0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 10:57:21 2025 -0400

    Message if no groups were found.

commit b26305f7e9240e6bd9456121e33457f888936eca
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 10:38:29 2025 -0400

    A 0 threshold is pointless, use 1 as a minimum

commit 835e547cdb9772cbc33412bad46735d468f2f816
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 10:30:39 2025 -0400

    Update to use a streaming read rather than loading whole file.

commit f6d3ed6b7361aa1e76afcf121761e82eff9594ca
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 08:47:43 2025 -0400

    List SsdeepNET.txt for CMake

commit cb045aaa716550be91d27fd26f2e1c5cdc716a59
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 00:24:26 2025 -0400

    Print all paths for exact hash matches

commit 076c31c1e1dba79c1890986114555617720af945
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 16 00:03:30 2025 -0400

    Calculate fuzzy hashes and do comparisons.

commit c2261573b7be688e5ee98173e444282b3aa70894
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 15 18:22:08 2025 -0400

    Stub in a gdiff hook for grouping

commit 460c29c3dc496d05a940f22ad77e50a1935ccfb4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 15 17:26:36 2025 -0400

    Add a C++ translation of SsdeepNET
    
    Want to test out the ssdeep fuzzy hashing algorithm to group similar .g files.
    Of the available implementations, SsdeepNET has an MIT license but was
    implemented in C#.  Tried out Github Copilot to see if it could produce a C++
    version of the SsdeepNET code.  A basic test with the gdiff regression test
    examples seems to produce reasonable results, so go ahead and stash the header.
    
    Next up will be to figure out a good way to analyze a lot of files to identify
    and report groupings.

commit 6c265fa22da7a41cda6a7b541e34bcf92ca78591
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Nov 18 15:49:04 2025 -0500

    Remove unused headers

commit dde2208e4cab42a506f7199b82821da8a7f23879
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Nov 14 13:00:42 2025 -0500

    The gcv non-Tcl ascv5 reader couldn't handle the pinewood brep due to multi-line content - improve the parsing to handle it.

commit ca70eaa4dd862e0627c3f789c30caa053d0999da
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Nov 14 12:02:30 2025 -0500

    Remove duplicate inner tread cut subtraction.

commit 7e5466a594e5e46545a66ef8b4f9574fedf1aaf3
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Wed Oct 22 11:31:18 2025 +0200

    cleaning up

commit 7b77bcd47d28c2036ff5eacab58f3a28fe98f80f
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Mon Oct 20 16:22:20 2025 +0200

    correction based on mentor's feed back

commit c948e395bac30bec82a5650c9809ea1f130cc47f
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Sat Oct 18 14:45:51 2025 +0200

    update for section_solid

commit 95412a3f51d5b756fdecfaf1cc8981c1fc0f9969
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Oct 8 09:27:45 2025 -0400

    missed a to_string

commit 4369761ca7763d8b1a754f18333ebf5244f2649b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Oct 8 08:33:13 2025 -0400

    still lacking local dev to avoid stupid mistakes, fixed std:: to c-str conversion

commit efb6eb8bfe8358ac3b52efdd6b7ce652e92e7991
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Wed Oct 8 09:31:01 2025 +0200

    fix for section title and forgotten changes

commit 657c2008909154048fe12c0f04ae2714d763e1ca
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Oct 8 01:35:36 2025 -0400

    some compilation fixes for being too hasty

commit e135dbe81f31a84a07d4a34a72b35dc4bb61a3f2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Oct 7 23:42:25 2025 -0400

    header cleanup

commit 299041295c94bb8c334854fe484944e345b5369f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Oct 7 23:36:24 2025 -0400

    plurality typo

commit c6a08b773c6003b0b9c0fa166aa8f2d1cd30c03f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Oct 7 18:29:57 2025 -0400

    test commit

commit 7a0ae8845fdebc1d00e843dd37e25ebc3e1d84e3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Oct 7 18:15:31 2025 -0400

    add -P option and propagate setting for the max number of cores

commit ec4895a3b3c8d817db5850106b5a17d3b4076cc6
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Tue Oct 7 11:24:44 2025 +0200

    small mistake

commit ef22044d10c209f2594775a4e316424896e4008a
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Sun Oct 5 20:04:11 2025 +0200

    cleaned updated branch with tested code

commit fb88a55230293a40ce2da3793e5f5d7244868880
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Oct 1 18:22:39 2025 -0400

    add todo for recent notes / fixme's
    
    should address 98eab98f6a2f5d9d1c86cd182619a5291ffbef12 and f5b9e8a7e5d4e941d9561e56771f6dd28394cc2b

commit 98eab98f6a2f5d9d1c86cd182619a5291ffbef12
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Sep 30 15:08:32 2025 -0400

    leave a note to revisit the gqa and rtarea grid size

commit f5b9e8a7e5d4e941d9561e56771f6dd28394cc2b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Sep 30 14:40:45 2025 -0400

    drop to 8 samples temporariliy for production testing

commit 1a9c712da501e0bd92447e4aac4f3cf825792bb9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 26 11:20:11 2025 -0400

    Add workaround for broken OSX signal header

commit 329aca0f5b3551a296e0e4729c59b758baa49589
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 25 23:44:35 2025 -0400

    Get DSP NMG tessellation method working
    
    Existing DSP tessellation via the librt rt_db_tess callback was
    impractically slow, and the facetize command had been using the CM
    fallback method (marching tetrahedrons) as the next best viable way to
    produce a DSP mesh output.
    
    This fix implements a basic meshing routine for digital elevation map
    data that will complete within a reasonable timeframe - under 2 seconds
    for the example terra.g file's terra.s primitive.  It does not
    (currently) implement any of the more sophisticated terrain meshing
    algorithms for the surface mesh, but it DOES go to some trouble to
    generate a "bottom" mesh that closes the volume which is sparser than
    the naive "every active cell gets 2 triangles" method.
    
    This is not the more sophisticated terrain meshing I had originally
    hoped to achieve (although that may still come one day.)  However, in
    the meantime it *is* still a user visible improvement working right now
    so I'll go ahead and put it in.

commit d7bfefff5f73a993d1ab1af3a996fd92b8fbb687
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 24 21:48:15 2025 -0400

    Initialize

commit 60a217304aa0573de94758813d455b6a6ec2aa35
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 24 15:11:46 2025 -0400

    earcut.hpp steiner isn't equivalent to detria steiner, looks like - go back to passing if supplied.

commit 79b20666271acdab36ba83d90354bb0f9f89d316
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 24 14:05:06 2025 -0400

    Improve performance of nmg_mdl_to_bot for all triangle case
    
    Testing new DSP tess code, I observed a successful conversion that was spending
    virtually all of its time (a LOT of it - order of minutes for what should have
    been a couple seconds) in the nmg_mdl_to_bot code.  That's nonsensical, since
    there's no real work to do (the data is already all triangles to begin with)
    but it turns out that the nmg routine (which is probably a lot slower than it
    shoudl be anyway) has REALLY serious scaling problems when presented with
    something like a high-triangle count terrain model.
    
    Rather than work around the problem (again), this time we actually introduce
    into the nmg code itself a fast path that recognizes when we have the trivial
    case and directly writes the data without further processing.  It doesn't fix
    what's likely a host of other issues with nmg, but at least in this (extremely
    common) case we should get tolerable performance now.

commit 6834c65b40c68d17b74bd14e0e25ac37cc2dff29
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 24 14:01:57 2025 -0400

    Update TODO file

commit 04b41f1d9302d273d51d00fdb710427678461347
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Sep 24 13:41:19 2025 -0400

    allow longer file names for output
    
    Names can get truncated when saving a rt a couple levels deep in a fs
    (like, windows temp dirs). Windows has the smallest limit at 260 (mac
    1024, linux 4096) so we can safely double our existing size.

commit 8435d568ecca58824b612cc2ca2aa8cc3ea2f0cc
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Sep 18 02:58:45 2025 -0400

    expose option to specify output dir

commit 1598fcb9da1085fd8e134f1917f418c962e689e4
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Sep 18 02:39:25 2025 -0400

    need to have grid_step of atleast 1

commit aa416698af7b5e8256c0fc7ec45d7924d58c8d57
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 24 12:40:55 2025 -0400

    Whoops, use NEAR_EQUAL

commit 016da8ac7140e686f3b67b9eb6ec6e78fa10bc71
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 24 10:47:26 2025 -0400

    earcut.hpp expects certain loop orientations - enforce that before calling.

commit 22bf0eb81ff11ba667926ecbea76b383670cd84d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 24 10:42:13 2025 -0400

    ws

commit 7e1d021157f1065be3b6b1044aa60cc7078f6fc2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 24 09:52:27 2025 -0400

    Newer earcut.hpp added steiner point support, so enable it for TRI_EAR_CLIPPING bg_nested_poly_triangulate method.

commit 5b433c3fe57f44d5eda8a05956fa860fcac9f596
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 24 09:44:14 2025 -0400

    Update earcut.hpp to f36ced7 (latest as of 2025-09-24) from https://github.com/mapbox/earcut.hpp

commit 13bc4adc25960e2adace980025798e3c67b851d9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 24 09:37:10 2025 -0400

    Break the dsp tess function out into its own file

commit 6aca54d93e1c1c37399af034e219070abef51e44
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 21 13:01:45 2025 -0400

    Missed an IndexType->index_t

commit e0423d822ee9c0bba0eb44267de9b18352cfe2dd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 19 21:28:56 2025 -0400

    Fix for OSX Wdocumentation

commit d688aac07c0e6b4a76e987a68c1d12526c84f852
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 19 21:27:25 2025 -0400

    List files for CMake

commit f375218378ed2bc9c25983c9f0280b0e94f9f996
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 19 12:11:10 2025 -0400

    Add BallPivot implementation
    
    https://github.com/isl-org/Open3D/blob/main/cpp/open3d/geometry/SurfaceReconstructionBallPivoting.cpp
    is used as a starting point for an AI-assisted translation of the ball pivot
    algorithm implementation into something that works with BRL-CAD data types.
    
    Adding this because it appears to constitute a functional implementation of the
    methodology, but in actual practice it seems to be tricky to use well and the
    Screened Poisson approach looks like a better fit for BRL-CAD's use cases.
    
    Deliberately leaving undocumented - the work is worth preserving, but for most
    situations it won't produce the manifold output a user is looking for.

commit 3998066d5cf8fbb23e972bacb1af9b3989a25b95
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 18 17:27:30 2025 -0400

    Remove ballpivot comment

commit 7b79469025f9f5407d51b8451f585fbd188a5c23
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 18 16:29:06 2025 -0400

    Add the SPSR meshing methodology to the pnts cmd
    
    Previously this was only exposed indirectly via the facetize command, where it
    was combined with decimation to be a fallback method of turning primitives into
    triangles when MGED doesn't work.  However, SPSR itself actually takes point
    clouds with normals, which is what the pnts command generates, so to allow for
    easier experimenation and more control we can expose the method directly for
    arbitrary point clouds: "pnts tri spsr input.pnts output.bot"
    
    This is an outgrowth of experimenting with the Ball Pivot and Power Crust
    methodologies to see if they would be useful, but neither is looking promising
    in early testing so only the SPSR exposure and refactor to support bu_cmdtab
    addition of other methods via new subcommands has been migrated back to main.
    
    Ball pivot can produce meshes in some cases but they're not very good and
    may need a lot of fiddling with the radius parameter - not to mention it seems
    to be pretty easy to specify parameters that cause very long run times.
    
    Power Crust I didn't explore as much, but it doesn't seem to be very well
    suited to the arbitrarily complex shapes we might be throwing at it from
    CAD geometry so I doubt it would provide us anything SPSR doesn't already.
    
    Main reason to merge this in is to make it easier to try out new methodologies
    currently being developed - Sean indicated there are some new approaches to
    this problem that have been developed in the last couple years so this should
    give us a convenient way to kick the tires for our use cases.

commit 5cb6ee6466285830ff213403aef3930db0dbad9e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 18 16:02:09 2025 -0400

    Use bu_cmdtab for pnts subcommands

commit e9594193bf56ac948b55c1a5355939c4e4425f61
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 18 15:48:32 2025 -0400

    Remove stub for winding number experiment

commit 0515e6b0bc14f36eda09aecf3b1cd5a5e970d5c1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 18 15:46:56 2025 -0400

    Use max_digits10

commit 4e4f23cc2f30781eb6e35839af9aed3f8b570abf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 10 17:07:20 2025 -0400

    Update repocheck to avoid the broken strnstr and incorporate a variety of improvements in the scanning logic.

commit 400037e12d00e5dd1b7e5cade93390f43b5d5240
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 10 13:45:48 2025 -0400

    Add brledit editor as a last-resort fallback
    
    Originally based on https://github.com/troglobit/mg
    
    We went with pico/nano style key bindings rather than emacs-style, since the
    latter is more complex to deal with for a casual user.  Anyone wanting more
    powerful editing capabilities is also likely to have their preferred editor
    set up - the envisioned use case for this is constrained/last-resort cases
    where the only option is to use what is available.
    
    The original code has been extensively reworked, simplified, etc. to produce a
    minimalist console editor that can work both on Linux/OSX/etc. type systems and
    the various Windows console environments.  The latter in particular are very
    difficult to deal with, and there will likely be various corner cases we
    don't/can't handle well, but brledit has demonstrated the ability to edit a
    file in PowerShell, Command Prompt and git bash.
    
    Typically, the only environment where we might not have access to at least a vi
    editor is a headless Windows server.  If we're going to maintain console mode
    on a Windows desktop without 3rd party editors installed brledit also comes
    into play , but in that situation we can generally also fall back on local GUI
    editors to get the job done as well.  In one sense yori's yedit, a Windows-only
    console editor and our previous last resort, covers the only truly problematic
    case.  Running in git bash, for example, we will generally have nano available
    and so not need brledit.  However, the switch is still worthwhile - brledit is
    both a much smaller code footprint than yori and also works on POSIX type
    systems in case some unforseen circumstance DOES end up making having our own
    fallback there desirable or necessary.
    
    In addition to brledit itself we have added new logic to the libtermio.h header
    to deal with the requirements of its interace, which are much more extensive
    than any of the other BRL-CAD utilities still leveraging libtermio.h.  Previous
    functionality was left in place, so the libtermio.h header update should
    introduce no behaviorial changes in other tools.
    
    This commit also swaps brledit in for yedit in bu_editor logic and removes the
    yori directory we previously added to support compiling yedit as part of
    BRL-CAD.

commit 30f2eea134fc138f3723d9383805300840b1d05e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 9 15:03:54 2025 -0400

    Initialize the opendb_ctx structs

commit bccb3733e69f38fed0a3ee3cc9fd1bc340ddef70
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 9 12:00:36 2025 -0400

    Don't create an LoD cache unless we need it.

commit a8100c3c40cd11a1d87a0c82a8d2b6a8beb79c18
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 3 14:15:56 2025 -0400

    Note update of geogram dependency to v1.9.6

commit 543fcb20c0ee7c5ae9f6ff75fda0b96166394f10
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 3 14:12:04 2025 -0400

    linenoise improvements on Windows are user visible with cmd line NIRT - note.

commit d0584fcc3c3e5baddfce14844ad6cf45ed32044a
Merge: 988ffe218a 1893fba3e1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 2 20:51:22 2025 -0400

    Merge pull request #199 from BraghinAndrea/main
    
    Corrected wrong title at the beginning of sphere.h

commit 1893fba3e126723685bc4e0996d0353cc30b3eaa
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Tue Sep 2 23:32:21 2025 +0200

    Corrected wrong title at the beginning of sphere.h

commit 988ffe218af8e5a9fe952e9b5b39f451c0a7dfd6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 2 17:06:37 2025 -0400

    Make similar adjustments to scheduled.yml

commit 8ec1c1f4ca4311bba4f85c16b16e73cd2305304d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 2 17:03:04 2025 -0400

    Temporarily set MacOS runner to macos-14
    
    Apparently macos-latest got retargted to macos-15 at some point in August,
    which would explain why we saw the abrupt behavior change.  We're still seeing
    the timeout issues trying to run regress-mged, so for now try targeting
    macos-14 until we can get to the bottom of it.

commit a6367226f0c8329f736f91574c5df9bda502ecaa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 2 14:41:12 2025 -0400

    Be more selective about when we use Win32 console
    
    For some Windows terminal environments like git bash (or VT aware consoles), we
    want to handle things the way we would for other terminals.  If that doesn't work,
    we need to fall back on the old-school console code path.
    
    We want to have applications work in all those enviornments, so check up front
    to detect what we're dealing with and set up our I/O handling accordingly.

commit f1ab0c17609b06db7c95fde9d75692259029bb8f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 2 10:06:13 2025 -0400

    ws, astyle

commit f20125a26aa267220d8cde4ce183f5c2b7169431
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 2 09:51:09 2025 -0400

    Use make on OSX, break build, check and package out into separate steps.

commit a15de384ad204b246a20f2485bd0837855ef0e19
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Aug 31 13:58:37 2025 -0400

    Unused vars - do we need these?

commit db6809643e4796ad13651301b357da28ec9bb7f4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 30 23:42:47 2025 -0400

    Add workaround for broken Xcode signal.h header
    
    Apparently Xcode 16.4 has a broken signal.h header that uses NSIG but
    doesn't define it.

commit 72d69f3ceb7b8c54d5b013c7847f40e81bdd6eef
Merge: 6225b7f4a6 a421ffff6c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 30 18:29:06 2025 -0400

    Merge pull request #198 from BraghinAndrea/ErrorBuild
    
    initial support for Element Discrete Sphere entities

commit 6225b7f4a6f5a1401e4e7bdaf1b3fdb74f3b1120
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 29 14:58:43 2025 -0400

    Check OS environment as well as bext SHA1
    
    A bext build may be invalidated by more than just a change in the upstream
    sources - it may also need to be rebuilt if the operating system or compiler
    changes.  Make a stab at incorporating that information into the cache process.

commit 7a6460628c05c29834cb1f042d9f5fd6f783fa4a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 29 13:17:34 2025 -0400

    Add some notes about new issues on MacOSX
    
    Gah.  Not 100% sure, but it seems as if the GitHub CI system just rolled out
    some updates for the macos runners, and they're messing with us.
    OpenNURBS suddenly seems to need _DARWIN_C_SOURCE defined or we get the
    following error:
    
    In file included from /Users/runner/work/brlcad/brlcad/build_osx/include/openNURBS/opennurbs_system.h:389:
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h:177:46: error: unknown type name 'malloc_type_id_t'
      177 |                         struct _malloc_zone_t *zone, size_t size, malloc_type_id_t type_id);
          |                                                                   ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h:181:4: error: unknown type name 'malloc_type_id_t'
      181 |                         malloc_type_id_t type_id);
          |                         ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h:185:17: error: unknown type name 'malloc_type_id_t'
      185 |                         size_t size, malloc_type_id_t type_id);
          |                                      ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h:189:4: error: unknown type name 'malloc_type_id_t'
      189 |                         malloc_type_id_t type_id);
          |                         ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h:194:4: error: unknown type name 'malloc_type_id_t'
      194 |                         malloc_type_id_t type_id);
          |                         ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h:334:2: error: unknown type name 'malloc_type_id_t'; did you mean 'malloc_type_kind_v0_t'?
      334 |         malloc_type_id_t type_id;
          |         ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h:237:3: note: 'malloc_type_kind_v0_t' declared here
      237 | } malloc_type_kind_v0_t;
          |   ^
    
    I haven't managed to get a working configure-time test for the needs
    _DARWIN_C_SOURCE yet, so for now just setting the define to get us passed the
    build error.

commit ce3bb90970f6705c6c376d2432b1899cde4eea76
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 29 12:01:12 2025 -0400

    Don't kick off distcheck on anything but main

commit 959b55db4ac9b0b5727cfe70d93369cb13819fb5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 29 10:21:02 2025 -0400

    Add missing build_parallel ids
    
    The if: conditional for the serial build wasn't properly triggering on failure,
    so the continue-on-error flag resulted in the OSX build looking like it
    succeeded to the CI even when it didn't.

commit 8ba596631ab6b3a20e96bf26ae417478fb9b9eb8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 29 07:24:46 2025 -0400

    Set up GitHub CI logic to run distcheck targets
    
    The full distcheck target is too big to run as a single job within the
    GitHub CI confines, but it turns out there's another way to get at it.
    We already define individual build targets for each configuration, and
    each individual target fits within the 6 hour limit for a single step.
    
    Accordingly, if we define separate jobs for each distcheck target in the
    yaml file, rather than trying to use the top level CMake distcheck build
    target, we can avoid hitting the per-job limit.  The overall limit for
    the entire process is longer, so even running in series we can stay
    under both limits as long as we do one target at a time.
    
    The catch is we don't want to hard code the list of distcheck targets in
    distcheck.yml - that's an invitation for the .yml file to get stale and
    out of sync as more configurations are added to distcheck.   The
    workaround is to have BRL-CAD's CMake logic that sets up distcheck
    targets also prepare an autogenerated distcheck.yml file, and then do a
    comparison with the live copy in .github/workflows/distcheck.yml If they
    are out of sync, the configure halts and instructs the developer to sync
    the copies.
    
    We deliberately don't write the new distcheck.yml directly into the
    source tree.  This is the same pattern as the INSTALL file, which also
    gets updated automatically, and the decision there as well was to
    respect the "source tree is not altered by build logic" rule even though
    it requires an extra manual step to do the updating.  The distcheck
    target list does not change often, and this will catch the potential
    syncing issue on those rare occasions when it does.

commit 912a61af72196193306680a9d7d2c3b2494fe6a0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 28 19:27:31 2025 -0400

    Call out GDAL v3.11.3 version bump in NEWS

commit ad91dec0282920feba3cff7dd176b898449786b7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 28 19:24:40 2025 -0400

    Bump libpkg error msg buffer size
    
    One of the GitHub CI runners had a long enough path that it hit the 128
    char limit.  Need to pick some value, so going with the fallback default
    for MAXPATHLEN from common.h plus a little extra for message chars.

commit 9b0d1ca7fe7497c144080579fe58136cfe7d753e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 28 16:35:42 2025 -0400

    Bump bext SHA1 to get GDAL v3.11.3

commit a421ffff6cf442336758d1a741a73bcbea09ab77
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Thu Aug 28 17:49:59 2025 +0200

    clean up for shpere

commit 843613e1cf0df644747eaeb6c9db61416d63b6f7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 28 11:04:43 2025 -0400

    Round two - dependent execution of CI tests
    
    This update to the GitHub CI yml files will attempt only the basic Ubuntu GCC
    and Windows Ninja builds out of the gate.  If they succeed, other tests
    dependent on those tests are executed - this avoids firing off a lot of extra
    work if our base configurations are broken.
    
    We also introduce caching of bext dependencies here.  It is MUCH more typical
    for our bext to be stable while the main BRL-CAD repository is changing
    quickly, so there is no need to rebuild bext every time we want to test the
    main repo.  Previously we hadn't worked out out to use the GitHub mechanisms
    for this, but with some Copilot AI assistance we now have a working setup.  If
    bext changes it will still be necessary for the first BRL-CAD push that
    encounters it to rebuild, but if we have a stable bext the actual BRL-CAD tests
    should be considerably faster since we can now reuse previously built bext
    binaries.
    
    We also introduce a once-per-night run of the full bext-during-configure
    integration.  BRL-CAD's configure needs to be able to build bext itself at need,
    but the above optmiization actively avoids triggering that logic path.  Since
    that test is more expensive, but we still want to know fairly quickly when it
    breaks, we go with a once-a-day test of that mode on all platforms.
    
    We have also moved the static analyzer and lcov builds to the once-per-day
    mode - the static analyzer in particular is a relatively expensive build, and
    we can generally spot fairly quickly from its output where issues would have
    been introduced in a relatively small changeset.

commit d240de3a362e09e11a55c563490f5f6a8ccd02a7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 26 23:19:32 2025 -0400

    Revert "Try conditional execution of more complex tests"
    
    Need to test this in fork and make sure a known state works before
    trying to go live in main - restore previous version.
    
    This reverts commit 69a369fbd698adf8a114a4b92a5095c9c8ed4162.

commit 69a369fbd698adf8a114a4b92a5095c9c8ed4162
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 26 20:07:58 2025 -0400

    Try conditional execution of more complex tests
    
    Per suggestion from Sean, see if we can make our CI tests a little more
    measured - only try the other platforms if the Linux build succeeds,
    and only try the static analyzer and code coverage if all platforms are
    building and running.  This will take longer than executing everything
    in parallel, so we won't get a "fully clean" result as quickly, but
    the tradeoff is we don't waste a lot of time testing known broken
    configurations on multiple platforms.

commit a5a7356e5c67f29e87aab6b3c83ef090a8ac0b81
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 26 19:28:03 2025 -0400

    Update to latest bext

commit 5450da6815cec04d47437c035a49212568564c01
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 26 19:25:38 2025 -0400

    Not that fbserv problem was not see running from Command Prompt - seems specific to git bash.

commit ecdd14aecf97328d5bfa7b31567dee77a21f3e7a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 25 22:06:52 2025 -0400

    fbserv and -F option handling appear to be fully broken on windows.
    
    alas, I really needed that to work today.. sad face.

commit daff26637b6347caa7a2f0cc136e9eaacc568a05
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 25 20:57:13 2025 -0400

    Set up disabled-by-default code to test librt editing code paths for rot/tra/sca.

commit 9285ca75f8843dcbf5fbbb0ac34d4899bddf7a28
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 25 19:54:20 2025 -0400

    Refactor logic to be better able to test either MGED or librt editing code paths.

commit a6fd65b793b4ff59dcf4931c4c3a57df7cb9ab85
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 25 15:07:42 2025 -0400

    Refactor rate flag checking, adjust calibrate logic to better match older MGED code

commit 7ff9a3b60c6ef0ec3fede14c46bdd5811480ab68
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 25 14:24:16 2025 -0400

    Use the more compact token_should_edit test to check if we have an edit cmd

commit 96ae53c92e2e508e81de4a2424be0a9e4c1351a5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 25 14:10:41 2025 -0400

    Use bv_knobs_cmd_process for view changes.
    
    Reduce knob_apply functions to edit case

commit a7cdc542224d35e434d68d08cfd5d806582e1189
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 25 13:42:53 2025 -0400

    Refactor token handling in chgview.c

commit 13f2a4e2b523135714beadf4896295155f3a15f3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 25 11:11:59 2025 -0400

    Define precompile headers before setting other target properties.

commit 316871bb62cc81d9993b2a69a08e0196b94b46f7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 25 07:04:20 2025 -0400

    Refine how _view_mutation_hash is calculated, sync model2objview matrix.

commit 0d9caf39d06aa9aff0698649c4d7ae17180b01fd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 25 06:57:29 2025 -0400

    Whoops - revert was incomplete somehow.  Finish undoing fef9c66aa6b9

commit bc9ba268ec3eec583e394d733a3b408746103471
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Aug 24 22:43:41 2025 -0400

    Revert "Use librt and libbv knob logic for MGED f_knob"
    
    Not ready for the librt editing - back out.  libbv knob logic we could
    do, but the librt editing code will need working per-primitive
    processing of rot, tra, sca operations for all primitives.  Not even
    close yet, and that's work to do in a branch.
    
    This reverts commit fef9c66aa6b9000644f4d2914156ff74f450d539.

commit 250beea9c35c6d036e32a637e30e7e29a596d48d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Aug 24 22:33:58 2025 -0400

    Add hasher for libbv knobs struct

commit da6b0e53c51c4dc31262db5ac0779e1e37e855af
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Aug 24 22:33:23 2025 -0400

    Add -k option to experimental view knob command

commit e5760820e623b865a33ab8e8ab929aecc40fab57
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Aug 24 16:37:48 2025 -0400

    Add "o" and "k" coordinates support to bv_knob_rot
    
    Missed those cases in the initial port, or rather oversimplified it.
    There is a case during editing where "o" is different from the view
    case, so we will need it to express the full capabilities of the MGED
    logic, and we also will need "k" for specifying keypoints.

commit 9bf114b5fc3fcab99aad93719167a001bea4f834
Merge: b10cfa66bd 68ad20e42c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 23:45:45 2025 -0400

    Merge pull request #196 from Elastino2/main
    
    Remove documentation error in clang

commit b10cfa66bdb1233ae4144f3411c1004800364be7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 21:33:31 2025 -0400

    Adjust bv_knobs_* and rt_knob_edit_tran signatures.

commit fef9c66aa6b9000644f4d2914156ff74f450d539
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 17:19:47 2025 -0400

    Use librt and libbv knob logic for MGED f_knob

commit 921557b241968b89108f54e6f93b436e05761cf2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 13:06:09 2025 -0400

    Use the librt rt_edit struct for most of the MGED edit state data.

commit 8c444578a50c01589e8ff7ab5861141f602b13b1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 11:54:12 2025 -0400

    Call out some variables that are still globals.

commit 9704933497ec0df937ac0c5531893dfe334e85d4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 11:45:19 2025 -0400

    Remove unused defines

commit 86364862c326359dd0e89de24a49b5cbb5375fd6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 11:41:53 2025 -0400

    Use bv_knobs_reset in mged_svbase

commit 340ed1b106e0d6c584e15d9a17047371d1f7d9ff
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 11:28:38 2025 -0400

    Add comment about interaction of MGED knob command with editing states.

commit ff54ab198515a5e02ec5b271ab9fa466a61149f6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 11:22:39 2025 -0400

    reorder to remove forward declarations

commit 0d99e5f124b82df6ff8aa398ea09a5715d6bb22d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 11:14:42 2025 -0400

    Remove unused function

commit 5c798ac95ee806933c419033168390a2bcb205da
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 11:12:11 2025 -0400

    Use a local matrix rather than 'borrowing' incr_change in this function.

commit c67bdcfb8b00839e714ba0bf1bc37a875ef9d8d1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 10:59:52 2025 -0400

    Add a specific wrapper for libged view cmd
    
    Since we have knob info in the MGED viewstate but libged can only operate on
    the libged copy of the view, we need to do some extra work to have "view knob"
    commands impact MGED.  (Originally tried to consolidated around using ged_gvp
    in MGED, but in multipane that's a problem since we really do have multiple
    views.  Need to do a more careful parsing of MGED's view management and how it
    interacts with libged - probably some things to fix there, particularly in
    multipane - but for now focus on getting view knob working.)

commit b24fb4faca29f307df5d672bd8ebd15591ed1c83
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 22 10:09:24 2025 -0400

    Probably not needed

commit 76c2c614d8202f67a09e1fcafe1538f8dbbe0cfa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 17:16:44 2025 -0400

    Add a way to sync two bview_knobs structures

commit e179c5ada21a4f99742c4fb440cd0bd8912e93df
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 16:40:25 2025 -0400

    Rework f_knobs command to consolidate logic
    
    This eliminates the giant switch table, but doesn't loop in the librt
    refactorings of any of the logic since that is a likely source of the
    bug we were encountering earlier.

commit df98ea7a120bc815aa55c90be4f2491d425ac277
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 14:09:05 2025 -0400

    More unused global variable removal.

commit bfe165ad878d4914b43ebe36ad9ed118c4b51c9c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 14:06:20 2025 -0400

    Remove unused global vars

commit 8e0a25ddaf61bc44313e5c1bf8e1c437628817ad
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 14:03:41 2025 -0400

    Use a bview_knobs struct in view_state

commit 05b9febd2c4d69b4a0dc4470920aebab78b8fa58
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 13:38:48 2025 -0400

    Remove stray unused global

commit 2fea350f799965a91007d9c3cf49bc586d5b7d61
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 13:35:06 2025 -0400

    Use bview knob structure to hold rotate/tran/scale info

commit bb36df4d2481cbd1f227948d033a03de70ccaf68
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 13:11:54 2025 -0400

    Call nirt rather than qray_nirt

commit 61c2ea62ec5e949e77c91da08fe17f6fcfc0eaf7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 13:05:12 2025 -0400

    Move some more globals into mged_edit_state

commit ca398d9251e3ccc3edc53bc3eaf7c1b80a2cda2c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 12:54:14 2025 -0400

    Refactor logic for handling scroll menus

commit 78b4917a669af69155e6198b4ede74044b79b241
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 12:46:40 2025 -0400

    ws

commit 864efba1e94b418ec7b16c7a8ecde8a9b63f5212
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 12:43:02 2025 -0400

    Remove unused variable

commit 6fed17bd77b4643e49b5df7d798ae6671c825d06
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 12:03:01 2025 -0400

    Improve readability of motion_event_handler conditional checks

commit 79f25e6b2f88e86c7621d58a3c690fa74080d79e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 11:47:00 2025 -0400

    Move parameter input globals to mged_edit_state

commit 922f5f57366f2b47fff1f45d7dbe48c460d1d8cb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 11:38:04 2025 -0400

    Move various editing globals into mged_edit_state

commit 623ea3a7187bd3cb30aa34550f6cdb1127514877
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 11:19:43 2025 -0400

    Move GEOM_EDIT_STATE global into mged_state

commit f14db9fca58410f897051632e27b17da4fd7c39c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 11:14:45 2025 -0400

    Move a few more globals into the mged_edit_state.

commit 21addbc1ca0efb1ad905df1350b7c579bf4470a9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 11:05:39 2025 -0400

    Relocate a few globals into the mged_state struct.

commit 7972de2bf3f0d71ccf5bd169ba04bc9dbbea22d7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 10:50:57 2025 -0400

    Reapply change to use libged functions for set and clear editor ops.

commit 3a35e2442a9e86c23274d76006212d7cb4ea6c5a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 10:36:55 2025 -0400

    Sort filenames, formatting

commit 105cdc861c27a6ca5da8d41bcdf84603e27a768a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 10:34:26 2025 -0400

    Pull in changes to librt editing codes from the mged_reapply branch.  Mainly fixes to label logic.

commit 5c77e9105b456316734c36ed069f7de352ef0468
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 10:31:06 2025 -0400

    Remove IR_KNOBS and IR_BUTTONS ifdef codes (reapplies 931803312c)

commit b532eb8af24747be6883abdf93b462b76175fd96
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 21 10:20:04 2025 -0400

    Make edit state a separately allocated struct
    
    Hmm.  Re-applying the MGED changes is proving a bit tricky - somewhere in the
    refactor an editing state was mishandled, manifesting in an incorrect
    appliation of tra logic (at least) when repeated edits are made in MGED.  To
    help try and zero in on the issue, need to reapply safe changes to MGED main to
    help minimize the differences between the working and non-working states (as
    well as getting at least some of the refactoring reapplied.)
    
    Note:  to reproduce the issue, the following works with moss.g from the MGED
    cmd prompt:
    
    facetize LIGHT light.bot
    e light.bot
    sed light.bot
    tra 10 10 10
    reject
    sed light.bot
    tra 10 10 10
    
    The second tra in the sequence doesn't produce the same result as the first.

commit 68ad20e42c7fb8ab18fff0a0ebeea4cad9f66ab3
Author: ChangJoon Lee <changjoonlee@me.com>
Date:   Thu Aug 21 17:39:18 2025 +0900

    Remove documentation error in clang

commit 868ad46c77a3c0097b9bfe828f6e46e46ed57a5a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 20 19:31:48 2025 -0400

    issue isn't limited to -j flag, looks like -H and -J are also nfg

commit 84b622f4a23d91bd49fc5eac239854545b5b819f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 20 18:50:37 2025 -0400

    rt -j subrect ignores the output file type, assumes fb causing pix data to get written

commit 494385bbe448aa26bb8bbbf72c39d4c67c4b523d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 6 17:04:10 2025 -0400

    Add two more test cases pertaining to SCR3506, one non-planar, one concave.

commit b8bdc1ba62af2582991722b43a082996c86a23c9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 20 09:44:47 2025 -0400

    Bump bext to get geogram v1.9.6 + patches to 35cf7d6

commit 597257173ebd5d3d3437af256ad39946395895ca
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Aug 19 15:01:31 2025 -0400

    need to apply /bigobj for building spsr.cpp
    
    recent spsr change will error out when building debug Windows in visual
    studio without /bigobj

commit d5897bfd93da975b9f1903850cfd04b9995cab0f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 19 16:08:26 2025 -0400

    Switch librt to using mmesh instead of gct_decimation
    
    With the new version we need to supply stride in bytes, and optimization
    needs sizeof rather than MD_FORMAT_INT.
    
    We will be using the CONFIG style find_package for mmesh.
    
    Compared to the old gct code, mmesh interpretes feature size a bit differently.
    The old code's sensitivity to feature size was a fourth power formula, while
    the new code uses a sixth power. The BRL-CAD code tries to adjust for this, but
    there may also be other internal changes and the decimation results will most
    likely still be a bit different.  Overall the tendency will be to produce finer
    meshes for the same feature size, which will preserve detail better but also
    result in more triangles as compared to the original settings.

commit 5c4927245f7deedbd932be20517b1f410c4859e9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 19 12:45:19 2025 -0400

    Not linking SPSR anymore - remove this option

commit 7cb2386d087b8d547661aa7e0dd834d0c0b607f0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 19 10:12:24 2025 -0400

    Update BRL-CAD code to use the Manifold v3 API
    
    This conceptually reverts commit 11edd29f1a2c, with various other changes
    included as well to adapt to the newer behaviors of Manifold v3.
    
    Due to the intenral use of doubles in Manifold v3, we need to do our own
    preliminary binning-based decimation of input plate mode bots in order to (more
    or less) dupliate the implicit simplification (and corresponding performance
    boost) we were seeing with Manifold v2 for surface extrusions.
    
    We use a maximum allowed surface area delta metric and a minimum threshold
    triangle removal count to decide when the mesh can be simplified, defaulting to
    requiring that at least 20% of the original mesh triangles be removed for an
    area change penalty of less than 1%.  This lets us avoid expensive boolean operations during extrusion
    that have little to no impact on the final mesh shape or volume.
    
    Both of those percentages are user settable, so the user can opt to pay the
    penalty of not simplifying, but at least with current Manifold algorithms the
    penaltiy is occasionally *severe*. Performance hits on the order of seconds
    turning into minutes have been seen for relatively small meshes (less than 600
    faces) when their structure is particulary hard for Manifold to handle.
    
    We have also disables intermediate status checks for better performance - per
    guidance from Manifold devs, doing these checks really slows down processing.
    Recent boolean eval fixes have addressed boolean failure cases that we were
    using the Status() checks to avoid.
    
    At least at the moment we aren't set up to show images in the Github CI output
    (something to look into to see whether it is possible) - as a short term
    work-around we printed out debugging output ascii art images of diff images to
    be able to see what sorts of deltas were manifesting on the CI runners.
    Unsurprisingly, the meshes produced by facetize with the new double-based
    Manifold were subtly different, so we have update draw images for the new
    expected Manifold outputs.

commit 106246b05fe66a89233349197f4853427085eaa5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 19 02:05:06 2025 -0400

    say fewer word, half dozen fewer lines

commit 17562193190224d5d36a5482f0e19ddb112e5b64
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 18 21:59:11 2025 -0400

    Suppress compiler warnings from Eigen and SPSR
    
    Yeesh.  SPSR triggers quite a few clang warnings, at least in static
    analyzer mode, and Eigen is triggering some as well.
    
    While we're at it clear a couple static analyzer warnings.

commit 5a82d0e146bae183687faa3f57ad52dc62fa7d0f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 18 16:45:05 2025 -0400

    clang is giving us -Wunused-parameter warnings from SPSR - suppress them just for that header.

commit eecc6e67ea2c61a80fed2210836ca25dee53b71d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 18 14:52:23 2025 -0400

    Correct BRLCAD_EXT_DIR - not using bext_output anymore

commit c0fce2a1edcfc1cb4393a879ab44436452aa2146
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 18 14:31:12 2025 -0400

    Correct bext sha1 warning messages.

commit 55f81dd31f494435491279498b82bcc6c0145d12
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 18 11:25:03 2025 -0400

    Test out target_precompile_headers with the step-g build.

commit c3a3fbf21e3f939a784d5bca895ecc60c690ed26
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 18 12:51:05 2025 -0400

    Correct clone line in clang-static-analyzer-run.sh

commit cb01e9541a84d74e55c1ba6883b638e9ebe070be
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 18 09:45:39 2025 -0400

    Note update of SPSR dependency version to upstream v18.74 (removes old embedded copy)

commit 341da646fe8b1424d376f1eb139e0cbea856c921
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 18 09:39:52 2025 -0400

    Explicity set ASYNC threading to be clear we're doing multithreaded
    
    Also update bext sha1 to get PoissonRecon submodule, and update SPSR license
    file

commit 29cde62ed4a9d031481cabccfb5c7762972722fa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 18 14:50:27 2025 -0400

    AI for the win again - update to newest PoissonRecon API.

commit 74ed2c8782244dd26deb14016a5958b9458bfffd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 18 14:24:30 2025 -0400

    Confirm SPSR update is now working with v16.10
    
    So, good news is it works - moss.g facetized successfully with the SPSR method!
    Bad news is the upstream changed the API again and the latest (v18.74 as of
    this writing) doesn't compile, so we'll need to update it again.

commit 612491ac3b3b04210f4238627075d3cec65fd8d0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 18 14:07:25 2025 -0400

    Note targeted version (apparently things have changed upstream since Aug. 2024)

commit a84d8b56409e128fbb80bb5e4b69fc9376cc1a22
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 18 13:03:19 2025 -0400

    Github Copilot GPT-4.1 spotted an indexing error in the face assignments.

commit 4d7c7524dde5ca7aedc44fa61caeed58b14e639d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 18 12:52:54 2025 -0400

    Reapply "Update libbg SPSR to use upstream header-only mode"
    
    This reverts commit 8ca81d575a7bf83537fd609039cfabeb44b1332d.

commit 7c4455d3ea220dc1cac8bf8c86b17adbcb223620
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Aug 18 10:08:31 2025 -0400

    Update gqa.xml - removed extra > after p (under analysis flags)

commit 07f3d66da5012ff8881f8f1d971ca8ce9e0313c0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Aug 17 01:18:09 2025 -0400

    Use bu_file_delete instead of std::remove

commit 5e54a73797e415cbc8e794a6b2c94c78875e09c8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Aug 17 00:13:30 2025 -0400

    Add error case if all THREADLOCAL attempts fail
    
    Per suggestion from Sean, make the failure to define THREADLOCAL
    explicit.

commit fc7c51af95cc18e3adddcbf258429b77ef59c432
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 16 23:07:18 2025 -0400

    Define THREADLOCAL to use for per-thread storage
    
    How to properly identify per-thread storage varies somewhat with
    different standards and platforms - boil the various cases down to a
    THREADLOCAL encapsulation we can use in our code.

commit bf8c450c0e92f4dbb40f5f317f4929ae4c356965
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 15 15:38:03 2025 -0400

    Adjust the link-time flag being used to suppress the bitv[2] warning
    
    Our bitv_t bits[2] member triggers warnings such as the following:
    
    warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] *out++ &= *in++;
    
    We deliberately over-allocate extra memory for bits so we have something to
    access, but per C99 this is undefined behavior: array subscripting a[b] is
    defined as *(a + b) (C99 6.5.2.1p1) and pointer addition is only defined within
    the same array object or one past its last element (C99 6.5.6p8). Accessing
    elements bits[2]..bits[n-1] therefore goes outside the declared array object
    and is UB (cataloged in Annex J.2: “array subscript is out of range” / “pointer
    outside bounds of an array object”).
    
    The current approach was used before C99 added flexible array member support
    (and is still working, which is why we haven't changed it) but in theory a
    sufficiently strict standards-compliant environment might someday break it
    (hence the compiler warnings.) Since the "proper" fix would be to use a C99
    flexible array member and fall back to this approach only in C++ compiling mode
    (which only has flexible array members as extensions), we have settled for
    suppressing the warning.  However, when we do LTO compilation the link
    optimizer triggers another bounds analysis pass that doesn't respect other
    warning suppressions we have defined.
    
    We were avoiding a Werror compile failure with the previous compile flag, but
    that still left the noisy warning messages in an LTO build.  This switchs us to
    a full-on disabling of the warning during the link stage, which avoids printing
    the messages altogether.
    
    Now that we're using newer C standards, it might be worth revisiting whether
    the bits member array could/should use the C99 approach...

commit 80c82970eeff136b3cbfa86ad22e06539f319075
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Aug 15 10:32:25 2025 -0700

    obj choked on anon g line

commit 1112aa942e7a00a7dc0ec42e9af7758741100cf1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Aug 15 10:29:14 2025 -0700

    documenting constants should be concise as possible, not explaining the consequences of floating point..
    
    here the value is used in tests that currently are ranged one signif digit above 1, so we can only check 1e-14 below.  if we turn on fast math or go above two signif digits above, this tol value will need to change.

commit 91b07e70f8da603c956891f03dcbf27f54f48040
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 15 07:03:55 2025 -0400

    Add explanation of FLOAT_CMP_TOL

commit 8d205f7ab8bc35d3fe1fa9455aa33a7639766d1d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 14 23:36:08 2025 -0400

    Hmm.  Looks like storage may be a little different on OSX.  Make the test a bit more flexible.

commit 22ac403469e8e61853bcc708a42d43d8bc8ee49f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 14 21:33:20 2025 -0400

    Update all the dbl NEAR_EQUAL checks

commit 7940fb23ef55d1af655d87a3102cefa62e371736
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 14 19:05:18 2025 -0400

    Still too tight?  Try 1e-14

commit 50dfdc882b9d0af350b836e795b21a0b0e59c219
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 14 17:03:28 2025 -0400

    Comparing at SMALL_FASTF may be too much to expect since we're doing multiplication math to make our ctrl value - try 1e-15

commit 892cd0e2b9bb0e3e380732ea03905713408445ee
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 14 16:47:20 2025 -0400

    Print more digits when dbl read fails

commit 23ae2661ae02f35068b0e597c1494800aa0fd40b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 14 14:39:14 2025 -0400

    Just use new and delete for bu_cache_impl

commit f1f28c5ec534a5bc07a589e3bdd193286fb81a2e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 14 14:36:05 2025 -0400

    We need C++ setup/teardown for the mutex

commit f5ce194f366db7f3884d8486adb263e55541a5e1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 14 11:33:58 2025 -0400

    Missed updating a libqtcad test file

commit e2fbadc4bcb7a8a2f7afccb7d4d4c3f3e1f6f6e7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 14 10:28:57 2025 -0400

    Add working version of libbu cache API
    
    This gets the rough (and previously unworking) version of the libbu cache API
    into a working state, while also adding tests to verify its functionality in
    various use cases.
    
    The intent is that this will replace raw usage of the LMDB API in various parts
    of BRL-CAD's code.  Not introducing those changes in this commit, since there
    are other design considerations at play in those refactorings, but this piece
    is self-contained and cleans up the preliminiary cache code that was already
    present.

commit 0ebff0578d1debdc92d242a70e2121f30d346ebc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 14 09:40:07 2025 -0400

    Get dbi.h out of the public libged header directory
    
    Shouldn't have been in there (at least not in this form) to start with, since
    it isn't public API.  dbi.h is an experiment to create a C++ data model of the
    .g database suitable for driving a Qt model that can support things like tree
    views, but in this form it cannot be suitable as a public API (among many other
    issues it exposes C++ containers, and the final form of this may belong in
    librt rather than libged anyway.)  The concern in the initial stages was
    searching for an implmentation approach that could in theory be performant
    enough to scale to enormous databases, rather than isolating containers, so it
    needs to be reworked to preserve its performance properties while also being a
    proper API.  In any case, shouldn't have this form of the logic in this
    location.
    
    Until a more suitable replacement is designed and implemented, libqtcad still
    needs it to drive its data model of the database, but it's not exposed in the
    public libqtcad API so we can just reference the internal libged header in the
    libqtcad implementation files for now.

commit 7c21783f08d0411e8e336d40b7dd8b78c8c17c14
Merge: de35eab67b ec962453e3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Aug 14 00:50:13 2025 -0700

    Merge pull request #194 from BraghinAndrea/SEATBELT
    
    Refined PR for seatbelt implementation in k-g converter.

commit de35eab67b37bfea998b9abba545c20dc299eb26
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 13 19:49:24 2025 -0400

    Revert "Complete removal of deprecated redblack tree from libbu"
    
    Hold off on yanking this for now in case we end up doing a patch release
    next rather than another minor version bump.
    
    This reverts commit 842d431172f981c494c68880d30ba4d4d8287c93.

commit 4bca9e3f5ff5b4e9daffc5018d7179528c17b053
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 13 19:22:09 2025 -0400

    Using bio.h - don't need individual includes

commit 3dd6914b578337e32861d6cff85ccd6dc1c3ef20
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 12 16:30:43 2025 -0400

    Stop bot remesh subcmd from clearing output
    
    Was truncating the help message being built up for the bot subcommands.

commit 842d431172f981c494c68880d30ba4d4d8287c93
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 13 15:49:28 2025 -0400

    Complete removal of deprecated redblack tree from libbu

commit 48e49319e297ea556c7ee092338dd86ba006ac78
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 13 15:41:06 2025 -0400

    Replace libbu redblack tree with C++ containers in glint

commit dd4b715542f38bb6f5bdbfa731b017349644f5ae
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 13 15:32:04 2025 -0400

    Remove struct prefixes, use nullptr instead of defines, ws

commit ad754d9afd472dee46880f92ac0acb235cb18034
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 13 14:29:38 2025 -0400

    Rework pixcount to use std::map rather than libbu redblack tree

commit 1fdd61214323aa129c405659544c7614e3ea4bdc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 13 06:32:58 2025 -0400

    No longer using git modules in main repo

commit d1e3c1f26b545898a000bd6a80dc3716f39068d2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 12 10:11:12 2025 -0400

    Various adjustments to release steps using Git
    
    Still refining the best way to do various ops with Git tools.

commit 47462750324d167a530f696c66477acaa10209f6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 11 23:44:43 2025 -0400

    Bump to next development revision after tagging the 7.42.0 release

commit ec962453e34dd53e829ce735d99b2777207d9056
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Thu Jul 10 10:43:34 2025 +0200

    added " break; " in k_parser.cpp for section_seatbelt

commit ecb427bdabcee78f6df88b07f49b8698c182052e
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Wed Jul 9 22:04:01 2025 +0200

    Spacing and formatting fix in k-g.cpp and k_parser.cpp

commit 6e0d34bd347db6e0bd7595f0a038ac9f8dd0e62d
Author: Andrea Braghin <braghin.job@gmail.com>
Date:   Tue Jul 8 16:20:48 2025 +0200

    Seatbelt implementation in k-g.cpp, k_parser.cpp and k_parrser.h

commit 8f63b09116987c584fd1325a929f928b918329e2
Merge: 5969136200 78652567e5
Author: Gregory Li <gregoryli@foxmail.com>
Date:   Wed Aug 31 11:36:59 2022 +0800

    Merge branch 'main' of github.com:GregoryLi0/brlcad into brep_epa_debug

commit 59691362002d598b5af9aa85a6c274482df24ff0
Author: Gregory Li <gregoryli@foxmail.com>
Date:   Wed Aug 24 14:27:17 2022 +0800

    Use given matrix multiply function

commit c542ab35ede00b99bcbe293d9bdf807d2e38d479
Author: Gregory Li <gregoryli@foxmail.com>
Date:   Sun Aug 21 23:01:08 2022 +0800

    Solve the initial 90 degrees rotation of +X and +Y

commit 8b4ee5ad218732e4c3930266a0bb8ae1249b92e0
Author: Gregory Li <gregoryli@foxmail.com>
Date:   Sun Aug 21 22:08:31 2022 +0800

    use rotation matrix  between two coordinate systems. A 90 initial degree rotation still exists.

commit 6517ca914a5f259c3fb9508a0a96bb2985ab0a58
Author: Gregory Li <gregoryli@foxmail.com>
Date:   Sun Aug 21 21:34:03 2022 +0800

    divide transition into two rotation and one pan. Rotation according to https://sites.cs.ucsb.edu/~lingqi/teaching/resources/GAMES101_Lecture_04.pdf page 10

commit 3322c9104d9bcbf1adf332c0e9ca18f7f64fb2b3
Author: Gregory Li <gregoryli@foxmail.com>
Date:   Fri Aug 19 23:32:19 2022 +0800

    add transform matrix

commit 42155008325f5902fb5f0ac6f23230347c22bc8c
Author: Gregory Li <gregoryli@foxmail.com>
Date:   Thu Aug 18 18:37:52 2022 +0800

    del repeated codes

commit 8ea7ffeb3e4a5f03d6d64bae034f22d9db5abba3
Author: Gregory Li <gregoryli@foxmail.com>
Date:   Thu Aug 18 18:35:24 2022 +0800

    add a shift for elliptical parabolic NURBS surface
