Revision: 75972
          http://sourceforge.net/p/brlcad/code/75972
Author:   starseeker
Date:     2020-05-28 20:47:56 +0000 (Thu, 28 May 2020)
Log Message:
-----------
Try to reduce the clutter accumulating at the toplevel doc directory.

Modified Paths:
--------------
    brlcad/trunk/doc/CMakeLists.txt

Added Paths:
-----------
    brlcad/trunk/doc/README/
    brlcad/trunk/doc/README/README.AIX
    brlcad/trunk/doc/README/README.BSD
    brlcad/trunk/doc/README/README.IRIX
    brlcad/trunk/doc/README/README.Linux
    brlcad/trunk/doc/README/README.MacOSX
    brlcad/trunk/doc/README/README.OSCON-2014
    brlcad/trunk/doc/README/README.Solaris
    brlcad/trunk/doc/README/README.VAX
    brlcad/trunk/doc/README/README.Windows
    brlcad/trunk/doc/notes/
    brlcad/trunk/doc/notes/TODO.BREP
    brlcad/trunk/doc/notes/TODO.shaded_displays
    brlcad/trunk/doc/notes/brep.txt
    brlcad/trunk/doc/notes/bsd_semaphore_bug.txt
    brlcad/trunk/doc/notes/bu_opt_design_notes.txt
    brlcad/trunk/doc/notes/cmake_vars.txt
    brlcad/trunk/doc/notes/csv_to_comgeom.txt
    brlcad/trunk/doc/notes/cvs.txt
    brlcad/trunk/doc/notes/ecosystem.dot
    brlcad/trunk/doc/notes/editors.txt
    brlcad/trunk/doc/notes/history.txt
    brlcad/trunk/doc/notes/hypot.txt
    brlcad/trunk/doc/notes/implicit_constraints.txt
    brlcad/trunk/doc/notes/lcov.txt
    brlcad/trunk/doc/notes/mater.txt
    brlcad/trunk/doc/notes/matrix.txt
    brlcad/trunk/doc/notes/regions.txt
    brlcad/trunk/doc/notes/rounding.txt
    brlcad/trunk/doc/notes/tool_categories.txt

Removed Paths:
-------------
    brlcad/trunk/doc/README.AIX
    brlcad/trunk/doc/README.BSD
    brlcad/trunk/doc/README.IRIX
    brlcad/trunk/doc/README.Linux
    brlcad/trunk/doc/README.MacOSX
    brlcad/trunk/doc/README.OSCON-2014
    brlcad/trunk/doc/README.Solaris
    brlcad/trunk/doc/README.VAX
    brlcad/trunk/doc/README.Windows
    brlcad/trunk/doc/TODO.BREP
    brlcad/trunk/doc/TODO.shaded_displays
    brlcad/trunk/doc/brep.txt
    brlcad/trunk/doc/bsd_semaphore_bug.txt
    brlcad/trunk/doc/bu_opt_design_notes.txt
    brlcad/trunk/doc/cmake_vars.txt
    brlcad/trunk/doc/csv_to_comgeom.txt
    brlcad/trunk/doc/cvs.txt
    brlcad/trunk/doc/ecosystem.dot
    brlcad/trunk/doc/editors.txt
    brlcad/trunk/doc/history.txt
    brlcad/trunk/doc/hypot.txt
    brlcad/trunk/doc/implicit_constraints.txt
    brlcad/trunk/doc/lcov.txt
    brlcad/trunk/doc/mater.txt
    brlcad/trunk/doc/matrix.txt
    brlcad/trunk/doc/regions.txt
    brlcad/trunk/doc/rounding.txt
    brlcad/trunk/doc/tool_categories.txt

Modified: brlcad/trunk/doc/CMakeLists.txt
===================================================================
--- brlcad/trunk/doc/CMakeLists.txt     2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/CMakeLists.txt     2020-05-28 20:47:56 UTC (rev 75972)
@@ -14,31 +14,31 @@
   )
 
 set(documentation_DATA
+  BRL-CAD.bib
   IDEAS
   PROJECTS
-  README.AIX
-  README.BSD
-  README.IRIX
-  README.Linux
-  README.MacOSX
-  README.Solaris
-  README.VAX
-  README.Windows
-  TODO.BREP
-  TODO.shaded_displays
+  README/README.AIX
+  README/README.BSD
+  README/README.IRIX
+  README/README.Linux
+  README/README.MacOSX
+  README/README.Solaris
+  README/README.VAX
+  README/README.Windows
   archer_ack.txt
-  bu_opt_design_notes.txt
-  brep.txt
-  BRL-CAD.bib
   checklist.txt
-  cvs.txt
   description.txt
-  editors.txt
   ged.tr
-  history.txt
-  hypot.txt
-  mater.txt
-  matrix.txt
+  notes/TODO.BREP
+  notes/TODO.shaded_displays
+  notes/brep.txt
+  notes/bu_opt_design_notes.txt
+  notes/cvs.txt
+  notes/editors.txt
+  notes/history.txt
+  notes/hypot.txt
+  notes/mater.txt
+  notes/matrix.txt
   pre_BRL-CAD.bib
   )
 ADD_DOC(documentation_DATA ".")
@@ -209,12 +209,12 @@
   mged/wm-prims.ps
   mged/wm-tube.ps
   mk.tr
+  notes/ecosystem.dot
+  notes/regions.txt
+  notes/rounding.txt
+  notes/tool_categories.txt
   old-mged.tr
   pkg.tr
-  regions.txt
-  rounding.txt
-  tool_categories.txt
-  ecosystem.dot
   )
 ADD_DOC(documentation_mged_old_DATA mged_old)
 
@@ -223,14 +223,14 @@
 
 CMAKEFILES(
   CMakeLists.txt
-  README.OSCON-2014
+  README/README.OSCON-2014
   STARTERS
   STRATEGY
-  bsd_semaphore_bug.txt
-  cmake_vars.txt
-  csv_to_comgeom.txt
-  implicit_constraints.txt
-  lcov.txt
+  notes/bsd_semaphore_bug.txt
+  notes/cmake_vars.txt
+  notes/csv_to_comgeom.txt
+  notes/implicit_constraints.txt
+  notes/lcov.txt
   pad_file.xml.in
   )
 

Copied: brlcad/trunk/doc/README/README.AIX (from rev 75971, 
brlcad/trunk/doc/README.AIX)
===================================================================
--- brlcad/trunk/doc/README/README.AIX                          (rev 0)
+++ brlcad/trunk/doc/README/README.AIX  2020-05-28 20:47:56 UTC (rev 75972)
@@ -0,0 +1,35 @@
+BRL-CAD on AIX README
+=====================
+
+Dec. 15, 2011 - As of this date, it has been some time since an AIX
+build of BRL-CAD has been tested, and thus far it has NOT been tested
+b with the new CMake build system.
+
+Kitware provides an AIX powerpc binary for CMake, see
+http://www.cmake.org/cmake/resources/software.html
+
+
+Building BRL-CAD under AIX is fairly straightforward using a correctly
+installed version on the GCC compiler.  If, however, you are using the
+IBM Visual Age compiler, then there are additional manual compilation
+steps that will be necessary.  In particular, the IBM compiler and
+associated standard C library headers are inconsistent with respect to
+ANSI/POSIX compliance compiler options.
+
+The IBM compiler supports a variety of compliance options, the two of
+particular relevance to building BRL-CAD (in terms of being the close
+to obtaining a functional compile) are the strict compliance
+(-qlanglvl=stdc89) or "extended" compliance (-qlanglvl=extc89) modes.
+Problems encountered in our build environment using strict compliance
+does mostly work though we ran into errors in the standard C library
+headers.
+
+Using the "extended" compliance mode resolved the standard C library
+header issues, but introduces problems in the compilation of BRL-CAD
+as the compiler then disables the provision of the __STDC__
+preprocessor symbol.  BRL-CAD then defaults back to K&R mode, which
+the compiler verbosely refuses to compile.  The "quick fix" that has
+been used in the past is to simply swap the compiler between the two
+modes as when one fails (e.g. strict), the other usually succeeds
+(e.g. extended).  Barring that working, you can use extended mode and
+define __STDC__ manually.

Copied: brlcad/trunk/doc/README/README.BSD (from rev 75971, 
brlcad/trunk/doc/README.BSD)
===================================================================
--- brlcad/trunk/doc/README/README.BSD                          (rev 0)
+++ brlcad/trunk/doc/README/README.BSD  2020-05-28 20:47:56 UTC (rev 75972)
@@ -0,0 +1,16 @@
+BRL-CAD on BSD README
+=====================
+
+BRL-CAD is frequently compiled under various variants of
+BSD including FreeBSD, NetBSD, OpenBSD, and even the original
+4.3 BSD (though now rare) - FreeBSD is the most common BSD
+platform tested, not counting Mac OSX.  See the README.VAX
+document for additional details that pertain to building
+BRL-CAD on a VAX running BSD.
+
+CMake binaries for *BSD operating systems are not distributed
+by Kitware, but should be available through standard *BSD
+packaging mechanisms.  Failing that, CMake can be bootstrapped
+without much difficulty on most modern Unix-style platforms.
+
+BRL-CAD is included in the FreeBSD Ports system.

Copied: brlcad/trunk/doc/README/README.IRIX (from rev 75971, 
brlcad/trunk/doc/README.IRIX)
===================================================================
--- brlcad/trunk/doc/README/README.IRIX                         (rev 0)
+++ brlcad/trunk/doc/README/README.IRIX 2020-05-28 20:47:56 UTC (rev 75972)
@@ -0,0 +1,51 @@
+BRL-CAD on IRIX README
+======================
+
+Building on IRIX is one of the most tricky platforms to support
+without installing up-to-date compilation tools.  That said, the build
+has and should work just fine with either the MIPSPro or GCC
+compilers.  The best performance is usually achieved with the MIPSPro
+compiler, whereas GCC will compile faster with less fuss.
+
+Kitware provides CMake binaries for IRIX64 platforms:
+http://www.cmake.org/cmake/resources/software.html
+
+
+Parallel building
+-----------------
+For parallel compilation on IRIX, the -P option enables parallel
+build mode and the PARALLEL environment variable sets the number
+of CPUs (default is two):
+
+PARALLEL=4 make -P
+
+
+Potential problems you may encounter
+------------------------------------
+
+Symptom: MIPSPro linker reports symbol(s) missing
+
+Description: There's a known bug in the MIPSpro linker involving
+rpaths that are too long (namely longer than 255 characters) so care
+should be taken to not compile in directories that are too deep.  The
+way this bug is usually seen is that the build will fail during
+compilation where unresolved symbols are reported during linking,
+symbols that are correctly included in the libraries being linked.
+
+Workaround: It is usually sufficient to retry the compile from a
+shorter path. (e.g., /tmp instead of /some/deep/path/to/brlcad)
+
+---
+
+Symptom: GCC crashes during compilation with internal errors
+
+Description:  Certain versions of the gcc compiler are known to crash
+with internal error messages, for example on src/mged/animedit.c, when
+using optimization flags (i.e. -O3).
+
+Workaround: Compile in whatever directory is failing with -O0 instead:
+       cd src/mged
+       sed -i "s/ -O3 / -O0 /g" CMakeFiles/mged.dir/flags.make
+       make
+       cd ../..
+       make

Copied: brlcad/trunk/doc/README/README.Linux (from rev 75971, 
brlcad/trunk/doc/README.Linux)
===================================================================
--- brlcad/trunk/doc/README/README.Linux                                (rev 0)
+++ brlcad/trunk/doc/README/README.Linux        2020-05-28 20:47:56 UTC (rev 
75972)
@@ -0,0 +1,128 @@
+BRL-CAD on Linux README
+=======================
+
+Below are installation and platform notes of relevance to particular
+Linux distributions.
+
+Table of Contents
+-----------------
+Parallel Builds
+64-bit Compile
+32-bit Compile
+Arch Linux
+Ubuntu/Debian
+PPC64 Linux
+
+Parallel Builds
+---------------
+BRL-CAD compilation can take advantage of multiple CPUs.  With
+Make based builds, this is done using the "-j" flag - e.g. a
+six core machine will build faster using "make -j6" to utilize
+all cores.
+
+
+64-bit Compile (on a platform that defaults to 32-bit)
+--------------
+
+cmake ../brlcad -DBRLCAD_WORD_SIZE=32BIT
+
+32-bit Compile (on a platform that defaults to 64-bit)
+--------------
+
+cmake ../brlcad -DBRLCAD_WORD_SIZE=64BIT
+
+* Note that in both of the above situations you need both a compiler that
+works in the alternate mode and system libraries of the correct type.
+
+
+Arch Linux
+----------
+
+An example PKGBUILD and needed scripts are provided in misc/archlinux.
+Review and edit the PKGBUILD to suit your preferred configuration and
+build situation (e.g. building from a tarball vs building from SVN).
+Run `makepkg` in that directory to build the package.
+
+
+Ubuntu/Debian
+-------------
+
+Users of Ubuntu, Debian, and other similar packaging distributions of
+Linux will need to ensure that a few essentials are in place before
+you will be able to compile BRL-CAD.
+
+Following the build instructions in the INSTALL file.  You will need:
+
+gcc (3+, e.g. 4.0.3)
+g++ (3+, e.g. 4.0.3)
+make (e.g. gnu make 3.8.0)
+cmake (2.8.8 or newer)
+
+All three of those have implicit dependencies on other packages.
+
+You will also want to make sure that you have the X11 development
+headers installed:
+
+  apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev
+
+Other development packages needed to build on Debian-based platforms:
+
+  for building the Tcl/Tk libraries:  libfontconfig-dev
+
+  for OpenGL: libglu1-mesa-dev
+
+Note there is a supported Debian package generation script in file
+'sh/make_deb.sh' which can function only on a Debian or Ubuntu system.
+It can be used like so:
+
+  $ cd <BRL-CAD source directory>
+
+  # get help for the script:
+  $ ./sh/make_deb.sh
+
+  # create a binary package:
+  $ ./sh/make_deb.sh -b
+
+You can customize the script's cmake build options by modifying the
+file 'misc/debian/rules'.  Note that the BRL-CAD source directory
+should be deleted and recreated for each new attempt at package
+generation.
+
+
+Redhat/Fedora
+-------------
+
+Development packages for building on Redhat/Fedora platforms:
+
+  yum install libX11-devel
+  yum install libXext-devel    # optional
+  yum install libXi-devel      # optional
+  yum install freetype-devel   # optional
+  yum install fontconfig-devel # optional
+  yum install mesa-libGL-devel # optional
+
+To determine what particular version of Redhat or Fedora you are
+using, check these files:
+
+cat /etc/redhat-release
+cat /etc/fedora-release
+
+Note there is a supported rpm package generation script in file
+'sh/make_rpm.sh' which can only function on a Fedora or openSUSE
+system.  It can be used like so:
+
+  $ cd <BRL-CAD source directory>
+
+  # create an rpm file:
+  $ ./sh/make_rpm.sh
+
+It is also possible to create an RPM package using CPack with the
+make package build target, on systems with the proper RPM tools.
+
+PPC64 Linux
+-----------
+
+If you happen to be installing on a ppc64 Linux system, the binaries
+may not resolve correctly without being installed first.  Be sure to
+install before testing applications (i.e., even before running the
+benchmark or "make test").

Copied: brlcad/trunk/doc/README/README.MacOSX (from rev 75971, 
brlcad/trunk/doc/README.MacOSX)
===================================================================
--- brlcad/trunk/doc/README/README.MacOSX                               (rev 0)
+++ brlcad/trunk/doc/README/README.MacOSX       2020-05-28 20:47:56 UTC (rev 
75972)
@@ -0,0 +1,109 @@
+BRL-CAD on Max OS X README
+==========================
+
+Being that this is one of the newest architectures to be added and
+officially supported, there are some issues to keep in mind with the
+installation when building from the sources.  Beyond the notes
+provided here, building on Mac OS X can generally be considered the
+same as the UNIX, BSD, and Linux platforms.
+
+Table of Contents
+-----------------
+  Introduction
+  Table of Contents
+  CMake
+  X11 Window Server
+  Supported Versions
+  Mac OS X 10.2
+  Parallel Builds
+  Bugs
+
+CMake
+-----------------
+Kitware provides Mac OSX compilations of CMake:
+
+http://www.cmake.org/cmake/resources/software.html
+
+
+X11 Window Server
+-----------------
+You'll need to install an X11 server if you would like to build Tk and
+have a graphical user interface.  Apple's X11 is the recommended X
+Window Server, but XQuartz should work too and is often newer than the
+official Apple version:  http://xquartz.macosforge.org
+
+Supported Versions
+------------------
+BRL-CAD is generally only "extensively" tested by the developers on
+the latest released version of Mac OS X.  That is to say that
+although the BRL-CAD package should build on prior versions of the Mac
+OS X operating system, they are generally and eventually not
+maintained and will require additional effort to obtain a build.
+Compiling on 10.3 or 10.4 should complete successfully.  Due to a
+variety of significant application programming interface issues in
+early releases of Mac OS X, versions prior to 10.2 are unsupported.
+
+Parallel Builds
+---------------
+As many workstation and server systems shipped by Apple are
+multiprocessor systems, you can enjoy the benefits of decreased
+compile times by utilizing the "-j" option to make.  After running
+configure, run "make -j2" to build on a 2-processor system.
+
+Universal Builds
+----------------
+
+Universal builds have not been fully vetted due to how BRL-CAD
+serializes data to disk. BRL-CAD's CMake logic is not currently
+set up to support this type of build, but plans to in the future.
+
+CMake and Mac OSX
+-----------------
+
+On a default configuration, CMake has some problems performing parallel
+builds on OSX - typically this will manifest itself as a series of
+"too many open files" errors.  So far, the way to work around this in
+OSX 10.5 is to set the following system control variables to 50,000:
+
+kern.maxfiles
+kern.maxfilesperproc
+
+(check the current values using "sysctl <variable>" on the command line)
+
+and up the maxfiles limit in /etc/launchd.conf:
+
+limit maxfiles 50000 unlimited
+
+This is not widely tested, and OSX has quite a few limit settings that
+may or may not apply (and may change from one version to the next.)  As
+we get a better feel for various platforms we can assemble a table of
+required settings.  Other programs have this issue as well, so searching
+online may prove fruitful.
+
+So far, if parallel building doesn't work due to the above issue a
+non-parallel build will still succeed.  Another workaround is to build
+just subdirectories (e.g. src/other, doc, etc.) individually and then
+do a toplevel make in non-parallel mode to finalize the build.
+
+OpenSceneGraph and OSX
+----------------------
+For 32bit OSX builds of an X11+OpenSceneGraph BRL-CAD:
+cmake .. -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_OSG=ON
+-DBRLCAD_REGEX=SYSTEM -DBRLCAD_WORD_SIZE=32BIT -DOSG_WINDOWING_SYSTEM=X11
+
+
+Tips
+----
+
+If you need to get information about your machine and OSX version, try
+these commands:
+
+sw_vers -productVersion
+uname -a
+
+Bugs
+----
+The only known bugs specific to Mac OS X are limitations of Tk or the
+X11 event handler that are generally outside of BRL-CAD's domain.
+Refer to BUGS for more general details on known bugs and reporting
+mechanisms.

Copied: brlcad/trunk/doc/README/README.OSCON-2014 (from rev 75971, 
brlcad/trunk/doc/README.OSCON-2014)
===================================================================
--- brlcad/trunk/doc/README/README.OSCON-2014                           (rev 0)
+++ brlcad/trunk/doc/README/README.OSCON-2014   2020-05-28 20:47:56 UTC (rev 
75972)
@@ -0,0 +1,53 @@
+BRL-CAD:  A Vibrant Open Source Model
+
++ intro
+
+  - speaker
+
+  - old vs. new (Rurel's joke about old farmer and his young farmhand)
+
++ overview
+
+  - history, players
+
+     Mike Muuss [author of ping]
+
+  - license
+
+  - languages (Ohloh stats)
+
++ important technical features
+
+  - database format
+
+  - tools
+
+  - libraries
+
+  - use of other FOSS libraries
+
+  - road map
+
++ other features
+
++ community
+
+  - players (Ohloh stats)
+
++ process
+
+  - Source Forge
+
+  - API changes
+
+  - deprecation policy
+
+  - release procedures
+
+  - version control
+
+  - bug tracking
+
+- policy
+
+- outreach

Copied: brlcad/trunk/doc/README/README.Solaris (from rev 75971, 
brlcad/trunk/doc/README.Solaris)
===================================================================
--- brlcad/trunk/doc/README/README.Solaris                              (rev 0)
+++ brlcad/trunk/doc/README/README.Solaris      2020-05-28 20:47:56 UTC (rev 
75972)
@@ -0,0 +1,61 @@
+BRL-CAD on Solaris README
+=========================
+In recent years, there have been a variety of Solaris-style operating
+systems that have appeared, following Sun's open-source release of
+OpenSolaris.  OpenSolaris itself doesn't seem to be especially active, but
+another derivative system called OpenIndiana has appeared, based on the
+illumos kernel - the Solaris file will be the place to add any notes
+needed to build on such derivative systems, as well as Solaris proper.
+
+Kitware does not provide a pre-compiled binary for CMake on Solaris
+type systems.  To bootstrap from the source code, try the following:
+
+(You probably want to use gmake and gcc/g++ for this...)
+
+1.  Download the source from http://www.cmake.org/cmake/resources/software.html
+2.  unzip the tarball: gunzip cmake-X.Y.Z.tar.gz
+3.  open the tarball: tar -xvf cmake-X.Y.Z.tar
+4.  cd cmake-X.Y.Z
+5.  CXX=g++ ./bootstrap -prefix=/home/user/cmake-install (or your preferred 
directory)
+6.  gmake
+7.  gmake install
+
+Then (if you installed to somewhere other than a system dir) add the
+bin directory to your path:
+
+csh:  setenv PATH /home/user/cmake-install/bin:$PATH
+bash: export PATH=/home/user/cmake-install/bin:$PATH
+
+From there, you should be good to build BRL-CAD.  The most recent tests
+of the Sun Studio compiler suggest that there are issues to resolve,
+so (unless you want to fix those issues, which would be welcome!) you
+probably want to use the GCC compiler suite to build BRL-CAD as well:
+
+CC=gcc CXX=g++ cmake ../brlcad
+
+If while compiling you encounter an error "Text relocation remains
+against symbol" along with some number of lines following, it usually
+means that the build has attempted to link a static system library
+into a shared library being compiled (e.g. attempting to link a system
+libz.a into the png library distributed in src/other/libpng being
+compiled as libpng.so).  If this happens, it likely indicates a problem
+with the CMake build logic and should be reported as a bug - you may also
+need to install a shared version of the library.  Another possibility
+would be to add -mipure-text to the linker flags.
+
+OpenIndiana
+-----------
+
+To build with gcc and CMake on OpenIndiana, you need to install the
+following packages:
+
+pkg install pkg:/developer/gcc-7
+pkg install pkg:/developer/build/cmake
+pkg install pkg:/developer/versioning/subversion
+pkg install pkg:/system/header
+pkg install pkg:/developer/lexer/flex
+
+(Note that gcc-7 building doesn't work as of 2017-08-23 - the above
+install list is a starting point, but the repo currently doesn't
+build and isn't close to building.  It may be an older gcc would
+have better luck...)

Copied: brlcad/trunk/doc/README/README.VAX (from rev 75971, 
brlcad/trunk/doc/README.VAX)
===================================================================
--- brlcad/trunk/doc/README/README.VAX                          (rev 0)
+++ brlcad/trunk/doc/README/README.VAX  2020-05-28 20:47:56 UTC (rev 75972)
@@ -0,0 +1,43 @@
+BRL-CAD on VAX README
+=====================
+
+One of the first systems to run BRL-CAD was the VAX.  In particular, a
+VAX 11/780 named VGR is the baseline reference machine for the BRL-CAD
+Benchmark suite.  Through the 80's and most of the 90's, BRL-CAD was
+compiled for and maintained on VGR running 4.3 BSD until the hardware
+was finally decommissioned.
+
+BRL-CAD has been successfully compiled for and run under the simh
+Computer History Simulation Project's VAX simulator.  Using this
+simulator, it's feasible to install one of the BSD variants
+(e.g. NetBSD) and the GCC compiler.
+
+No one has tried bootstrapping CMake on a VAX simh NetBSD image yet, so it
+is not known what problems may occur - the basic bootstrap procedure is:
+
+1.  Download the source from http://www.cmake.org/cmake/resources/software.html
+2.  unzip the tarball: gunzip cmake-X.Y.Z.tar.gz
+3.  open the tarball: tar -xvf cmake-X.Y.Z.tar
+4.  cd cmake-X.Y.Z
+5.  CXX=g++ ./bootstrap -prefix=/home/user/cmake-install (or your preferred 
directory)
+6.  gmake
+7.  gmake install
+
+As of the last effort involved in compiling BRL-CAD under this
+environment (using GNU Autotools), there were a few steps
+necessary that included the following:
+
+  - Define the preprocessor symbol "vax".
+
+  - Disable compilation of libfft and sig.  The FFT library builds
+    convolution kernels that are too large for the usual VAX memory
+    sizes.
+
+  - Compile against libm.a instead of libm.so.  The shared object
+    library (at least under NetBSD) is buggy and will cause run-time
+    bus errors (i.e. rt will crash).  With CMake, you might try:
+       -DM_LIBRARY=/usr/lib/libm.a
+
+After those steps, you should at least be able to perform a benchmark
+compilation (i.e. "make benchmark"), raytrace images, and obtain
+performance metrics.

Copied: brlcad/trunk/doc/README/README.Windows (from rev 75971, 
brlcad/trunk/doc/README.Windows)
===================================================================
--- brlcad/trunk/doc/README/README.Windows                              (rev 0)
+++ brlcad/trunk/doc/README/README.Windows      2020-05-28 20:47:56 UTC (rev 
75972)
@@ -0,0 +1,113 @@
+BRL-CAD on Windows README
+=========================
+
+The usual way to build BRL-CAD for Windows is to use the CMake build
+system generator and the Microsoft Visual Studio C++ (MSVC) compiler.
+Recent versions of both (as of this writing, MSVC 2013 and CMake
+2.8.12+) are recommended.  If generating an installer, the Nullsoft
+Scriptable Install System (NSIS) tool is also required.
+
+In principle, BRL-CAD can be built using CMake and environments like
+Cygwin and/or Mingw/Msys, but the latter is largely untested and
+infrequently supported.  Enhancements or bug reports are welcome.
+
+Visual Studio
+-------------
+
+=== Notes on Windows 10 with latest SDK ===
+Because Tk before 8.6.8 cannot be built with the latest Windows SDK
+(naming conflicts; see [1]), an earlier one (10.0.15063.0 is the
+last working version) is needed (available at [2]).
+
+Targets `tk`, `tkstub` and `libfb` need to be changed to use this SDK
+(right click on a target -> Configuration Properties -> General;
+select the SDK in Windows SDK Version).
+
+Compilation is then unchanged from the below.
+
+[1]: https://core.tcl.tk/tk/tktview?name=3d34589aa0
+[2]: https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
+
+===========================================
+
+=== Notes on Visual Studio 14 2015 ===
+
+In order to build this version (required to build the Creo 3 converter)
+with CMake, you must ensure that Microsoft's "rc.exe" program is
+installed and findable by CMake.
+
+To install "rc.exe", run or re-run the Visual Studio installer and enable
+Visual C++ components and "Visual Studio Extensibility Tools Update 1" under
+the "Common Tools" section.
+
+The extensibility tools can become unselected by default in some
+configurations. Verify "rc.exe" is installed in:
+
+"C:\Program Files (x86)\Windows Kits\8.1\bin\x64"
+
+Add that directory to your "Path" user variable so CMake will be able to
+locate the rc executable.
+
+See:
+https://stackoverflow.com/questions/43847542/rc-exe-no-longer-found-in-vs-2015-command-prompt
+
+======================================
+
+
+To build with CMake and Visual Studio, the first step is to obtain the
+BRL-CAD sources and create a build directory.  In principle, it is not
+*required* to have a separate build directory, but with Windows and
+Visual Studio this is the only tested configuration.  Once those the
+sources are obtained and the build directory is created, run the CMake
+application and specify the source and build directories.
+
+Once CMake has the correct directory settings, select Configure.  If
+this is the first time running Configure with this build directory,
+CMake will prompt you to select a generator.  Look for your version of
+Visual Studio and select it.  Configuration should now proceed.
+
+It is normal for configuration to be a long process on Windows.  Once
+it is complete, you should see a list of red highlighted entries
+appear in the CMake interface.  Change any settings that appear to
+need changing and press Configure again.  The second pass should be
+shorter.  If no new red lines appear, the configuration is complete.
+
+The final CMake step, after completing Configuration, is to select
+Generate to create Visual Studio project files in the build directory.
+Once this is done, you may quit CMake.
+
+Navigate to your build directory.  You should see a BRLCAD solution
+file for Visual Studio.  Double-click that file, and Visual Studio
+should launch.  It will load the targets (a default configuration of
+BRL-CAD on Windows will generate over 800 of them) and a large list of
+targets will appear.  To build everything look for a target named
+ALL_BUILD.  Start compiling that target.
+
+Once compilation is successfully complete, you can find the compiled
+executables in a 'bin' directory in your build directory.  For
+example, mged.exe would be in brlcad-svn-trunk\.build\Debug\bin if
+brlcad-svn-trunk\.build is the build directory specified to CMake and
+CMAKE_BUILD_TYPE was set to Debug.
+
+You may want to produce an NSIS installer.  If so, locate a target
+named PACKAGE and run it.  The end result should be an .exe file
+capable of installing BRL-CAD.
+
+MINGW (WORK IN PROGRESS - THIS DOES NOT YET WORK!!!)
+-----
+
+After installing the MINGW system, set up as follows:
+
+set path=%path%;"C:\Program Files (x86)\CMake\bin"
+set path=%path%;C:\MinGW\bin
+
+now make a build directory, and run CMake:
+
+cmake ..\brlcad -G "MinGW Makefiles" -DBRLCAD_BUNDLED_LIBS=BUNDLED
+
+mingw32-make
+
+Note that you don't want to do this from an msys prompt that has
+sh in the path.  (ConEmu can make using the standard Windows command
+prompt a bit more tolerable:  http://conemu.github.io)
+

Deleted: brlcad/trunk/doc/README.AIX
===================================================================
--- brlcad/trunk/doc/README.AIX 2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/README.AIX 2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,35 +0,0 @@
-BRL-CAD on AIX README
-=====================
-
-Dec. 15, 2011 - As of this date, it has been some time since an AIX
-build of BRL-CAD has been tested, and thus far it has NOT been tested
-b with the new CMake build system.
-
-Kitware provides an AIX powerpc binary for CMake, see
-http://www.cmake.org/cmake/resources/software.html
-
-
-Building BRL-CAD under AIX is fairly straightforward using a correctly
-installed version on the GCC compiler.  If, however, you are using the
-IBM Visual Age compiler, then there are additional manual compilation
-steps that will be necessary.  In particular, the IBM compiler and
-associated standard C library headers are inconsistent with respect to
-ANSI/POSIX compliance compiler options.
-
-The IBM compiler supports a variety of compliance options, the two of
-particular relevance to building BRL-CAD (in terms of being the close
-to obtaining a functional compile) are the strict compliance
-(-qlanglvl=stdc89) or "extended" compliance (-qlanglvl=extc89) modes.
-Problems encountered in our build environment using strict compliance
-does mostly work though we ran into errors in the standard C library
-headers.
-
-Using the "extended" compliance mode resolved the standard C library
-header issues, but introduces problems in the compilation of BRL-CAD
-as the compiler then disables the provision of the __STDC__
-preprocessor symbol.  BRL-CAD then defaults back to K&R mode, which
-the compiler verbosely refuses to compile.  The "quick fix" that has
-been used in the past is to simply swap the compiler between the two
-modes as when one fails (e.g. strict), the other usually succeeds
-(e.g. extended).  Barring that working, you can use extended mode and
-define __STDC__ manually.

Deleted: brlcad/trunk/doc/README.BSD
===================================================================
--- brlcad/trunk/doc/README.BSD 2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/README.BSD 2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,16 +0,0 @@
-BRL-CAD on BSD README
-=====================
-
-BRL-CAD is frequently compiled under various variants of
-BSD including FreeBSD, NetBSD, OpenBSD, and even the original
-4.3 BSD (though now rare) - FreeBSD is the most common BSD
-platform tested, not counting Mac OSX.  See the README.VAX
-document for additional details that pertain to building
-BRL-CAD on a VAX running BSD.
-
-CMake binaries for *BSD operating systems are not distributed
-by Kitware, but should be available through standard *BSD
-packaging mechanisms.  Failing that, CMake can be bootstrapped
-without much difficulty on most modern Unix-style platforms.
-
-BRL-CAD is included in the FreeBSD Ports system.

Deleted: brlcad/trunk/doc/README.IRIX
===================================================================
--- brlcad/trunk/doc/README.IRIX        2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/README.IRIX        2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,51 +0,0 @@
-BRL-CAD on IRIX README
-======================
-
-Building on IRIX is one of the most tricky platforms to support
-without installing up-to-date compilation tools.  That said, the build
-has and should work just fine with either the MIPSPro or GCC
-compilers.  The best performance is usually achieved with the MIPSPro
-compiler, whereas GCC will compile faster with less fuss.
-
-Kitware provides CMake binaries for IRIX64 platforms:
-http://www.cmake.org/cmake/resources/software.html
-
-
-Parallel building
------------------
-For parallel compilation on IRIX, the -P option enables parallel
-build mode and the PARALLEL environment variable sets the number
-of CPUs (default is two):
-
-PARALLEL=4 make -P
-
-
-Potential problems you may encounter
-------------------------------------
-
-Symptom: MIPSPro linker reports symbol(s) missing
-
-Description: There's a known bug in the MIPSpro linker involving
-rpaths that are too long (namely longer than 255 characters) so care
-should be taken to not compile in directories that are too deep.  The
-way this bug is usually seen is that the build will fail during
-compilation where unresolved symbols are reported during linking,
-symbols that are correctly included in the libraries being linked.
-
-Workaround: It is usually sufficient to retry the compile from a
-shorter path. (e.g., /tmp instead of /some/deep/path/to/brlcad)
-
----
-
-Symptom: GCC crashes during compilation with internal errors
-
-Description:  Certain versions of the gcc compiler are known to crash
-with internal error messages, for example on src/mged/animedit.c, when
-using optimization flags (i.e. -O3).
-
-Workaround: Compile in whatever directory is failing with -O0 instead:
-       cd src/mged
-       sed -i "s/ -O3 / -O0 /g" CMakeFiles/mged.dir/flags.make
-       make
-       cd ../..
-       make

Deleted: brlcad/trunk/doc/README.Linux
===================================================================
--- brlcad/trunk/doc/README.Linux       2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/README.Linux       2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,128 +0,0 @@
-BRL-CAD on Linux README
-=======================
-
-Below are installation and platform notes of relevance to particular
-Linux distributions.
-
-Table of Contents
------------------
-Parallel Builds
-64-bit Compile
-32-bit Compile
-Arch Linux
-Ubuntu/Debian
-PPC64 Linux
-
-Parallel Builds
----------------
-BRL-CAD compilation can take advantage of multiple CPUs.  With
-Make based builds, this is done using the "-j" flag - e.g. a
-six core machine will build faster using "make -j6" to utilize
-all cores.
-
-
-64-bit Compile (on a platform that defaults to 32-bit)
---------------
-
-cmake ../brlcad -DBRLCAD_WORD_SIZE=32BIT
-
-32-bit Compile (on a platform that defaults to 64-bit)
---------------
-
-cmake ../brlcad -DBRLCAD_WORD_SIZE=64BIT
-
-* Note that in both of the above situations you need both a compiler that
-works in the alternate mode and system libraries of the correct type.
-
-
-Arch Linux
-----------
-
-An example PKGBUILD and needed scripts are provided in misc/archlinux.
-Review and edit the PKGBUILD to suit your preferred configuration and
-build situation (e.g. building from a tarball vs building from SVN).
-Run `makepkg` in that directory to build the package.
-
-
-Ubuntu/Debian
--------------
-
-Users of Ubuntu, Debian, and other similar packaging distributions of
-Linux will need to ensure that a few essentials are in place before
-you will be able to compile BRL-CAD.
-
-Following the build instructions in the INSTALL file.  You will need:
-
-gcc (3+, e.g. 4.0.3)
-g++ (3+, e.g. 4.0.3)
-make (e.g. gnu make 3.8.0)
-cmake (2.8.8 or newer)
-
-All three of those have implicit dependencies on other packages.
-
-You will also want to make sure that you have the X11 development
-headers installed:
-
-  apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev
-
-Other development packages needed to build on Debian-based platforms:
-
-  for building the Tcl/Tk libraries:  libfontconfig-dev
-
-  for OpenGL: libglu1-mesa-dev
-
-Note there is a supported Debian package generation script in file
-'sh/make_deb.sh' which can function only on a Debian or Ubuntu system.
-It can be used like so:
-
-  $ cd <BRL-CAD source directory>
-
-  # get help for the script:
-  $ ./sh/make_deb.sh
-
-  # create a binary package:
-  $ ./sh/make_deb.sh -b
-
-You can customize the script's cmake build options by modifying the
-file 'misc/debian/rules'.  Note that the BRL-CAD source directory
-should be deleted and recreated for each new attempt at package
-generation.
-
-
-Redhat/Fedora
--------------
-
-Development packages for building on Redhat/Fedora platforms:
-
-  yum install libX11-devel
-  yum install libXext-devel    # optional
-  yum install libXi-devel      # optional
-  yum install freetype-devel   # optional
-  yum install fontconfig-devel # optional
-  yum install mesa-libGL-devel # optional
-
-To determine what particular version of Redhat or Fedora you are
-using, check these files:
-
-cat /etc/redhat-release
-cat /etc/fedora-release
-
-Note there is a supported rpm package generation script in file
-'sh/make_rpm.sh' which can only function on a Fedora or openSUSE
-system.  It can be used like so:
-
-  $ cd <BRL-CAD source directory>
-
-  # create an rpm file:
-  $ ./sh/make_rpm.sh
-
-It is also possible to create an RPM package using CPack with the
-make package build target, on systems with the proper RPM tools.
-
-PPC64 Linux
------------
-
-If you happen to be installing on a ppc64 Linux system, the binaries
-may not resolve correctly without being installed first.  Be sure to
-install before testing applications (i.e., even before running the
-benchmark or "make test").

Deleted: brlcad/trunk/doc/README.MacOSX
===================================================================
--- brlcad/trunk/doc/README.MacOSX      2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/README.MacOSX      2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,109 +0,0 @@
-BRL-CAD on Max OS X README
-==========================
-
-Being that this is one of the newest architectures to be added and
-officially supported, there are some issues to keep in mind with the
-installation when building from the sources.  Beyond the notes
-provided here, building on Mac OS X can generally be considered the
-same as the UNIX, BSD, and Linux platforms.
-
-Table of Contents
------------------
-  Introduction
-  Table of Contents
-  CMake
-  X11 Window Server
-  Supported Versions
-  Mac OS X 10.2
-  Parallel Builds
-  Bugs
-
-CMake
------------------
-Kitware provides Mac OSX compilations of CMake:
-
-http://www.cmake.org/cmake/resources/software.html
-
-
-X11 Window Server
------------------
-You'll need to install an X11 server if you would like to build Tk and
-have a graphical user interface.  Apple's X11 is the recommended X
-Window Server, but XQuartz should work too and is often newer than the
-official Apple version:  http://xquartz.macosforge.org
-
-Supported Versions
-------------------
-BRL-CAD is generally only "extensively" tested by the developers on
-the latest released version of Mac OS X.  That is to say that
-although the BRL-CAD package should build on prior versions of the Mac
-OS X operating system, they are generally and eventually not
-maintained and will require additional effort to obtain a build.
-Compiling on 10.3 or 10.4 should complete successfully.  Due to a
-variety of significant application programming interface issues in
-early releases of Mac OS X, versions prior to 10.2 are unsupported.
-
-Parallel Builds
----------------
-As many workstation and server systems shipped by Apple are
-multiprocessor systems, you can enjoy the benefits of decreased
-compile times by utilizing the "-j" option to make.  After running
-configure, run "make -j2" to build on a 2-processor system.
-
-Universal Builds
-----------------
-
-Universal builds have not been fully vetted due to how BRL-CAD
-serializes data to disk. BRL-CAD's CMake logic is not currently
-set up to support this type of build, but plans to in the future.
-
-CMake and Mac OSX
------------------
-
-On a default configuration, CMake has some problems performing parallel
-builds on OSX - typically this will manifest itself as a series of
-"too many open files" errors.  So far, the way to work around this in
-OSX 10.5 is to set the following system control variables to 50,000:
-
-kern.maxfiles
-kern.maxfilesperproc
-
-(check the current values using "sysctl <variable>" on the command line)
-
-and up the maxfiles limit in /etc/launchd.conf:
-
-limit maxfiles 50000 unlimited
-
-This is not widely tested, and OSX has quite a few limit settings that
-may or may not apply (and may change from one version to the next.)  As
-we get a better feel for various platforms we can assemble a table of
-required settings.  Other programs have this issue as well, so searching
-online may prove fruitful.
-
-So far, if parallel building doesn't work due to the above issue a
-non-parallel build will still succeed.  Another workaround is to build
-just subdirectories (e.g. src/other, doc, etc.) individually and then
-do a toplevel make in non-parallel mode to finalize the build.
-
-OpenSceneGraph and OSX
-----------------------
-For 32bit OSX builds of an X11+OpenSceneGraph BRL-CAD:
-cmake .. -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_OSG=ON
--DBRLCAD_REGEX=SYSTEM -DBRLCAD_WORD_SIZE=32BIT -DOSG_WINDOWING_SYSTEM=X11
-
-
-Tips
-----
-
-If you need to get information about your machine and OSX version, try
-these commands:
-
-sw_vers -productVersion
-uname -a
-
-Bugs
-----
-The only known bugs specific to Mac OS X are limitations of Tk or the
-X11 event handler that are generally outside of BRL-CAD's domain.
-Refer to BUGS for more general details on known bugs and reporting
-mechanisms.

Deleted: brlcad/trunk/doc/README.OSCON-2014
===================================================================
--- brlcad/trunk/doc/README.OSCON-2014  2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/README.OSCON-2014  2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,53 +0,0 @@
-BRL-CAD:  A Vibrant Open Source Model
-
-+ intro
-
-  - speaker
-
-  - old vs. new (Rurel's joke about old farmer and his young farmhand)
-
-+ overview
-
-  - history, players
-
-     Mike Muuss [author of ping]
-
-  - license
-
-  - languages (Ohloh stats)
-
-+ important technical features
-
-  - database format
-
-  - tools
-
-  - libraries
-
-  - use of other FOSS libraries
-
-  - road map
-
-+ other features
-
-+ community
-
-  - players (Ohloh stats)
-
-+ process
-
-  - Source Forge
-
-  - API changes
-
-  - deprecation policy
-
-  - release procedures
-
-  - version control
-
-  - bug tracking
-
-- policy
-
-- outreach

Deleted: brlcad/trunk/doc/README.Solaris
===================================================================
--- brlcad/trunk/doc/README.Solaris     2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/README.Solaris     2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,61 +0,0 @@
-BRL-CAD on Solaris README
-=========================
-In recent years, there have been a variety of Solaris-style operating
-systems that have appeared, following Sun's open-source release of
-OpenSolaris.  OpenSolaris itself doesn't seem to be especially active, but
-another derivative system called OpenIndiana has appeared, based on the
-illumos kernel - the Solaris file will be the place to add any notes
-needed to build on such derivative systems, as well as Solaris proper.
-
-Kitware does not provide a pre-compiled binary for CMake on Solaris
-type systems.  To bootstrap from the source code, try the following:
-
-(You probably want to use gmake and gcc/g++ for this...)
-
-1.  Download the source from http://www.cmake.org/cmake/resources/software.html
-2.  unzip the tarball: gunzip cmake-X.Y.Z.tar.gz
-3.  open the tarball: tar -xvf cmake-X.Y.Z.tar
-4.  cd cmake-X.Y.Z
-5.  CXX=g++ ./bootstrap -prefix=/home/user/cmake-install (or your preferred 
directory)
-6.  gmake
-7.  gmake install
-
-Then (if you installed to somewhere other than a system dir) add the
-bin directory to your path:
-
-csh:  setenv PATH /home/user/cmake-install/bin:$PATH
-bash: export PATH=/home/user/cmake-install/bin:$PATH
-
-From there, you should be good to build BRL-CAD.  The most recent tests
-of the Sun Studio compiler suggest that there are issues to resolve,
-so (unless you want to fix those issues, which would be welcome!) you
-probably want to use the GCC compiler suite to build BRL-CAD as well:
-
-CC=gcc CXX=g++ cmake ../brlcad
-
-If while compiling you encounter an error "Text relocation remains
-against symbol" along with some number of lines following, it usually
-means that the build has attempted to link a static system library
-into a shared library being compiled (e.g. attempting to link a system
-libz.a into the png library distributed in src/other/libpng being
-compiled as libpng.so).  If this happens, it likely indicates a problem
-with the CMake build logic and should be reported as a bug - you may also
-need to install a shared version of the library.  Another possibility
-would be to add -mipure-text to the linker flags.
-
-OpenIndiana
------------
-
-To build with gcc and CMake on OpenIndiana, you need to install the
-following packages:
-
-pkg install pkg:/developer/gcc-7
-pkg install pkg:/developer/build/cmake
-pkg install pkg:/developer/versioning/subversion
-pkg install pkg:/system/header
-pkg install pkg:/developer/lexer/flex
-
-(Note that gcc-7 building doesn't work as of 2017-08-23 - the above
-install list is a starting point, but the repo currently doesn't
-build and isn't close to building.  It may be an older gcc would
-have better luck...)

Deleted: brlcad/trunk/doc/README.VAX
===================================================================
--- brlcad/trunk/doc/README.VAX 2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/README.VAX 2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,43 +0,0 @@
-BRL-CAD on VAX README
-=====================
-
-One of the first systems to run BRL-CAD was the VAX.  In particular, a
-VAX 11/780 named VGR is the baseline reference machine for the BRL-CAD
-Benchmark suite.  Through the 80's and most of the 90's, BRL-CAD was
-compiled for and maintained on VGR running 4.3 BSD until the hardware
-was finally decommissioned.
-
-BRL-CAD has been successfully compiled for and run under the simh
-Computer History Simulation Project's VAX simulator.  Using this
-simulator, it's feasible to install one of the BSD variants
-(e.g. NetBSD) and the GCC compiler.
-
-No one has tried bootstrapping CMake on a VAX simh NetBSD image yet, so it
-is not known what problems may occur - the basic bootstrap procedure is:
-
-1.  Download the source from http://www.cmake.org/cmake/resources/software.html
-2.  unzip the tarball: gunzip cmake-X.Y.Z.tar.gz
-3.  open the tarball: tar -xvf cmake-X.Y.Z.tar
-4.  cd cmake-X.Y.Z
-5.  CXX=g++ ./bootstrap -prefix=/home/user/cmake-install (or your preferred 
directory)
-6.  gmake
-7.  gmake install
-
-As of the last effort involved in compiling BRL-CAD under this
-environment (using GNU Autotools), there were a few steps
-necessary that included the following:
-
-  - Define the preprocessor symbol "vax".
-
-  - Disable compilation of libfft and sig.  The FFT library builds
-    convolution kernels that are too large for the usual VAX memory
-    sizes.
-
-  - Compile against libm.a instead of libm.so.  The shared object
-    library (at least under NetBSD) is buggy and will cause run-time
-    bus errors (i.e. rt will crash).  With CMake, you might try:
-       -DM_LIBRARY=/usr/lib/libm.a
-
-After those steps, you should at least be able to perform a benchmark
-compilation (i.e. "make benchmark"), raytrace images, and obtain
-performance metrics.

Deleted: brlcad/trunk/doc/README.Windows
===================================================================
--- brlcad/trunk/doc/README.Windows     2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/README.Windows     2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,113 +0,0 @@
-BRL-CAD on Windows README
-=========================
-
-The usual way to build BRL-CAD for Windows is to use the CMake build
-system generator and the Microsoft Visual Studio C++ (MSVC) compiler.
-Recent versions of both (as of this writing, MSVC 2013 and CMake
-2.8.12+) are recommended.  If generating an installer, the Nullsoft
-Scriptable Install System (NSIS) tool is also required.
-
-In principle, BRL-CAD can be built using CMake and environments like
-Cygwin and/or Mingw/Msys, but the latter is largely untested and
-infrequently supported.  Enhancements or bug reports are welcome.
-
-Visual Studio
--------------
-
-=== Notes on Windows 10 with latest SDK ===
-Because Tk before 8.6.8 cannot be built with the latest Windows SDK
-(naming conflicts; see [1]), an earlier one (10.0.15063.0 is the
-last working version) is needed (available at [2]).
-
-Targets `tk`, `tkstub` and `libfb` need to be changed to use this SDK
-(right click on a target -> Configuration Properties -> General;
-select the SDK in Windows SDK Version).
-
-Compilation is then unchanged from the below.
-
-[1]: https://core.tcl.tk/tk/tktview?name=3d34589aa0
-[2]: https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
-
-===========================================
-
-=== Notes on Visual Studio 14 2015 ===
-
-In order to build this version (required to build the Creo 3 converter)
-with CMake, you must ensure that Microsoft's "rc.exe" program is
-installed and findable by CMake.
-
-To install "rc.exe", run or re-run the Visual Studio installer and enable
-Visual C++ components and "Visual Studio Extensibility Tools Update 1" under
-the "Common Tools" section.
-
-The extensibility tools can become unselected by default in some
-configurations. Verify "rc.exe" is installed in:
-
-"C:\Program Files (x86)\Windows Kits\8.1\bin\x64"
-
-Add that directory to your "Path" user variable so CMake will be able to
-locate the rc executable.
-
-See:
-https://stackoverflow.com/questions/43847542/rc-exe-no-longer-found-in-vs-2015-command-prompt
-
-======================================
-
-
-To build with CMake and Visual Studio, the first step is to obtain the
-BRL-CAD sources and create a build directory.  In principle, it is not
-*required* to have a separate build directory, but with Windows and
-Visual Studio this is the only tested configuration.  Once those the
-sources are obtained and the build directory is created, run the CMake
-application and specify the source and build directories.
-
-Once CMake has the correct directory settings, select Configure.  If
-this is the first time running Configure with this build directory,
-CMake will prompt you to select a generator.  Look for your version of
-Visual Studio and select it.  Configuration should now proceed.
-
-It is normal for configuration to be a long process on Windows.  Once
-it is complete, you should see a list of red highlighted entries
-appear in the CMake interface.  Change any settings that appear to
-need changing and press Configure again.  The second pass should be
-shorter.  If no new red lines appear, the configuration is complete.
-
-The final CMake step, after completing Configuration, is to select
-Generate to create Visual Studio project files in the build directory.
-Once this is done, you may quit CMake.
-
-Navigate to your build directory.  You should see a BRLCAD solution
-file for Visual Studio.  Double-click that file, and Visual Studio
-should launch.  It will load the targets (a default configuration of
-BRL-CAD on Windows will generate over 800 of them) and a large list of
-targets will appear.  To build everything look for a target named
-ALL_BUILD.  Start compiling that target.
-
-Once compilation is successfully complete, you can find the compiled
-executables in a 'bin' directory in your build directory.  For
-example, mged.exe would be in brlcad-svn-trunk\.build\Debug\bin if
-brlcad-svn-trunk\.build is the build directory specified to CMake and
-CMAKE_BUILD_TYPE was set to Debug.
-
-You may want to produce an NSIS installer.  If so, locate a target
-named PACKAGE and run it.  The end result should be an .exe file
-capable of installing BRL-CAD.
-
-MINGW (WORK IN PROGRESS - THIS DOES NOT YET WORK!!!)
------
-
-After installing the MINGW system, set up as follows:
-
-set path=%path%;"C:\Program Files (x86)\CMake\bin"
-set path=%path%;C:\MinGW\bin
-
-now make a build directory, and run CMake:
-
-cmake ..\brlcad -G "MinGW Makefiles" -DBRLCAD_BUNDLED_LIBS=BUNDLED
-
-mingw32-make
-
-Note that you don't want to do this from an msys prompt that has
-sh in the path.  (ConEmu can make using the standard Windows command
-prompt a bit more tolerable:  http://conemu.github.io)
-

Deleted: brlcad/trunk/doc/TODO.BREP
===================================================================
--- brlcad/trunk/doc/TODO.BREP  2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/TODO.BREP  2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,304 +0,0 @@
-BREP TODO
-=========
-
-Included below is a basic work breakdown related to the implementation
-of boundary representation (BREP) support in BRL-CAD.  Feel free to
-add to or expand this list and/or embellish it with additional
-information as appropriate.  If you would like to work on the BREP
-implementation, send a note to the brlcad-devel mailing list.
-
-This file is a general scratch pad for categorizing and itemizing BREP
-implementation tasks.  It is not an implementation plan.
-
-This is a work in progress.
-
-
-Geometry Entities
------------------
-
-point
-line  (e.g., line segment, ray, bidirectionally infinite line)
-line set  (e.g., polyline, polygon)
-curve  (e.g., spline, arc, circle, ellipse)
-plane
-surface (e.g., spline, polygonal)
-surface+curve  (i.e. a trimmed surface)
-solid
-
-
-Geometry Evaluation
--------------------
-
-point -> point
-point -> line
-point -> curve
-point -> plane
-point -> surface
-point -> surface+curve
-point -> solid
-
-line -> line
-line -> curve
-line -> plane
-line -> surface
-line -> surface+curve
-line -> solid
-
-curve -> curve
-curve -> plane
-curve -> surface
-curve -> surface+curve
-curve -> solid
-
-plane -> plane
-plane -> surface
-plane -> surface+curve
-plane -> solid
-
-surface -> surface
-surface -> surface+curve
-surface -> solid
-
-surface+curve -> surface+curve
-surface+curve -> solid
-
-solid -> solid
-
-
-Geometry Queries
-----------------
-
-[ geometric properties ]
-intersects
-inside
-outside
-on
-intersectionSet
-firstIntersectionSet
-closestDistance
-closestSet  (e.g., closestPoint)
-booleanEvaluation
-insideSet  (e.g., insideSolid, insideLoop (trimmed))
-outsideSet
-onSet
-
-[ parametric properties ]
-uvSpace <--> ImageSpace Mapping (for ALL primitive types)
-curvatures
-normalSet  (e.g., normalVector, normalPlane)
-tangentSet  (e.g., tangentVectors, tangentPlanes)
-
-[ checks ]
-isValid
-isSolid
-isManifold
-isFlat
-
-[ bounding volumes ]
-boundingBox
-boundingSphere
-
-
-Geometry Modifiers
-------------------
-
-scale
-rotate
-translate
-shear
-
-mirror
-copy/clone
-delete
-
-invertRepresentation
-evaluateBoolean  (i.e. CSG)
-snapTogether  (e.g., | -)
-
-sweep
-extrude
-revolve
-extend/stretch
-
-trim  (e.g., cutting plane)
-split  (i.e. copy and two trims)
-
-fillet
-chamfer
-
-
-Ray Tracing
------------
-
-intersectionSet query
-  boundingBox
-  line -> solid evaluation
-normalSet query
-  line -> solid evaluation
-
-line->solid evaluation
-  line->surface || line->plane
-
-line->plane
-  line->line
-
-line->surface
-  line->curve || line->line
-  closestDistance
-
-closestDistance
-  point->plane
-  point->point
-
-line->curve
-  line->point
-
-line->line
-  line->point
-
-line->point
-  point->point
-
-
-Interactive Visualization
--------------------------
-
-implicit primitive to solid conversion
-solid on solid CSG evaluation  (i.e. unevaluated to evaluated BREP)
-solid tessellation
-
-
-Conversion
-----------
-
-3DM to BRL-CAD
-BRL-CAD to 3DM
-STEP to BRL-CAD
-IGES to BRL-CAD
-BRL-CAD to STEP
-BRL-CAD to IGES
-
-
-********************************************************************************
- Below are some thoughts and notes about specific issues related to the above
- topics - may be useful as comments at some point, or at least food for 
thought.
-********************************************************************************
-
-/*
- *   Point-Point Evaluation
- *
- *   Answer Evaluation Questions involving two points:
- *
- *   1.  Intersection - for a point, there are three possible categories of of 
intersection:
- *         * Identical - point values identical and all bound values identical
- *
- *                                              * * * * * * * *
- *                                              *             *
- *                                              *    1   2    *
- *                                              *      *      *
- *                                              *             *
- *                                              *             *
- *                                              * * * * * * * *
- *
- *         * Contained - values not all identical but bounds of the point of 
interest all smaller than bounds of
- *                       point it is being compared to
- *
- *
- *                            * * * * * * * * * *             * * * * * * * * 
* *
- *                            *        1        *             *                
 *
- *                            *       * * * * * *             *     * * * * *  
 *
- *                            *       *       * *             *     *  1    *  
 *
- *                            *       *   2   * *             *     *       *  
 *
- *                            *       *       * *             *     *    2  *  
 *
- *                            *       * * * * * *             *     * * * * *  
 *
- *                            * * * * * * * * * *             * * * * * * * * 
* *
- *
- *
- *         * Overlapping - values not all identical but bounds of the point of 
interest all overlap bounds of
- *                       the point it is being compared to.  (Note:  a corner 
case is when the value of the upper
- *                       bound of one point is equal to the lower bound of the 
other - this is defined to be
- *                       overlapping.)
- *
- *
- *                             * * * * * * * *              * * * * * * * *    
          * * * * * * * *
- *                             *             *              *             *    
          *             *
- *                      *      1      *              *   * * * * * * * * *     
   *   * * * * * * * * *
- *                      *     * * * * * * * *        *   *  1      *     *     
   *   *  1      *     *
- *                      *     *       *     *        *   *         *     *     
   *   *         *     *
- *                      * * * * * * * *     *        * * * * * * * *     *     
   *   *      2  *     *
- *                            *      2      *            *        2      *     
   * * * * * * * *     *
- *                            *             *            *               *     
       *               *
- *                            * * * * * * * *            * * * * * * * * *     
       * * * * * * * * *
- *
- *
- *   2.  Outside - "If the points are not identical in value and/or error 
bounds, is the point of interest and its error
- *       bounds contained or overlapping with the comparison point, or vice 
versa?  If not, the point of interest is
- *       outside the comparison point.
- *
- *       Contained and Overlapping points present a problem.  Take the case 
where two points have an overlapping bound
- *       and a third point must decide its relationship with each of them:
- *
- *                                              * * * * * * * *
- *                                              *             *
- *                                              *      1      *
- *                                              *             *
- *                                     * * * * * * * *   * * * * * * * *
- *                                     *       *     *   *   *         *
- *                                     *       * * * * * * * *         *
- *                                     *     2       *   *      3      *
- *                                     *             *   *             *
- *                                     *             *   *             *
- *                                     * * * * * * * *   * * * * * * * *
- *
- *       Point 1 and Point 2 overlap and may intersect.  When Point 3 
evaluates its relationships with Point 1 and
- *       Point 2, it finds that it overlaps and may intersect Point 1, but it 
does NOT overlap Point 3.  This means
- *       that Point 1 may intersect Point 2 OR Point 3, but NOT both at the 
same time.  Any assumption of equality
- *       involving any of these three points must decide how to handle this 
situation, and the decision must be both
- *       consistent and reproducible.  The possible decisions are:
- *
- *       1 = 2, 1 != 3
- *       1 != 2, 1 = 3
- *
- *       In order to have a concrete method for deciding this question, point 
evaluation cannot be a local, two point
- *       only test.  It is necessary to search out all points which overlap 
the two points in question (i.e. the only
- *       points which might impact the decisions of which points are identical 
in this particular case) and resolve the
- *       question amongst all of them.  One possibility would be to assemble 
all the guaranteed non-equalities among
- *       the set, search for the shortest distance between values among the 
remaining possible relationships, and assign
- *       intersection status based on those results.  (This may not be 
sufficient - bounding box size may also be
- *       important.)  For the original two points supplied, the question of 
intersection or non-intersection is now
- *       resolved as long as no geometry changes are made to any element that 
has bounds overlapping their individual
- *       bound.
- *
- *       Once this near space evaluation is done, each point's list of 
intersecting and non-intersecting points is updated.
- *       A query routine with two points can first check the points' own 
intersection/non-intersection lists to see if
- *       the answer is already pre-determined.  If it is not, determining via 
the bounds inside/outside is straightforward
- *       and deterministic and it cannot be intersecting.
- *
- *       One question is what to do when the geometry DOES change. New 
geometry may potentially change the decisions
- *       on what is and is not intersecting - perhaps it should?  Potential 
trouble there with overlapping vs. non-
- *       overlapping regions.
- */
-
-SOLID NURBS RAYTRACING ROBUSTNESS IMPROVEMENT/REFINEMENT
-
-One of the difficult tasks with solid raytracing is determining reliably when 
we're inside or outside in cases where
-BRep edges don't exactly join up geometrically.  OpenNURBS has tolerances 
which define such shapes as "valid", but the
-mathematics of the ray interesection will still report wonky results once hit 
points get inside those tolerance regions.
-
-We have resolution logic that tries to handle ambiguous cases, but one 
potential technique we are not currently using
-would use the bounding box information from the NURBS prep trees to augment 
that logic's robustness (or, more precisely,
-bound the portions of the ray segment within which point ambiguities need to 
be resolved.)
-
-The current thought is to use the not-on-surface-point bounding box points 
(which we can categorize as inside or outside
-relative to the surface they are bounding by construting vectors from on 
surface points to those points and comparing
-them to the surface normal vectors) and the surface points themselves to 
construct an outer and inner bounding volume
-for the BRep (to be reliable, we would also have to take care that we refine 
enough to avoid self intersections in
-those volumes.)  The overall bounding box of the outer volume should always be 
larger than that of the inner volume,
-so a comparison of those would allow us to flip them if the "wrong" box is too 
big to deal with a BRep with inverted
-surface normals.  (Might actually also allow us to reliably detect and fix 
such BReps, but that's a different topic.)
-
-Once we have the outer bounding volume, we intersect that along with the NURBS 
BRep itself and use the ray segments
-from the outer bounding volume as bounding regions within which we resolve any 
point ambiguities.  This should allow
-us to "locally" resolve issues in such a way that doesn't accidentally flag 
(say) a grazing corner hit as the in
-hit for a clean hit pair much further down the shotline (which will result in 
a long "solid" segment through empty
-space.)

Deleted: brlcad/trunk/doc/TODO.shaded_displays
===================================================================
--- brlcad/trunk/doc/TODO.shaded_displays       2020-05-28 20:36:28 UTC (rev 
75971)
+++ brlcad/trunk/doc/TODO.shaded_displays       2020-05-28 20:47:56 UTC (rev 
75972)
@@ -1,122 +0,0 @@
-Consolidated from an e-mail thread and several e-mail messages by Sean
-to the BRL-CAD developers list in Jun 2013 which includes this message:
-
-https://sourceforge.net/mailarchive/forum.php?thread_name=02c584af-d1ad-4d23-9837-1412eed14350%40me.com&forum_name=brlcad-devel
-
-> 4. Finally we will get rid of wireframes. However, we will be able
->    to easily enable or disable shaded geometry or vice versa.
-
-We're not getting rid of wireframes.  Shaded display geometry becoming
-the default, however, is already planned and in the works.  NURBS
-surface-surface intersections (Wu's project) are required for that to
-happen.
-
-...
-
-Making wireframes not be the default is one of several reasons why
-we've been working on NURBS infrastructure.  Not understanding why
-this is required given our representation format is usually an
-indication that someone does not yet understand the fundamental
-problem... which is not meant to be taken in a negative way.  MOST
-people don't have experience with our particular problem domain which
-is specific to having mathematically-based implicit geometry
-representations along with boolean operations.
-
-When most people say shaded display, they usually think of OpenGL,
-Direct3D, games, other modeling systems, etc.  Those systems are
-driven by polygons (triangles).  To have that style of shaded display,
-you have to have polygons.  We do not have polygons.  We do not have a
-robust method for getting polygons.  NURBS gives us a robust method.
-
-When we can 1) convert any geometry to NURBS, 2) evaluate any
-booleans, and 3) tessellate NURBS robustly, it will be possible to
-have robust shaded displays for all geometry.  #1 was finished last
-year primarily thanks to Cliff and Wu.  #3 was finished just this year
-primarily due to Keith.  Work on #2 is underway and is scheduled to be
-finished this year..
-
-It's been a while since I've had to succinctly describe the problem
-and solution, so hopefully that is all understandable to everyone.
-There are several independent tasks that will need to be completed is
-anyone wants to help us get there more quickly.  ;)
-
-...
-
-> Sean, are those tasks grouped somewhere in the TODO list, or?
-
-Not in such a succinct form because there is a lot of interrelation
-with other tasks/projects.  E.g., one can frame reliable STEP NURBS
-import is just as important for shaded displays because users usually
-want to view their own existing data.  Or once we have robust boolean
-evaluation of NURBS, most of our converters will need to be updated to
-use the new method ... that's a lot of work. :)
-
-Some tasks that come to mind related to shaded displays are:
-
-* library routine for boolean evaluation of NURBS
-
-* library routine for non-solid NURBS tessellation (capability exists,
-  but not as formal API)
-
-* library routine for solid NURBS tessellation (capability exists, but
-  not as formal API)
-
-* libgcv routine to perform NURBS boolean evaluation and tessellation
-
-* connecting "facetize" command to use libgcv (solid tessellation)
-
-* migrate current converter polygonal mesh boolean evaluation method
-  of NMG-based converters to libgcv
-
-* updating all NMG-based exporters to use new libgcv routine, retain
-  old method as legacy option
-
-* updating mged/archer to utilize boolean evaluated NURBS as a
-  visualization mode
-
-Other useful but maybe not strictly necessary tasks:
-
-* optimize NURBS prep
-
-* connecting "E" and "ev" commands to use libgcv (non-solid or solid)
-
-* implement support for plate-mode NURBS
-
-* update STEP and 3DM converters to support non-solid NURBS import via
-  plate-mode
-
-* libgcv routine to perform NURBS healing (close near-solid NURBS
-  geometries)
-
-* update NURBS importers to with option to perform healing on import
-
-* update NURBS ray tracing to perform reparameterization/healing
-  during prep
-
-* update IGES importer to import NURBS directly
-
-* implement OBJ NURBS import support
-
-* parallelize single-object NURBS prep (particularly the surface tree
-  building)
-
-* parallelize boolean evaluation of NURBS
-
-* parallelize NURBS tessellation
-
-* refactor libdm API to better support (polygonal,curve,point) display
-  lists
-
-* refactor libdm implementation to re-encapsulate platform-specific
-  logic (no #ifdefs in public headers)
-
-* review old bspline NURBS logic, integrate useful portions, then
-  remove the rest
-
-* formally document our BREP/NURBS primitive, capabilities and
-  limitations
-
-That's just off the top of my head.  There are undoubtedly other tasks
-involved but that's a partial list.  Some/many of them are already in
-the TODO file, but many are not yet.  Feel free to
-expand/incorporate/ignore. ;)

Deleted: brlcad/trunk/doc/brep.txt
===================================================================
--- brlcad/trunk/doc/brep.txt   2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/brep.txt   2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,223 +0,0 @@
-BRL-CAD Boundary-Representation Primitive
------------------------------------------
-
--- Introduction --
-
-This document describes the new Boundary-representation (BREP)
-primitive that has been implemented in BRL-CAD for use with external
-geometry import and improved visualisation.
-
-The primitive is not yet complete, and is currently quite buggy, so
-this document also serves to describe the current state of
-development, and the knowledge a developer needs to continue working
-on this primitive.
-
-
--- BREP Description --
-
-A boundary-representation is a method of representing solid geometry
-by describing its topology and corresponding geometry. In other words,
-the vertexes, edges, and faces as well as the points, curves, and
-surfaces belonging to those topological elements.
-
-For example, a cube has 8 vertexes each mapping to 1 point in space, 6
-faces each mapping to 1 surface, and 8 edges each shared by two faces
-and sharing its two vertexes with two other faces and owning 1 real
-curve.
-
-Actually creating/using a BREP requires keeping track of a lot of details,
-including everything mentioned above, plus curve / face orientations
-(a CCW edge/vertex ordering is usually used for determining front/back
-designations.)
-
-BRL-CAD has/had an existing BREP structure: the NMG (non-manifold
-geometry) primitive/library.
-
-[[describe reasons for not using the existing library]]
-
-One can use many types of surface and curve geometry, but generally a
-small subset are used by any particular implementation: e.g. having
-converted a few pieces of Pro/E through IGES to the new BRL-CAD BREP
-primitive, I've seen the following curve and surface types used:
-
-* Line
-* Arc
-* NURBS curve
-* Surface of revolution
-* NURBS surface
-
-The simple IGES converter used to import and test new geometry handles
-those types already. Other limitations of the converter are described
-later in the document.
-
-
--- Primitive Implementation --
-
-openNURBS was chosen to represent the geometry within BRL-CAD. This
-turned out to be a good and bad choice at the same time:
-
-* contains a lot of solid functionality
-* missing a lot of useful and important functionality
-
-In other words, the openNURBS API provided methods of functions for
-several pieces of functionality that had implementations removed when
-McNeil and Associates released openNURBS as essentially public domain
-code. This slowed development somewhat and meant the functionality had
-to be reimplemented by hand.
-
-The API is relatively straightforward C++, and it is used to evaluate
-geometry and represent/store BREPs in the BRL-CAD geometry file,
-through the built-in serialization facility (i.e. 3DM files).
-
-
--- Raytracing BREPs --
-
-See Abert et al. (raytracing 06 paper: Direct and Fast Ray Tracing of NURBS
-Surfaces).
-
-We use a two-dimensional root-finding technique: we represent the ray
-as two orthogonal planes (the intersection of the planes includes the
-ray), and then find the root of an equation that represents the
-gradient of the distance from the point to the intersection of the ray
-planes. When this gradient becomes zero (we found a root), we've also
-found the uv parameters for the intersection point.
-
-Newton iteration is used, mostly since it is simple, displays
-quadratic convergence when using good guesses, and is amenable to
-acceleration using SIMD instructions.
-
-Evaluation of the surface and its derivatives is done by the openNURBS
-library at this point. The Abert paper gives some information on how
-to do the evaluation using SIMD instructions (needed for speeding
-things up).
-
-A simple SIMD vector class has been implemented (see vector.h)
-supporting both SSE2 and FPU vector operations. This is currently only
-lightly used, since no optimization work has taken place yet
-(correctness before optimization).
-
-After intersection, we need to trim the surface. Every edge of a BREP
-is part of a loop "within" a face. Loops define boundaries on
-faces. In our cube example above, the four edges of a each face
-comprise a single loop (in this case an outer boundary). The surface
-may be defined as an infinite plane, but this outer boundary loop
-limits it to the area enclosed within those edges. As you may imagine,
-a face may have more than one loop and these additional loops will
-always be internal. All loops can also be considered trims, although
-this term seems to be reserved for actual geometric curves that are
-parameterized within the domain of an individual surface.
-
-Properly ray tracing a BREP is difficult (thus, the obvious
-explanation why this primitive is incomplete). There are several facts
-about BREPs that result in problematic situations during ray tracing:
-BREPs are not like implicit solid geometry: there is no nice equation
-to simply solve (a lot of numerical techniques are used); surfaces,
-curves and point geometry may not be aligned; there can be gaps
-between two mated surfaces... and the list goes on.
-
-Since it's possible to miss a surface but *need* a hit (i.e. it hit an
-edge but passed between surfaces that did not mate up or overlap), we
-need to do edge checks: at some point, we find out how far an
-intersection point or a ray is from some set of edges
-
-
--- Current Capabilities & Limitations --
-
-Developing a BRL-CAD primitive requires a minimum of 4 basic
-capabilities: reading from a geom db, writing to a geom db, providing
-a plot of the primitive (for MGED display), and handling shot
-intersection, which involves finding all intersections with the
-primitive and returning the results as a list of "segments" (these
-segments will later be used by BRL-CAD to do its boolean weaving).
-
-This primitive currently handles the first 3 capabilities fine, but
-has problems with the intersections (the most important part!)
-
-Issues:
-
-* bad acne (possibly caused by missing surfaces? duplicate
-  intersections (making an odd number of hits along the ray), trimming
-  errors?
-
-* problems with trimming (not completely sure the bezier clipping is
-  correct)
-
-* possible problems with tolerances (been working with a very small
-  (~2mm) object that has a moderate number of faces/edges)
-
-* no optimization, bad algorithms: bounding boxes (subsurface bounding
-  boxes) should contain correct metadata concerning the need for
-  trimming within the box, also a list of edges touched by the box for
-  more efficient edge checking, evaluation optimization, etc...
-
-
-The current issue seems to be that we're missing surfaces altogether or
-getting extra intersections! or something funky is happening during
-trimming and edge checking. (BTW Pro/E seems to output overlapping
-surfaces, relying on the outer boundary loop to trim it - this implies
-that it should be quite difficult to actually miss both surfaces at an
-edge (since would have to get at least one intersection if they
-overlap at the edge!)
-
-[[ some pictures may be useful here ]]
-
-See all instances of "XXX" in the code (some may be out of date, but
-if something was fishy or I was being stupid/lazy/ignorant or some
-other bit of code was causing a problem, I tried to mark it with XXX.
-
-
--- Conceptual/Implementation Issues --
-
-model-space curve pullback to surface domain for trimming (introduces
-possible errors while trimming (i.e. at an edge it's possible both
-surfaces can be trimmed because of inaccuracies of sampling)...
-
-multiple intersections found
-
-handling edge/surface grazing consistently
-
-bezier conversion of nurbs curves for trimming
-
-subsurface bounding boxes: when subdividing a surface domain and
-testing for flatness, hard to create a perfect bounding box around the
-subdomain (i.e. such that all points on the surface lie within the
-bounding box.) For the most part this may not be a problem, but
-oblique shots cause problems here (an image would help). Either way,
-the problem of better fitting bounding boxes (without just arbitrarily
-increasing the size which would seriously affect performance) needs to
-be considered... currently attempting to sample an additional 5 points
-(instead of just the corners). This should serve to handle the current
-problem.
-
-Close-up axis aligned rendering of a cylinder from the circular ends
-produces a halo of spurious points. Ugh!
-
-Optimize for small objects (there are some fixed size adjustments in
-the bounding box/subsurface code).
-
-
--- IGES converter --
-
-A significant bit of time was spent writing the skeleton for a new
-IGES converter in order to get non-trivial BREP geometry from an
-external package into BRL-CAD for testing purposes (have been using
-the piston head part from one of the Pro/E tutorial models).
-
-I believe this converter can be made production-ready with some work:
-
-* polish options for output
-
-* handle assemblies and their proper mapping to BRL-CAD
-
-* handle naming? (don't know if IGES carries names, or if Pro/E adds
-  them)
-
-* handle units properly!
-
-* tolerances when converting are still flaky (fix it) (cause BREP
-  validity problems). Trims endpoint are not within zero tolerance
-  (1e-12), so they "don't match" but they are very very close
-  (1e-11)... so need to go through and call ON_Brep::CloseTrimGap() on
-  each pair of trims in a loop.
-
-* Run lots of test cases!!!

Deleted: brlcad/trunk/doc/bsd_semaphore_bug.txt
===================================================================
--- brlcad/trunk/doc/bsd_semaphore_bug.txt      2020-05-28 20:36:28 UTC (rev 
75971)
+++ brlcad/trunk/doc/bsd_semaphore_bug.txt      2020-05-28 20:47:56 UTC (rev 
75972)
@@ -1,161 +0,0 @@
-The below backtraces were able to catch the infamous "fatal semaphore
-acquisition failure" bug on BSD.  This is a bit tricky to catch in the act, so
-the below backtraces are added here to serve as references.  They document both
-the gdb backtrace and the trick used to successfully attach to it it (a long
-sleep call compiled in to the key failure area prior to the run, allowing us to
-get a debugger on the program before it actually vanishes.)  This case is most
-reliably seen when running make regress in parallel mode - it doesn't usually
-trigger when running individual programs interactively, although those do
-fail occasionally.
-
-So far this has only been observed on FreeBSD.
-
-Adjustment of the bombing message code reveals that the fatal error is
-EPERM - The current thread does not own the mutex.
-
-Maybe relevant (not sure if we have any code that might be using automatic 
variables after thread_exit(), but the symptoms sound similar...)  Only other 
candidate I'm seeing is memory corruption of some sort...
-https://stackoverflow.com/a/7612070
-
-
-The first failure is from a GQA run:
-
-Architecture set to: x86_64--freebsd11.2.
-(lldb) bt
-* thread #1, name = 'gqa'
-  * frame #0: 0x0000000817433f5c libthr.so.3`_umtx_op_err + 12
-    frame #1: 0x000000081743056a 
libthr.so.3`join_common(pthread=0x000000081ae18800, 
thread_return=0x0000000000000000, abstime=0x0000000000000000) at thr_join.c:125
-    frame #2: 0x0000000814b9b841 
libbu.so.20`bu_parallel(func=(libged.so.20`plane_worker at gqa.c:1223), 
ncpu=16, arg=0x00007fffffffe660) at parallel.c:722
-    frame #3: 0x0000000800af161c libged.so.20`ged_gqa(gedp=0x000000081ae8d000, 
argc=11, argv=0x000000081ae1c300) at gqa.c:2449
-    frame #4: 0x00000000004010c3 gqa`main(argc=12, argv=0x00007fffffffe828) at 
gqa.c:102
-    frame #5: 0x0000000000400c05 gqa`_start + 149
-(lldb) thread list
-Process 56371 stopped
-* thread #1: tid = 101853, 0x0000000817433f5c libthr.so.3`_umtx_op_err + 12, 
name = 'gqa'
-  thread #2: tid = 100989, 0x000000081792e6da libc.so.7`__sys_nanosleep + 10, 
name = 'gqa'
-(lldb) thread select 2
-* thread #2, name = 'gqa'
-    frame #0: 0x000000081792e6da libc.so.7`__sys_nanosleep + 10
-libc.so.7`__sys_nanosleep:
-->  0x81792e6da <+10>: jb     0x8179a05a4               ; .cerror
-    0x81792e6e0 <+16>: retq   
-    0x81792e6e1:       int3   
-    0x81792e6e2:       int3   
-(lldb) bt
-* thread #2, name = 'gqa'
-  * frame #0: 0x000000081792e6da libc.so.7`__sys_nanosleep + 10
-    frame #1: 0x0000000817428a2c 
libthr.so.3`__thr_nanosleep(time_to_sleep=<unavailable>, 
time_remaining=<unavailable>) at thr_syscalls.c:287
-    frame #2: 0x00000008178b19eb libc.so.7`__sleep(seconds=60000) at sleep.c:62
-    frame #3: 0x0000000814bb218c libbu.so.20`bu_semaphore_release(i=20) at 
semaphore.c:272
-    frame #4: 0x0000000800aebc31 libged.so.20`hit(ap=0x00007fffdd7f9dd8, 
PartHeadp=0x00007fffdd7f97e8, segs=0x00007fffdd7f98e8) at gqa.c:1093
-    frame #5: 0x0000000804062b12 
librt.so.20`rt_shootray(ap=0x00007fffdd7f9dd8) at shoot.c:1273
-    frame #6: 0x0000000800aec6cf libged.so.20`plane_worker(cpu=5, 
ptr=0x00007fffffffe660) at gqa.c:1280
-    frame #7: 0x0000000814b9bdcb 
libbu.so.20`parallel_interface_arg(utd=0x000000081afedc80) at parallel.c:428
-    frame #8: 0x0000000817426026 
libthr.so.3`thread_start(curthread=0x000000081ae18800) at thr_create.c:290
-(lldb) up
-frame #1: 0x0000000817428a2c 
libthr.so.3`__thr_nanosleep(time_to_sleep=<unavailable>, 
time_remaining=<unavailable>) at thr_syscalls.c:287
-   284         
-   285                 curthread = _get_curthread();
-   286                 _thr_cancel_enter(curthread);
--> 287                 ret = __sys_nanosleep(time_to_sleep, time_remaining);
-   288                 _thr_cancel_leave(curthread, 1);
-   289         
-   290                 return (ret);
-(lldb) up
-frame #2: 0x00000008178b19eb libc.so.7`__sleep(seconds=60000) at sleep.c:62
-   59          
-   60                  time_to_sleep.tv_sec = seconds;
-   61                  time_to_sleep.tv_nsec = 0;
--> 62                  if (((int (*)(const struct timespec *, struct timespec 
*))
-   63                      __libc_interposing[INTERPOS_nanosleep])(
-   64                      &time_to_sleep, &time_remaining) != -1)
-   65                          return (0);
-(lldb) up
-frame #3: 0x0000000814bb218c libbu.so.20`bu_semaphore_release(i=20) at 
semaphore.c:272
-   269         #  if defined(HAVE_PTHREAD_H)
-   270             if (pthread_mutex_unlock(&bu_semaphores[i].mu)) {
-   271                 fprintf(stderr, "bu_semaphore_acquire(): 
pthread_mutex_unlock() failed on [%d]\n", i);
--> 272                 sleep(60000);
-   273                 bu_bomb("fatal semaphore acquisition failure");
-   274             }
-   275         #  endif
-
-
-The second is from an rt raytrace of a bot:
-
-bin/rt".
-Architecture set to: x86_64--freebsd11.2.
-(lldb) bt
-* thread #1, name = 'rt'
-  * frame #0: 0x0000000800861f5c libthr.so.3`_umtx_op_err + 12
-    frame #1: 0x000000080085e56a 
libthr.so.3`join_common(pthread=0x000000081aa3a400, 
thread_return=0x0000000000000000, abstime=0x0000000000000000) at thr_join.c:125
-    frame #2: 0x000000081455d841 
libbu.so.20`bu_parallel(func=(librt.so.20`_db_walk_dispatcher at 
db_tree.c:1955), ncpu=16, arg=0x00007fffffffd700) at parallel.c:722
-    frame #3: 0x00000008032b0f8e 
librt.so.20`db_walk_tree(dbip=0x000000081a861000, argc=1, 
argv=0x00007fffffffe888, ncpu=16, init_state=0x00007fffffffd988, 
reg_start_func=(librt.so.20`_rt_gettree_region_start at tree.c:109), 
reg_end_func=(librt.so.20`_rt_gettree_region_end at tree.c:146), 
leaf_func=(librt.so.20`_rt_gettree_leaf at tree.c:444), 
client_data=0x00007fffffffd978) at db_tree.c:2199
-    frame #4: 0x00000008036661d7 
librt.so.20`rt_gettrees_muves(rtip=0x000000081a8a7000, 
attrs=0x0000000000000000, argc=1, argv=0x00007fffffffe888, ncpus=16) at 
tree.c:783
-    frame #5: 0x0000000803669021 
librt.so.20`rt_gettrees_and_attrs(rtip=0x000000081a8a7000, 
attrs=0x0000000000000000, argc=1, argv=0x00007fffffffe888, ncpus=16) at 
tree.c:887
-    frame #6: 0x0000000803669142 
librt.so.20`rt_gettrees(rtip=0x000000081a8a7000, argc=1, 
argv=0x00007fffffffe888, ncpus=16) at tree.c:914
-    frame #7: 0x0000000000406a00 rt`def_tree(rtip=0x000000081a8a7000) at 
do.c:575
-    frame #8: 0x000000000040bd52 rt`main(argc=6, argv=0x00007fffffffe860) at 
main.c:495
-    frame #9: 0x00000000004062e5 rt`_start + 149
-(lldb) thread list
-Process 7726 stopped
-* thread #1: tid = 100805, 0x0000000800861f5c libthr.so.3`_umtx_op_err + 12, 
name = 'rt'
-  thread #2: tid = 101797, 0x0000000816ec76da libc.so.7`__sys_nanosleep + 10, 
name = 'rt'
-(lldb) thread select 2
-* thread #2, name = 'rt'
-    frame #0: 0x0000000816ec76da libc.so.7`__sys_nanosleep + 10
-libc.so.7`__sys_nanosleep:
-->  0x816ec76da <+10>: jb     0x816f395a4               ; .cerror
-    0x816ec76e0 <+16>: retq   
-    0x816ec76e1:       int3   
-    0x816ec76e2:       int3   
-(lldb) bt
-* thread #2, name = 'rt'
-  * frame #0: 0x0000000816ec76da libc.so.7`__sys_nanosleep + 10
-    frame #1: 0x0000000800856a2c 
libthr.so.3`__thr_nanosleep(time_to_sleep=<unavailable>, 
time_remaining=<unavailable>) at thr_syscalls.c:287
-    frame #2: 0x0000000816e4a9eb libc.so.7`__sleep(seconds=60000) at sleep.c:62
-    frame #3: 0x000000081457418c libbu.so.20`bu_semaphore_release(i=12) at 
semaphore.c:272
-    frame #4: 0x000000080366a193 
librt.so.20`_rt_find_identical_solid(mat=0x0000000000000000, 
dp=0x000000081a8a2e98, rtip=0x000000081a8a7000) at tree.c:425
-    frame #5: 0x00000008036681e3 
librt.so.20`_rt_gettree_leaf(tsp=0x000000081a9fa008, pathp=0x000000081a9fa150, 
ip=0x00007fffd69eecc0, client_data=0x00007fffffffd978) at tree.c:491
-    frame #6: 0x00000008032ae1b1 
librt.so.20`db_recurse(tsp=0x000000081a9fa008, pathp=0x000000081a9fa150, 
region_start_statepp=0x00007fffd69eef60, client_data=0x00007fffffffd978) at 
db_tree.c:1170
-    frame #7: 0x00000008032b35c9 
librt.so.20`_db_walk_subtree(tp=0x000000081a81f200, 
region_start_statepp=0x00007fffd69eef60, 
leaf_func=(librt.so.20`_rt_gettree_leaf at tree.c:444), 
client_data=0x00007fffffffd978, resp=0x000000000062e520) at db_tree.c:1898
-    frame #8: 0x00000008032b172f librt.so.20`_db_walk_dispatcher(cpu=16, 
arg=0x00007fffffffd700) at db_tree.c:1992
-    frame #9: 0x000000081455ddcb 
libbu.so.20`parallel_interface_arg(utd=0x000000081a9f85e0) at parallel.c:428
-    frame #10: 0x0000000800854026 
libthr.so.3`thread_start(curthread=0x000000081aa3a400) at thr_create.c:290
-(lldb) up
-frame #1: 0x0000000800856a2c 
libthr.so.3`__thr_nanosleep(time_to_sleep=<unavailable>, 
time_remaining=<unavailable>) at thr_syscalls.c:287
-   284         
-   285                 curthread = _get_curthread();
-   286                 _thr_cancel_enter(curthread);
--> 287                 ret = __sys_nanosleep(time_to_sleep, time_remaining);
-   288                 _thr_cancel_leave(curthread, 1);
-   289         
-   290                 return (ret);
-(lldb) up
-frame #2: 0x0000000816e4a9eb libc.so.7`__sleep(seconds=60000) at sleep.c:62
-   59          
-   60                  time_to_sleep.tv_sec = seconds;
-   61                  time_to_sleep.tv_nsec = 0;
--> 62                  if (((int (*)(const struct timespec *, struct timespec 
*))
-   63                      __libc_interposing[INTERPOS_nanosleep])(
-   64                      &time_to_sleep, &time_remaining) != -1)
-   65                          return (0);
-(lldb) up
-frame #3: 0x000000081457418c libbu.so.20`bu_semaphore_release(i=12) at 
semaphore.c:272
-   269         #  if defined(HAVE_PTHREAD_H)
-   270             if (pthread_mutex_unlock(&bu_semaphores[i].mu)) {
-   271                 fprintf(stderr, "bu_semaphore_acquire(): 
pthread_mutex_unlock() failed on [%d]\n", i);
--> 272                 sleep(60000);
-   273                 bu_bomb("fatal semaphore acquisition failure");
-   274             }
-   275         #  endif
-(lldb) up
-frame #4: 0x000000080366a193 
librt.so.20`_rt_find_identical_solid(mat=0x0000000000000000, 
dp=0x000000081a8a2e98, rtip=0x000000081a8a7000) at tree.c:425
-   422              */
-   423             bu_semaphore_acquire(RT_SEM_STATS);
-   424             stp->st_bit = rtip->nsolids++;
--> 425             bu_semaphore_release(RT_SEM_STATS);
-   426         
-   427             /*
-   428              * Fill in the last little bit of the structure in full 
parallel
-(lldb) 
-

Deleted: brlcad/trunk/doc/bu_opt_design_notes.txt
===================================================================
--- brlcad/trunk/doc/bu_opt_design_notes.txt    2020-05-28 20:36:28 UTC (rev 
75971)
+++ brlcad/trunk/doc/bu_opt_design_notes.txt    2020-05-28 20:47:56 UTC (rev 
75972)
@@ -1,97 +0,0 @@
-Thoughts on expansion of bu_opt capability to include subcommands, other misc
-notes...
-
-Check over POSIX.1-2008 Utility Conventions - should guide (but not define) our
-option handling.  (In particular, we want long opts.  On the other hand,
-probably explicitly don't want the full GNU 'opts anywhere' convention as that
-precludes structured subcommand parsing.)
-
-http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html
-
-* Define separate structure for subcommands, have as an optional pointer in
-  bu_opt structure.
-
-* Explore + and -+ as opt/longopt specifiers for subcommands, directly mapping 
to
-- and -- for options. Use +- to denote the end of a subcommand, like -- denotes
-end of options.
-
-Rule - options with optional arguments (e.g. --help JSON vs --help - both are
-legal) will require that arguments needing to start with a "+" character (e.g.
---help "+arg1") be quoted.  (For that matter, is the same true of normal "-"
-option parsing?)
-
-Can we allow "lazy" subcommand specification without +/-+ if we disqualify any
-string in quotes from being a subcommand? (e.g. 'cmd arg1 arg2' treats arg1 as
-a subcommand but 'cmd "arg1" arg2' treats arg1 as an arg?  Do we need to worry
-about this at all?
-
-Can "leftover" operands from a subcommand be handed back up to parent commands?
-
-Convention thoughts:
-
-- or -- - option/long-option handling per POSIX and GNU convention.
-
-+ or -+ - explicit specifier of subcommand.
-
--- - explicit 'exit option parsing' mode - remainder is operands (per POSIX)
-except that a -+ option will indicate another subcommand or a +- will elevate
-the parsing environment back to the parent level.
-
-+- "exit subcommand" - returns parsing to the parent level command evaluation
-environment: brep -a1 -+plot -p1 +- -o out.pl results in brep handling -o
-out.pl, not plot.
-
-Scope of "next arg" other than +- is current command/subcommand: e.g. brep -a1
--+plot -p1 will pass p1 to plot's option handling, not brep's
-
-If subsequent -+ are specified, first check if the current command has the
-specified subcommand.  If not, return parsing to the parent level to see if it
-has the specified subcommand, and so on until a command table claims the
-subcommand.  Allows for both a subcommand of a subcommand:
-
-brep obj_csg.c -+bool_eval -+plot curve S1_S2
-
-and subsequent subcommands:
-brep obj_csg.c -+facetize -+simplify
-
-to be specified without requiring +- unless a command and a subcommand both
-have a matching subcommand.
-
-With that feature present, +- is necessary to specify a parent command's 
version of
-the subcommand unambiguously (i.e. requires explicit exiting of subcommand 
state with
-a matching subcommand):
-
-cmd arg1 +c +d    -> runs d subcommand defined by c
-cmd arg1 +c +- +d -> runs d subcommand defined by cmd
-
-
-TODOs for bu_opt help routines:
-
-Maybe have help as a default subcommand rather than a default option, to allow 
for fancy
-stuff without bastardizing the help option?
-
-* define a built-in bu_help to support docbook, json, etc. specification which
-  can be used by commands not wanting to define their own, more complex 
options.
-
-* need a routine to generate a POSIX compliant one-line description of the
-  command's syntax
-
-* need built-in help (option or subcommand, maybe both?) that is available for
-  commands not wanting to define their own help, but can be over-ridden by an
-  explicit specification of help in the options.  We will need some "smart" 
help
-  options for JSON, DocBook, etc as well as subcommand listing (--help cmds
-  maybe?) so a calling script can systematically and automatically generate
-  documentation for all commands.
-
-* explore the possibility of adding to the help system a generator of some sort
-  that can produce a JSON structure describing the structure of the commands 
and
-  options in such a way that a libbu routine could accept that structure as a
-  validation template and validate a command line string against it.  Would
-  (potentially) allow for things like smart tab completion, valid/invalid 
syntax
-  highlighting, etc. without having to either explicitly duplicate the command
-  syntax in code or back such validation logic into each command.  With this
-  setup we would run the "generate syntax" help option for every 
command/subcommand
-  in all of BRL-CAD (which just coincidentally would make the function of the
-  help system for every command in the code a build time requirement/check)
-  and supply a pre-built validation database in a data_dir location for libbu
-  to check.

Deleted: brlcad/trunk/doc/cmake_vars.txt
===================================================================
--- brlcad/trunk/doc/cmake_vars.txt     2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/cmake_vars.txt     2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,95 +0,0 @@
-# This is a worksheet to help with organizing our CMake options with
-# an eye towards consistency, clarity, and simplification.
-#
-# TODO:
-#  * consistent naming convention
-#  * eliminate aliases
-#  * drop unnecessary/unhelpful/obsolete flags
-#  * audit what ccmake presents by default
-#
-
-### HOW TO COMPILE ###
-
-CMAKE_BUILD_TYPE := Release | Debug
-
-BRLCAD_ENABLE_VERBOSE_PROGRESS "verbose output" OFF
-BRLCAD_ENABLE_COVERAGE "Build with coverage enabled" OFF
-
-ENABLE_ALL_CXX_COMPILE "Build all C and C++ files with a C++ compiler." OFF
-  ENABLE_ALL_CXX
-
-BRLCAD_ENABLE_PROFILING
-BRLCAD_ENABLE_DTRACE "Build with dtrace support" OFF
-
-BRLCAD_ENABLE_SMP "Enable SMP architecture parallel computation support" ON
-BRLCAD_ENABLE_RUNTIME_DEBUG
-  ENABLE_RUNTIME_DEBUG
-  ENABLE_RUN_TIME_DEBUG
-  ENABLE_RUNTIME_DEBUGGING
-  ENABLE_RUN_TIME_DEBUGGING
-BRLCAD_FLAGS_DEBUG
-  ENABLE_DEBUG
-  ENABLE_FLAGS_DEBUG
-  ENABLE_DEBUG_FLAGS
-BRLCAD_ENABLE_COMPILER_WARNINGS
-  ENABLE_WARNINGS
-  ENABLE_COMPILER_WARNINGS
-BRLCAD_ENABLE_STRICT
-  ENABLE_STRICT
-  ENABLE_STRICT_COMPILE
-  ENABLE_STRICT_COMPILE_FLAGS
-
-
-### WHAT TO COMPILE ###
-
-BRLCAD_ENABLE_MINIMAL "Skip GUI support and docs. Faster builds." OFF
-BUILD_SHARED_LIBS "Build shared libraries" ON
-BUILD_STATIC_LIBS "Build static libraries" ON
-BRLCAD_ENABLE_BRLCAD_LIBRARY "Build the brlcad.dll" OFF
-
-BRLCAD_BUNDLED_LIBS := AUTO | BUNDLED | SYSTEM
- ENABLE_ALL
-
-BRLCAD_ENABLE_AQUA "Use Aqua instead of X11 whenever possible on OSX." OFF
-BRLCAD_ENABLE_X11 "Use X11." OFF
-BRLCAD_ENABLE_TK "Enable features requiring the Tk toolkit" ON
-BRLCAD_ENABLE_OPENGL "Enable support for OpenGL based Display Managers in 
BRL-CAD." ON
-                     OFF "Disabled - NOT BRLCAD_ENABLE_X11 and NOT 
BRLCAD_ENABLE_AQUA"
-  ENABLE_OPENGL
-BRLCAD_ENABLE_QT "Enable features requiring Qt" OFF
-BRLCAD_ENABLE_OSG "Enable features requiring OpenSceneGraph" OFF
-
-BRLCAD_ENABLE_BULLET "Enable features requiring the Bullet Physics Library" ON
-BRLCAD_ENABLE_GCT "Enable features requiring GCT" ON
-BRLCAD_ENABLE_GDAL "Enable features requiring the Geospatial Data Abstraction 
Library" ON
-BRLCAD_ENABLE_SPR "Enable features requiring Screened Poisson Surface 
Reconstruction" OFF
-
-BRLCAD_ENABLE_BINARY_ATTRIBUTES "Enable support for binary attributes" OFF
-
-BRLCAD_ENABLE_OPENCL "Enable features requiring OpenCL" OFF
-
-BRLCAD_EXTRADOCS
- ENABLE_DOCS
- ENABLE_EXTRA_DOCS
- ENABLE_DOCBOOK
-BRLCAD_EXTRADOCS_VALIDATE "Perform validation for DocBook documentation" ON
-BRLCAD_EXTRADOCS_HTML "Build MAN page output from DocBook documentation" ON
-BRLCAD_EXTRADOCS_PHP "Build MAN page output from DocBook documentation" OFF
-BRLCAD_EXTRADOCS_PPT "Build MAN page output from DocBook documentation" ON
-BRLCAD_EXTRADOCS_MAN "Build MAN page output from DocBook documentation" ON
-BRLCAD_EXTRADOCS_PDF "Build PDF output from DocBook documentation" OFF
-BRLCAD_ENABLE_TARGETS "controls all DocBook based documentation.  Keys off 
what target level is enabled."
-  EXTRADOCS_DEFAULT is ON when <= 2 ; OFF when > 2
-
-
-### HOW TO INSTALL ###
-
-BRLCAD_ENABLE_WIX
-BRLCAD_INSTALL_EXAMPLE_GEOMETRY "Install the example BRL-CAD geometry files." 
ON
-
-# Local Variables:
-# tab-width: 8
-# mode: cmake
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=2 tabstop=8

Deleted: brlcad/trunk/doc/csv_to_comgeom.txt
===================================================================
--- brlcad/trunk/doc/csv_to_comgeom.txt 2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/csv_to_comgeom.txt 2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,17 +0,0 @@
-These are some notes about using text manipulation tools to try taking the csv
-text files from GCI's transcription work and formatting them as comgeom files.
-I don't think they're fully working as yet, but certainly they are a starting
-point.
-
-tr "\r" "\n" < in_raw.csv > in.csv
-
-Solid table:
-
-awk -F, 'BEGIN {widthlist = "3 3 10 10 10 10 10 10 10"; split (widthlist, 
widths, " ")}{for(i=1;i<=NF;i++){printf "%-*s", widths[i],$i};printf "\n"}' 
in.csv
-
-Region table:
-awk -F, 'BEGIN {widthlist = "5 2 5 7 7 7 7 7 7 7 2 5 10"; split (widthlist, 
widths, " ")}{for(i=1;i<=NF;i++){printf "%-*s", widths[i],$i};printf "\n"}' 
in.csv
-
-Ident table:
-awk -F, 'BEGIN {widthlist = "10 10 10 43 3 3"; split (widthlist, widths, " 
")}{for(i=1;i<=NF;i++){printf "%-*s", widths[i],$i};printf "\n"}' in.csv
-

Deleted: brlcad/trunk/doc/cvs.txt
===================================================================
--- brlcad/trunk/doc/cvs.txt    2020-05-28 20:36:28 UTC (rev 75971)
+++ brlcad/trunk/doc/cvs.txt    2020-05-28 20:47:56 UTC (rev 75972)
@@ -1,804 +0,0 @@
-BRL-CAD Concurrent Versions System Policy and Guidelines
-========================================================
-
-
-**********************************************************************
-NOTE: THESE INSTRUCTIONS ARE OUT-OF-DATE AS BRL-CAD NOW USES
-SUBVERSION INSTEAD OF CVS.  CONSULT WITH CAUTION AS SOME PORTIONS ARE
-STILL RELEVANT BUT OTHERS THAT ARE CVS-SPECIFIC ARE NOT.
-**********************************************************************
-
-
-The document includes a set of requirements and recommended procedures
-for how to effectively use CVS with this project.  Included are
-details on checking code in and out, effective use of commit messages,
-tag naming conventions, branch management, making releases, and more.
-Basic knowledge of CVS, its capabilities, and to a lesser extent its
-limitations are beyond the scope of this document.  See the CVS
-website and the "References" section for more information.  That said,
-the following general rules should always be adhered to:
-
-1. Code committed against HEAD should at least be tested and compile
-   for the developer committing changes.  "Don't break it."
-
-2. There is a STABLE branch that may only have code committed against
-   it that a) compiles on all relevant platforms, b) does not
-   detrimentally degrade performance, and c) runs correctly passing
-   available validation tests.
-
-3. Branches should be used for experimental work that would otherwise
-   leave HEAD in an inconsistent, non-compiling, or untestable state.
-   Branches are not merged into HEAD until the code has been tested
-   for correct and proper functionality.
-
-4. Commit and update frequently.  Large or complicated changes should
-   be broken up into smaller succinct commits as best possible to make
-   reviewing easier.  Commit working code early and commit often.
-
-5. Be consistent and informative.  Tags need to follow a consistent
-   naming convention.  Commit messages need to be informative.  Source
-   code changes should follow existing style and be usefully
-   commented.
-
-
-TABLE OF CONTENTS
------------------
-    Introduction
-    Table of Contents
-    Overview
-    Checking out sources
-       from HEAD
-       from STABLE
-       from a branch/revision
-    Checking in sources
-       commit messages
-       to HEAD
-       to STABLE
-       to a branch/revision
-    Tag naming convention
-       for releases
-       for branches
-    Making a release
-       creating a maintenance branch
-       applying release patches
-    Merging a branch
-       merging a branch into HEAD
-       merging HEAD into a branch
-    Making a branch
-    Usage Tips
-    References
-
-
-OVERVIEW
---------
-
-    Code organizational sanity and consistency are of paramount
-    importance.  As CVS can both help and hinder efforts to keep the
-    sources organized, the policy and guidelines outlined herein
-    overview the manner in which CVS should be used with this project.
-
-    This CVS policy and guidelines document should be used in
-    combination with a developer's guide that covers other aspects of
-    code contributions and developer behavior such as how and where to
-    provide patches, what coding styles should be used, and how to
-    make releases.  Likewise, exact semantics of testing policy,
-    requirements for migrating code from HEAD to STABLE, basic CVS
-    usage, and release policy are outside the scope of this document.
-
-    The intent of this document is to cover the broad aspects of how
-    CVS is to be organized and used.  This includes branch management,
-    tag naming conventions, checking sources in and out, and other
-    relevant usage policy.
-
-    CVS branches should be used to separate out the various types of
-    source code revisions.  These include:
-
-       1) current or "active" sources
-       2) stable sources
-       3) releases
-       4) experimental sources
-
-    The CVS HEAD is for active development.  A separate STABLE branch
-    exists to hold a revision of the sources that is validated and
-    tested across platforms.  Releases should only made off of stable
-    revisions of the source code.  When a release is made, a
-    maintenance branch may and should exist for making patch releases.
-    Finally, various experimental and developer undertakings that may
-    benefit by being isolated from changes to HEAD or STABLE, or would
-    likewise be disruptive to normal HEAD functionality, may live on
-    a branch of their own.
-
-    It's very important that the main CVS HEAD revision be a "mostly"
-    stable code base so that at any given time users may download the
-    latest sources, get the source code to compile with minimal
-    effort, and have the core components mostly function as expected.
-    See the "Checking in sources to HEAD" section for more details.
-
-    Some users and developers will need from time to time to obtain a
-    relatively recent version of the sources that is certain or at
-    least expected to "work".  This is what the STABLE branch is for.
-    See the "Checking in sources to STABLE" section for more
-    information.
-
-
-CHECKING OUT SOURCES
---------------------
-
-    There are two basic ways to check out the sources: anonymously or
-    as a developer.  Developers have full read-write access to the
-    source code.  Anonymous users have read-only access; and the
-    version of the sources checked out may actually lag the most
-    recent commits by several hours.
-
-    Regardless of whether the sources are being checked out by a

@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to