Compare commits

..
1 Commits
Author SHA1 Message Date
Clifford Yapp 471675f1ab Remove gedplugins branch (svn branch delete)
svn:revision:76468
svn:branch:gedplugins
svn:account:starseeker
2020-07-24 14:41:17 +00:00
12597 changed files with 5264511 additions and 809360 deletions
-2
View File
@@ -1,2 +0,0 @@
# Try to tell GitHub how to handle .asc files
*.asc linguist-language=Tcl
-768
View File
@@ -1,768 +0,0 @@
# BRL-CAD's primary distcheck target runs too long and does too much work to
# be suitable as a CI target, even occasionally. To achieve essentially the
# same result, we define individual jobs for each distcheck sub-target and
# run them in singletons. To avoid the list of targets going stale, we
# define this header and then autogenerate the actual build target jobs
# to append to it from the CMake logic.
name: Distcheck
on:
workflow_dispatch:
schedule:
- cron: '30 3 * * 5'
jobs:
bext:
name: Prepare bext (cached)
runs-on: ubuntu-latest
env:
DEBIAN_FRONTEND: noninteractive
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
# Install X/OpenGL dev pkgs
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
# Install tools
sudo apt-get install astyle re2c xsltproc libxml2-utils
# Install dependency dev pkgs
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev
# Install XCB/OpenGL dev pkgs for Qt - see:
# https://wiki.qt.io/Building_Qt_6_from_Git
# https://doc.qt.io/qt-6/linux-requirements.html
sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-cursor-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev libxcb-xrm-dev libxkbcommon-dev libxkbcommon-x11-dev
sudo apt-get install libgl-dev
sudo apt-get install libinput-dev
- name: Clone bext
run: git clone https://github.com/BRL-CAD/bext.git
- name: Get bext commit SHA
id: bext-sha
run: |
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- name: Compute bext cache discriminator
id: cachekey
shell: bash
run: |
info="${{ steps.bext-sha.outputs.sha }}-$(uname -s)-$(uname -r)-$(gcc --version | head -n 1)"
echo "hash=$(echo -n "$info" | sha1sum | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.cachekey.outputs.hash }}
- name: Build bext (if cache miss)
if: steps.cache-bext.outputs.cache-hit != 'true'
run: |
cmake -E make_directory bext_build
cmake -S bext -B bext_build -DCMAKE_BUILD_TYPE=Release -DENABLE_ALL=ON -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/bext_output
cmake --build bext_build --config Release -j 2
cmake -E rm -rf bext
cmake -E rm -rf bext_build
distcheck-default_build_type:
name: distcheck-default_build_type
runs-on: ubuntu-latest
needs: [bext]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-default_build_type
- name: Configure
run: cmake -S brlcad -B build_distcheck-default_build_type -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-default_build_type --config Release --target distcheck-default_build_type
- name: Log
if: always()
run: cat build_distcheck-default_build_type/distcheck-default_build_type.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-debug:
name: distcheck-debug
runs-on: ubuntu-latest
needs: [distcheck-default_build_type]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-debug
- name: Configure
run: cmake -S brlcad -B build_distcheck-debug -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-debug --config Release --target distcheck-debug
- name: Log
if: always()
run: cat build_distcheck-debug/distcheck-debug.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-release:
name: distcheck-release
runs-on: ubuntu-latest
needs: [distcheck-debug]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-release
- name: Configure
run: cmake -S brlcad -B build_distcheck-release -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-release --config Release --target distcheck-release
- name: Log
if: always()
run: cat build_distcheck-release/distcheck-release.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-enableall_debug:
name: distcheck-enableall_debug
runs-on: ubuntu-latest
needs: [distcheck-release]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-enableall_debug
- name: Configure
run: cmake -S brlcad -B build_distcheck-enableall_debug -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-enableall_debug --config Release --target distcheck-enableall_debug
- name: Log
if: always()
run: cat build_distcheck-enableall_debug/distcheck-enableall_debug.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-enableall_release:
name: distcheck-enableall_release
runs-on: ubuntu-latest
needs: [distcheck-enableall_debug]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-enableall_release
- name: Configure
run: cmake -S brlcad -B build_distcheck-enableall_release -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-enableall_release --config Release --target distcheck-enableall_release
- name: Log
if: always()
run: cat build_distcheck-enableall_release/distcheck-enableall_release.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-prepared_debug:
name: distcheck-prepared_debug
runs-on: ubuntu-latest
needs: [distcheck-enableall_release]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-prepared_debug
- name: Configure
run: cmake -S brlcad -B build_distcheck-prepared_debug -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-prepared_debug --config Release --target distcheck-prepared_debug
- name: Log
if: always()
run: cat build_distcheck-prepared_debug/distcheck-prepared_debug.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-prepared_release:
name: distcheck-prepared_release
runs-on: ubuntu-latest
needs: [distcheck-prepared_debug]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-prepared_release
- name: Configure
run: cmake -S brlcad -B build_distcheck-prepared_release -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-prepared_release --config Release --target distcheck-prepared_release
- name: Log
if: always()
run: cat build_distcheck-prepared_release/distcheck-prepared_release.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-no_tcl:
name: distcheck-no_tcl
runs-on: ubuntu-latest
needs: [distcheck-prepared_release]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-no_tcl
- name: Configure
run: cmake -S brlcad -B build_distcheck-no_tcl -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-no_tcl --config Release --target distcheck-no_tcl
- name: Log
if: always()
run: cat build_distcheck-no_tcl/distcheck-no_tcl.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-no_tk:
name: distcheck-no_tk
runs-on: ubuntu-latest
needs: [distcheck-no_tcl]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-no_tk
- name: Configure
run: cmake -S brlcad -B build_distcheck-no_tk -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-no_tk --config Release --target distcheck-no_tk
- name: Log
if: always()
run: cat build_distcheck-no_tk/distcheck-no_tk.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-no_strict:
name: distcheck-no_strict
runs-on: ubuntu-latest
needs: [distcheck-no_tk]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-no_strict
- name: Configure
run: cmake -S brlcad -B build_distcheck-no_strict -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-no_strict --config Release --target distcheck-no_strict
- name: Log
if: always()
run: cat build_distcheck-no_strict/distcheck-no_strict.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-no_object:
name: distcheck-no_object
runs-on: ubuntu-latest
needs: [distcheck-no_strict]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-no_object
- name: Configure
run: cmake -S brlcad -B build_distcheck-no_object -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-no_object --config Release --target distcheck-no_object
- name: Log
if: always()
run: cat build_distcheck-no_object/distcheck-no_object.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-odd_pathnames:
name: distcheck-odd_pathnames
runs-on: ubuntu-latest
needs: [distcheck-no_object]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-odd_pathnames
- name: Configure
run: cmake -S brlcad -B build_distcheck-odd_pathnames -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-odd_pathnames --config Release --target distcheck-odd_pathnames
- name: Log
if: always()
run: cat build_distcheck-odd_pathnames/distcheck-odd_pathnames.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
distcheck-in_src_dir:
name: distcheck-in_src_dir
runs-on: ubuntu-latest
needs: [distcheck-odd_pathnames]
env:
DEBIAN_FRONTEND: noninteractive
if: github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Install apt dependencies
run: |
sudo apt-get update
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
sudo apt-get install astyle re2c xsltproc libxml2-utils
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev libgl-dev libinput-dev
- name: Setup - bext
run: |
git clone https://github.com/BRL-CAD/bext.git
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
cd ..
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.bext-sha.outputs.sha }}
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: cmake -E make_directory build_distcheck-in_src_dir
- name: Configure
run: cmake -S brlcad -B build_distcheck-in_src_dir -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
- name: Build
run: cmake --build build_distcheck-in_src_dir --config Release --target distcheck-in_src_dir
- name: Log
if: always()
run: cat build_distcheck-in_src_dir/distcheck-in_src_dir.log
- name: Debug if failure
if: failure()
uses: mxschmitt/action-tmate@v3
-85
View File
@@ -1,85 +0,0 @@
# The purpose of this particular test definition is to support on-demand
# interactive command shells. We sometimes see problems that occur only in the
# Github Runner environments, and in order to explore what is happening we need
# an interactive prompt (the alternative is hours-per-cycle submit and test
# loops, which doesn't scale at all.)
#
# Unlike the other BRL-CAD tests, this one is started manually from the Github
# website. For more information see https://mxschmitt.github.io/action-tmate/
#
# The "recommended" way to use this action is for the dev to make a fork of
# the repository, alter the configure and/or build logic below for their
# particular use case (the example below is a libged-only build used to zero
# in on a specific libged behavior) before running.
name: BRL-CAD Linux Interactive Debugging
on:
workflow_dispatch:
inputs:
debug_enabled:
type: boolean
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false
jobs:
linux:
name: Ubuntu Latest GCC
runs-on: ubuntu-latest
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Setup - System
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get update
# Install X/OpenGL dev pkgs
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
# Install tools
sudo apt-get install astyle re2c xsltproc libxml2-utils liblief-dev
# Install dependency dev pkgs
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev
# Cleanup (we want to avoid wasting disk space)
sudo apt-get clean
- name: Setup - System Qt Build Requirements
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get update
# Install XCB/OpenGL dev pkgs for Qt - see:
# https://wiki.qt.io/Building_Qt_6_from_Git
# https://doc.qt.io/qt-6/linux-requirements.html
sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-cursor-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev
sudo apt-get install libgl-dev
sudo apt-get install libinput-dev
sudo apt-get clean
- name: Checkout
uses: actions/checkout@v4
- name: Build Directory setup
run: |
cmake -E make_directory ./build_linux
- name: Configure
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
cmake -S . -G Ninja -B build_linux -DBRLCAD_EXT_PARALLEL=1 -DBRLCAD_COMPONENTS=libged -DBRLCAD_EXTRADOCS=OFF
- name: Build
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
cmake --build build_linux --config Release --target check
- name: Debugging - tmate session
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
uses: mxschmitt/action-tmate@v3
with:
limit-access-to-actor: true
-519
View File
@@ -1,519 +0,0 @@
# This file defines Continuous Integration (CI) tests for BRL-CAD using the
# Github Actions framework that are executed each time a commit is pushed.
# Currently it defines configurations for Windows, Linux and OSX.
#
# For more information about available platforms for testing, see:
#
# https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners
#
# The general rule when building in CI is to go more verbose in output settings
# rather than less, since iterative debugging isn't practical. We also want to
# avoid parallel building - while that will sometimes catch dependency issues,
# it also makes the outputs far harder to interpret when there is a problem.
# Better to do parallel build debugging in an environment were more interactive
# and iterative debugging is available while preserving the readability of the
# CI outputs for other issues.
name: Per-push
on:
push:
jobs:
linux:
name: Ubuntu GCC
runs-on: ubuntu-latest
strategy:
fail-fast: true
env:
DEBIAN_FRONTEND: noninteractive
if: github.event_name == 'push'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
# Cache apt package downloads (not installed pkgs)
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/push.yml') }}
# Install system dependencies
- name: Install apt dependencies
run: |
sudo apt-get update
# Install X/OpenGL dev pkgs
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
# Install tools
sudo apt-get install astyle re2c xsltproc libxml2-utils
# Install dependency dev pkgs
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev
# Install XCB/OpenGL dev pkgs for Qt - see:
# https://wiki.qt.io/Building_Qt_6_from_Git
# https://doc.qt.io/qt-6/linux-requirements.html
sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-cursor-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev libxcb-xrm-dev libxkbcommon-dev libxkbcommon-x11-dev
sudo apt-get install libgl-dev
sudo apt-get install libinput-dev
# Prepare bext cache key
- name: Clone bext
run: git clone https://github.com/BRL-CAD/bext.git
- name: Get bext commit SHA
id: bext-sha
run: |
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- name: Compute bext cache discriminator
id: cachekey
shell: bash
run: |
info="${{ steps.bext-sha.outputs.sha }}-$(uname -s)-$(uname -r)-$(gcc --version | head -n 1)"
echo "hash=$(echo -n "$info" | sha1sum | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.cachekey.outputs.hash }}
- name: Build bext (if cache miss)
if: steps.cache-bext.outputs.cache-hit != 'true'
run: |
cmake -E make_directory bext_build
cmake -S bext -B bext_build -DCMAKE_BUILD_TYPE=Release -DENABLE_ALL=ON -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/bext_output
cmake --build bext_build --config Release -j 2
cmake -E rm -rf bext
cmake -E rm -rf bext_build
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: |
cmake -E make_directory ./build_linux
cmake -E make_directory $HOME/.cache
cmake -E make_directory $HOME/.cache/BRL-CAD
- name: Configure
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
cmake -S brlcad -B build_linux -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output -DBRLCAD_ENABLE_QT=ON
- name: Build
id: build_parallel
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
cmake --build build_linux --config Release --target check -j2
cmake --build build_linux --config Release --target package -j2
continue-on-error: true
- name: Build (serial for diagnostics)
if: steps.build_parallel.outcome == 'failure'
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
cmake --build build_linux --config Release --target check
cmake --build build_linux --config Release --target package
# A full distcheck is too expensive for the runners, but we can run the
# repository integrity check and make sure we can build source archives.
archives:
name: Source Archives
runs-on: ubuntu-latest
needs: [linux]
strategy:
fail-fast: true
env:
DEBIAN_FRONTEND: noninteractive
if: github.event_name == 'push'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/push.yml') }}
# Install system dependencies - we do the full setup here, even though
# source archives isn't intended to build the main BRL-CAD, in case
# this check is the one where the bext dependency cache check gets a miss.
# In that case, this check will have to build bext to proceed - and it will
# need the bext environment set up to do so.
- name: Install apt dependencies
run: |
sudo apt-get update
# Install X/OpenGL dev pkgs
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
# Install tools
sudo apt-get install astyle re2c xsltproc libxml2-utils
# Install dependency dev pkgs
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev
# Install XCB/OpenGL dev pkgs for Qt - see:
# https://wiki.qt.io/Building_Qt_6_from_Git
# https://doc.qt.io/qt-6/linux-requirements.html
sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-cursor-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev libxcb-xrm-dev libxkbcommon-dev libxkbcommon-x11-dev
sudo apt-get install libgl-dev
sudo apt-get install libinput-dev
- name: Clone bext
run: git clone https://github.com/BRL-CAD/bext.git
- name: Get bext commit SHA
id: bext-sha
run: |
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- name: Compute bext cache discriminator
id: cachekey
shell: bash
run: |
info="${{ steps.bext-sha.outputs.sha }}-$(uname -s)-$(uname -r)-$(gcc --version | head -n 1)"
echo "hash=$(echo -n "$info" | sha1sum | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.cachekey.outputs.hash }}
- name: Build bext (if cache miss)
if: steps.cache-bext.outputs.cache-hit != 'true'
run: |
cmake -E make_directory bext_build
cmake -S bext -B bext_build -DCMAKE_BUILD_TYPE=Release -DENABLE_ALL=ON -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/bext_output
cmake --build bext_build --config Release -j2
rm -rf bext
rm -rf bext_build
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Build
run: |
cmake -E make_directory build_archives
cmake -S brlcad -B build_archives -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_PARALLEL=1 -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output
cmake --build build_archives --config Release --target distcheck-source_archives
windows:
name: MSVC - Ninja
runs-on: windows-latest
strategy:
fail-fast: true
if: github.event_name == 'push'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v2
- name: Add cl.exe to PATH
uses: ilammy/msvc-dev-cmd@v1
- name: Add github workspace to path
shell: pwsh
run: Add-Content -Path $env:GITHUB_PATH -Value $env:GITHUB_WORKSPACE
- name: Clone bext
# Note - this will not check out any of the submodules unless we need
# them for building, so it should be a very small disk space hit.
# Consequently, we don't worry about deleting it unless we end up
# having to build it. The bext source directory is not one of the
# cached directories, so a straight git clone is fine - no need to
# worry about colliding with a previous clone.
run: git clone https://github.com/BRL-CAD/bext.git
- name: Get bext commit SHA
id: bext-sha
shell: powershell
run: |
cd bext
echo "sha=$(git rev-parse HEAD)" >> $env:GITHUB_OUTPUT
- name: Compute bext cache discriminator
id: cachekey
shell: bash
run: |
clver=""
if command -v cl.exe &> /dev/null; then
clver="$(cl.exe 2>&1 | head -n 1)"
fi
info="${{ steps.bext-sha.outputs.sha }}-$(uname -s)-$(uname -r)-$clver"
echo "hash=$(echo -n "$info" | sha1sum | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}\bext_output
key: windows-bext-${{ steps.cachekey.outputs.hash }}
- name: Build bext (if cache miss)
if: steps.cache-bext.outputs.cache-hit != 'true'
shell: powershell
run: |
cmake -E make_directory bext_build
cmake -S bext -B bext_build -DCMAKE_BUILD_TYPE=Release -DENABLE_ALL=ON -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}\bext_output
cmake --build bext_build --config Release -j2
# If we have had to build, the submodules are populated and the build
# directory will have a lot in it. We only need the build ouputs
# (bext_output) after this point, so clean up to save space for the
# main BRL-CAD build.
cmake -E rm -rf bext
cmake -E rm -rf bext_build
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Build Directory setup
run: cmake -E make_directory ./build_winninja
- name: Configure
shell: powershell
run: |
cmake -S brlcad -B build_winninja -G Ninja -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -DBRLCAD_EXT_DIR=${{ github.workspace }}\bext_output -DCMAKE_BUILD_TYPE=Release -DBRLCAD_ENABLE_QT=ON
- name: Build
id: build_parallel
shell: powershell
run: |
ninja
working-directory: ${{ github.workspace }}/build_winninja
continue-on-error: true
- name: Build (serial for diagnostics)
if: steps.build_parallel.outcome == 'failure'
shell: powershell
run: |
ninja -j1 -v
working-directory: ${{ github.workspace }}/build_winninja
- name: Check
shell: powershell
run: |
ninja check -v
working-directory: ${{ github.workspace }}/build_winninja
- name: Package
shell: powershell
run: |
ninja package
working-directory: ${{ github.workspace }}/build_winninja
windows_std_tools:
name: MSVC - Standard Tools
needs: [windows]
runs-on: windows-latest
strategy:
fail-fast: true
if: github.event_name == 'push'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Clone bext
# Note - this will not check out any of the submodules unless we need
# them for building, so it should be a very small disk space hit.
# Consequently, we don't worry about deleting it unless we end up
# having to build it. The bext source directory is not one of the
# cached directories, so a straight git clone is fine - no need to
# worry about colliding with a previous clone.
#
# In theory we could rely on the windows Ninja test for this, since we
# depend on it, but we define each test to be potentially stand-alone
# in case we end up removing the other windows test(s) for any reason.
run: git clone https://github.com/BRL-CAD/bext.git
- name: Get bext commit SHA
id: bext-sha
shell: pwsh
run: |
cd bext
echo "sha=$(git rev-parse HEAD)" >> $env:GITHUB_OUTPUT
- name: Compute bext cache discriminator
id: cachekey
shell: bash
run: |
clver=""
if command -v cl.exe &> /dev/null; then
clver="$(cl.exe 2>&1 | head -n 1)"
fi
info="${{ steps.bext-sha.outputs.sha }}-$(uname -s)-$(uname -r)-$clver"
echo "hash=$(echo -n "$info" | sha1sum | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}\bext_output
key: windows-bext-${{ steps.cachekey.outputs.hash }}
- name: Build bext (if cache miss)
# Note - most of windows_std_tools builds using cmd and avoids ninja,
# but for the bext build if we need to do it) we want to match the
# behavior of the ninja build so we have consistent inputs.
if: steps.cache-bext.outputs.cache-hit != 'true'
shell: powershell
run: |
cmake -E make_directory bext_build
cmake -S bext -B bext_build -DCMAKE_BUILD_TYPE=Release -DENABLE_ALL=ON -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}\bext_output
cmake --build bext_build --config Release -j2
# If we have had to build, the submodules are populated and the build
# directory will have a lot in it. We only need the build ouputs
# (bext_output) after this point, so clean up to save space for the
# main BRL-CAD build.
cmake -E rm -rf bext
cmake -E rm -rf bext_build
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Build Directory setup
run: |
cmake -E make_directory ./build_winstd
- name: Configure
shell: cmd
run: |
call "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
cmake -S brlcad -B build_winstd -DBRLCAD_EXT_PARALLEL=1 -DBRLCAD_BUNDLED_LIBS=Bundled -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=%GITHUB_WORKSPACE%\bext_output -DBRLCAD_ENABLE_QT=ON
- name: Build
id: build_parallel
shell: cmd
run: |
call "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
cmake --build build_winstd --config Release -j2
continue-on-error: true
- name: Build (serial for diagnostics)
if: steps.build_parallel.outcome == 'failure'
shell: cmd
run: |
cmake --build build_winstd --config Release mged
- name: Check
shell: cmd
run: |
call "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
cmake --build build_winstd --config Release --target check -j2
- name: Package
shell: cmd
run: |
call "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
cmake --build build_winstd --config Release --target package -j2
osx:
name: macOS Clang
needs: [linux]
runs-on: macos-14
strategy:
fail-fast: true
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Install Xquartz
run: |
brew install xquartz --cask
- name: Clone bext
run: git clone https://github.com/BRL-CAD/bext.git
- name: Get bext commit SHA
id: bext-sha
run: |
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- name: Compute bext cache discriminator
id: cachekey
shell: bash
run: |
xcodever="$(xcodebuild -version | head -n 1 | awk '{print $2}')"
clangver="$(clang --version | head -n 1)"
info="${{ steps.bext-sha.outputs.sha }}-$(uname -s)-$(uname -r)-$xcodever-$clangver"
echo "hash=$(echo -n "$info" | sha1sum | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: macos-bext-${{ steps.cachekey.outputs.hash }}
- name: Build bext (if cache miss)
if: steps.cache-bext.outputs.cache-hit != 'true'
run: |
cmake -E make_directory bext_build
export CC=clang
export CXX=clang++
# Right now on OSX we need ENABLE_ALL, because Mac system Tcl/Tk won't work
cmake -S bext -B bext_build -DENABLE_ALL=ON -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/bext_output -DCMAKE_BUILD_TYPE=Release
cmake --build bext_build -j 2
cmake -E rm -rf bext
cmake -E rm -rf bext_build
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Build Directory setup
run: |
cmake -E make_directory build_osx
cmake -E make_directory $HOME/.cache
cmake -E make_directory $HOME/.cache/BRL-CAD
- name: Configure
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
export CC=clang
export CXX=clang++
cmake -S brlcad -B build_osx -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output -DBRLCAD_ENABLE_QT=ON
- name: Build
id: build_parallel
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
make -j2
working-directory: ${{ github.workspace }}/build_osx
continue-on-error: true
- name: Build (serial for diagnostics)
if: steps.build_parallel.outcome == 'failure'
run: |
make
working-directory: ${{ github.workspace }}/build_osx
- name: Check
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
make check
working-directory: ${{ github.workspace }}/build_osx
- name: Package
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
make package
working-directory: ${{ github.workspace }}/build_osx
-438
View File
@@ -1,438 +0,0 @@
# This file defines Continuous Integration (CI) tests for BRL-CAD using the
# Github Actions framework. Currently it defines configurations for Windows,
# Linux and OSX. These tests are run on a fixed schedule, rather than per
# push, and will typically take longer to run.
#
# Tests here are intended to test more expensive integrations and longer
# builds than the ones targeted at per-commit feedback. The tradeoff is
# that a failure in these tests might be cause by any commit within a
# 24 hour block of time, so the developer will need to track down the
# specifics themselves.
name: Scheduled
on:
schedule:
- cron: '0 3 * * *' # daily at 03:00 UTC
jobs:
linux_bext:
name: Linux - BRL-CAD bext build
runs-on: ubuntu-latest
strategy:
fail-fast: true
env:
DEBIAN_FRONTEND: noninteractive
if: github.event_name == 'schedule'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
# Cache apt package downloads (not installed pkgs)
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
# Install system dependencies
- name: Install apt dependencies
run: |
sudo apt-get update
# Install X/OpenGL dev pkgs
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
# Install tools
sudo apt-get install astyle re2c xsltproc libxml2-utils
# Install dependency dev pkgs
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev
# Install XCB/OpenGL dev pkgs for Qt - see:
# https://wiki.qt.io/Building_Qt_6_from_Git
# https://doc.qt.io/qt-6/linux-requirements.html
sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-cursor-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev libxcb-xrm-dev libxkbcommon-dev libxkbcommon-x11-dev
sudo apt-get install libgl-dev
sudo apt-get install libinput-dev
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: |
cmake -E make_directory build_linux
cmake -E make_directory $HOME/.cache
cmake -E make_directory $HOME/.cache/BRL-CAD
- name: Configure
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
cmake -S brlcad -B build_linux -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_PARALLEL=1 -DBRLCAD_BEXT_CLEANUP=ON -DBRLCAD_ENABLE_QT=ON
- name: Build + Check + Package
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
cmake --build build_linux --config Release --target check
cmake --build build_linux --config Release --target package
windows_bext:
name: MSVC - Ninja - BRL-CAD bext build
needs: [linux_bext]
runs-on: windows-latest
strategy:
fail-fast: true
if: github.event_name == 'schedule'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v2
- name: Add cl.exe to PATH
uses: ilammy/msvc-dev-cmd@v1
- name: Add github workspace to path
shell: powershell
run: Add-Content -Path $env:GITHUB_PATH -Value $env:GITHUB_WORKSPACE
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Build Directory setup
run: cmake -E make_directory ./build_winninja
- name: Configure
shell: powershell
run: |
cmake -S brlcad -B build_winninja -G Ninja -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_PARALLEL=1 -DBRLCAD_BEXT_CLEANUP=ON -DBRLCAD_ENABLE_QT=ON
- name: Build
shell: powershell
run: |
ninja -j1 -v
working-directory: ${{ github.workspace }}/build_winninja
- name: Check
shell: powershell
run: |
ninja check -v
working-directory: ${{ github.workspace }}/build_winninja
- name: Package
shell: powershell
run: |
ninja package
working-directory: ${{ github.workspace }}/build_winninja
windows_std_tools_bext:
name: MSVC - Standard Tools - BRL-CAD bext build
needs: [windows_bext]
runs-on: windows-latest
strategy:
fail-fast: true
if: github.event_name == 'schedule'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Add github workspace to path
shell: cmd
run: echo %GITHUB_WORKSPACE%>>"%GITHUB_PATH%"
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Build Directory setup
run: |
cmake -E make_directory ./build_winstd
- name: Configure
shell: cmd
run: |
call "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
cmake -S brlcad -B build_winstd -DBRLCAD_EXT_PARALLEL=1 -DBRLCAD_BUNDLED_LIBS=Bundled -DBRLCAD_EXT_PARALLEL=1 -DCMAKE_BUILD_TYPE=Release -DBRLCAD_BEXT_CLEANUP=ON -DBRLCAD_ENABLE_QT=ON
- name: Build
shell: cmd
run: |
call "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
cmake --build build_winstd --config Release --target mged
- name: Check
shell: cmd
run: |
call "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
cmake --build build_winstd --config Release --target check
- name: Package
shell: cmd
run: |
call "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
cmake --build build_winstd --config Release --target package
osx_bext:
name: macOS - BRL-CAD bext build
needs: [linux_bext]
runs-on: macos-14
strategy:
fail-fast: true
if: github.event_name == 'schedule'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Install Xquartz
run: |
brew install xquartz --cask
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Build Directory setup
run: |
cmake -E make_directory build_osx
cmake -E make_directory $HOME/.cache
cmake -E make_directory $HOME/.cache/BRL-CAD
- name: Configure
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
export CC=clang
export CXX=clang++
cmake -S brlcad -B build_osx -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_PARALLEL=1 -DBRLCAD_BEXT_CLEANUP=ON -DBRLCAD_ENABLE_QT=ON
- name: Build
run: |
make
working-directory: ${{ github.workspace }}/build_osx
- name: Check
run: |
make check
working-directory: ${{ github.workspace }}/build_osx
- name: Package
run: |
make package
working-directory: ${{ github.workspace }}/build_osx
linux_static:
name: Clang Static Analyser
needs: [linux_bext]
runs-on: ubuntu-latest
strategy:
fail-fast: true
env:
DEBIAN_FRONTEND: noninteractive
if: github.event_name == 'schedule' && github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
# Setup hint from https://github.com/darktable-org/rawspeed/blob/develop/.github/workflows/ci-static-analysis.yml
- name: Clang Static Analyzer Setup
run: |
sudo apt-get update
sudo apt-get install clang-18 clang-tools-18
# Install X/OpenGL dev pkgs
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
# Install tools
sudo apt-get install astyle re2c xsltproc libxml2-utils
# Install dependency dev pkgs
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev
# Install XCB/OpenGL dev pkgs for Qt - see:
# https://wiki.qt.io/Building_Qt_6_from_Git
# https://doc.qt.io/qt-6/linux-requirements.html
sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-cursor-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev libxcb-xrm-dev libxkbcommon-dev libxkbcommon-x11-dev
sudo apt-get install libgl-dev
sudo apt-get install libinput-dev # Cleanup
- name: Clone bext
run: git clone https://github.com/BRL-CAD/bext.git
- name: Get bext commit SHA
id: bext-sha
run: |
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- name: Compute bext cache discriminator
id: cachekey
shell: bash
run: |
info="${{ steps.bext-sha.outputs.sha }}-$(uname -s)-$(uname -r)-$(gcc --version | head -n 1)"
echo "hash=$(echo -n "$info" | sha1sum | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.cachekey.outputs.hash }}
- name: Build bext (if cache miss)
if: steps.cache-bext.outputs.cache-hit != 'true'
run: |
cmake -E make_directory bext_build
cmake -S bext -B bext_build -DCMAKE_BUILD_TYPE=Release -DENABLE_ALL=ON -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/bext_output
cmake --build bext_build --config Release -j 2
cmake -E rm -rf bext
cmake -E rm -rf bext_build
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: |
cmake -E make_directory build_clangstatic
cmake -E make_directory $HOME/.cache
cmake -E make_directory $HOME/.cache/BRL-CAD
working-directory: ${{ github.workspace }}/brlcad
- name: Run Analyzer
run: |
export PATH=$GITHUB_WORKSPACE:/usr/share/clang/scan-build-18/bin:/usr/share/clang/scan-build-18/libexec:$PATH
cp $GITHUB_WORKSPACE/brlcad/misc/clang-static-analyzer-run.sh .
./clang-static-analyzer-run.sh
working-directory: ${{ github.workspace }}/brlcad/build_clangstatic
- name: Summary
if: success() || failure()
run: |
sudo apt-get install html2text
html2text scan-reports-all/*/index.html
working-directory: ${{ github.workspace }}/brlcad/build_clangstatic
# See https://app.codecov.io/gh/BRL-CAD/brlcad for analysis results
linux_cov:
name: LCOV Coverage testing
needs: [linux_bext]
runs-on: ubuntu-latest
strategy:
fail-fast: true
env:
DEBIAN_FRONTEND: noninteractive
if: github.event_name == 'schedule' && github.ref == 'refs/heads/main'
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('.github/workflows/check.yml') }}
- name: Setup - System
run: |
sudo apt-get update
# Get the lcov tool and its dependencies
sudo apt-get install lcov
# Install X/OpenGL dev pkgs
sudo apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev libglu1-mesa-dev libfontconfig-dev
# Install tools
sudo apt-get install astyle re2c xsltproc libxml2-utils
# Install dependency dev pkgs
sudo apt-get install zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libeigen3-dev libgdal-dev libassimp-dev libopencv-dev tcl-dev tk-dev
# Install XCB/OpenGL dev pkgs for Qt - see:
# https://wiki.qt.io/Building_Qt_6_from_Git
# https://doc.qt.io/qt-6/linux-requirements.html
sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-cursor-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev libxcb-xrm-dev libxkbcommon-dev libxkbcommon-x11-dev
sudo apt-get install libgl-dev
sudo apt-get install libinput-dev
- name: Clone bext
run: git clone https://github.com/BRL-CAD/bext.git
- name: Get bext commit SHA
id: bext-sha
run: |
cd bext
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- name: Compute bext cache discriminator
id: cachekey
shell: bash
run: |
info="${{ steps.bext-sha.outputs.sha }}-$(uname -s)-$(uname -r)-$(gcc --version | head -n 1)"
echo "hash=$(echo -n "$info" | sha1sum | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Cache bext build outputs
id: cache-bext
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/bext_output
key: ${{ runner.os }}-bext-${{ steps.cachekey.outputs.hash }}
- name: Build bext (if cache miss)
if: steps.cache-bext.outputs.cache-hit != 'true'
run: |
cmake -E make_directory bext_build
cmake -S bext -B bext_build -DCMAKE_BUILD_TYPE=Release -DENABLE_ALL=ON -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/bext_output
cmake --build bext_build --config Release -j 2
cmake -E rm -rf bext
cmake -E rm -rf bext_build
- name: Checkout
uses: actions/checkout@v4
with:
path: brlcad
- name: Directory setup
run: |
cmake -E make_directory build_lcov
cmake -E make_directory $HOME/.cache
cmake -E make_directory $HOME/.cache/BRL-CAD
- name: Configure
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
cmake -S brlcad -B build_lcov -DBRLCAD_ENABLE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug -DBRLCAD_EXT_DIR=${{ github.workspace }}/bext_output -DBRLCAD_ENABLE_QT=ON
- name: Build
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
cmake --build build_lcov -j2
- name: Build (serial for diagnostics)
if: steps.build_parallel.outcome == 'failure'
run: |
export PATH=$GITHUB_WORKSPACE:$PATH
cmake --build build_lcov -j1
continue-on-error: true
- name: Run Coverage Test
run: |
find . -name '*.gcda' -exec rm {} \;
make check
lcov --capture --directory . --output-file coverage.info
lcov -r coverage.info \*\/bext_output\/\* > coverage-2.info
lcov -r coverage-2.info \/usr\/\* > coverage_cad.info
rm coverage-*.info
mv coverage_cad.info ..
working-directory: ${{ github.workspace }}/build_lcov
- name: Upload
uses: codecov/codecov-action@v4
with:
files: ./coverage_cad.info
-40
View File
@@ -1,40 +0,0 @@
# Common build directories used in the source tree
/build*
/.build*
/*_build*
/*-build*
/out
# Temporary files
*~
\#*\#
.\#*
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]
# OS specific files
.DS_Store
.DS_Store?
# CMake supports some configuration files to allow users a convenient way to pre-define
# sets of configuration options:
# https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
/CMakeUserPresets.json
# Visual Studio (note that CMakePresets.json is recommended instead of
# CMakeSettings.json for Visual Studio going forward)
# https://learn.microsoft.com/en-us/cpp/build/cmake-presets-vs
# https://learn.microsoft.com/en-us/cpp/build/customize-cmake-settings
/.vs
.vscode
/CMakeSettings.json
#Qt Creator
CMakeLists.txt.user
# Misc
.clang-format
+26 -207
View File
@@ -111,7 +111,7 @@ Hanes, Jeff
U.S. Army Ballistic Research Laboratory
U.S. Army Research Laboratory
Johnson, Christopher T.
Johnson, Christopher T. <cjohnson@cyberpaladin.com>
nicknames cjohnson
1989 February
Cray Research, Inc.
@@ -119,7 +119,7 @@ Geometric Solutions, Inc.
Paladin Software
JRMTech, Inc.
Butler, Lee A.
Butler, Lee A. <butler@arl.army.mil>
nicknames butler, lbutler
1989 July
U.S. Army Ballistic Research Laboratory
@@ -131,7 +131,7 @@ nicknames pjt
U.S. Army Ballistic Research Laboratory
U.S. Army Research Laboratory
Markowski, Michael J.
Markowski, Michael J. <michael.markowski@arl.army.mil>
nicknames mmark, mm
1991 June
U.S. Army Ballistic Research Laboratory
@@ -141,7 +141,7 @@ nicknames gdurf
1992 August
ARL Student Hire / Carnegie Mellon University
Anderson, John R.
Anderson, John R. <jra@arl.army.mil>
nicknames jra, johnranderson
1993 May
U.S. Army Ballistic Research Laboratory
@@ -154,14 +154,14 @@ nicknames adam
1995 October
Geometric Solutions, Inc.
Parker, Robert G.
Parker, Robert G. **
nicknames include bparker, bob1961
1995 January
U.S. Army Research Laboratory
SURVICE Engineering, Inc.
Open Source
Morrison, Christopher Sean <morrison@brlcad.org>
Morrison, Christopher Sean <morrison@brlcad.org> **
nicknames sean, morrison, brlcad
1998 December
ARL Student Hire / Johns Hopkins University
@@ -178,7 +178,7 @@ nicknames tranese
2001 March
U.S. Army Research Laboratory
Hartley, Robert F.
Hartley, Robert F. <hartley@vt.edu>
nicknames hartley
2002 August
ARL Student Hire / Virginia Tech
@@ -189,48 +189,48 @@ nicknames twingy, justin
Quantum Research International, Inc.
U.S. Army Research Laboratory
Greenwald, Erik
Greenwald, Erik <erikg@arl.army.mil> **
nicknames erikg, erikgreenwald
2003 November
U.S. Army Research Laboratory
Open Source
Roßberg, Daniel
Roßberg, Daniel **
nicknames d_rossberg
2005 June
Industrieanlagen-Betriebsgesellschaft mbH (IABG)
Open Source
Yapp, Cliff
Yapp, Cliff **
nicknames starseeker
2007 September
Open Source
Quantum Research International, Inc.
U.S. Army Research Laboratory
Bowman, W. Keith
Bowman, W. Keith **
nicknames indianlarry
SURVICE Engineering, Inc.
U.S. Army Research Laboratory
Weiss, Richard
Weiss, Richard **
nicknames r_weiss
2008 December
U.S. Army Research Laboratory
Browder, Thomas M. Jr.
Browder, Thomas M. Jr. **
nicknames tbrowder2
2008 June
ManTech International Corporation
Open Source
Reed, Nicholas
Reed, Nicholas **
nicknames n_reed
2008 July
ARL Student Hire / University of Maryland, Baltimore County
Quantum Research International, Inc.
Moore, Jr., Carl G.
Moore, Jr., Carl G. **
nicknames cmoore, carlmoore
2011 October
U.S. Army Research Laboratory
@@ -243,7 +243,7 @@ Weaver, Earl P.
1980
U.S. Army Ballistic Research Laboratory
Davisson, Edwin O.
Davisson, Edwin O. **
U.S. Army Research Laboratory
Rogers, David
@@ -260,10 +260,10 @@ U.S. Army Ballistic Research Laboratory
Applin, Keith A.
U.S. Army Research Laboratory
Kregel, Dwayne
Kregel, Dwayne **
SURVICE Engineering, Inc.
Weaver, Stephanie 'Rain'
Weaver, Stephanie 'Rain' **
2009 June
ARL Student Hire / Bridgewater College
@@ -366,10 +366,6 @@ McDonald, Rob
2013 November
Open Source
Roberts, Mitchell
2014 July
U.S. Army Research Laboratory
Tannous, Marc
2014 December
Open Source (GCI)
@@ -898,188 +894,15 @@ nicknames chetanshinde911
Open Source (GSoC)
Haydar, Ali
nicknames lois221 lgoogl696 LouisGoogl
nicknames lois221
2019 May
Open Source (GSoC)
Nayak, Himanshu
nicknames himanshu40
2020 January
Open Source (GSoC)
Suthar, Rishabh
nicknames yamhai, rishabhsuthar32
2020 March
Open Source (GSoC)
Vaidya, Sahil
nicknames sahilvaidya99
2020 April
ARL Student Hire / University of Texas at Austin
Das, Sumagna
nicknames sumagnadas
2020 May
Open Source
Atreya, Vikram
nicknames vikram-atreya
2020 October
Open Source
Dinges, Trey
nicknames treydinges
2021 October
Texas A&M University
Connelly, Cole D.
nicknames cdconn00
2021 October
Texas A&M University
Olivarez, Vincent
nicknames volivarez60
2021 October
Texas A&M University
McGregor, Christopher J.
nicknames f4alt
2021 October
Texas A&M University
Studwell, Alex P.
nicknames apstudwell
2021 October
Texas A&M University
Wilson, Reid
nicknames rwilson
2021 October
Texas A&M University
Paz, Luz
nicknames luzpaz
2022 February
Open Source
Ferguson, Sean
nicknames GradualSyrup
2022 March
Texas A&M University
Chambers, William R.
nicknames redcarrera
2022 April
U.S. Army DEVCOM Analysis Center
Kejriwal, Tanya
nicknames tanyakejriwal
2022 February
Texas A&M University
Servin, Diego
nicknames dservin
2022 February
Texas A&M University
Norris, Cameron
nicknames cameron-norris
2022 February
Texas A&M University
Hernandez, Luis
nicknames LouisTheLeaf
2022 February
Texas A&M University
Curtis, Alexandria
nicknames acurtis55
2022 February
Texas A&M University
Plaisance, Andrew T.
nicknames atp318
2022 February
Texas A&M University
Stepic, Joseph
nicknames JosephStepic
2022 February
Texas A&M University
Santos, Kevin
2022 February
Texas A&M University
Bergeron, Wesley Paul
2022 February
Texas A&M University
Chen, Zhuo (Danny)
2023 February
Texas A&M University
Hoskinson, Allyson
2023 February
Texas A&M University
Plant, Andrew
2023 February
Texas A&M University
Sturtevant, Mark
2023 February
Texas A&M University
Tao, Michael
2023 February
Texas A&M University
Dhawan, Rohan
2023 October
Texas A&M University
Feng, Feng
2023 October
Texas A&M University
Hollenbeck, Sam
nicknames samhollenbeck
2023 October
Texas A&M University
Pham, Timothy
nicknames YUMGUY
2023 October
Texas A&M University
Zou, Yida
nicknames YidaZou
2023 October
Texas A&M University
Reynolds, Timothy
nicknames TheZouave007
2024 February
Texas A&M University
Delbarre, Gaultier
nicknames CoralRocker
2024 March
Texas A&M University
Beckett, Ian
2024 March
Texas A&M University
McLean, Connor
2024 March
Texas A&M University
Reel, Samuel (Sammy)
2024 March
Texas A&M University
SPECIAL THANKS
--------------
@@ -1394,14 +1217,6 @@ Liu, Jeffrey
2019 December
Open Source (GCI)
Wade, Pauline
2021 August
Texas A&M University
nicknames r-ricci
2022 January
Open Source
CORPORATE AND ORGANIZATION SUPPORT
----------------------------------
@@ -1473,6 +1288,10 @@ contributed entirely before the name change reflect the original name,
whereas persons who continued or began contributions after the name
change reflect the new name.
If corrections or additions need to be made, please contact one of the
developers. Additionally, you may send inquiries, suggestions, and
comments to the developer list: brlcad-devel@lists.sourceforge.net
** The individual is an active contributor, participating in BRL-CAD
development within the past 12 months with numerous contributions.
If any corrections or additions need to be made, please contact one of
the active core developers. Additionally, you may send inquiries,
suggestions, and comments to the developer mailing list:
brlcad-devel@lists.sourceforge.net
+40 -137
View File
@@ -15,143 +15,6 @@ on-going issues.
Recent Bugs
-----------
* fbserv as well as -F option handling (e.g., -F0 or -F/dev/wgls) that
is supported across myriad other tools appears to be broken on
Windows in a git bash shell (problem is not seen in Command Prompt.)
Something is concatenating EXEPATH and/or fbserv silently fails with
return codes (e.g., when not specifying -F, only giving the port.)
* rt -H hypersample, -J jitter, and -j# for sub-grid-mode assumes a
framebuffer, causing pix data to get written to the -o file (e.g.,
even with -o file.png). See view_pixel() near src/rt/view.c:472 for
problem area with -j but there are likely call sites.. Need to
scrub all fb_write() and ideally make this a non-issue via icv API.
* obj-g and gcv converters choke and crash on obj with unnamed g line.
spec wording on whether that's valid is unclear, but encountered in
wild.
* recursive bu_parallel() failure, tbd whether cpp11 or pthread impl,
likely because IDs are exceeding MAX_PSW, causing mayhem and chaos.
* Archer was observed to mangle the structure of a comb tree when assigning
a color from the dialog panel. MGED is able to assign the color fine,
so there appears to be something specific to Archer's comb tree handling
that is flawed. Not all combs are handled incorrectly. Issue appears to
be long standing - observed as far back as at least version 7.28.
* rtcheck_handler_cleanup() throws 'invalid handle specified' on Windows
in closing of STDOUT (see FIXME comment). Does not affect normal running,
but a debug build complains.
* very peculiar non-linear memory issue in rt when allocating a large
flat hierarchy of objects. I have three combs, each with 10k
members unioned. Each member is an rcc. Rendering with just one
comb results in about 2GB usage. Two combs result in about 3.5GB
usage. Three combs results in 18GB usage. Four is killed after
24GB. Suspect there is some 32-bit issue once we exceed 4GB that is
causing subsequent allocations to be bigger than necessary. Looking
at allocation stack, rt_ct_get() appears to be allocating 10MB
chunks.
* rt from mged is not outputting overlap log messages or rt summary.
Stops printing after opendb line. (Observed on Mac)
* mged running an rt with excessive overlaps ends up in a deadlock.
Backtrace indicates write buffer is full, likely because no output
is going to terminal. (Observed on Mac)
* gcv on a glTF file (at least a binary .glb) crashes hard with a NULL
pointer bomb (workaround: gltf-g succeeds albeit incomplete
conversion). Takes out the entire Terminal app on Mac for some
reason (consistently).
* Running"mged -c test.g" exits automatically on default prompt:
...
Create new database (y|n)[n]?
Warning: no database is currently open!
morrison@Miniagua .build %
* TGC tess fails when we have a near-zero c axis and a larger d
axis, or vice versa.
* MGED crashes trying to open the repository file
doc/docbook/resources/other/standard/xsl/images/important.tif
It is mis-identified as a v4 .g file due to the file header's
first character matching the v4 .g first character.
* MGED on Mac hides the main command window on File->Open when you
cancel the open. Presumably the withdraw is somehow getting routed
to the window and not just the open dialog.
* running pkgIndex and/or mkIndex during build appears to be randomly
crashing on Mac using bundled libs
* garbage_collect -c wipes out custom attributes on _GLOBAL
> attr set _GLOBAL foo bar
> garbage_collect -c
* Visual error when drawing using -S -m1 of a region with the same solid
subtracted and then unioned.
make two boxes stacked on top of one another
> r boxes.r u box - box1 u box1
> e -S -m1 boxes.r
box1 is not drawn
* When run inside mged, invalid syntax reported on "gqa -p prefix"
despite it being documented as the correct form (and working outside
mged). specifying gqa -pprefix appears to be workaround, though
unintuitive. specifying gqa -p"" annoyingly outputs ""exp_air.plot3
with quotes embedded in the name.
* rtweight reports nan,nan,nan centroid when density is 0
* rtweight/gqa volumes seem wrong with simple sphere test case, with
values consistently and quickly converging less than the actual
volume regardless of the grid size.
* gqa manpage has the wrong indentation on the options write-up.
* raytracing a revolved sketch seems to work fine, but rtarea and gqa
seem to be crashing on that same revolve. curiously, the brep
revolve from the csgbrep proc-db has the same failure as well as the
brep ehy.
* ogl display manager still crashes on attach in mged on Mac OS X 10.5
* running archer "" at least on windows results in a file type dialog
and errors with "can't read "_conv_log": no such variable
* opening a database in archer with the same name as a command doesn't
work.
* in mged, running the 'attach' command (confirmed issues with X and
ogl), closing the window, and then issuing a 'draw' results in mged
crashing.
* killtree / crashes
* killtree reports spurious db_lookup failures saying object does not
exist as it previously deleted it. should keep track of what it
deletes to not output spuriously, or (better) delete transactionally
so it only attempts to lookup and delete once per object.
* object names with a / or \ in them make ls or underlying directory
parsing logic display them incorrectly.
* search -exec results are inconsistent with search filtered
results. for example, "search . -attr ..." returns A B C, but
"search . -attr ... -exec attr show {} \;" results in attr show
output for A B C as well as subtracted repetitions. For example,
say A contains - B - C, then it will show output for A B C B C.
adding -bool u gets closer to consistent but still appears to repeat
the last object
* fbclear -c appears to hang indefinitely inside pkg_bwaitfor,
possible protocol mismatch or capability removed/changed in fbserv.
* dbupgrade -r produces an invalid rhc with the default v5 rhc produced
by MGED with "make rhc rhc"
@@ -164,6 +27,10 @@ Recent Bugs
make_ellipse4() in eto.c and (after adding max recursion test) in
paint_face() in manif.c:190
* bot_dump -o file.obj is possibly generating invalid OBJ files.
tested on two different pieces of software including xcode and cura,
both failed to read our obj files where stl worked.
* mater -d information stored in the .g file doesn't survive a
garbage collection operation.
@@ -300,6 +167,10 @@ Recent Bugs
pixborder -b "255 0 0" -t "255 255 255" < pix/moss.pix | pix-fb
* report that attempting to change units on a read-only file in MGED
will not change the units in the file but changes them in MGED,
resulting in problems with nirt missing geometry it shouldn't miss.
* typing 'comb -f -r assembly_name' shuts down mged with the error:
ERROR: bad pointer 0000000000B4CA50: s/b bu_external(x768dbbd0), was bu_vls(x89333bbb), file ..\..\..\brlcad_src\src\libbu\parse.c, line 2443"
And on the mged command line:
@@ -313,6 +184,9 @@ Recent Bugs
* wgl framebuffer is not lingering on windows (regardless of using
wgll or default) when it should
* nirt -e "xyz val val val" doesn't work due to the space after the -e
and how the nirt/rt commands parse quoted args.
* calling "attr set obj key value" should always result in key getting
set to value, no matter what, as it is the lowest-level attribute
management interface and what the command (correctly) documents.
@@ -359,6 +233,9 @@ Recent Bugs
book-keeping is fuxored or the db_lookup is returning NULL (or isn't
yet performed).
* idents command is reporting a bogus region count in the region
output table listing (first column).
* src/librt/primitives/bot/g_bot_include.c:rt_bot_bbox() routine isn't
calculating the bbox correctly
@@ -367,6 +244,11 @@ Recent Bugs
* rtxray crashes if you specify a -o *.bw output file due to
assumptions in the rt front-end that all output files are .pix
* raytracing a revolved sketch seems to work fine, but rtarea and gqa
seem to be crashing on that same revolve. curiously, the brep
revolve from the csgbrep proc-db has the same failure as well as the
brep ehy.
* encountered a crash during rtarea on a (default) facetized version
of the hyp from the proc-db csgbrep tool.
@@ -381,6 +263,9 @@ Recent Bugs
* torus with a near zero inner diameter results in zero-length edges
during tessellation.
* opening a database in archer with the same name as a command doesn't
work.
* bu_log() with a width specifier does not align like printf().
Example: bu_log("%24s", str);
@@ -443,9 +328,13 @@ Recent Bugs
* edcomb command seems to be busted similar to red, doesn't seem to do
anything.
* gqa manpage has the wrong indentation on the options write-up.
* Detailed BoT model ray trace image had incorrect background pixel
values in framebuffer, off slightly by one.
* ogl display manager still crashes on attach in mged on Mac OS X 10.5
* rt is consuming 100% CPU in fb_close() on a lingering ogl
framebuffer waiting to close. needs to sleep or select for a while.
@@ -459,6 +348,10 @@ Recent Bugs
* report of rt aborting randomly on 64-bit with camo shader.
* mged raytrace fails with simple "raytrace failed" message when using
rt, nirt, etc. on Windows after modifying a region. See sf bug
report 2954404.
* mged rrt command is not respecting the view size, just does
something similar to autoview but even gets az/el wrong too.
@@ -699,6 +592,8 @@ Recent Bugs
* wavelet isn't working correctly on a simple image decomposition &
reconstruction.
* query_ray can't find nirt if not installed
* fbed is looking for /usr/lib/vfont/nonie.r.12
* mged doesn't check if html_dir does not exist when searching for
@@ -755,8 +650,16 @@ Recent Bugs
* an underlay framebuffer does not underlay with shaded mode
* rtweight chokes on a .density file that has less than 3 values per
line (infinite loop). also gives infinite areas when presented with
an empty .density file.
* rtarea gives incorrect areas when using -H hypersample flag
* rtweight/gqa volumes seem wrong with simple sphere test case, with
values consistently and quickly converging less than the actual
volume regardless of the grid size.
* setting src/librt/db5_io.c's AVS_ADD off in db5_import_attributes
causes bad things to happen and it really shouldn't.
+70 -389
View File
@@ -7,9 +7,7 @@ potentially impacts developers or users. The scope is limited to
public interfaces including developer application programming
interfaces (APIs), user application command-line interfaces (CLIs),
and graphical user interfaces (GUIs). The policy aims to balance
developer agility with interface stability. Note that renaming an
application is NOT considered minimally impacting, since that name
is the primary means by which users locate the application.
developer agility with interface stability.
All changes to BRL-CAD are expected to conform to this change policy.
Changes MUST either be:
@@ -129,130 +127,39 @@ generally listed for reference.
Items marked with a "'" (single quote) are undocumented and may be
removed at any time.
7.42
----
libanalyze
analyze_obj_to_pnts and related defines in analyze/pnts.h
deprecated in favor of librt's rt_gen_obj_pnts and related
defines in rt/shoot.h [deprecated 7.42]
include/raytrace librt
db_search_context removed in favor of new db_search params -
old db_search function signature can temporarily be obtained
under the name db_search_old [deprecated 7.42]
libged "how" command and its exposure in Tcl
Currently returning an internal GED numerical value - will
either be changed to report a human readable string instead
or (more likely) retired as a command outright in favor of
a "view obj [name] info mode" subcommand. [deprecated 7.42]
include/ged/commands.h
current ged_cmd_valid functionality will be replaced by
ged_cmd_exists and ged_cmd_same. [deprecated 7.42]
include/bg/plane.h
removing tri_specific structure - only used internally in
one place in BRL-CAD code as of v7.40.2. [deprecated 7.42]
MGED features
predictor frame for velocity-based navigation will be removed.
Early idea in 3D space navigation that doesn't seemed to have
panned out in practice. [deprecated 7.42]
GED commands
removing command-line-supplied edit string support from the
following libged commands. New method will be to set the
desired editor and terminal options in struct ged, or (if
operating at the user level) to set the relevant environment
variables.
edcolor (-E opt)
edcodes (-E opt)
editit (-e opt)
edmater (-E opt)
red (-E opt)
[deprecated 7.42]
ability to specify xyz center with trailing arguments on
the nirt commad line (i.e. nirt obj1 obj2 ... x y z at
MGED command prompt) will be removed in favor of an --xyz
option instead (i.e. nirt -xyz x y z obj1 obj2 ...)
[deprecated 7.42]
rt
rt_bot_minpieces and rt_bot_tri_per_piece variables
Obsoleted by new BoT ray tracing. [deprecated 7.42]
rtshot
-b and -t options
Obsoleted by new BoT ray tracing. [deprecated 7.42]
nirt
-B option and bot_minpieces command
Obsoleted by new BoT ray tracing. [deprecated 7.42]
7.40
----
include/bu/process.h
bu_process_exec: replaced by bu_process_create
bu_process_wait: replaced by bu_process_wait_n
bu_process_read: replaced by bu_process_read_n
bu_process_open: replaced by bu_process_file_open
bu_process_close: replaced by bu_process_file_close
bu_process_args: replaced by bu_process_args_n
bu_process_id: replaced by bu_pid
bu_terminate: replaced by bu_pid_terminate
[deprecated 7.40]
MGED commands
p, r and g optional arguments to summary command -
info can be obtained via search [deprecated 7.40]
dbip, get_dbip - exposure of low-level pointer information
Shouldn't be using this at a user/scripting level
[deprecated 7.40]
7.38
----
MGED commands
E (a.k.a "big E") - replaced by "draw -m5"
[deprecated 7.38]
7.32
----
include/bg/chull.h
All functions returning point arrays instead of index arrays.
Will be replaced by similarly named functions returning
indexes into provided points array, to allow the caller
to decide if new arrays are needed. [deprecated 7.32]
bg_polyline_2d_chull, bg_2d_chull, bg_3d_coplanar_chull,
bg_3d_chull [deprecated 7.32]
MGED gui
The following will be removed from MGED's menu bar (unused
features, can be accomplished another way, or will be exposed
only as lower level settings when there are sensible defaults
that are seldom changed.)
Settings->Mouse Behavior->Pick Raytrace-Object(s)
[deprecated 7.32]
MGED overlay command
Instead of an optional second argument being the view object
name, command will take (potentially) multiple plot files
as input to overlay. Optional view object name will be
specified with the -N option.
[deprecated 7.32]
7.30
----
~/.density
automatic reading of .density file in home directory
materials need to be specified or imported [deprecated 7.28]
btclsh, bwish
Emacs key binding emulation
achieved by running btclsh in Emacs [deprecated 7.30]
include/bu/redblach.h
All redblack related functions, structures and macros
defined in libbu's redblack.h. Functions are:
bu_rb_create, bu_rb_delete, bu_rb_diagnose_tree,
bu_rb_summarize_tree, bu_rb_extreme, bu_rb_neighbor,
bu_rb_curr, bu_rb_free, bu_rb_insert, bu_rb_is_uniq,
bu_rb_set_uniqv, bu_rb_uniq_all_off, bu_rb_uniq_all_on,
bu_rb_uniq_on, bu_rb_uniq_off, bu_rb_rank, bu_rb_select,
bu_rb_search, bu_rb_walk
Use C++ containers set/map from std [deprecated 7.30]
nirt
Behavior available under the --old flag [deprecated 7.30]
7.28
----
include/bu/malloc.h
bu_ck_malloc_ptr, bu_mem_barriercheck, bu_prmem
replaced by modern memory analyzers [deprecated 7.28]
include/rt/mem.h
rt_memprint [deprecated 7.28]
include/vmath.h
VCOMB3, VCOMB3N, VJOIN4
Removed as inconsistent and unused API [deprecated 7.28]
@@ -264,6 +171,11 @@ MGED commands
savekey, shaded_mode, sync
Removed as part of distillation effort [deprecated 7.28]
libtermio, libcursor
Public API scope reduction - any client code that needs
to interact with the terminal at these levels should handle
what is needed locally.
7.26
----
image tools
@@ -278,16 +190,37 @@ signal analysis tools
d2-c', double-asc' : incorporating into cv
Removed as part of distillation effort [deprecated 7.26]
include/bu/ptbl.h
BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, BU_PTBL_END
Removed as private implementation detail [deprecated 7.26]
BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, BU_PTBL_END
Removed as private implementation detail [deprecated 7.26
include/bu/cmd.h
remove struct bu_cmdhist and struct bu_cmdhist_obj [deprecated 7.26]
BU_CMDHIST_NULL, BU_CMDHIST_OBJ_NULL, bu_cmdhist_histor, bu_cmdhist_add,
bu_cmdhist_curr, bu_cmdhist_nest, bu_cmdhist_prev [deprecated 7.26]
nirt
-T - use LIBRT_BOT_MINTIE environment variable instead [deprecated 7.26]
all global variables
global variables are no longer considered published public API [deprecated 7.26]
bn_mat_identity -> MAT_INIT_IDN or MAT_IDN() or NULL
include/bn.h
tp_setup, no longer needs to be public API [deprecated 7.26]
include/raytrace.h
curve_to_tcl_list
db_full_path_appendresult tcl_obj_to_int_array
tcl_obj_to_fastf_array tcl_list_to_int_array
tcl_list_to_fastf_array *_tcl_*, removal of all tcl-specific
API functions [deprecated 7.26]
include/rt/solid.h
shouldn't be public API - this level of detail belongs inside the display
manager [deprecated 7.26]
include/ged/defines.h
remove struct ged_drawable - shouldn't be public API [deprecated 7.26]
remove freesolid from struct ged - exposes struct solid [deprecated 7.26]
include/ged/view.h
remove current forms of dl_erasePathFromDisplay and invent_solid - they
expose the struct solid type [deprecated 7.26]
include/tclcad.h
tclcad_rt_rt tclcad_rt_import_from_path, removal of all
tclcad_bn_mat_print tclcad_rt_parse_ray tclcad_rt_pr_cutter
tclcad_rt_pr_hit tclcad_rt_rt tclcad_rt_import_from_path, removal of all
tcl-specific API functions [deprecated 7.26]
librt, fast4-g
removal of CLINE entity support [deprecated 7.26]
@@ -311,6 +244,8 @@ include/raytrace.h librt
----
include/raytrace.h librt
nmg_model_break_e_on_v -> nmg_break_e_on_v [deprecation 7.22]
RT_GET_TREE -> BU_GET [deprecation 7.22]
RT_FREE_TREE -> BU_PUT [deprecation 7.22]
7.20
----
@@ -320,6 +255,12 @@ librt
bspline primitive [deprecated 7.20]
poly primitive [deprecated 7.20]
hf primitive [deprecated 7.20]
include/bu.h
bu_vls_init_if_uninit() -> bu_vls_init() [deprecated 7.20]
GNU Autotools configure compatibility script
./configure -> cmake . [deprecated 7.20]
include/raytrace.h
rt_load_attrs() -> rt_gettrees_and_attrs() or db5_import_attributs() [deprecated 7.20]
7.18
----
@@ -413,118 +354,6 @@ include/raytrace.h
*** OBSOLETED CHANGES ***
**********************************************************************
(reverse chronological order)
7.42.2
------
include/bu/redblack.h
All redblack related functions, structures and macros
defined in libbu's redblack.h. Functions are:
bu_rb_create, bu_rb_delete, bu_rb_diagnose_tree,
bu_rb_summarize_tree, bu_rb_extreme, bu_rb_neighbor,
bu_rb_curr, bu_rb_free, bu_rb_insert, bu_rb_is_uniq,
bu_rb_set_uniqv, bu_rb_uniq_all_off, bu_rb_uniq_all_on,
bu_rb_uniq_on, bu_rb_uniq_off, bu_rb_rank, bu_rb_select,
bu_rb_search, bu_rb_walk
Use C++ containers set/map from std [deprecated 7.30]
7.42.0
------
include/bu.h
bu_brlcad_root: replaced by bu_dir [deprecated 7.32]
bu_brlcad_dir: replaced by bu_dir [deprecated 7.32]
bu_ck_malloc_ptr, bu_mem_barriercheck, bu_prmem
replaced by modern memory analyzers [deprecated 7.28]
remove struct bu_cmdhist and struct bu_cmdhist_obj [deprecated 7.26]
BU_CMDHIST_NULL, BU_CMDHIST_OBJ_NULL, bu_cmdhist_histor, bu_cmdhist_add,
bu_cmdhist_curr, bu_cmdhist_nest, bu_cmdhist_prev [deprecated 7.26]
bu_vls_init_if_uninit() -> bu_vls_init() [deprecated 7.20]
include/bn.h
tp_setup, no longer needs to be public API [deprecated 7.26]
include/raytrace.h
global variables in RTG (except the vlfree list, renamed
to rt_vlfree) are removed - rtg_parallel and rtg_headwdb
[deprecated 7.26]
rt_initial_tree_state is replaced by the new initialization
macro RT_DBTS_INIT [deprecated 7.26]
curve_to_tcl_list is now internal [deprecated 7.26]
rt_i struct's Orca_hash_tbl is replaced by rti_udata and
a generic rt_gettrees_clbk mechanism - see src/rt/rtshot.c
for a worked example reproducing previous behavior with
the new mechanism.
RT_GET_TREE -> BU_GET [deprecation 7.22]
RT_FREE_TREE -> BU_PUT [deprecation 7.22]
rt_load_attrs() -> rt_gettrees_and_attrs() or db5_import_attributs() [deprecated 7.20]
arb_edit.h contents were relocated to arb8.h
libged headers
Removed libged command specific headers analyze.h, rt.h, framebuffer.h,
view/matrix.h, view/select.h and view/slate.h - the functions these defined
were all replaced by ged_exec calls. Also removed similar command specific
functions from a number of other libged headers. Functions were removed
earlier, so code wouldn't have linked successfully - this catches the headers
up with the migration to ged_exec.
include/ged/defines.h
remove struct ged_drawable - shouldn't be public API [deprecated 7.26]
include/tclcad.h
tclcad_bn_mat_print tclcad_rt_parse_ray tclcad_rt_pr_cutter
tclcad_rt_pr_hit [deprecated 7.26]
tclcad_rt_setup is now a no-op - function declaration removed
nirt
-T - new BoT raytracing makes obsolete [deprecated 7.26]
GNU Autotools configure compatibility script
./configure -> cmake . [deprecated 7.20]
7.38.0
------
burst
Point Burst Damage Assessment Model (PDAM) input preparation
tool. Obsolete, no longer in use by upstream tools,
removed [deprecated 7.32]
libtermio, libcursor
Public API scope reduction - any client code that needs
to interact with the terminal at these levels should handle
what is needed locally. [deprecated 7.28]
7.34.0
------
nirt
Behavior available under the --old flag [deprecated 7.30]
include/rt/solid.h
shouldn't be public API - this level of detail belongs inside the display
manager [deprecated 7.26]
include/ged/defines.h
remove freesolid from struct ged - exposes struct solid [deprecated 7.26]
7.30.4
------
include/bu/hash.h
bu_hash_tbl_find, bu_set_hash_value, bu_get_hash_value,
bu_get_hash_key, bu_hash_tbl_add, bu_hash_tbl_print,
bu_hash_tbl_free, bu_hash_tbl_first, bu_hash_tbl_next,
bu_hash_tbl_traverse, bu_hash_record. public structs
bu_hash_entry and bu_hash_tbl will be made private.
Replaced with new API [deprecated 7.26]
7.30.2
------
ray tracing tools
@@ -569,15 +398,11 @@ fb-rle, rle-fb, bw-rle, pix-rle, rle-pix
burst
remove termlib-based interactive menu interface [deprecated 7.26]
include/bu/hash.h
bu_hash_tbl_find, bu_set_hash_value, bu_get_hash_value,
bu_get_hash_key, bu_hash_tbl_add, bu_hash_tbl_print,
bu_hash_tbl_free, bu_hash_tbl_first, bu_hash_tbl_next,
bu_hash_tbl_traverse, bu_hash_record. public structs
bu_hash_entry and bu_hash_tbl will be made private.
Replaced with new API [deprecated 7.26]
include/rt/mem.h
rt_memprint [deprecated 7.28]
bu_hash_tbl_find, bu_set_hash_value, bu_get_hash_value, bu_get_hash_key,
bu_hash_tbl_add, bu_hash_tbl_print, bu_hash_tbl_free, bu_hash_tbl_first,
bu_hash_tbl_next, bu_hash_tbl_traverse, public structs bu_hash_entry and
bu_hash_tbl will be made private.
Replaced with new API [deprecated 7.26]
7.30.0
------
@@ -593,7 +418,6 @@ include/raytrace librt
db_regexp_match_all() -> db_ls() [deprecated 7.26]
mged
em, e_muves, l_muves, lm, read_muves, and t_muves MUVES-specific commands [deprecated 7.22]
ps command renamed to postscript [minimally impacting]
include/bu.h
bu_parse_mm() [deprecated 7.22]
@@ -697,12 +521,6 @@ librtserver and Java Native Interface (JNI) bindings
pl*
pl* -> plot3* [deprecated 7.16]
include/raytrace.h
db_full_path_appendresult tcl_obj_to_int_array
tcl_obj_to_fastf_array tcl_list_to_int_array
tcl_list_to_fastf_array *_tcl_*, removal of all tcl-specific
API functions from librt to libtclcad
7.24.0
------
include/bu.h
@@ -871,7 +689,7 @@ perl -0777 -pi -e 'EXPRESSION' FILE
To apply an expression to an entire source tree, the following pattern
may work:
find . -type f -not -path "*.git/*" -regex '.*\(c\|cpp\|cxx\|h\|hpp\)$' -exec perl -0777 -pi -e 'EXPRESSION' {} \;
find . -type f -not -path "*.svn/*" -regex '.*\(c\|cpp\|cxx\|h\|hpp\)$' -exec perl -0777 -pi -e 'EXPRESSION' {} \;
find src \( -name '*.c' -or -name '*.cxx' -or -name '*.cpp' -or -name '*.h' -or -name '*.hxx' -or -name '*.hpp' -or -name '*.java' -or -name '*.f' -or -name '*.sh' -or -name '*.tcl' -or -name '*.tk' -or -name '*.itcl' -or -name '*.itk' -or -name '*.pl' -or -name '*.php' -or -name '*.inc' -or -name '*.mged' -or -name '*.y' -or -name '*.l' -or -name '*.yy' \) -not \( -name other -or -regex '.*/other/.*' -or -name tools -or -regex '.*/misc/tools/.*' -or -regex '.*/\.[^\.].*' -or -regex '.*~' -or -regex '.*/#.*' \)
@@ -1572,7 +1390,7 @@ s/bu_dirname\(/bu_path_dirname\(/g
s/bu_basename\(/bu_path_basename\(/g
s/bu_normalize\(/bu_path_normalize\(/g
s/bu_argv_from_path\(/bu_path_to_argv\(/g
renamed path functions with proper group label [7.27]
renamed path functons with proper group label [7.27]
s/bu_fnmatch\(/bu_path_match\(/g
s/BU_FNMATCH_LEADING_DIR/0x0/g
s/BU_FNMATCH_/BU_PATH_MATCH/g
@@ -1709,140 +1527,3 @@ s/wdb_pipept/wdb_pipe_pnt/g
renamed points from pt to pnt for consistency [7.30]
s/proe-brl/creo-brl/g
replaced by newer creo plugin [7.30]
7.32
----
s/facetall.sh/mged -c facetize/g
replaced by more improved facetize command [7.30]
s/pixcmp -s/pixcmp -q/g
s/pixcmp -l/pixcmp -d/g
changed pixcmp options for consistency with new options [7.32]
s/(#[[:space:]]*include[[:space:]]+["<])bn\/clip\.h/\1bg\/clip.h/g
moved clip.h header [7.32]
s/bn_ray_vclip/bg_ray_vclip/g
s/bn_lseg_clip/bg_lseg_clip/g
functions moved and renamed [7.32]
s/(#[[:space:]]*include[[:space:]]+["<])bn\/vlist\.h/\1bview\/vlist.h/g
moved vlist.h header [7.32]
s/bn_vlist/bv_vlist/g
s/bn_vlblock/bv_vlblock/g
s/BN_VLIST/BV_VLIST/g
s/BN_ADD_VLIST/BV_ADD_VLIST/g
s/BN_FREE_VLIST/BV_FREE_VLIST/g
s/bn_plot_vlblock/bv_plot_vlblock/g
s/BN_CK_VLBLOCK/BV_CK_VLBLOCK/g
s/BN_CK_VLIST/BV_CK_VLIST/g
s/BN_VLBLOCK_MAGIC/BV_VLBLOCK_MAGIC/g
s/bn_ck_vlist/bv_ck_vlist/g
s/BN_GET_VLIST/BV_GET_VLIST/g
bn_vlist relocated to libbview [7.32]
s/(#[[:space:]]*include[[:space:]]+["<])bn\/plane\.h/\1bg\/plane.h/g
moved plane.h header [7.32]
s/bn_distsq_line3_line3/bg_distsq_line3_line3/g
s/bn_dist_pnt3_line3/bg_dist_pnt3_line3/g
s/bn_dist_line3_lseg3/bg_dist_line3_lseg3/g
s/bn_dist_line3_line3/bg_dist_line3_line3/g
s/bn_dist_pnt3_lseg3/bg_dist_pnt3_lseg3/g
s/bn_distsq_pnt3_lseg3_v2/bg_distsq_pnt3_lseg3_v2/g
s/bn_3pnts_collinear/bg_3pnts_collinear/g
s/bn_pnt3_pnt3_equal/bg_pnt3_pnt3_equal/g
s/bn_dist_pnt2_lseg2/bg_dist_pnt2_lseg2/g
s/bn_isect_lseg3_lseg3/bg_isect_lseg3_lseg3/g
s/bn_lseg3_lseg3_parallel/bg_lseg3_lseg3_parallel/g
s/bn_isect_line3_line3/bg_isect_line3_line3/g
s/bn_2line3_colinear/bg_2line3_colinear/g
s/bn_isect_pnt2_lseg2/bg_isect_pnt2_lseg2/g
s/bn_isect_line2_lseg2/bg_isect_line2_lseg2/g
s/bn_isect_lseg2_lseg2/bg_isect_lseg2_lseg2/g
s/bn_isect_line2_line2/bg_isect_line2_line2/g
s/bn_dist_pnt3_pnt3/bg_dist_pnt3_pnt3/g
s/bn_3pnts_distinct/bg_3pnts_distinct/g
s/bn_npnts_distinct/bg_npnts_distinct/g
s/bn_make_plane_3pnts/bg_make_plane_3pnts/g
s/bn_make_pnt_3planes/bg_make_pnt_3planes/g
s/bn_isect_line3_plane/bg_isect_line3_plane/g
s/bn_isect_2planes/bg_isect_2planes/g
s/bn_isect_2lines/bg_isect_2lines/g
s/bn_isect_line_lseg/bg_isect_line_lseg/g
s/bn_dist_line3_pnt3/bg_dist_line3_pnt3/g
s/bn_distsq_line3_pnt3/bg_distsq_line3_pnt3/g
s/bn_dist_line_origin/bg_dist_line_origin/g
s/bn_dist_line2_point2/bg_dist_line2_point2/g
s/bn_distsq_line2_point2/bg_distsq_line2_point2/g
s/bn_area_of_triangle/bg_area_of_triangle/g
s/bn_isect_pnt_lseg/bg_isect_pnt_lseg/g
s/bn_dist_pnt_lseg/bg_dist_pnt_lseg/g
s/bn_rotate_bbox/bg_rotate_bbox/g
s/bn_rotate_plane/bg_rotate_plane/g
s/bn_coplanar/bg_coplanar/g
s/bn_angle_measure/bg_angle_measure/g
s/bn_dist_pnt3_along_line3/bg_dist_pnt3_along_line3/g
s/bn_dist_pnt2_along_line2/bg_dist_pnt2_along_line2/g
s/bn_between/bg_between/g
s/bn_does_ray_isect_tri/bg_does_ray_isect_tri/g
s/bn_hlf_class/bg_hlf_class/g
s/bn_isect_planes/bg_isect_planes/g
s/bn_plane_pt_nrml/bg_plane_pt_nrml/g
s/bn_fit_plane/bg_fit_plane/g
s/bn_plane_closest_pt/bg_plane_closest_pt/g
s/bn_plane_pt_at/bg_plane_pt_at/g
s/BN_CLASSIFY/BG_CLASSIFY/g
plane.h moved from libbn to libbg [7.32]
s/(#[[:space:]]*include[[:space:]]+["<])bn\/plot3\.h/\1bview\/plot3.h/g
moved plot3.h header [7.32]
s/(#[[:space:]]*include[[:space:]]+["<])bn\/vert_tree\.h/\1bg\/vert_tree.h/g
moved vert_tree.h header [7.32]
s/bn_vert_tree/bg_vert_tree/g
moved vert_tree to libbg [7.32]
s/(#[[:space:]]*include[[:space:]]+["<])bn\/vectfont\.h/\1bview\/vectfont.h/g
moved vertfont.h header to bview[7.32]
s/ID_MATERIAL/ID_COLORTAB/g
renamed to make room for material objects [7.32]
s/GED_OK/BRLCAD_OK/g
s/GED_ERROR/BRLCAD_ERROR/g
s/GED_HELP/BRLCAD_HELP/g
s/GED_MORE/BRLCAD_MORE/g
s/GED_UNKNOWN/BRLCAD_UNKNOWN/g
s/bu_whereis\(/bu_whence\(/g
s/bu_which\(/bu_whence\(/g
s/rt_gettree_muves\(/rt_gettrees_and_attrs\(/g
7.36
----
s/V3DIR_FROM_AZEL\(/bn_vec_ae\(/g
s/AZEL_FROM_V3DIR\([[:space:]]*([^,]*),[[:space:]]*([^,]*),/bn_ae_vec\(&\1, &\2/g
7.38
----
s/bg_polygon_triangulate/bg_poly_triangulate/g
s/bg_nested_polygon_triangulate/bg_nested_poly_triangulate/g
s/OP_NMG_TESS/OP_TESS/g
s/tree_nmgregion/tree_tessellation/g
s/nmg_booltree_leaf_tess/rt_booltree_leaf_tess/g
s/-ghosting-intensity/-ghost-intensity/g
rtwizard option simplified [7.38]
s/pl_mat_idn/MAT_IDN/g
s/pl_mat_zero/MAT_ZERO/g
s/pl_mat_copy/MAT_COPY/g
s/ambSlow=[0-9]*//g
7.40
----
s/bv_mesh_lod_custom_key/bu_data_hash/g
s/x/solid_report/g
s/db_search\(/db_search_old\(/g
s/RTG.rtg_vlfree/rt_vlfree/g
s/RT_GET_VLIST\(/BV_GET_VLIST\(&rt_vlfree, /g
s/RT_FREE_VLIST\(/BV_FREE_VLIST\(&rt_vlfree, /g
s/RT_ADD_VLIST\(/BV_ADD_VLIST\(&rt_vlfree, /g
s/RT_VLIST_SET_DISP_MAT\(/BV_VLIST_SET_DISP_MAT\(&rt_vlfree, /g
s/RT_VLIST_SET_MODEL_MAT\(/BV_VLIST_SET_MODEL_MAT\(&rt_vlfree, /g
s/RT_VLIST_SET_POINT_SIZE\(/BV_VLIST_SET_POINT_SIZE\(&rt_vlfree, /g
s/RT_VLIST_SET_LINE_WIDTH\(/BV_VLIST_SET_LINE_WIDTH\(&rt_vlfree, /g
s/bu_shader_to_list\(/rt_shader_to_list\(/g
s/bu_shader_to_key_eq\(/rt_shader_to_key_eq\(/g
s/_GED_MAX_LEVELS/_GED_TRACE_MAX_LEVELS/g
s/GED_RANGE/BV_RANGE/g
s/GED_MAX/BV_MAX/g
s/GED_MIN/BV_MIN/g
s/INV_GED/INV_BV/g
+2699 -1433
View File
File diff suppressed because it is too large Load Diff
+7 -4
View File
@@ -26,8 +26,8 @@ License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this file. If you did not, please contact one of
the BRL-CAD project administrators listed at the Github project
site https://github.com/BRL-CAD/brlcad/ or listed in the AUTHORS file
the BRL-CAD project administrators listed at the SourceForge project
site http://sf.net/projects/brlcad/ or listed in the AUTHORS file
included as part of the distribution.
Overview
@@ -80,7 +80,10 @@ When referring to BRL-CAD, its source code, documentation, and
libraries, the reference is not meant to include or imply 3rd party
source code, libraries, and/or applications unless specifically stated
otherwise. No endorsement or claim of authorship is implied to any
3rd party asset that is included with BRL-CAD.
3rd party asset that is included with BRL-CAD. The majority of the
3rd party source code, libraries, and applications included with
BRL-CAD are located in the src/other/ directory of the source code
distribution.
Copyright
---------
@@ -98,7 +101,7 @@ arranged. This includes an implicit assignment of copyright for any
and all contributions being made. The following notice should be
prominent in the BRL-CAD sources:
Copyright (c) 1984-2025 United States Government as represented by
Copyright (c) 1984-2020 United States Government as represented by
the U.S. Army Research Laboratory.
Contact
+168 -12332
View File
File diff suppressed because it is too large Load Diff
+150 -243
View File
@@ -297,6 +297,10 @@ libtclcad: The Tcl-CAD library is a thin interface that assists in the
binding of an image to a Tk graphics context.
Depends on: libbn libbu libfb libtcl libtk
libtermio: The terminal I/O library is a TTY control library for
managing a terminal interface.
Depends on nothing
libwdb: The "write database" library provides a simple interface for
the generation of BRL-CAD geometry files supporting a majority of the
various primitives available as well as combination/region support.
@@ -376,6 +380,8 @@ details on subdirectories and authorship not covered here.
Write database library
src/mged/
Multi-device geometry editor
src/other/
External frameworks (Tcl/Tk, libpng, zlib, etc.)
src/proc-db/
Procedural geometry tools, create models programmatically
src/remrt/
@@ -397,17 +403,14 @@ should be POSIX-compliant Bourne Shell Script. The build system uses
the CMake build tool. An initial implementation of a BRL-CAD Geometry
Server is written in PHP.
With release 7.38, BRL-CAD intends to conform strictly with the
following ANSI/ISO standards for C and C++ language compilation:
C : ISO/IEC 9899:2011, i.e. C11
C++: ISO/IEC 14882:2017, i.e. C++17
With release 7.28, BRL-CAD intends to conform strictly with the 2011
ANSI/ISO standards for C and C++ language compilation
(ISO/IEC 9899:2011, i.e. C11 and ISO/IEC 14882:2011, i.e. C++11).
Support for use of necessary non-standard system facilities is
handled by build system declarations and preprocessor defines driven
by build configuration tests. The working feature set for normal
development should be widely supported C++17 features and the subset
of C11 that is also valid (and widely supported) C++17.
development should be widely supported C++11 features and the subset
of C11 that is also valid (and widely supported) C++11.
C++ is used as an implementation language within libraries, but there
are no public C++ APIs in use outside of OpenNURBS. For new work,
@@ -453,10 +456,12 @@ colocated with any corresponding source files.
Header files private to a library go into that library's directory.
Public header files go into the include/ directory on the top level.
Public header files should not include any headers that are private.
Headers should include any other headers required for correct parsing.
Public header files should not include the common header.
Headers should include any other headers that they require for correct
parsing (this is an on-going clean-up effort). Public header files
should not include the common header.
Headers should generally be included in a particular order:
Headers should be included in a particular order. That order is
generally as follows:
- any single "interface" header [optional]
- the common header (unless the interface header includes it)
@@ -467,15 +472,13 @@ Headers should generally be included in a particular order:
Applications may optionally provide an interface header that defines
common structures applicable to most or all files being compiled for
that application. That interface header will generally be the first
file to be included as it usually includes the common header and
system headers.
The common header should always be included before any system header.
Standard system headers should be included before library system
headers. Headers should be written to be self-contained, not
requiring other headers be included. If another header is necessary
for a header to function correctly, it should include it.
file to be included, as it usually includes the common header and
system headers. The common header should always be included before
any system header. Standard C system headers should be included
before library system headers. Headers should be written to be
self-contained, not requiring other headers to be necessarily included
before they may be used. If another header is necessary for a header
to function correctly, it should include it.
Build System:
@@ -616,7 +619,7 @@ the end of the file:
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8 cino=N-s
* ex: shiftwidth=4 tabstop=8
*/
In emacs, the 'indent-region' command (bound to C-M-\ by default)
@@ -807,7 +810,7 @@ DOCUMENTATION
BRL-CAD has extensive documentation in various formats and presently
maintained in various locations. It is an on-going desire and goal of
the project to have all documentation located along with the source
code in our Git repository.
code in our Subversion (SVN) repository.
In line with that goal and where beneficial, a large portion of the
tutorial documentation is being converted to the DocBook XML format.
@@ -896,7 +899,7 @@ binaries in the path/to/builddir/src/libbu/tests build directory.
A profile build, useful for some types of performance inspection
(e.g., gprof) but not enabled by default, may be specified via:
cmake .. -DBRLCAD_PROFILING=ON
cmake .. -DBRLCAD_ENABLE_PROFILING=ON
Debug symbols are enabled by default, even for installation, for all
libraries and binaries in order to facilitate diagnosing and
@@ -917,27 +920,27 @@ gdb> backtrace
PATCH SUBMISSION GUIDELINES
---------------------------
To contribute to BRL-CAD, begin by submitting pull requests to the
GitHub project at https://github.com/BRL-CAD/brlcad.
To contribute to BRL-CAD, begin by submitting modifications to the
patches section at http://sf.net/projects/brlcad/. Patches in the
unified diff format (diff -u) are generally preferred when modifying
existing source or other text files. Otherwise, contributors are
welcome to submit their changes in full to the patches tracker as
compressed file attachments.
For an introduction to the standard GitHub workflow for forking and
submitting pull requests, see:
All text patches should be submitted in the unified diff format where
it's feasible to create one either using SVN or using the unmodified
original file. This is generally the "-u" option to diff, and is also
supported by the SVN diff command:
https://git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project
https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/working-with-forks
svn diff > mychanges.patch
While working in your fork to prepare your pull request, remember to
frequently sync with upstream sources. BRL-CAD uses an active main
branch for most of its ongoing work, so this syncing process is
particularly important when working with BRL-CAD. Patches need to be
based on the latest sources and avoid reverting improvements that have
been added to the upstream sources since your fork was created.
Although the GitHub pull request based workflow is recommended and
preferred, if for any reason you cannot use GitHub you may also
submit "git format-patch" patches through other channels. See:
https://git-scm.com/docs/git-format-patch
Where possible, patch files should be generated against the latest
sources available to make it easier to review and apply the changes.
If a modification involves the addition or removal of files, those
files can be provided separately with instructions on where they
belong (or what should be removed). If SVN cannot be used, please
provide the complete release and build number of the files you worked
with.
ANY MODIFICATIONS THAT ARE PROVIDED MUST NOT MODIFY OR CONFLICT WITH
THE EXISTING "COPYING" FILE DISTRIBUTION REQUIREMENTS. This means
@@ -946,8 +949,7 @@ asked to only provide patches that may legally be incorporated into
BRL-CAD under the existing distribution provisions described in the
COPYING file.
Patches that are difficult to apply and/or review are difficult to
accept.
Patches that are difficult to apply are difficult to accept.
BUGS & UNEXPECTED BEHAVIOR
@@ -955,9 +957,9 @@ BUGS & UNEXPECTED BEHAVIOR
When a bug or unexpected behavior is encountered that cannot be
quickly fixed, it needs to be documented in our BUGS file or more
formally reported to the GitHub issues tracker at:
formally reported to the SourceForge bug tracker at:
https://github.com/BRL-CAD/brlcad/issues
http://sourceforge.net/tracker/?atid=640802&group_id=105292&func=browse
The tracker is the main source for user-reported bugs and/or any
issues that require significant discussion or benefit from having
@@ -987,7 +989,7 @@ access to be granted:
3) Join the brlcad-devel developer mailing list, introduce yourself.
4) Create a GitHub account, submit at least pull requests that
4) Create a SourceForge account, submit at least two patches that
demonstrate competency with our coding style, apply flawlessly, and
provide some significant improvement.
@@ -1017,12 +1019,11 @@ expectations. To summarize some of the expected responsibilities:
help, or at least to do no harm. Be helpful and respectful.
1) Developers are expected to uphold the quality, functionality,
maintainability, security, and portability of the source code at all
times. In part, this means that changes should be tested to avoid
breaking the build and short-term fixes are discouraged. Committing
code that is actively being worked on is encouraged but care should be
taken to minimize impact on others and to respond quickly when an
issue arises.
maintainability, and portability of the source code at all times. In
part, this means that changes should be tested to avoid breaking the
build and short-term fixes are discouraged. Committing code that is
actively being worked on is encouraged but care should be taken to
minimize impact on others and to respond quickly when an issue arises.
2) Bugs, typos, and compilation errors are to be expected as part of
the process of active software development and documentation, but it
@@ -1034,12 +1035,6 @@ in resolving the issue promptly. It is the responsibility of all
developers to address issues as they are encountered regardless of who
introduces the problem.
To assist developers in these efforts, BRL-CAD utilizes Continuous
Integration (CI) testing via the GitHub Actions infrastructure to
monitor code health: https://github.com/BRL-CAD/brlcad/actions
Under normal conditions, all developers should strive to keep all
GitHub Actions tests passing.
3) Contributors making commits to the repository are required to
uphold the legal conventions and requirements summarized in the
COPYING file. This includes the implicit assignment of copyright to
@@ -1227,7 +1222,7 @@ or data corruption issue involved. That said, binary releases may be
re-posted with a modified name per the convention described in VERSION
NUMBERS & COMPATIBILITY.
Example: BRL-CAD_7.12.2.dmg is superseded by BRL-CAD_7.12.2-1.dmg
Example: BRL-CAD-7.12.2.dmg is superseded by BRL-CAD-7.12.2-1.dmg
Older binary releases may be moved to the hidden attic folder, though
not necessary or recommended except where critical vulnerabilities are
@@ -1258,89 +1253,47 @@ Release steps are as follows:
#####################################################################
# 00: Notify developer mailing list of intention to release.
echo "Release preparations are under way. Trunk sources merged to the RELEASE branch will be reviewed for sync to STABLE and release tagging. Please help test by compiling distcheck and running benchmark, mged, and archer." | mail -s "Release preparations commencing" brlcad-devel@lists.sourceforge.net -r "your@subscribed.address"
echo "Release preparations are under way. Trunk sources merged to the RELEASE branch will be reviewed for sync to STABLE and release tagging. Please help test by compiling distcheck-full and running benchmark, mged, and archer." | mail -s "Release preparations commencing" brlcad-devel@lists.sourceforge.net -r "your@subscribed.address"
#####################################################################
# 01: Sync main to RELEASE branch.
# 01: Sync trunk to RELEASE branch.
git clone git@github.com:BRL-CAD/brlcad.git
cd brlcad
git checkout RELEASE
# NON-AUTO: Review the log and obtain the last trunk merge
# revision number from comments.
svn log --stop-on-copy https://svn.code.sf.net/p/brlcad/code/brlcad/branches/RELEASE | grep -E 'r[0-9]{5}'
PREV=[[last_trunk_rev]]
echo "PREV=$PREV"
# NOTE - it is not strictly necessary to use the strategy-option,
# but barring some specific reason not to the goal will be to
# have RELEASE match the contents of main. The "theirs"
# strategy option helps simplify that process.
git merge --strategy-option theirs main
# NON-AUTO: The merge may succeed without conflicts. If
# not, you will see the message:
#
# Automatic merge failed; fix conflicts and then commit the result.
#
# To see what the problem was, use git status:
git status
On branch RELEASE
Your branch is ahead of 'origin/RELEASE' by 1 commit.
(use "git push" to publish your local commits)
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Changes to be committed:
[list of cleanly merged changes]
Unmerged paths:
(use "git add <file>..." to mark resolution)
[list of conflict files]
# The unmerged files must be inspected and their final form
# decided upon. This can be done manually by editing the
# files to put them in their desired final state and using
# "git add" to mark them resolved, but it is usually more
# convenient and less error prone to use the git mergetool
# command with one of a number of tools designed for merge
# work. For users new to this process practicing on a
# throw-away copy of the repository is recommended before
# doing a merge in earnest.
#
# See https://git-scm.com/docs/git-mergetool for details
#
# Some commonly used mergetool options:
# [meld] https://meldmerge.org/help/resolving-conflicts.html
# [vimdiff] https://gist.github.com/karenyyng/f19ff75c60f18b4b8149
git mergetool
svn co https://svn.code.sf.net/p/brlcad/code/brlcad/branches/RELEASE brlcad.RELEASE
cd brlcad.RELEASE
svn merge https://svn.code.sf.net/p/brlcad/code/brlcad/trunk@$PREV https://svn.code.sf.net/p/brlcad/code/brlcad/trunk@HEAD .
#####################################################################
# 02: Test the merge.
# NON-AUTO: Confirm versioning in include/conf/.
# BRLCAD_VERSION_AMEND may be defined during CMake for an
# amendment build.
mkdir -p .build && cd .build
cmake .. -DENABLE_ALL=ON -DCMAKE_BUILD_TYPE=Release && make
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make
# NON-AUTO: Manually check rt, mged, and archer.
bin/rt # should report usage with correct library versions
bin/mged -c test.g "make sph sph ; draw sph ; rt ; after 1000 ; l sph" # create, view and list info about a sphere
bin/mged # displays gui, run: opendb [file join [bu_dir init] test.g] ; draw sph ; rt
bin/archer # displays gui, run: opendb <path to your build dir>/test.g ; draw sph ; rt
bin/mged # displays gui, run: opendb test.g ; draw sph ; rt
bin/archer # displays gui, run: opendb test.g ; draw sph ; rt
# clean up
cd .. && rm -rf .build
#####################################################################
# 03: Commit the merge (if necessary).
# 03: Commit the merge.
# Note - we don't push the merge at this stage, since we
# will be using the upstream RELEASE branch when we generate a
# ChangeLog file.
CURR=`svn log --xml https://svn.code.sf.net/p/brlcad/code/brlcad/trunk | grep 'revision=' | head -n 1 | sed 's/.*="\([0-9][0-9]*\)".*/\1/g'`
echo "CURR=$CURR"
# If merge conflict resolution was needed, make a merge commit:
MSHA1=$(git log -1 main --pretty=format:"%h")
echo $MSHA1
git commit -m "merge of main $MSHA1 to RELEASE branch"
svn commit -m "merge of trunk to RELEASE branch, r$PREV through r$CURR"
#####################################################################
# 04: Reprioritize or address remaining TODO items.
@@ -1354,18 +1307,9 @@ Release steps are as follows:
# NON-AUTO: Verify all interface changes are in CHANGES.
# NON-AUTO: Verify usage/options are documented in doc/.
# A useful trick for this step is to use gitk to display all
# commits made since the last time the RELEASE branch was
# updated:
gitk --no-merges origin/RELEASE..RELEASE
#####################################################################
# 06: Update the version numbers.
# NOTE - BRLCAD_VERSION_AMEND may also be defined during CMake
# for an amendment build.
# NON-AUTO: NEWS
# NON-AUTO: README
# NON-AUTO: include/conf/PATCH
@@ -1375,115 +1319,61 @@ Release steps are as follows:
# NON-AUTO: misc/macosx/Resources/Welcome.rtfd/TXT.rtf
#####################################################################
# 07: Create branch for release in bext repository.
# 07: Update ChangeLog. Use the YYYY-MM-DD of previous NEWS entry.
MAJOR=`awk '{print $1}' include/conf/MAJOR`
MINOR=`awk '{print $1}' include/conf/MINOR`
PATCH=`awk '{print $1}' include/conf/PATCH`
cd ..
git clone git@github.com:BRL-CAD/bext.git
cd bext
git checkout RELEASE
git branch rel-$MAJOR-$MINOR-$PATCH
git checkout rel-$MAJOR-$MINOR-$PATCH
git push --set-upstream origin rel-$MAJOR-$MINOR-$PATCH
cd ../brlcad
LAST=`grep -E "\--- [0-9]{4}-[0-9]{2}-[0-9]{2}" NEWS | head -n 2 | tail -n 1 | awk '{print $2}'`
echo "LAST=$LAST"
LAST=r57446
svn2cl --break-before-msg --include-rev --stdout -r HEAD:{$LAST} > ChangeLog
svn commit -m "update log with commits through $LAST" ChangeLog
#####################################################################
# 08: Update the bext submodule in BRL-CAD's main repository.
# 08: Run distcheck-full on at least two platforms.
# NON-AUTO: Update BEXT_SHA1 hash in CMakeLists.txt (argument
# to brlcad_bext_init function). If already pointing to the
# sha1 being used for the bext rel-$MAJOR-$MINOR-$PATCH branch
# this is a no-op - otherwise, commit the update.
git add CMakeLists.txt
git commit -m "Update bext submodule to SHA1 <hashval>"
mkdir -p .build && cd .build && cmake .. && make distcheck-full
#####################################################################
# 09: Update ChangeLog.
# 09: Sync RELEASE to STABLE branch:
# We have held off pushing to upstream RELEASE branch until now,
# so we can use that as an anchor point from which to start the
# ChangeLog logging. If for some reason that won't work, replace
# origin/RELEASE with the sha1 of the previous release's final
# commit in the RELEASE branch.
# Update the NEWS release date for the current release to today's date
# We do this instead of date based logging to capture commits that
# may have been originally made before the last release (i.e. older
# commits made in a fork and incorporated into the history via PR)
# NON-AUTO: Review the log and obtain the last merge revision
# number from comments.
svn log --stop-on-copy https://svn.code.sf.net/p/brlcad/code/brlcad/branches/STABLE | less
PREV=[[last_trunk_rev]]
### OR ###
PREV=`svn log --xml --stop-on-copy https://svn.code.sf.net/p/brlcad/code/brlcad/branches/STABLE | grep 'revision=' | head -n 1 | sed 's/.*revision="\([0-9][0-9]*\)".*/\1/g'`
echo "PREV=$PREV"
git log origin/RELEASE..RELEASE > ChangeLog
git add ChangeLog
git commit -m "Update log with commits being incorporated into rel-$MAJOR-$MINOR-$PATCH"
# Now that we have updated the ChangeLog, push the changes to
# upstream RELEASE branch.
git push
# merge that range of changes into STABLE
svn co https://svn.code.sf.net/p/brlcad/code/brlcad/branches/STABLE brlcad.STABLE && cd brlcad.STABLE
svn merge https://svn.code.sf.net/p/brlcad/code/brlcad/branches/RELEASE@$PREV https://svn.code.sf.net/p/brlcad/code/brlcad/branches/RELEASE@HEAD .
#####################################################################
# 10: Run distcheck on at least two platforms.
mkdir -p .build && cd .build && cmake .. && make distcheck
#####################################################################
# 11: Sync RELEASE to STABLE branch:
# NON-AUTO: Update the NEWS release date for the current release to today's date
git add NEWS
MAJOR=`awk '{print $1}' include/conf/MAJOR`
MINOR=`awk '{print $1}' include/conf/MINOR`
PATCH=`awk '{print $1}' include/conf/PATCH`
UTCDATE=$(date -u)
git commit -m "Finalize $MAJOR.$MINOR.$PATCH release date ($UTCDATE)"
# merge RELEASE into STABLE.
git checkout STABLE
git merge --strategy-option theirs RELEASE
# NON-AUTO: Resolve any conflicts as before, although note that
# the intent is usually for STABLE to match RELEASE so normally
# the resolution will be to make STABLE match the state of RELEASE
#####################################################################
# 12: If there are any differences between RELEASE and STABLE trees,
test the merge. In normal usage STABLE should match RELEASE,
so this is only necessary in unusual circumstances. To check
if there are any differences, use git diff:
git diff RELEASE STABLE
# NON-AUTO: If differences were observed, either correct them
# or (if expected) test:
# 10: Test the merge.
mkdir .merge && cd .merge
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make distcheck && cd .. && rm -rf .merge
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make distcheck-full && cd .. && rm -rf .merge
#####################################################################
# 13: Let upstream know about the new state of STABLE.
# 11: Commit the merge.
# If merge conflict resolution was needed, make a merge commit:
RSHA1=$(git log -1 RELEASE --pretty=format:"%h")a
echo $RSHA1
git commit -m "merge of RELEASE $RSHA1 to STABLE branch"
CURR=`svn log --xml https://svn.code.sf.net/p/brlcad/code/brlcad/branches/RELEASE | grep 'revision=' | head -n 1 | sed 's/.*="\([0-9][0-9]*\)".*/\1/g'`
echo "CURR=$CURR"
# Let upstream know what has changed
git push
svn commit -m "merging RELEASE branch to STABLE branch, r$PREV through r$CURR"
#####################################################################
# 14: Tag the release using "rel-MAJOR-MINOR-PATCH" format:
# 12: Tag the release using "rel-MAJOR-MINOR-PATCH" format:
MAJOR=`awk '{print $1}' include/conf/MAJOR`
MINOR=`awk '{print $1}' include/conf/MINOR`
PATCH=`awk '{print $1}' include/conf/PATCH`
echo "Tagging rel-$MAJOR-$MINOR-$PATCH"
UTCDATE=$(date -u)
git tag -a rel-$MAJOR-$MINOR-$PATCH -m "Tag rel-$MAJOR-$MINOR-$PATCH ($UTCDATE)"
git push origin rel-$MAJOR-$MINOR-$PATCH
svn cp https://svn.code.sf.net/p/brlcad/code/brlcad/branches/STABLE https://svn.code.sf.net/p/brlcad/code/brlcad/tags/rel-$MAJOR-$MINOR-$PATCH
#####################################################################
# 15: Increment and commit the next BRL-CAD release numbers.
# 13: Increment and commit the next BRL-CAD release numbers to SVN.
# Update the include/conf/(MAJOR|MINOR|PATCH) version files
# immediately to odd-numbered minor version or new patch developer
@@ -1493,47 +1383,64 @@ Release steps are as follows:
echo "`expr $PATCH + 1`" > include/conf/PATCH
NEXT="`expr $PATCH + 2`"
perl -pi -e "s/Release [0-9]+\.[0-9]+\.[0-9]+/Release $MAJOR.$MINOR.$NEXT/" README
# TODO - this doesn't seem to work, at least on Linux?
#EXPR="s/(@---[[:space:]@-]*[0-9]{4}-)([0-9]{2}-[0-9]{2})([[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.)(${PATCH})([[:space:]@-]*-@)/\$1XX-XX\${3}${NEXT}\$5@* TBD@@\1\2\3\4\5/"
#cat NEWS | tr '\n' '@' | perl -pi -e "$EXPR" | tr '@' '\n' > NEWS
git add include/conf/PATCH README NEWS
git commit -m "Bump to next development revision after tagging the $MAJOR.$MINOR.$PATCH release"
git push
EXPR="s/(@---[[:space:]@-]*[0-9]{4}-)([0-9]{2}-[0-9]{2})([[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.)(${PATCH})([[:space:]@-]*-@)/\$1XX-XX\${3}${NEXT}\$5@* TBD@@\1\2\3\4\5/"
cat NEWS | tr '\n' '@' | perl -pi -e "$EXPR" | tr '@' '\n' > NEWS
svn commit -m "bump to next development revision after tagging the $MAJOR.$MINOR.$PATCH release" ../include/conf/PATCH
#####################################################################
# 16: Sync RELEASE changes back to main.
# 14: Sync RELEASE changes back to trunk.
git checkout main
git merge RELEASE
# NON-AUTO - resolve any conflicts
# If merge conflict resolution was needed, make a merge commit:
RSHA1=$(git log -1 RELEASE --pretty=format:"%h")a
echo $RSHA1
git commit -m "merge of RELEASE $RSHA1 to main branch"
git push
# Work-in-progress
#####################################################################
# 17: Obtain a tagged version of the sources from the repository, make
# 15: Obtain a tagged version of the sources from the repository, make
# final distribution tarballs:
git checkout rel-$MAJOR-$MINOR-$PATCH
mkdir .build && cd .build
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make distcheck
svn checkout https://svn.code.sf.net/p/brlcad/code/brlcad/tags/rel-$MAJOR-$MINOR-$PATCH brlcad-$MAJOR.$MINOR.$PATCH
cd brlcad-$MAJOR.$MINOR.$PATCH-build && mkdir .build && cd .build
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make distcheck-full
#####################################################################
# 18: Upload the source distributions and release notes. Use source
# 16: Upload the source distributions and release notes. Use source
# tarballs to create binaries.
------------- TODO - need new procedures for GitHub... ------------
# create a shell session and source dir
SFUSERNAME=`ls ~/.subversion/auth/svn.simple/* | xargs -n 1 grep -A4 sourceforge | tail -1`
echo "SFUSERNAME=$SFUSERNAME MAJOR=$MAJOR MINOR=$MINOR PATCH=$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net create
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH"
# create binary dirs (as needed)
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH"
# upload source dist and any binaries
scp brlcad-$MAJOR.$MINOR.$PATCH* "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
# extract and upload release notes to source dir
cat ../NEWS | tr '\n' '@' | perl -p -e "s/.*?(@---[[:space:]@-]*[0-9]{4}-[0-9]{2}-[0-9]{2}[[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.${PATCH}[[:space:]@-]*.*?)@---.*/\1/" | tr '@' '\n' > README-${MAJOR}-${MINOR}-${PATCH}.txt
echo "Release notes for $MAJOR.$MINOR.$PATCH" && echo "==="
cat README-$MAJOR-$MINOR-$PATCH.txt && echo "==="
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
# NON-AUTO: Following the NAMING A BINARY RELEASE convention,
# upload any release binaries and platform-specific release notes.
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH/."
# NON-AUTO: Be sure to mark binaries as default download, then
# close shell session
ssh -v $SFUSERNAME,brlcad@shell.sf.net shutdown
#####################################################################
# 19: Notify binary platform maintainers:
# 17: Notify binary platform maintainers:
T2 package maintainer
http://t2-project.org/packages/brlcad.html
@@ -1560,7 +1467,7 @@ Release steps are as follows:
https://fedoraproject.org/wiki/User:Germano#Contact
#####################################################################
# 20: Announce the new release.
# 18: Announce the new release.
The NEWS file should generally be used as a basis for making release
announcements though the announcements almost always require
@@ -1639,7 +1546,7 @@ Multiple platform major release and announcements:
copyboy@cadcam-insider.com
#####################################################################
# 21: Sit back and enjoy a beverage for a job well done.
# 19: Sit back and enjoy a beverage for a job well done.
+475 -181
View File
@@ -1,28 +1,32 @@
The Installation Guide to BRL-CAD
=================================
This document covers the installing BRL-CAD from either a source or binary
distribution. Please see REPORTING PROBLEMS to troubleshoot.
This document covers the basics of installing BRL-CAD from either a
source or binary distribution. Please see the 'Reporting Problems'
section if you run into any trouble installing BRL-CAD.
Some platforms have additional platform-specific documentation provided in the
doc/ directory with additional information. This presently includes the
following:
Some platforms have additional platform-specific documentation
provided in the doc/ directory of the source distribution that should
be consulted if that is the platform you are installing on. This
presently includes the following:
doc/README.AIX -- IBM's Advanced Interactive eXecutive OS
doc/README.BSD -- FreeBSD, NetBSD, OpenBSD, etc.
doc/README.IRIX -- SGI IRIX and IRIX64
doc/README.Linux -- Various Linux distributions
doc/README.MacOSX -- Apple Mac OS X
doc/README.Solaris -- Oracle Solaris, OpenIndiana (Illumos), etc.
doc/README.Windows -- Microsoft Windows
doc/README.VAX -- Virtual Address eXtension architecture from DEC.
One of the original BRL-CAD platforms. These
days, re-created using the simh simulator.
doc/README.Windows -- Microsoft Windows
TABLE OF CONTENTS
-----------------
Introduction
Table of Contents
Quick Source Install
Quick Installation
Installing from Binary
Installing from Source
Testing Functionality
@@ -31,35 +35,50 @@ TABLE OF CONTENTS
Configuration Options
QUICK SOURCE INSTALL
--------------------
QUICK INSTALLATION
------------------
See https://brlcad.org/wiki/Compiling for a platform-specific walk-through
including instructions for building on Windows.
Note that the downloaded files have two check sums calculated
automatically by the Source Forge file release system. The values are
used to verify the integrity of the files as distributed. Get those
data by clicking on the 'i' button at the end of each file's name.
You should ensure those data are retained and kept with the files if
you re-distribute them.
Required tools:
- Git must be 2.17 or later
- CMake must be 3.20 or later
- Compiler must be C++17-compliant
- If using Visual Studio, version 2019 (16.8+) or later
- If using GCC/G++, version 7 or later
- If using LLVM/Clang 5 or later
- If using Intel, version 19.0.1 or later
Steps to compile, test, and install an optimized BRL-CAD on non-Windows
platforms:
If you downloaded a binary distribution of BRL-CAD for your system,
please read the INSTALLING FROM BINARY section of this document down
below. The rest of this quick installation section is only relevant
to source code distributions of BRL-CAD.
git clone https://github.com/BRL-CAD/brlcad.git
mkdir brlcad/build
cd brlcad/build
cmake .. -DENABLE_ALL=ON -DCMAKE_BUILD_TYPE=Release
For the impatient or simplistic, the following steps should compile,
test, and install an optimized BRL-CAD quickly into the
/usr/brlcad/rel-VERSION directory if CMake is already installed:
tar -zxvf brlcad-VERSION.tar
mkdir brlcad-VERSION/build
cd brlcad-VERSION/build
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
make -j4
make check
sudo make install
make install
Once installed, run bin/mged or bin/archer to launch BRL-CAD's GUI apps. See
POST-INSTALLATION for instruction adding bin/ folder to your system PATH to
more easily run geometry converters.
See the REPORTING PROBLEMS section of this document to report any
problems or the INSTALLING FROM SOURCE section for more comprehensive
instructions.
Once installed, add /usr/brlcad/rel-VERSION/bin to your path, and you should be
able to run any of the 400+ applications that constitute BRL-CAD. For
example, to run the MGED solid modeler:
PATH=/usr/brlcad/rel-VERSION/bin:$PATH ; export PATH
mged
If you use tcsh or another C-shell based command shell, use this
instead:
set path=( /usr/brlcad/rel-VERSION/bin $path ) ; rehash
mged
INSTALLING FROM BINARY
@@ -74,128 +93,94 @@ and Windows etc.
Generic Binary Distributions:
For binary distributions that are simply compressed tarballs of the
installation root, they should contain the entire hierarchy of the
distribution. To put that hierarchy in its "installed" location, you just
create the directory and move the expanded tarball contents:
For the unspecialized binary distributions that are basically
compressed tarballs of the installation root, they should contain the
entire hierarchy of the distribution. To put that hierarchy in its
"installed" location, you just create the directory and move the
expanded tarball contents:
gunzip BRL-CAD_X.Y.Z_Linux_ia64.tar.gz
tar -xvf BRL-CAD_X.Y.Z_Linux_ia64.tar
sudo mkdir /usr/brlcad/rel-X.Y.Z
sudo mv BRL-CAD_X.Y.Z_Linux_ia64/* /usr/brlcad/rel-7.X.Y/
gunzip BRL-CAD_7.2.4_Linux_ia64.tar.gz
tar -xvf BRL-CAD_7.2.4_Linux_ia64.tar
sudo mkdir /usr/brlcad/rel-7.2.4
sudo mv BRL-CAD_7.2.4_Linux_ia64/* /usr/brlcad/rel-7.2.4/
Of course, there are other compression options possible including zip and
bzip2. By default, BRL-CAD expects to be installed into /usr/brlcad/rel-X.Y.Z.
On some platforms the binary may be relocatable, but this is not guaranteed.
It's recommended that you start from a source distribution if you would like to
install into an alternate installation location. That said, if you do desire
to install and/or run BRL-CAD from a different location, give it a try...on
some platforms it will work.
Of course, there are other compression options possible including zip
and bzip2. By default, BRL-CAD expects to be installed into
/usr/brlcad/rel-7.2.4. On some platforms the binary may be relocatable,
but this is not guaranteed. It's recommended that you start from a source
distribution if you would like to install into an alternate installation
location. That said, if you do desire to install and/or run BRL-CAD from
a different location, give it a try...on some platforms it will work.
Something to be aware of, even if a binary distribution IS relocatable: it will
use its local copies of things like libraries only so long as the "final"
installed target directory that the build was compiled for does not contain a
BRL-CAD installation. Due to the way path logic is set, an installed copy of a
library in the correct location will always be loaded first, regardless of the
presence of a "local" copy.
Something to be aware of, even if a binary distribution IS relocatable:
it will use its local copies of things like libraries only so long as the
"final" installed target directory that the build was compiled for
does not contain a BRL-CAD installation. Due to the way path logic
is set, an installed copy of a library in the correct location will
always be loaded first, regardless of the presence of a "local" copy.
Mac OS X Disk Mounting Image:
Mount the .dmg and run the Installer .pkg contained therein. This will install
into /usr/brlcad/rel-X.Y.Z and will only require confirming that your
environment is set up properly (i.e. add /usr/brlcad/rel-X.Y.Z/bin to your
path) as described in the Quick Installation section.
Validating checksums:
The integrity of distributed files can be verified using checksums that are
published with released files. Files on SourceForge's file release system can
be found by clicking the 'i' button at the end of each file's name. If you
re-distribute BRL-CAD, checksums should be retained with the files so others
can validate origination.
Mount the .dmg and run the Installer .pkg contained therein. This
will install into /usr/brlcad/rel-X.Y.Z and will only require
confirming that your environment is set up properly (i.e. add
/usr/brlcad/rel-X.Y.Z/bin to your path) as described in the Quick
Installation section.
INSTALLING FROM SOURCE
----------------------
There are a couple of ways to obtain the BRL-CAD sources, usually via one of
the following starting points:
There are a couple of ways to obtain the BRL-CAD sources, usually via
one of the following starting points:
1) from a Git checkout, or
1) from a SVN checkout/export, or
2) from a source distribution tarball
Using the latest Git sources is recommended where possible since it
will have the latest changes.
Using the latest SVN sources is recommended where possible since it
will have the latest changes. See the corresponding section below for
details on how to install from either starting point.
Starting From a SVN Checkout/Export:
With CMake, there is no longer any difference between building from
a subversion checkout and a tarball--follow the Source Distribution
instructions below.
Starting From a Source Distribution:
There are many different ways to build BRL-CAD and depending on what
you need/want will determine which configuration options you should
use. See the CONFIGURATION OPTIONS section below for details on how
to go about selecting which options are appropriate for you.
BRL-CAD's dependencies are managed in a separate repository, located at
https://github.com/BRL-CAD/bext By default BRL-CAD's configure process will
download and manage the necessary dependencies, avoiding the need for user
awareness of the bext repository, but there are a number of scenarios where it
is advantageous for developers to adjust how this process works.
The full dependency stack of BRL-CAD, with all optional and experimental
features enabled, is a VERY large and long compile. Therefore, the bext build
outputs can be built as their own separate, external project to allow for reuse
of the compiled outputs. Building bext separately means BRL-CAD won't get a
chance to customize what is and is not built, but the trade-off is that outputs
can be built once and reused over and over. Doing so can significantly shorten
time spent configuring BRL-CAD builds - reusing bext compiled outputs is
recommended for serious developers.
Various useful configurations for working with bext:
* Get a git clone that has everything which might be needed (large,
but useful for offline building)
git clone --recurse-submodules https://github.com/BRL-CAD/brlcad
* Have prebuilt bext outputs to reuse - BRL-CAD will simply copy and prepare
the pre-existing files
cmake .. -DBRLCAD_EXT_DIR=/home/user/bext_output
* Already have an existing bext clone but want BRL-CAD to build bext outputs
cmake .. -DBRLCAD_EXT_SOURCE_DIR=/home/user/bext
* Download, build and bundle only what is needed for librt
cmake .. -DBRLCAD_COMPONENTS=librt
* Build and bundle only what is needed, but don't require internet for bext clone
cmake .. -DBRLCAD_EXT_SOURCE_DIR=/home/user/bext -DBRLCAD_COMPONENTS=librt
By default, the build system will prepare a Debug build and install into the
/usr/brlcad/dev-X.Y.Z directory. The CMAKE_INSTALL_PREFIX option may be used
to change that directory, or a Release build type may be specified to install
to /usr/brlcad/rel-X.Y.Z - more on this below. The tradition of non-system
installation paths goes back a couple of decades and is a convenient means to
isolate the BRL-CAD solid modeling system from your system, resolves conflicts,
facilitates uninstalls, and simplifies upgrades. The default configuration is
performed by running `cmake'. It is not required to do the build in a
directory different from your source directory, but it is much cleaner and
*highly* recommended - this guide will illustrate the build process with the
assumption that the BRL-CAD source code is in the directory brlcad-X.Y.Z and
the directory intended to hold the build output is brlcad-build, located in the
same parent directory as brlcad-X.Y.Z:
By default, the default configuration will prepare the build system
to perform a Debug build and install into the /usr/brlcad/dev-X.Y.Z
directory. The CMAKE_INSTALL_PREFIX option may be used to change
that directory, or a Release build type may be specified to install to
/usr/brlcad/rel-X.Y.Z - more on this below. The
tradition of non-system installation paths goes back a couple of decades
and is a convenient means to isolate the BRL-CAD solid modeling
system from your system, resolves conflicts, facilitates uninstalls,
and simplifies upgrades. The default configuration is performed by
running `cmake'. It is not required to do the build in a directory
different from your source directory, but it is much cleaner and
*highly* recommended - this guide will illustrate the build process
with the assumption that the BRL-CAD source code is in the directory
brlcad-7.2.4 and the directory intended to hold the build output is
brlcad-build, located in the same parent directory as brlcad-7.2.4:
.
./brlcad-X.Y.Z
./brlcad-7.2.4
./brlcad-build
To start the build process, cd into brlcad-build and run CMake,
pointing it to the source directory:
cd brlcad-build
cmake ../brlcad-X.Y.Z
cmake ../brlcad-7.2.4
As mentioned earlier, CMake uses two "build types", controlled by
the CMAKE_BUILD_TYPE variable, that are useful for specific purposes:
@@ -220,23 +205,69 @@ override the ../brlcad-install default. Build types are a convenient way
to bundle sets of settings, but they do not prevent overrides if a more
custom setup is needed.
By default, all components and functionality will be built.
Note that BRL-CAD does require and include several 3rd party
components. If your system does not include a sufficient version of
those required 3rd party components, they will be automatically
configured for compilation.
If the autodetection mechanisms fail to produce a working configuration,
the next simplest approach is typically to enable ALL the third party
components - this is typically a well tested configuration, but will
increase both the build time and final install size of BRL-CAD on
the system. To set this variable on the command line, use -D to
define ENABLE_ALL for CMake:
define BRLCAD_BUNDLED_LIBS for CMake:
-DENABLE_ALL=ON
-DBRLCAD_BUNDLED_LIBS=Bundled
If the graphical interface (cmake-gui) is in use, it will list this
and other common options by default, allowing the user change them
graphically. This is often quicker and more convenient than
defining options on the command line, but both will work.
You can also force on or off any individual 3rd party library by
setting the BRL-CAD variable for that feature to either on or off:
-DBRLCAD_<LIBRARY>=ON
Other variables control BRL-CAD features. For example, to NOT
enable functionality using OpenGL, set
-DBRLCAD_ENABLE_OPENGL=OFF
To obtain an optimized build (for example, for BRL-CAD Benchmark
performance evaluation), enable BRLCAD_FLAGS_OPTIMIZATION:
-DBRLCAD_FLAGS_OPTIMIZATION=ON
Profile-guided optimization builds are possible via two-pass
compilation. Compile with this flag set, run the benchmark suite,
clean the build, and then compile again with this flag set. Supported
compilers will utilize data from the first pass to guide optimization,
typically resulting in a significant performance increase:
-DBRLCAD_PGO=ON
See the CONFIGURATION OPTIONS below for more details on all of the
possible settings.
You can specify options or preferences you want to always use by
default. For example, to always enable all local libs the following
line can be added to your own configuration file:
set(BRLCAD_BUNDLED_LIBS "Bundled" CACHE STRING "Enable all local libs")
You can define your own configuration file in one of three ways. The
build system will search for the file in this order:
${BRLCAD_SOURCE_DIR}/../BRL-CAD_CONFIG.GLOBAL
${BRLCAD_SOURCE_DIR}/BRL-CAD_CONFIG.GLOBAL
the file defined in the environment variable "BRLCAD_USER_GLOBAL_CONFIG_FILE"
The build system will use the first file defined that exists.
Once configured, you should be able to successfully build BRL-CAD via
make:
@@ -310,35 +341,38 @@ files.
System PATH:
Normally, BRL-CAD's install directories are not in system PATH lists and
consequently BRL-CAD's executables will not be invocable without specifying
consequently BRL-CAD's executables will not be invokable without specifying
their full path. This is normally handled in Unix environments by adding
the desired BRL-CAD installation's binary directory to the user's local path:
On Windows, the PATH system variable can be set using System Utility
in control panel. Add the bin/ folder in the install directory to PATH.
On Linux/BSD/other systems:
In the bash shell: export PATH=/usr/brlcad/rel-X.Y.Z:$PATH
In the csh shell: setenv PATH /usr/brlcad/rel-X.Y.Z:$PATH
In the bash shell: export PATH=/usr/brlcad/rel-X.Y.Z:$PATH
In the csh shell: setenv PATH /usr/brlcad/rel-X.Y.Z:$PATH
REPORTING PROBLEMS
------------------
Please report any bugs, support requests, or feature requests to:
https://github.com/BRL-CAD/brlcad/issues
Please report any bugs encountered to the project bug tracker at
http://sourceforge.net/tracker/?group_id=105292&atid=640802
Similarly, please post any request for feature enhancements or support
to http://sourceforge.net/tracker/?group_id=105292&atid=640805 and
http://sourceforge.net/tracker/?group_id=105292&atid=640803
respectively.
CONFIGURATION OPTIONS
---------------------
--- ENABLE_ALL ---
--- BRLCAD_BUNDLED_LIBS ---
If set to ON, and the BRL-CAD configure process is managing the bext
dependencies, instructs bext to default to building local copies of the
dependencies it will enable per the BRL-CAD feature settings, rather than
searching for system versions.
Enables compilation of all 3rd party sources that are provided within a BRL-CAD
source distribution. If used this option sets all other 3rd party library
build flags to ON by default. However, that setting can be overridden by
manually setting individual variables. Default is "AUTO" - 3rd party sources
are compiled only if they are not detected as being available and functioning
as expected.
Aliases: ENABLE_ALL
--- BRLCAD_ENABLE_OPENGL ---
@@ -350,12 +384,6 @@ if it is, default is to enable.
Aliases: ENABLE_OPENGL
--- BRLCAD_COMPONENTS ---
Semicolon separated list of components to enable for building - see
src/source_dirs.cmake for a list of the components that may be specified.
--- BRLCAD_ENABLE_RUNTIME_DEBUG ---
Enables support for application and library debugging facilities.
@@ -369,51 +397,18 @@ Aliases: ENABLE_RUNTIME_DEBUG, ENABLE_RUN_TIME_DEBUG, ENABLE_RUNTIME_DEBUGGING
ENABLE_RUN_TIME_DEBUGGING
--- BRLCAD_EXT_DIR ---
If specified, BRL-CAD will look in this directory for bext compiled outputs to
bundle and use during the build.
--- BRLCAD_EXT_SOURCE_DIR ---
If specified, BRL-CAD will look in this directory for bext source files. Use
this when you have a pre-existing bext clone and don't want BRL-CAD's configure
process to pull down another copy, but are still looking to have the BRL-CAD
configure process manage producing bext build outputs.
--- BRLCAD_EXT_PARALLEL ---
This number, when specified, describes how many compilation threads to use
when compiling bext sources. Default is 8.
--- BRLCAD_DEBUGGING ---
--- BRLCAD_FLAGS_DEBUG ---
Add compiler flags to aid in program debugging. Defaults to ON.
Aliases: ENABLE_DEBUG, ENABLE_FLAGS_DEBUG, ENABLE_DEBUG_FLAGS
BRLCAD_FLAGS_DEBUG
--- BRLCAD_PGO ---
--- BRLCAD_ENABLE_COMPILER_WARNINGS ---
Enable profile-guided optimization build flags. Defaults to OFF.
Profile-guided optimization builds are possible via two-pass
compilation. Compile with this flag set, run the benchmark suite,
clean the build, and then compile again with this flag set. Supported
compilers will utilize data from the first pass to guide optimization,
typically resulting in a significant performance increase:
--- BRLCAD_WARNINGS ---
Use extra warning flags when compiling C/C++ code. Defaults to ON.
Use extra compiler warning flags when compiling C/C++ code. Defaults to ON.
Aliases: ENABLE_WARNINGS, ENABLE_COMPILER_WARNINGS
BRLCAD_ENABLE_COMPILER_WARNINGS
--- BRLCAD_ENABLE_STRICT ---
@@ -448,3 +443,302 @@ permissions).
Aliases: ENABLE_DOCS, ENABLE_EXTRA_DOCS, ENABLE_DOCBOOK
--- BRLCAD_LEMON ---
Option for enabling and disabling compilation of the lemon parser
provided with BRL-CAD's source distribution. Default is AUTO,
responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_LEMON
--- BRLCAD_RE2C ---
Option for enabling and disabling compilation of the re2c scanner
utility provided with BRL-CAD's source distribution. Default is AUTO,
responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_RE2C
--- BRLCAD_PERPLEX ---
Option for enabling and disabling compilation of the perplex scanner
generator provided with BRL-CAD's source distribution. Default is
AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO. perplex requires a working re2c.
Aliases: ENABLE_PERPLEX
--- BRLCAD_ASTYLE ---
Option for enabling and disabling compilation of the Artistic Style
(astyle) utility provided with BRL-CAD's source distribution. Default is
AUTO,
responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_ASTYLE
--- BRLCAD_XSLTPROC ---
Option for enabling and disabling compilation of the xsltproc XML
transformation utility provided with BRL-CAD's source distribution.
Used for DocBook documentation processing. Default is AUTO,
responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Depends on BRLCAD_EXTRADOCS.
Aliases: ENABLE_XSLTPROC
--- BRLCAD_XMLLINT ---
Option for enabling and disabling compilation of the xmllint XML
validation utility provided with BRL-CAD's source distribution. Used
for DocBook documentation validation. Default is AUTO, responsive to
the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_XMLLINT
--- BRLCAD_REGEX ---
Option for enabling and disabling compilation of the Regular
Expression Library provided with BRL-CAD's source distribution.
Default is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option
and testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_REGEX
--- BRLCAD_ZLIB ---
Option for enabling and disabling compilation of the zlib library
provided with BRL-CAD's source distribution. Default is AUTO,
responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_ZLIB, ENABLE_LIBZ
--- BRLCAD_PNG ---
Option for enabling and disabling compilation of the Portable Network
Graphics library provided with BRL-CAD's source distribution. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_PNG
--- BRLCAD_NETPBM ---
Option for enabling and disabling compilation of the netpbm library
provided with BRL-CAD's source code. Default is AUTO, responsive to
the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_NETPBM
--- BRLCAD_UTAHRLE ---
Option for enabling and disabling compilation of the Utah Raster
Toolkit library provided with BRL-CAD's source code. Default is AUTO,
responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_UTAHRLE
--- BRLCAD_TCL ---
Option for enabling and disabling compilation of the Tcl library
provided with BRL-CAD's source code. Default is AUTO, responsive to
the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_TCL
--- BRLCAD_TK ---
Option for enabling and disabling compilation of the Tk library
provided with BRL-CAD's source code. Default is AUTO, responsive to
the BRLCAD_TCL option and testing first for a system version if
BRLCAD_BUNDLED_LIBS is also AUTO. Option for enabling and disabling
compilation of the Tk graphics package for Tcl provided with BRL-CAD's
source distribution. Default is AUTO, auto-enabling if the BRLCAD_TCL
option is set to BUNDLED and testing first for a system version if
BRLCAD_TCL is set to AUTO or SYSTEM. If BRLCAD_TK is set to BUNDLED,
local copy is built even if a system version is present. This option
also depends on BRLCAD_ENABLE_TK being ON.
Aliases: ENABLE_TK
--- BRLCAD_ITCL ---
Option for enabling and disabling compilation of the IncrTcl package
for Tcl objects provided with BRL-CAD's source distribution. Default
is AUTO, auto-enabling if the BRLCAD_TCL option is set to BUNDLED and
testing first for a system version if BRLCAD_TCL is set to AUTO or
SYSTEM. If BRLCAD_ITCL is set to BUNDLED, local copy is built even if
a system version is present.
Aliases: ENABLE_ITCL
--- BRLCAD_ITK ---
Option for enabling and disabling compilation of the IncrTcl itk
package for Tk objects provided with BRL-CAD's source distribution.
Default is AUTO, auto-enabling if the BRLCAD_TCL option is set to
BUNDLED and testing first for a system version if BRLCAD_TCL is set to
AUTO or SYSTEM. If BRLCAD_ITK is set to BUNDLED, local copy is built
even if a system version is present. This package will be disabled if
BRLCAD_ENABLE_TK is OFF.
Aliases: ENABLE_ITK
--- BRLCAD_IWIDGETS ---
Option for enabling and disabling compilation of the IWidgets Tk
widget package provided with BRL-CAD's source distribution. Default
is AUTO, auto-enabling if the BRLCAD_TCL option is set to BUNDLED and
testing first for a system version if BRLCAD_TCL is set to AUTO or
SYSTEM. If BRLCAD_IWIDGETS is set to BUNDLED, local copy is built even if
a system version is present. This package will be disabled if
BRLCAD_ENABLE_TK is OFF.
Aliases: ENABLE_IWIDGETS
--- BRLCAD_TKHTML ---
Option for enabling and disabling compilation of the Tkhtml HTML
viewing package provided with BRL-CAD's source distribution. Default
is AUTO, auto-enabling if the BRLCAD_TCL option is set to BUNDLED and
testing first for a system version if BRLCAD_TCL is set to AUTO or
SYSTEM. If BRLCAD_TKHTML is set to BUNDLED, local copy is built even if
a system version is present. This package will be disabled if
BRLCAD_ENABLE_TK is OFF.
Aliases: ENABLE_TKHTML
--- BRLCAD_TKTABLE ---
Option for enabling and disabling compilation of the Tktable graphical
table widget package provided with BRL-CAD's source distribution.
Default is AUTO, auto-enabling if the BRLCAD_TCL option is set to
BUNDLED and testing first for a system version if BRLCAD_TCL is set to
AUTO or SYSTEM. If BRLCAD_TKTABLE is set to BUNDLED, local copy is built
even if a system version is present. This package will be disabled if
BRLCAD_ENABLE_TK is OFF.
Aliases: ENABLE_TKTABLE
--- BRLCAD_OPENNURBS ---
Option for enabling and disabling compilation of the openNURBS library
provided with BRL-CAD's source code. Default is AUTO, responsive to
the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_OPENNURBS
--- BRLCAD_SPSR ---
Option for enabling and disabling compilation of the Screened Poisson
Surface Reconstruction library provided with BRL-CAD's source code.
Default is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option
and testing first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_SPSR
--- BRLCAD_SC ---
Option for enabling and disabling compilation of the NIST Step Class
Libraries provided with BRL-CAD's source code. Default is AUTO,
responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_SCL, ENABLE_STEP, ENABLE_STEP_CLASS_LIBRARIES
--- BRLCAD_VDS ---
Option for enabling and disabling compilation of the libvds triangle
simplification library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_VDS
--- BRLCAD_OSG ---
Option for enabling and disabling compilation of the OpenSceneGraph
libraries provided with BRL-CAD's source code. Default is AUTO, responsive to
the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_OPENSCENEGRAPH
--- BRLCAD_GDIAM ---
Option for enabling and disabling compilation of the libgdiam approximate
tight bounding box library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_GDIAM
--- BRLCAD_PROJ4 ---
Option for enabling and disabling compilation of the PROJ.4 geographic
projection library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_PROJ4
--- BRLCAD_GDAL ---
Option for enabling and disabling compilation of the GDAL geographic
library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_GDAL
*** Note - Do not add or edit configuration option descriptions and alias
lists in this file - those entries are auto-generated from information in
the toplevel CMakeLists.txt file and src/other/CMakeLists.txt - any changes
should be made in those files. The CMake configuration process will
automatically re-generate INSTALL with the new descriptions and alias
information.
+12 -540
View File
@@ -10,534 +10,17 @@ descriptive text that emphasizes or further describes significant
changes made. See document footer for additional details.
----------------------------------------------------------------------
--- 20XX-XX-XX Release 7.XX.X ---
--- 20XX-XX-XX Release 7.3X.X ---
----------------------------------------------------------------------
* corrected BoT shotline behavior when starting ray pt in mesh
- Sean Morrison Chris McGregor Cliff Yapp
* updated g2asc to exit if input file == output file - Cliff Yapp
* updated asc2g to exit if input file == output file - Cliff Yapp
* fixed default file-create behavior of open command - Cliff Yapp
* corrected the exposed region count report in rtarea - Cliff Yapp
* fixed icv support for RLE image format - Cliff Yapp
* fixed bot -h crash when database not open - Cliff Yapp
* fixed libged nirt cmd -c backout option support - Cliff Yapp
* added similarity grouping identification mode to gdiff - Cliff Yapp
* improved gcv asc v5 reader to handle brep input - Cliff Yapp
* improved DSP primitive's default facetize behavior - Cliff Yapp
* improved NMG->bot conv speed for all triangle case - Cliff Yapp
* added SPSR meshing support to the pnts command - Cliff Yapp
* replaced yedit with brledit as libbu fallback editor - Cliff Yapp
* improved nirt behavior in Windows bash consoles - Cliff Yapp
* updated geogram dependency to v1.9.6 - Cliff Yapp
* updated GDAL dependency to v3.11.3 - Cliff Yapp
* updated gct mesh decimation dependency to mmesh - Cliff Yapp
* added simplification control options to bot extrude - Cliff Yapp
* updated Manifold dependency to v3.2.1 - Cliff Yapp
* updated SPSR dependency to v18.74 - Cliff Yapp
* fixed bot subcmd help printing - Cliff Yapp
* improved get/adjust/attr help text - Josh Baker
* created manpage for 'adjust' command - Josh Baker
* improved 'B' manpage options and usage - Josh Baker
* improved 'voxelize' manpage usage and examples - Josh Baker
* improved 'draw' manpage options and usage - Josh Baker
* improved 'get' manpage - Josh Baker
* improved 'view' manpage options, usage, and examples - Josh Baker
* improved 'gqa' command usage and help text - Josh Baker
* corrected various manpage typos and spacing - Josh Baker
----------------------------------------------------------------------
--- 2025-08-11 Release 7.42.0 ---
----------------------------------------------------------------------
Polygonal BoT ray tracing is now dramatically faster. Integration of
a new spatial partition acceleration method (HLBVH) into librt's BoT
ray tracing pipeline yields substantial speedups, better multicore
scaling, and reduced memory overhead across all BRL-CAD ray tracing of
scenes with BoTs. In general, new overall performence is typicaly in
the 2-25x range depending on the model, scene, and other factors. The
culmination of many efforts, the improvement was verified, validated,
and performance tested against numerous real and test models to
confirm gains and assert correctness. As a result, users no longer
need to tune TIE or ADRT-specific settings as both are fully obsoleted
and replaced.
This release expands Arbitrary Polyhedron support with 8 vertices
(i.e., ARB8-only, not ARB7/6/5/4) to include concave definitions.
Surfaces must (still) be planar and not self-intersect, but polyhedral
edges creating concavities are now supported for ray tracing.
MGED's nirt command use of .mgedrc qray settings was restored, which
affects output styling (e.g., showing/hiding attributes). To restore
default behavior, delete .mgedrc in your home directory or remove
existing qray settings manually.
* increased app parallelism ceiling to 4096 threads - Sean Morrison
* removed obsolete nirt -T BoT spatial partition option - Cliff Yapp
* added support for concave arb8 primitive definitions - Sean Morrison
* added example geometry model showcasing all types - Mitchell Roberts
* fixed mged crash when switching databases after rt - Sean Morrison
* mitigated multithreading contention on >32 core cpus - Sean Morrison
* clarified material_name not found warning in rtweight - Cliff Yapp
* fixed stat command crash with invalid path specifiers - Cliff Yapp
* improved search std attr table in man page - Cliff Yapp
* updated MGED nirt man page to reference cmdline version - Cliff Yapp
* fixed raytracing crash with empty BoT solid in tree - Cliff Yapp
* cleaned up nirt -L format listing output - Cliff Yapp
* fixed MGED nirt command's use of .mgedrc qray formats - Cliff Yapp
* improved MGED nirt cmd handling for large object lists - Cliff Yapp
* removed requirement to launch nirt with objects listed - Cliff Yapp
* improved k-g LS-DYNA keyword file geometry importer - Ali Haydar
* added bot support for plate mode thickness get/set cmds - Cliff Yapp
* fixed dbconcat treatment of a '/' prefix character - Cliff Yapp
* fixed bb '-o' oriented bounding box option in MGED - Chris McGregor
* added manual page for pixcmp, bwish, btclsh - Sean Morrison
* fixed "ted" text edit and "make_pnts" GED commands - Cliff Yapp
* renamed MGED x command to solid_report for clarity - Sean Morrison
* fixed Archer "Center View" button and vslew GED command - Cliff Yapp
* added support for console text editing on Windows - Cliff Yapp
* added bb '-m' option for outputting midpoint - Chris McGregor
* fixed sed crash when editing a brep object in MGED - Cliff Yapp
* fixed primitive & matrix edit GUIs in MGED ("x -1") - Sean Morrison
* added (align, dir and print) subcommands to 'view' - Chris McGregor
* added (autoview, lookat, saveview) to 'view' - Chris McGregor
* fixed mged 'process' command on read-only databases - Sean Morrison
* replaced ADRT with HLBVH-acclerated BoT tracing - Timothy Reynolds
* accelerated BoT ray tracing HLBVH integration across all librt apps
- Timothy Reynolds, Connor McLean, Ian Beckett, Samuel Reed,
- Gaultier Debarre, Sean Morrison, Chris McGregor, Cliff Yapp
* various manpage and help text updates - Josh Baker
* fixed -exec behavior with 'flat' search in mged - Chris McGregor
* improved logging behavior from multiple threads - Kenneth Davis
* removed libgdiam dependency - Chris McGregor
* updated strclear dependency to latest bsd upstream - Cliff Yapp
* updated Assimp to v5.4.3, with patch for CVE-2025-2151 - Cliff Yapp
* updated OpenNURBS dependency to v8.10.24228.13001 - Cliff Yapp
* updated GeometricTools dependency to 7adae93f8 - Cliff Yapp
* updated GDAL dependency to v3.9.2 - Cliff Yapp
* updated PROJ dependency to v9.5.0 - Cliff Yapp
* updated SQLite dependency to v3.46.1 - Cliff Yapp
* updated lmdb dependency to 9c9d345 - Cliff Yapp
* updated libtiff dependency to v4.7.0 - Cliff Yapp
* updated netpbm dependency to v10.86.42 - Cliff Yapp
* updated LIEF dependency to v0.15.1 - Cliff Yapp
* updated libpng dependency to v1.6.44 - Cliff Yapp
----------------------------------------------------------------------
--- 2024-09-24 Release 7.40.2 ---
----------------------------------------------------------------------
* various manpage and help text updates - Josh Baker
* improved gist -F default behavior - Chris McGregor
* fixed gist crashing with halfspaces in component - Chris McGregor
* fixed lint BoT check testing - Cliff Yapp
* improved overlap checker dialog behavior - Chris McGregor
* fixed rtwizard tree visuals in gist - Chris McGregor
----------------------------------------------------------------------
--- 2024-08-16 Release 7.40.0 ---
----------------------------------------------------------------------
This major release of BRL-CAD improves the robustness of the facetize
command. Building on work begun in 7.38.0, for the first time BRL-CAD
is able to successfully facetize all of BRL-CAD's example geometries.
This involves a major change to the processing pipeline of the
facetize command, allowing handling of individual primitives to be
fault tolerant and automatically attempting fallback methods.
Historically BRL-CAD facetize has attempted to produce output meshes
even when individual operations fail by silently skipping over failing
inputs, but now this behavior is changed to a stricter policy of
halting when individual elements of the process do not succeed.
This release also incorporates the tool 'gist' for generating a one
page graphical overview and summary of the contents of a .g database.
This tool is the culmination of work by multiple student teams from
Texas A&M University and incorporates automatic layout features to
produce geometry-appropriate visual arrangements.
Also new in this release are capabilities for testing and repairing
triangle meshes. The lint command will now validate solid BoT
behavior with the raytracer, and the 'bot repair' command is able to
perform hole filling operations on some categories of non-manifold
BoTs. Another related new feature allows users to generate explicit
volumetric BoTs using plate mode BoTs as inputs via the 'bot extrude'
command.
This release introduces a major change in the management of 3rd party
dependencies. The src/other directory has been replaced by an
external repository specifically tasked with the job of managing 3rd
party libraries. By default BRL-CAD will download and build necessary
dependencies as part of its build automatically. However, note that
an internet connection is required by default to access this
repository. See the INSTALL file for more details and options for
preparing to build without internet availability.
Developers requiring only a subset of BRL-CAD (for example, if a
project only needs librt and its dependencies) can now define subsets
of BRL-CAD to build with the BRLCAD_COMPONENTS variable. See INSTALL
for more information.
* added new k-g LS-DYNA .k file to .g importer - Daniel Roßberg
* improved obj-g import naming - Chris McGregor
* added importer attr to stl-g and obj-g BoT objects - Cliff Yapp
* improved object name generation for stl-g importer - Cliff Yapp
* updated 3dm-g input attribute: converter -> importer - Cliff Yapp
* fixed mged 'search -or' filter behavior - Cliff Yapp, Chris McGregor
* major improvements to 'gist' features and usability
- Rohan Dhawan, Leo Feng, Sam Hollenbeck, Timothy Pham,
- Yida Zou, Chris McGregor
* updated pinewood.g test model - Josh Baker
* updated edcodes man page and help text - Josh Baker
* update mvall man page - Josh Baker
* updated OpenCV library to version 4.10.0 - Cliff Yapp
* updated GDAL library to version 3.9.0 - Cliff Yapp
* improved 3dm-g error message when file does not exist - Cliff Yapp
* added new BoT raytracing validity checks to lint cmd - Cliff Yapp
* removed upper limit on MGED pnts cmd point count - Cliff Yapp
* added a -t option to bot flip to check BoT orientation - Cliff Yapp
* fixed shaded drawing of CW BoT solids - Cliff Yapp
* added reair man page - Josh Baker
* added 'help reair' mged command help text - Josh Baker
* added experimental 'imgdiff' command-line tool - Cliff Yapp
* updated OpenNURBS library to version 8.8.24166.15000 - Cliff Yapp
* improved 'help lc' mged command help text - Josh Baker
* added 'help lint' mged command help text - Josh Baker
* added man pages for 'bot check' and 'bot extrude' cmds - Cliff Yapp
* enhanced bot extrude command to output a BoT mesh - Cliff Yapp
* added bot check manifold cmd for bot validity testing - Cliff Yapp
* added bot repair command for filling holes in meshes - Cliff Yapp
* added Utah RLE image reading and writing to libicv - Cliff Yapp
* added "standardize" option to GED attr command - Cliff Yapp
* added -L option to dbconcat for lazy prefix/suffix use - Cliff Yapp
----------------------------------------------------------------------
--- 2024-03-18 Release 7.38.2 ---
----------------------------------------------------------------------
* added "rtsurf" exterior surface area tool prototype - Sean Morrison
* updated sqlite3 to version 3.45.1 - Cliff Yapp
* updated libpng to version 1.6.43 - Cliff Yapp
* updated zlib to version 1.3.1 - Cliff Yapp
* updated and corrected dbconcat man page - Cliff Yapp
* improved ambient occlusion rt during -k cut planes - Sean Morrison
* changed rt ambient occlusion randomization default - Sean Morrison
* added ambient occlusion example to rt manual pages - Sean Morrison
* fixed rtweight output display inside MGED - Chris McGregor
* added shipping container example geometry model - Josh Baker
* added traffic light example geometry model - Chris McGregor
* improved rtwizard command-line option reporting - Sean Morrison
* added self-intersecting torus ray tracing support - Sean Morrison
* fixed rt crash rendering to -F/dev/null - Sean Morrison
* added mater man page density table example - Chris McGregor
* adjusted default ghosting intensity in rtwizard - Josh Baker
* fixed MGED command line handling of objects named 'y' - Cliff Yapp
* fix double printing of last 'search -exec' result - Chris McGregor
* improve 'search -v' to support multiple levels - Chris McGregor
* update 'search -v' to report # of objects found - Chris McGregor
* added a "bots only" mode to conversion.sh script - Cliff Yapp
* fixed asc2g/g2asc support for brep primitives - Cliff Yapp
* added brep and bot versions of pinewood .g model - Josh Baker
* added new .g example file "Annual Gift Man" - Josh Baker
* fixed dsp terrain file data loading for relative paths - Cliff Yapp
* updated Manifold lib for improved facetize robustness - Cliff Yapp
----------------------------------------------------------------------
--- 2023-11-06 Release 7.38.0 ---
----------------------------------------------------------------------
This major release of BRL-CAD introduces significant improvements to
the robustness of the facetize command by leveraging the Manifold
library for boolean evaluation of meshes. Facetization is an operation
that converts boolean CSG hierarchies to evaluated triangle meshes,
commonly used as a preliminary step in geometry export. As an
example, the following results show before-and-after differences when
processing high level assemblies in BRL-CAD's example geometry files:
% success, old: 88.9% (249 of 280) Time elapsed: 7256 seconds
% success, new: 98.9% (277 of 280) Time elapsed: 1044 seconds
* add 'brep dump' subcommand to write out brep objects - Cliff Yapp
* improve 'x' default behavior in MGED - Chris McGregor
* fixed 'edcolor' and 'color -e' on Windows - Chris McGregor
* ported fbcolor, fblabel, fbpoint, fbzoom to Windows - Sean Morrison
* new 'gist' tool for generating 1-page geometry info summary reports
- Allyson Hoskinson, Andrew Plant, Mark Sturtevant,
- Danny Chen, Michael Tao, Sean Morrison
* add support for dbconcat -O (overwrite) - Chris McGregor
* improved 'lc' -d and -m interactions with aircodes - Chris McGregor
* fixed 'make bot' inverted face normals - Chris McGregor
* fixed 'l' evaluation for pathed objects - Chris McGregor
* improved MGED faceplate params control, added font_size - Cliff Yapp
* fix MGED 'brep' command crashing without database open - Cliff Yapp
* fix MGED 'pnts read' and 'make_pnts' commands - Chris McGregor
* improved NURBS editing functionality - Gregory Li
* fix MGED 'listval' crashing with max path lengths - Chris McGregor
* fixed garbage_collect MGED command on Windows - Cliff Yapp
* fixed archer crashing with 'make' command - Cliff Yapp
* improved and restructured rtwizard's manual page - Sean Morrison
* fixed E command in MGED - Cliff Yapp
* made improvements to a variety of manual pages - Josh Baker
* remove bundled burst tool (DEPRECATED 7.32) - Cliff Yapp
----------------------------------------------------------------------
--- 2023-07-26 Release 7.36.0 ---
----------------------------------------------------------------------
This major release of BRL-CAD introduces significant updates to
geometry conversion support. The update includes modernization for
NURBS importing and interaction, BoT manipulation, and incorporates
many new formats for importing and exporting to BRL-CAD database
files.
The geometry conversion tool (GCV) now supports mesh importing
from: 3D, 3DS, 3MF, AC, AMF, ASE, ASSBIN, B3D, BVH, COB, COLLADA, CSM,
FBX, GLTF/GLB 1.0 + 2.0, HMP, IFC-STEP, IQM, IRR, IRRMESH, LWO, LWS,
M3D, MD2, MD3, MD5, MDC, MDL, MMD, MS3D, NDO, NFF, OFF, OGRE, OPENGEX,
Q3BSP, Q3D, RAW, SIB, SMD, TERRAGEN, X, X3D, XGL.
Additionally, GCV now supports mesh exporting to: 3DS, 3MF, ASSBIN,
ASSJSON, ASSXML, COLLADA, GLTF, PBRT, STEP, X, X3D.
This release also introduces new BoT subcommands to improve
manipulation and preparation. The subdivision "subd" command
incorporates 5 new subdivision algorithms. The "flip" command will
flip surface normals - effectively turning the BoT 'inside out'.
Lastly, the "smooth" command will smooth the BoT's topology.
* Added a point-inside-object subcmd "inside" to analyze - Cliff Yapp
* Added "flip" "subd" and "smooth" subcommands to BoT - Cliff Yapp
* Fixed g-ply converter on Windows - Chris McGregor
* Fixed infinite loop in noise generation - Sean Morrison
* Fixed analyze in/out test for multi-segment ray hits - Cliff Yapp
* Fixed analyze cmd crash when specifying invalid objects - Cliff Yapp
* Fixed search -attr behavior with names having spaces - Cliff Yapp
* Fixed nirt hanging on hits with a lot of output - Chris McGregor
* nirt -b is now default behavior - Chris McGregor
* Updated OpenNURBS library, 3dm-g now supports ver. 7 files
- Cliff Yapp, Chris McGregor
* Updated OpenMesh library to version 9.0 - Cliff Yapp
* Updated Open Asset Import Library - v5.2.5 + fix - Chris McGregor
* Updated Tcl/Tk to version 8.6.13 - Cliff Yapp
* Updated NETPBM library to version 10.73.42 - Cliff Yapp
* Updated GDAL library to version 3.6.3 - Cliff Yapp
* Updated PROJ library to version 9.2.0 - Cliff Yapp
* Updated PNG library to version 1.6.39 - Cliff Yapp
----------------------------------------------------------------------
--- 2023-02-27 Release 7.34.2 ---
----------------------------------------------------------------------
* fixed a problem with matrix editing - Chris McGregor
* fixed gcv reading of .g files as input - Cliff Yapp
* add support to nirt non-drawn objects - Chris McGregor
* reduced 'l' cmd verbosity for bot/brep primitives - Chris McGregor
* fixed man page scrolling on Windows - Chris McGregor
* fixed MGED file creation not applying extension - Chris McGregor
* create 'reair' to quickly set aircode (like remat) - Chris McGregor
* fixed 'search' of attribute equal to 0 - Chris McGregor
* improve nirt output printing within MGED - Chris McGregor
* fixed nirt -A (attribute) to work within MGED - Chris McGregor
* fixed nirt -f (fmt) to work within MGED - Chris McGregor
* fixed nirt of objects with hyphens in name - Chris McGregor
* correct facetall.sh to automatically restart on failure - Cliff Yapp
* updated nirt to backout of geometry by default - Chris McGregor
* added nirt -c flag to use view center, not backout - Chris McGregor
----------------------------------------------------------------------
--- 2022-11-23 Release 7.34.0 ---
----------------------------------------------------------------------
With development efforts spanning several years, this major update to
BRL-CAD includes considerable progress on infrastructure for graphical
user interface improvements, geometry conversion, and physically-based
rendering. It also includes hundreds of logic and memory management
bug fixes, potential code vulnerability updates, and other issues
reported by Coverity and Clang Static Analysis.
This release also overhauls the way 3rd-party dependencies are managed
in BRL-CAD. Native build systems are now used in order for updates to
be more readily applied, to reduce maintenance overhead, and to set
the stage for the aforementioned major feature developments.
* fixed perspective to orthogonal view toggling in archer - Cliff Yapp
* removed 'nburst' rewrite with burst now deprecated - Cliff Yapp
* fixed bot_merge with oriented plate mode bots - Sean Morrison
* bot_dump infers output type from filename extension - Sean Morrison
* re-added MGED viewring, sweep, collab, & rateknob menus - Cliff Yapp
* fixed a crash when shaded NURBS brep drawing fails - Cliff Yapp
* added new man pages for brep, process, and ps commands - Cliff Yapp
* added new man page for 3dm-g Rhino3D importer - Cliff Yapp
* improved bot_dump default command help - Chris McGregor
* improved suffix handling for 3dm-g converted primitives - Cliff Yapp
* added -N view obj name option to overlay command - Cliff Yapp
* added man page for MGED Overlaps Tool - Chris McGregor
* major STEPcode updates, using unmodified upstream 0.8.1 - Cliff Yapp
* added aircode reporting support to the lc command - Sean Morrison
* 3dm-g now converts as encountered, not alphabetized - Chris McGregor
* updated Tcl/Tk to version 8.6.12 - Cliff Yapp
* updated netpbm to version 10.73.40 - Cliff Yapp
* updated zlib to version 1.2.13 - Cliff Yapp
* fixed mged -c 'unknown variable' warning dialogs - Sean Morrison
* fixed and improved gqa grid spacing - Daniel Roßberg
* improved mged & archer html command help formatting - Sean Morrison
* fixed archer empty string ("") loading behavior - Cliff Yapp
* rt* tools' -P option accepts negative #core counts - Sean Morrison
* added text label size & rotation angle support to annotation objects
- Ali Haydar, Himanshu Nayak, and Daniel Roßberg
* gqa -Ae exposed air report no longer has gapped air - Sean Morrison
* fixed rt framebuffer bug with -g/-G cellsize options - Sean Morrison
* added new idents(5) file format manual page - Sean Morrison
* preserved path prefixes on search cmd results - Cliff Yapp
* new 'material' command and material object infrastructure
- Dinges, Connelly, Olivarez, McGregor, Studwell, Wilson
----------------------------------------------------------------------
--- 2022-05-08 Release 7.32.6 ---
----------------------------------------------------------------------
* reduced mged & archer max image size and memory use - Sean Morrison
* fixed librt handling of object names with '/' chars - Cliff Yapp
* changed fast4-g to not make references to empty regions - Cliff Yapp
* fixed gcv option handling - Cliff Yapp
* updated bundled Eigen dependency to v3.4.0 - Cliff Yapp
* fixed bot_merge crash when bots are of different types - Cliff Yapp
* fixed nirt -L to not require database and objects - Sean Morrison
* fixed bug reading older VOL objects with file data - Sean Morrison
* fixed pixscale bug when scaling images down - Sean Morrison
----------------------------------------------------------------------
--- 2021-07-27 Release 7.32.4 ---
----------------------------------------------------------------------
* Added -matrix search filter for finding comb matrices - Cliff Yapp
* fixed MGED handling of long running subprocesses in script mode
- Cliff Yapp, Sean Morrison
* improve documentation for bot modes in bot and search - Cliff Yapp
* added -o output option to GED stat command - Cliff Yapp
* fixed overlay support for drawing multiple files - Cliff Yapp
* fixed file creation for tire command - Cliff Yapp
* fixed mixing object and full path searches in MGED - Cliff Yapp
* fixed launching of ISST graphical viewer - Cliff Yapp
----------------------------------------------------------------------
--- 2021-02-06 Release 7.32.2 ---
----------------------------------------------------------------------
* updated Creo export plugin to work with latest Creo - Bill Chambers
* fixed memory leak in MGED's gdiff command - Cliff Yapp
* fixed OSX g-iges crash due to improper memory freeing - Cliff Yapp
* fixed GQA multithreaded plotting file corruption - Cliff Yapp
* added -S structural diff option to MGED gdiff command - Cliff Yapp
* added -v verbosity option to MGED tree command - Cliff Yapp
* added -? option to MGED which command - Cliff Yapp
* MGED, Archer, rtwizard graphically launch with pwd=HOME - Cliff Yapp
* fixed reporting of MGED "vars" command - Cliff Yapp
* updated MGED to not open non-.g-files as databases - Cliff Yapp
* fixed MGED I/O when running GED subcommands - Cliff Yapp
* added decimation control examples to facetize man page - Cliff Yapp
* changed gcv converter to append to existing .g files - Cliff Yapp
* removed MGED collaboration and rateknob features - Cliff Yapp
* removed MGED ViewRing menu and sweep rectangle features - Cliff Yapp
* fixed crash when trying to shade invalid breps - Cliff Yapp
* improved librt CPU timer behavior - Cliff Yapp
* fixed example in saveview manual page - Sean Morrison
* added support for in-database vol primitive data - Sumagna Das
* changed 'mvall' to rename all refs even w/ no object - Sean Morrison
* updated MGED Overlap GUI to run reliably on Windows - Cliff Yapp
* fixed MGED search command crash on empty database - Sean Morrison
* improved performance calculating BoT bounding boxes - Vikram Atreya
* fixed MGED crash closing multiple rt views on Windows - Cliff Yapp
* fixed 'n' key binding override with MGED key forwarding - Cliff Yapp
* fixed mged crash when there are no display managers - Sean Morrison
* added pixcmp -n length flag for subset comparisons - Sean Morrison
* added pixcmp -s same and -d different printing flags - Sean Morrison
* updated non-shape objects list for search shape filter - Cliff Yapp
* added volume type to search -type filters - Cliff Yapp
* applied shorter default title in fast4-g conversions - Cliff Yapp
* improved pixcmp support for subset image comparisons - Sean Morrison
* MGED analyze subtract, intersect, summarize subcommands - Cliff Yapp
* added quiet (-q) flag to MGED kill command - Cliff Yapp
* added MGED stat command for reporting of object info - Cliff Yapp
* corrected examples in gdiff man page - Cliff Yapp
* fixed help message for -F option on gdiff command - Cliff Yapp
* fixed mged -c bomb attaching to graphical displays - Sean Morrison
* fixed titlebar bug opening .g with filename spaces - Sean Morrison
* added a new 'N' graphics window keybinding to run nirt - Cliff Yapp
----------------------------------------------------------------------
--- 2020-09-14 Release 7.32.0 ---
----------------------------------------------------------------------
This major release of BRL-CAD introduces significant updates to core
library infrastructure. The update includes restructuring of nearly
all of BRL-CAD's display infrastructure in preparation for upcoming
significant GUI changes. This release also fixes over fifty of
BRL-CAD's command-line utilities so they work properly on Windows.
This is likely the last major release of BRL-CAD on Subversion
infrastructure with BRL-CAD's imminent migration to Git.
* added additional pre-defined MGED view key bindings - Cliff Yapp
* added basic example to remrt man page - Cliff Yapp, Sean Morrison
* added new 'nburst' version of classic burst tool - Cliff Yapp
* added 'bot set' command for low level BoT manipulation - Cliff Yapp
* report semantic strings for 'bot get' mode/orientation - Cliff Yapp
* added new manual page for the libicv library - Sumagna Das
* added -size filter to MGED search command - Cliff Yapp
* upgraded Tcl/Tk from 8.5.19 to 8.6.10 - Cliff Yapp
* bundled zlib & libpng use API prefix and library suffix - Cliff Yapp
* extensive improvements to OpenCL ray trace pipeline - Rishabh Suthar
* improved rtweight density value warnings - Sean Morrison, Cliff Yapp
* added perception-based hdtv and hdr modes for pix-bw - Sean Morrison
* fixed semi-transparent DM and FB windows on Linux - Cliff Yapp
* improved rtweight manual page - Sean Morrison
* added line reporting TCP listening port to remrt output - Cliff Yapp
* added help options support (-h,-?) to asc2dsp and g2asc - Cliff Yapp
* fixed crash when drawing a VOL with missing data - Cliff Yapp
* facetall.sh script is replaced by MGED facetize command - Cliff Yapp
* dynamic LIBGED command loading in MGED & Archer - Cliff Yapp
* removed MGED "Display Manager" switching menu options - Cliff Yapp
* dynamic LIBDM display manager loading in MGED & Archer - Cliff Yapp
* fixed 'idents' crash when running in a read-only dir - Sean Morrison
* fixed fb tools w/ redirected files and cv on Windows - Sean Morrison
* expanded 'bo' command docs with a DSP input example - Sean Morrison
* fixed 'in' making joint, superell, & script objects - Sean Morrison
* Creo converter always writes out CREO_NAME attribute - Sean Morrison
* improved gdiff -F filtering option behavior - Cliff Yapp
* improved gdiff command verbosity reporting options - Cliff Yapp
* improved Combination Editor button behaviors in MGED - Sean Morrison
* added 'asc' geometry import and export support to gcv - Cliff Yapp
* consistent usage taxonomy for ident-related commands - Sean Morrison
* added units label to the Archer in-scene scale graphic - Cliff Yapp
* added framebuffer capture option to screengrab command - Cliff Yapp
* added framebuffer writing option to overlay command - Cliff Yapp
* added tree search option to 'whichid' and 'whichair' - Cliff Yapp
* changed 'whichid' and 'whichair' to print ranges of unused IDs
- Nick Reed, Cliff Yapp
* improved output path sorting of search command - Cliff Yapp
* added "bot extrude" command for making ARB6s from bots - Cliff Yapp
* added 3dm-g failure message about supported versions - Cliff Yapp
* fixed bw-png writing corrupted png files on Windows - Sean Morrison
* added MGED 'dm type' subcommand for reporting DM type - Cliff Yapp
* improved vdeck input support for Windows text files - Sean Morrison
* fixed MGED 'plot' & 'brep plot' commands on Windows - Sean Morrison
* fixed numerous image utilities reading binary input files on Windows
- Sean Morrison, Cliff Yapp
----------------------------------------------------------------------
--- 2020-07-24 Release 7.30.10 ---
----------------------------------------------------------------------
* added 3dm-g failure message about supported versions - Cliff Yapp
* fixed MGED "in" command support for datums - Sean Morrison
* fixed bw-png writing corrupted png files on Windows - Sean Morrison
----------------------------------------------------------------------
@@ -548,7 +31,7 @@ infrastructure with BRL-CAD's imminent migration to Git.
* improved behavior of MGED overlap checker GUI - Nick Reed
* fixed startup dimensions of overlap checker window - Nick Reed
* fixed rtedge line drawing color when using -W flag - Cliff Yapp
* added -F option to lint cmd to test specific solid types - Cliff Yapp
* added -F option to lint cmd to test specifc solid types - Cliff Yapp
* added support to MGED for zooming with mouse wheel - Cliff Yapp
* fixed solid editing wireframe drawing in MGED - Nick Reed
* added .r suffixes to region names in 3dm-g conversion - Cliff Yapp
@@ -558,22 +41,18 @@ infrastructure with BRL-CAD's imminent migration to Git.
--- 2020-03-19 Release 7.30.6 ---
----------------------------------------------------------------------
* fixed comgeom-g GIFT combination conversion - Daniel Roßberg
* fixed transparent drawing in MGED - Nick Reed
* fixed solid NURBS brep intersection testing - Cliff Yapp
* removed extra blank line after commands in MGED GUI - Sean Morrison
* minor improvement to NURBS ray tracing performance - Sean Morrison
* added "plate" object type filter to search command - Cliff Yapp
* fixed latent logging bug during facetize on Windows - Bob Parker
* fixed bug closing rt framebuffer windows on Windows - Sean Morrison
* added EBM support for reading from database objects - Jeffrey Liu
----------------------------------------------------------------------
--- 2019-12-05 Release 7.30.4 ---
----------------------------------------------------------------------
* improved Creo export plugin handling of color and shader - Nick Reed
* enhanced attr list command to support reporting values - Cliff Yapp
* updated FAA Generic Twin example FASTGEN model - Cliff Yapp
* fixed handling of duplicate FASTGEN object names - Cliff Yapp
@@ -582,13 +61,9 @@ infrastructure with BRL-CAD's imminent migration to Git.
* changed mged escape key binding to reset mouse mode - Sean Morrison
* removed default xXyYzZ0 rate rotation key bindings - Sean Morrison
* improved tessellation of nearly coplanar surfaces - John Anderson
* fixed annotations display on Windows - Daniel Roßberg, Ali Haydar
* fixed display of annotations on Windows - Daniel Roßberg
* fixed rtedge and rtwizard occlusion object edge bug - Sean Morrison
* rt* tools no longer force outputs to be read-only - Sean Morrison
* fixed bug listing annotations with short label strings - Ali Haydar
* improved support for label placement in annotations - Ali Haydar
* fixed bug in annotation object bounding box calculation - Ali Haydar
* fixed an annotation leader line bug affecting display - Ali Haydar
* fixed 'burst' crash when run without options - Sean Morrison
* changed rtweight to not truncate long pathnames - Sean Morrison
* added new ball bearing example geometry model - Sean Morrison
@@ -608,10 +83,9 @@ infrastructure with BRL-CAD's imminent migration to Git.
- Sean Morrison, Cliff Yapp
* added a copy subcommand to MGED's attr command - Cliff Yapp
* fixed a locking condition in MGED's rtcheck command - Cliff Yapp
* added support for >=< prefixes for mater -d get options - Cliff Yapp
* added support for >=< prefixes for mater -d get options Cliff Yapp
* fixed brlman lookup location of html manual pages - Cliff Yapp
* fixed rtweight infinite loop bug on invalid .density - Cliff Yapp
* fixed rt -t top-to-bottom parallel rendering option - Sean Morrison
* fixed rt -t top-to-bottom parallel rendering option Sean Morrison
* added a 'flip' normals command to MGED's brep command - Cliff Yapp
* added rtweight support for in-.g density information - Cliff Yapp
* improved usability of vol primitives w/ missing data - Sean Morrison
@@ -678,8 +152,8 @@ corrections.
This major release of BRL-CAD incorporates a new feature for caching
of raytrace acceleration structures used when working with explicit
boundary representation (BREP) Non-uniform Rational Basis Spline
(NURBS) objects. This will result in significant improvements to run
times when repeatedly raytracing BREP objects.
(NURBS) solids. This will result in significant improvements to
run times when repeatedly raytracing BREP solids.
Support for terrain import has been significantly expanded with the
addition of a new Geospatial Data Abstraction Library (GDAL) based
@@ -799,8 +273,6 @@ and address portability issues.
* fix rtedge foreground/background color options - Jon Engbert
* support rt -C colors specified as 0-255 or 0.0-1.0 - Jon Engbert
* fixed xpush bug leaving stray top-level objects - Nick Reed
* removed MGED wrapper 'mged.bat' batch script on Windows - Cliff Yapp
* fixed png-pix redirected output on Windows - Bob Parker
----------------------------------------------------------------------
@@ -854,7 +326,7 @@ performance ray tracing pipeline.
* fixed patch-g tool and E command infinite loop bug - Sean Morrison
* improved NMG ray tracing fault tolerance - Sean Morrison
* added 3dm-g support for layers and names - Keith Bowman
* fixed issue preserving color/shader info with 3dm-g - Jon Engbert
* fixed color/shader preservation issue with 3dm-g importer - Jon Engbert
* added 3dm-g support for mesh objects - Jon Engbert
* added csg implicit hierarchy conversion to brep command - Cliff Yapp
* fixed crash in clone when told to make zero copies - Cliff Yapp
@@ -868,7 +340,7 @@ performance ray tracing pipeline.
* removed any-png.sh - use pix tools - Sean Morrison
* removed librtserver interface - Cliff Yapp
* removed MGED per_line command - Sean Morrison
* updated MGED tops command: default to -g -u behavior - Sean Morrison
* updated MGED tops command: default to -g -u behavior- Sean Morrison
* removed MGED -n option; use -c instead - Sean Morrison
* removed MGED commands pl, pov and polybinout - Sean Morrison
* removed UtahRLE image tools - Cliff Yapp
@@ -876,7 +348,7 @@ performance ray tracing pipeline.
* added brlman -S option to specify man page section - Cliff Yapp
* modified rtg3 to avoid outputting excessive LOS - Nick Gerstner
* extended burst and rtg3 to output 5 digit ID numbers - Nick Gerstner
* improved draw command manual page documentation - Cliff Yapp
* improved draw command manual page documenation - Cliff Yapp
* added lc -m option to report multi-material/los regions - Cliff Yapp
* added new 'icv' image conversion tool w/ pix, bw, dpix, png, ppm
- Mohit Daga, Cliff Yapp, Sean Morrison, Erik Greenwald
@@ -885,7 +357,7 @@ performance ray tracing pipeline.
* improved datum wireframes (yellow) and fixed arrowheads - Cliff Yapp
* added initial manual page for 'burst' ray dispatch tool - Cliff Yapp
* improved wireframe display list performance - Keith Bowman
* added draw -S for simplified wireframes, no subtractions - Cliff Yapp
* added draw -S for simplied wireframes, no subtractions - Cliff Yapp
* added draw -L# to draw bounding boxes for large objects - Cliff Yapp
* added 3dm-g instance reference and definition import - Jon Engbert
* minor rtwizard graphical user interface reorganization - Cliff Yapp
@@ -1786,7 +1258,7 @@ undo support and graphical editing, are expanded upon.
* pipe now validates independent of parameter order - Daniel Roßberg
* added '-r' color randomize option to 3dm-g importer - Cliff Yapp
* enhanced '-v' verbosity option in 3dm-g importer - Cliff Yapp
* re-added -A & -o attribute options to 'draw' and 'erase' - Bob Parker
* readded -A & -o attribute options to 'draw' and 'erase' - Bob Parker
* fixed bug in 'E' command to show object names - John Anderson
* initial obj-g geometry importer - Erik Greenwald
* Pro/E export plugin creates a 'Proe_Name' attribute - Bob Parker
+138 -45
View File
@@ -1,14 +1,18 @@
BRL-CAD
Release 7.42.0
Release 7.32.0
http://brlcad.org/
BRL-CAD is a powerful cross-platform open source combinatorial
solid modeling system that includes an interactive 3D solid geometry
editor, a network-distributed symmetric multiprocessing (SMP)
high-performance ray-tracer with support for rendering and geometric
analysis, image and signal-processing tools, a system performance
analysis benchmark suite, a flexible geometry scripting interface,
and a high-performance geometric representation and analysis library.
Constructive Solid Geometry (CSG) solid modeling system that includes
an interactive 3D solid geometry editor, a network-distributed
symmetric multiprocessing high-performance ray-tracer,
network-distributed framebuffer support, image and signal-processing
tools, ray-tracing support for rendering and geometric analysis,
path-tracing and photon mapping support for realistic image synthesis,
animation capabilities, ray-tracing and numerical processing
libraries, a system performance analysis benchmark suite, an embedded
scripting interface, and a robust high-performance geometric
representation and analysis library.
TABLE OF CONTENTS
@@ -22,6 +26,8 @@ TABLE OF CONTENTS
Bug Reports/Feature Requests
Distribution Details
Background Information
Future Events
Getting Help
GETTING STARTED
@@ -33,34 +39,40 @@ contents of the BRL-CAD distribution.
Some platforms have additional platform-specific documentation that
should be consulted after reading this file:
doc/README.Windows -- Microsoft Windows
doc/README.MacOSX -- Apple Mac OS X
doc/README.AIX -- IBM's Advanced Interactive eXecutive OS
doc/README.BSD -- FreeBSD, NetBSD, OpenBSD, etc.
doc/README.IRIX -- SGI IRIX and IRIX64
doc/README.Linux -- Various Linux distributions
doc/README.* -- Other platforms, e.g., BSD, VAX
doc/README.MacOSX -- Apple Mac OS X
doc/README.Solaris -- Oracle Solaris, OpenIndiana (Illumos), etc.
doc/README.Windows -- Microsoft Windows
Information on how to install and run the software, to get involved
with development, or to run the performance benchmark test suite are
covered in detail in separate standalone documents. For more details
on what BRL-CAD provides, consult the main website.
The information on how to install and operate the software, to become
involved with the development of the package, or to run the benchmark
performance test suite have each become sufficiently large that their
details are covered in more detail in standalone documents. For more
details on what BRL-CAD provides, see the documentation provided on
the website at http://brlcad.org/.
Information relevant to the source code is contained in the HACKING
(developer guide) and COPYING (legal overview) files.
Information relevant to those interested in the source code is
contained in the HACKING and COPYING files. See doc/benchmark.tr file
for benchmark suite information. There is a variety of other
documentation and information also available in the doc/ directory.
Note that only sample geometry models are included in public
distributions of BRL-CAD. Detailed models are only available through
official U.S. Gov't channels, e.g., via Advanced Joint Effectiveness
Model (AJEM) support.
Please note that this distribution package does not include the
various military-specific model analysis tools such as MUVES, GIFT,
SAR, SLAVE, VAST, etc., nor does it include any military geometry
databases. If you desire to have access to this material, please
contact one of the BRL-CAD developers.
COMPILE AND INSTALL
-------------------
In order to compile and install BRL-CAD from a source distribution,
the latest CMake ( http://www.cmake.org ), a recent compiler, and at
least 3GB of disk space are recommended. More details are available
at https://brlcad.org/wiki/Compiling
the CMake ( http://www.cmake.org ) configuration tool is requird.
Typically, the following steps should result in a successful install:
The following steps should result in a successful install:
tar -xvzf brlcad-VERSION.tar.gz
mkdir brlcad-VERSION/build
@@ -69,8 +81,17 @@ Typically, the following steps should result in a successful install:
make -j4
make install
See the included INSTALL text file for explanation of the various
cmake configuration options available for building BRL-CAD.
See the INSTALL file for explanation of the various configuration
options available when building BRL-CAD.
Once the build completes and assuming you have proper filesystem
permissions, you should be able to begin the installation by running
the "make install" . By default, the package is configured to install
entirely into /usr/brlcad/.
You will need to add /usr/brlcad/bin to your path (or whatever path the
variable CMAKE_INSTALL_PREFIX was set to during configure) in order for
the BRL-CAD binaries to be in your path.
BENCHMARK
@@ -97,38 +118,78 @@ comparing the results of the benchmark tests in more detail.
COMMUNICATION
-------------
There are various BRL-CAD mailing lists available including three
You are invited to participate in the InterNet (aka "ARPANET")
electronic mailing list on the BRL-CAD software. There are various
BRL-CAD mailing lists available on the project website at
http://sourceforge.net/mail/?group_id=105292 including three
developer-oriented lists, a user list, and a read-only news
announcement list:
announcement list. See the posted archives to get a feel for the
volume of list traffic for each list and to read/search past
discussions.
http://sourceforge.net/mail/?group_id=105292
On-line web forums are likewise available on the project site at
http://sourceforge.net/forum/?group_id=105292
For interactive discussion, please join our Zulip chat:
A variety of information on BRL-CAD is available via the
World-Wide-Web. Papers, documentation, and the software repository
may be found at:
https://brlcad.zulipchat.com
http://brlcad.org
In addition to the above, there is an official BRL-CAD IRC channel on
the Freenode network that may be reached by joining #brlcad on
irc.freenode.net connecting via port 6667. For first-time users,
there is a web-based IRC client available for certain browsers at:
http://irc.brlcad.org
IRC is the preferred method of communication to interact with the
BRL-CAD developers, to get involved with the project, obtain support,
or provide direct feedback.
BUG REPORTS AND FEATURE REQUESTS
--------------------------------
Please submit all bugs, support requests, and feature requests to:
Please report any bugs encountered to the project bug tracker at
http://sourceforge.net/tracker/?group_id=105292&atid=640802
https://github.com/BRL-CAD/brlcad/issues
Similarly, please post any request for feature enhancements or support
request to http://sourceforge.net/tracker/?group_id=105292&atid=640805
and http://sourceforge.net/tracker/?group_id=105292&atid=640803
respectively.
DISTRIBUTION DETAILS
--------------------
BRL-CAD releases are available at:
BRL-CAD is freely available and distributed in both binary and source
code form through the BRL-CAD project website on Sourceforge:
https://github.com/BRL-CAD/brlcad/releases
http://sf.net/projects/brlcad/
Assets stored for each release will always include source archives,
and usually binary compilations for commonly used operating systems.
The package is similarly available via a Subversion repository. To
obtain the latest, follow the directions for anonymous checkout at:
For developers, BRL-CAD is available via Git version control cloning:
http://sourceforge.net/svn/?group_id=105292
https://github.com/BRL-CAD/brlcad
There is also a paid-for full-service support distribution available
for those interested through SURVICE Engineering, Inc., and the
Survivability/Vulnerability Information Analysis Center (SURVIAC).
SURVICE provides their own BRL-CAD distribution that comes with
commercial support, documentation, and installation media. Full
technical assistance is provided to their commercial distributions by
phone, FAX, postal mail, or e-mail. Agencies of the Federal
Government may acquire the full service distribution with a MIPR or
OGA funds transfer.
For further details, contact:
BRL-CAD Distribution
SURVIAC Aberdeen Satellite Office
4695 Millennium Drive
Belcamp, MD 210017-1505 USA
BACKGROUND INFORMATION
@@ -171,12 +232,44 @@ Linux, and Windows.
The BRL-CAD package is intentionally designed to be extensively
cross-platform and is actively developed on and maintained for many
common operating system environments including various BSD
distributions, Linux, Solaris, Mac OS X, and Windows. The entire
package is distributed in binary and source code form as free open
source software (FOSS), provided under Open Source Initiative (OSI)
approved license terms. BRL-CAD was released as open source in
December 2004. See the COPYING file for more details.
common operating system environments including for BSD, IRIX, Linux,
Solaris, Mac OS X, and Windows among others. The entire package is
distributed in binary and source code form as free open source
software (FOSS), provided under Open Source Initiative (OSI) approved
license terms. BRL-CAD was released as open source in December 2004.
See the COPYING file for more details.
FUTURE EVENTS
-------------
It is expected that new releases of BRL-CAD will be issued
approximately once a month. A new release is scheduled for
distribution at the beginning of every month, usually being posted
sometime within the first week of every month.
Depending on need, demand, and activity, additional releases may also
be made. The additional releases will be heavily dependent upon the
level of user involvement and contributions in particular.
Information about new releases will be routinely provided by
electronic mail to recipients of this software as well as to the
BRL-CAD NEWS mailing list:
http://sourceforge.net/mail/?group_id=105292
Periodically, training and user group meetings are provided with
announcements similarly posted to the BRL-CAD NEWS mailing list.
Several BRL-CAD developers also regularly attend the ACM Siggraph
conference, the ACM Solid and Physical Modeling conference, and other
similar conferences, conventions, and symposiums as well.
GETTING HELP
------------
Feel free to direct any unanswered questions relating to BRL-CAD via
e-mail or to any of the other contact means described above in the
COMMUNICATIONS section of this document.
Best Wishes,
The BRL-CAD Development Team
+840 -1043
View File
File diff suppressed because it is too large Load Diff
+45 -70
View File
@@ -1,95 +1,70 @@
add_subdirectory(ref)
include_directories(${BU_INCLUDE_DIRS})
add_definitions(-DCONSOLE)
brlcad_addexec(pixcmp pixcmp.c libbu)
set(BARK_SOURCES benchmark.c compute.c run.c clean.c)
brlcad_addexec(bark "${BARK_SOURCES}" libbu NO_STRICT NO_INSTALL TEST_USESDATA)
if(BUILD_TESTING)
configure_file(run.sh "${CMAKE_CURRENT_BINARY_DIR}/benchmark" COPYONLY)
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/benchmark" DESTINATION ${BIN_DIR})
endif(BUILD_TESTING)
distclean("${CMAKE_CURRENT_BINARY_DIR}/benchmark")
if(BUILD_TESTING)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/benchmark-done
COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/run.sh $<TARGET_FILE_DIR:bark>/benchmark
COMMAND "${CMAKE_COMMAND}" -E touch ${CMAKE_CURRENT_BINARY_DIR}/benchmark-done
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/run.sh
)
add_custom_target(benchmark_cp ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/benchmark-done)
set_target_properties(benchmark_cp PROPERTIES FOLDER "Benchmark")
endif(BUILD_TESTING)
distclean(${CMAKE_BINARY_DIR}/${BIN_DIR}/benchmark)
file(WRITE "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake" "message(\"---\")\n")
file(
APPEND
"${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake"
"message(\"Run 'make benchmark-clean' in the bench directory to delete the logic\")\n"
)
file(
APPEND
"${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake"
"message(\"and image files generated during the benchmark analysis.\")\n"
BRLCAD_ADDEXEC(pixcmp pixcmp.c libbu)
set(BARK_SOURCES
benchmark.c
compute.c
run.c
clean.c
)
BRLCAD_ADDEXEC(bark "${BARK_SOURCES}" libbu NO_STRICT NO_INSTALL)
cmakefiles(
configure_file(run.sh "${CMAKE_CURRENT_BINARY_DIR}/benchmark" COPYONLY)
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/benchmark" DESTINATION ${BIN_DIR})
if(CMAKE_CONFIGURATION_TYPES)
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER)
configure_file(run.sh ${CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}}/bin/benchmark COPYONLY)
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
else(CMAKE_CONFIGURATION_TYPES)
configure_file(run.sh ${CMAKE_BINARY_DIR}/bin/benchmark COPYONLY)
endif(CMAKE_CONFIGURATION_TYPES)
file(WRITE "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake" "message(\"---\")\n")
file(APPEND "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake" "message(\"Run 'make benchmark-clean' in the bench directory to delete the logic\")\n")
file(APPEND "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake" "message(\"and image files generated during the benchmark analysis.\")\n")
CMAKEFILES(
CMakeLists.txt
lgt.sh
run.sh
try.sh
viewdiff.sh
)
)
if(SH_EXEC AND TARGET m35.g AND BUILD_TESTING)
if(SH_EXEC AND TARGET m35.g)
# CTest enabled short run of the benchmark suite
brlcad_add_test(NAME benchmark COMMAND ${SH_EXEC} "$<TARGET_FILE_DIR:bark>/benchmark" run TIMEFRAME=1)
add_test(NAME benchmark COMMAND ${SH_EXEC} "${CMAKE_BINARY_DIR}/bin/benchmark" run TIMEFRAME=1)
set_tests_properties(benchmark PROPERTIES LABELS "Benchmark")
add_custom_target(
benchmark-check
add_custom_target(benchmark-check
COMMAND ${CMAKE_CTEST_COMMAND} -L Benchmark --output-on-failure
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp benchmark_cp
)
add_dependencies(
benchmark-check
bldg391.g
m35.g
moss.g
sphflake.g
star.g
world.g
)
set_target_properties(benchmark-check PROPERTIES FOLDER "Benchmark")
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp
)
add_dependencies(benchmark-check bldg391.g m35.g moss.g sphflake.g star.g world.g)
if(TARGET check)
add_dependencies(check benchmark-check)
endif(TARGET check)
# Full run of the benchmark suite
add_custom_target(
benchmark
COMMAND ${SH_EXEC} $<TARGET_FILE_DIR:bark>/benchmark run
add_custom_target(benchmark
COMMAND ${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark run
COMMAND ${CMAKE_COMMAND} -P "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake"
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp benchmark_cp
)
add_dependencies(
benchmark
bldg391.g
m35.g
moss.g
sphflake.g
star.g
world.g
)
set_target_properties(benchmark PROPERTIES FOLDER "Benchmark")
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp
)
add_dependencies(benchmark bldg391.g m35.g moss.g sphflake.g star.g world.g)
# benchmark cleanup targets
add_custom_target(benchmark-clean ${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clean)
set_target_properties(benchmark-clean PROPERTIES FOLDER "Benchmark")
add_custom_target(benchmark-clobber ${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clobber)
set_target_properties(benchmark-clobber PROPERTIES FOLDER "Benchmark")
endif(SH_EXEC AND TARGET m35.g AND BUILD_TESTING)
add_custom_target(benchmark-clean
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clean
)
add_custom_target(benchmark-clobber
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clobber
)
endif(SH_EXEC AND TARGET m35.g)
# Local Variables:
# tab-width: 8
+18 -23
View File
@@ -1,7 +1,7 @@
/* B E N C H M A R K . C
* BRL-CAD
*
* Copyright (c) 2011-2025 United States Government as represented by
* Copyright (c) 2011-2020 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* Redistribution and use in source and binary forms, with or without
@@ -97,7 +97,6 @@ record(const char *fmt, ...)
if (!BU_STR_EQUAL(LOGFILE, "")) {
FILE *fp = fopen(LOGFILE, "a");
fprintf(fp, "%s", bu_vls_addr(&str));
fclose(fp);
}
if (bu_str_false(QUIET)) {
bu_log("%s", bu_vls_addr(&str));
@@ -217,16 +216,14 @@ look_for(void (*verbose)(const char *, ...), look_for_type_t type, const char *l
static void
set_if_unset(void (*echo)(const char *, ...), void (*verbose)(const char *, ...), const char *var, const char *val)
{
const char *setval = getenv(var);
if (!var || !val) {
return;
}
const char *setval = getenv(var);
if (!echo) {
echo = sink;
}
if (!verbose) {
verbose = sink;
}
@@ -393,7 +390,7 @@ main(int ac, char *av[])
bu_log("well-known datasets into 512x512 images where performance metrics are\n");
bu_log("documented and fairly well understood. The local machine's\n");
bu_log("performance is compared to the base system (called VGR) and a numeric\n");
bu_log("\"VGR\" multiplier of performance is computed. This number is a\n");
bu_log("\"VGR\" mulitplier of performance is computed. This number is a\n");
bu_log("simplified metric from which one may qualitatively compare cpu and\n");
bu_log("cache performance, versions of BRL-CAD, and different compiler\n");
bu_log("characteristics.\n");
@@ -433,7 +430,7 @@ main(int ac, char *av[])
bu_log("effectively performing a multiplier amount of work over the initial\n");
bu_log("frame.\n");
bu_log("\n");
bu_log("Please send your BRL-CAD Benchmark results to the developers along with\n");
bu_log("Plese send your BRL-CAD Benchmark results to the developers along with\n");
bu_log("detailed system information to <devs@brlcad.org>. Include at least:\n");
bu_log("\n");
bu_log(" 0) Compiler name and version (e.g. gcc --version)\n");
@@ -482,10 +479,6 @@ main(int ac, char *av[])
j = bu_argv_from_string(pattern, 4, bu_vls_addr(&pattern_str));
while (j > 0) {
num = bu_file_glob(pattern[j-1], paths);
if (!num || !paths || !paths[0]) {
j--;
continue;
}
cnt = num;
while (num > 0) {
bu_file_delete(paths[num-1]);
@@ -506,10 +499,8 @@ main(int ac, char *av[])
num = bu_file_glob("benchmark-[0-9]*-run.log", paths);
cnt = num;
while (num > 0) {
if (paths) {
bu_log("rm -f %s\n", paths[num-1]);
bu_file_delete(paths[num-1]);
}
bu_log("rm -f %s\n", paths[num-1]);
bu_file_delete(paths[num-1]);
num--;
}
bu_argv_free(cnt, paths);
@@ -530,8 +521,7 @@ main(int ac, char *av[])
bu_log("\nThe following files must be removed manually:\n");
printed=1;
}
if (paths)
bu_log("%s ", paths[num-1]);
bu_log("%s ", paths[num-1]);
num--;
}
bu_argv_free(cnt, paths);
@@ -562,7 +552,7 @@ main(int ac, char *av[])
{
int fd;
const char *logfile;
bu_vls_printf(&str, "run-%d-benchmark.log", bu_pid());
bu_vls_printf(&str, "run-%d-benchmark.log", bu_process_id());
logfile = bu_vls_addr(&str);
bu_setenv("LOGFILE", logfile, 1);
fd = open(logfile, O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR);
@@ -691,6 +681,11 @@ main(int ac, char *av[])
look_for(verbose_echo, script, "a time elapsed utility", "ELP", (const char **)argv);
bu_vls_trunc(&vp, 0);
bu_free(root, "strdup root");
bu_free(db, "strdup db");
bu_free(pix, "strdup pix");
/*********************
* output parameters *
*********************/
@@ -744,10 +739,8 @@ main(int ac, char *av[])
/* approximate maximum time in seconds that a given test is allowed to take */
set_if_unset(echo, verbose_echo, "MAXTIME", "300");
{
char *mtimestr = getenv("MAXTIME");
MAXTIME = (mtimestr) ? strtol(mtimestr, NULL, 0) : 300;
char *timeframestr = getenv("TIMEFRAME");
TIMEFRAME = (timeframestr) ? strtol(timeframestr, NULL, 0) : 32;
MAXTIME = strtol(getenv("MAXTIME"), NULL, 0);
TIMEFRAME = strtol(getenv("TIMEFRAME"), NULL, 0);
if (MAXTIME < TIMEFRAME) {
bu_exit(1, "ERROR: MAXTIME must be greater or equal to TIMEFRAME\n");
}
@@ -928,6 +921,8 @@ main(int ac, char *av[])
thisp, thisp, thisp, thisp, thisp, thisp);
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
bu_free(thisp, "dirname this");
look_for(NULL, file, "BENCHMARK_TR", "benchmark", (const char **)argv);
bu_vls_trunc(&vp, 0);
+4 -5
View File
@@ -1,7 +1,7 @@
/* C L E A N . C
* BRL-CAD
*
* Copyright (c) 2011-2025 United States Government as represented by
* Copyright (c) 2011-2020 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* Redistribution and use in source and binary forms, with or without
@@ -46,8 +46,7 @@
/* TODO: !!! needed */
//int bu_file_move(const char *fn1, const char *fn2) {if (!fn1 || !fn2) return -1; return 0;}
int bu_file_move(const char *fn1, const char *fn2) {if (!fn1 || !fn2) return -1; return 0;}
extern int bu_file_copy(const char *fn1, const char *fn2);
@@ -70,7 +69,7 @@ clean_obstacles(const char *base_filename, int id)
if (bu_file_exists(bu_vls_cstr(&vpid), NULL)) {
bu_file_delete(bu_vls_cstr(&vp));
}
//bu_file_move(bu_vls_cstr(&vp), bu_vls_cstr(&vpid));
bu_file_move(bu_vls_cstr(&vp), bu_vls_cstr(&vpid));
}
/* look for a log file */
@@ -80,7 +79,7 @@ clean_obstacles(const char *base_filename, int id)
if (bu_file_exists(bu_vls_cstr(&vpid), NULL)) {
bu_file_delete(bu_vls_cstr(&vp));
}
//bu_file_move(bu_vls_cstr(&vp), bu_vls_cstr(&vpid));
bu_file_move(bu_vls_cstr(&vp), bu_vls_cstr(&vpid));
}
}
+1 -1
View File
@@ -1,7 +1,7 @@
/* C O M P U T E . C
* BRL-CAD
*
* Copyright (c) 2011-2025 United States Government as represented by
* Copyright (c) 2011-2020 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* Redistribution and use in source and binary forms, with or without
Executable
+198
View File
@@ -0,0 +1,198 @@
#!/bin/sh
# L G T . S H
# BRL-CAD
#
# Copyright (c) 2004-2020 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
#
# 3. The name of the author may not be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
###
# A Shell script to test LGT
# @(#)$Header$ (BRL)
# Ensure /bin/sh
export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
path_to_lgt_sh=`dirname $0`
expected="$path_to_lgt_sh/../src/lgt/lgt"
if ! test -f "$expected" ; then
echo "Can't find LGT"
exit 1
fi
# force locale setting to C so things like date output as expected
LC_ALL=C
LGT="$expected"
DB="$path_to_lgt_sh/../db"
CMP="$path_to_lgt_sh/pixcmp"
if test ! -f $CMP ; then
cake pixcmp
fi
# Alliant NFS hack
if test x${MACHINE} = xfx ; then
cp ${LGT} /tmp/lgt
cp ${CMP} /tmp/pixcmp
LGT=/tmp/lgt
CMP=/tmp/pixcmp
fi
# This test of LGT assumes a "live" framebuffer here.
if test x$FB_FILE = x ; then
echo "Environment variable FB_FILE must be set to a real framebuffer"
echo "for this test of LGT to operate correctly."
exit 1
fi
# Run the first set of tests
${LGT} ${DB}/lgt-test.g all.g << EOF
# read light source data base
v ../db/lgt-test.ldb
# read material data base
w ../db/lgt-test.mdb
# force display window to be 512x512 pixels, should cause 8-to-1 zoom
T 512
# clear frame buffer
E
# set maximum bounces to 20
K 20
# turn hidden-line drawing off
k 0
# configure grid: 64 rays across
G 64 0 0 0.0
# turn perspective off
p 0
# change background to mauve
b 111 66 66
# read key frame
j ../db/lgt-test.key
# display view #3
R
# save image in file
H lgt3a.pix
# change frame buffer to disk file
o lgt3b.pix
# save a script of previous commands, to produce the "b" version.
S script3
# disable reading of key frame file
j
# change frame buffer back to default
o
# configure grid: 2.45 mm cells, centered about model origin, view size 225 mm
G 2.45 1 1 225.0
# change background to firebrick
b 142 35 35
# force frame buffer size to be 455 pixels across, should cause 4-to-1 zoom
T 455
# set automatic perspective at 0.25
p 0.25
# set anti-aliasing over-sampling factor to 2
A 2
# set maximum bounces to 20
K 20
# display view #1
R
# save image in file
H lgt1a.pix
# change frame buffer to disk file
o lgt1b.pix
# save a script
S script1
# change frame buffer back to default
o
# turn off anti-aliasing
A 1
# revert to auto-sizing of frame buffer
T 0
# set automatic perspective at 0.25
p 0.25
# select hidden-line drawing, reverse video
k 2
# configure grid: 128 rays across, centered at model RPP, view size 225mm
G 128 0 0 225.0
# display view #2
R
# save image in file
H lgt2a.pix
# change frame buffer to disk file
o lgt2b.pix
# save a script
S script2
# change frame buffer back to default
o
# bye
q
EOF
if test $? = 0 ; then
:
else
echo "Abnormal lgt exit"
exit 1
fi
# Run the second set of tests. The scripts were created above.
./script1 < /dev/null &&
./script2 < /dev/null &&
./script3 < /dev/null || { echo "Script test failed."; exit 1; }
FAIL=0
for i in 1 2 3 ; do
if ${CMP} "$path_to_lgt_sh/../pix/lgt${i}.pix" lgt${i}a.pix ; then
:
else
echo "Test $i A failed."
FAIL=1
fi
if ${CMP} "$path_to_lgt_sh/../pix/lgt${i}.pix" lgt${i}b.pix
then
:
else
echo "Test $i B failed."
FAIL=1
fi
done
if test "$FAIL" -eq 0 ; then
echo "LGT Tested OK."
exit 0
fi
echo "*** LGT does NOT work on this platform ***"
exit 2
# Local Variables:
# mode: sh
# tab-width: 8
# sh-indentation: 4
# sh-basic-offset: 4
# indent-tabs-mode: t
# End:
# ex: shiftwidth=4 tabstop=8
+118 -295
View File
@@ -1,7 +1,7 @@
/* P I X C M P . C
* BRL-CAD
*
* Copyright (c) 2004-2025 United States Government as represented by
* Copyright (c) 2004-2020 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This program is free software; you can redistribute it and/or
@@ -36,16 +36,6 @@
#endif
#include "bio.h"
// TODO - replace with std::filesystem::is_fifo
#ifndef S_ISFIFO
# ifdef S_IFIFO
# define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO)
# else
# define S_ISFIFO(mode) (0)
# endif
#endif
#include <errno.h>
#include "bu/app.h"
#include "bu/getopt.h"
#include "bu/log.h"
@@ -57,59 +47,39 @@
#define FILE_ERROR 126
/* exit codes for normal operation */
#define EXIT_OFF_BY_NONE 0
#define EXIT_OFF_BY_ONE 1
#define EXIT_OFF_BY_MANY 2
enum diff {
MATCHING,
OFF_BY_ONE,
OFF_BY_MANY,
MISSING
};
#define OFF_BY_NONE 0
#define OFF_BY_ONE 1
#define OFF_BY_MANY 2
static void
HIDDEN void
usage(const char *name)
{
const char *unknown = "pixcmp";
if (!name) {
name = unknown;
}
/* split to fit within ISO C90 max static string length < 509 chars */
bu_log("Usage: %s [OPTIONS] FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
"\n"
" Compare two PIX files pixel by pixel (or byte by byte), optionally"
" skipping initial pixels (or bytes) in one or both input files.\n"
"\n", name);
bu_log("Options:"
" -b Iterate and print by bytes instead of by pixels.\n"
" -s Print all that have the same matching values.\n"
" -d Print all that have different values.\n"
" -q Quiet. Suppress printing header and summary.\n"
/* this must be split, ISO C90 has a max static string length of 509 */
bu_log("Usage: %s [OPTIONS] FILE1 [FILE2 [SKIP1 [SKIP2]]]\n%s", name,
"Compare two PIX image files pixel by pixel.\n\n"
" -l List pixel numbers and values for all pixels that differ.\n"
" -b Output and process by bytes instead of pixels.\n"
" -i SKIP\n"
" Discard initial SKIP pixels (or bytes w/ -b) in FILE1 and FILE2 input.\n"
" -i SKIP1:SKIP2\n"
" Skip initial SKIP1 pixels (or bytes w/ -b) in FILE1 and SKIP2 in FILE2.\n"
" -n COUNT\n"
" Compare COUNT pixels (or bytes w/ -b). Stops by default at EOF.\n"
"\n");
bu_log("If either FILE is `-' or is missing, then input is read from standard input.\n"
"If FILE1 and FILE2 are both standard input, then values must be interleaved.\n"
"If the `-b' option is used, SKIP and COUNT values are bytes instead of pixels.\n"
"Pixel numbers and bytes are indexed linearly from one.\n"
"\n");
" Skip the first SKIP pixels of input (for FILE1 and FILE2)\n");
bu_log(" -i SKIP1:SKIP2\n"
" Skip the first SKIP1 pixels in FILE1 and SKIP2 pixels in FILE2.\n"
" -s Silent output. Only return an exit status.\n\n"
"If FILE is `-' or is missing, then input is read from standard input.\n"
"If the `-b' option is used, SKIP values are bytes instead of pixels.\n"
"Pixel numbers and bytes are indexed linearly from one.\n");
return;
}
static void
handle_range_opt(const char *arg, size_t *skip1, size_t *skip2)
HIDDEN void
handle_i_opt(const char *arg, size_t *skip1, size_t *skip2)
{
const char *endptr = arg;
long val;
if ((arg == NULL) || ((skip1 == NULL) && (skip2 == NULL))) {
/* nothing to do */
return;
@@ -121,14 +91,12 @@ handle_range_opt(const char *arg, size_t *skip1, size_t *skip2)
/* probably empty string */
if (skip2) {
endptr++;
val = strtol(endptr, NULL, 10);
*skip2 = (val < 0) ? 0 : val;
*skip2 = strtol(endptr, NULL, 10);
}
} else if ((endptr == NULL) || (endptr[0] == '\0')) {
/* no : found */
if (skip2) {
val = strtol(arg, NULL, 10);
*skip2 = (val < 0) ? 0 : val;
*skip2 = strtol(arg, NULL, 10);
}
if (skip1 && skip2) {
*skip1 = *skip2;
@@ -136,13 +104,11 @@ handle_range_opt(const char *arg, size_t *skip1, size_t *skip2)
} else if (endptr[0] == ':') {
/* found : */
if (skip1) {
val = strtol(arg, NULL, 10);
*skip1 = (val < 0) ? 0 : val;
*skip1 = strtol(arg, NULL, 10);
}
if (skip2) {
endptr++; /* skip over : */
val = strtol(endptr, NULL, 10);
*skip2 = (val < 0) ? 0 : val;
*skip2 = strtol(endptr, NULL, 10);
}
} else {
bu_exit(OPTS_ERROR, "Unexpected input processing [%s]\n", arg);
@@ -150,120 +116,45 @@ handle_range_opt(const char *arg, size_t *skip1, size_t *skip2)
}
static enum diff
compare_rgb(int r1, int g1, int b1, int r2, int g2, int b2, size_t *matching, size_t *off1, size_t *offmany, size_t *missing)
{
enum diff result = MISSING;
if ((r1 == r2 && r1 != -1)
&& (g1 == g2 && g1 != -1)
&& (b1 == b2 && b1 != -1))
{
result = MATCHING;
(*matching)++;
} else if (r1 == -1 || r2 == -1 || g1 == -1 || g2 == -1 || b1 == -1 || b2 == -1) {
/* image sizes don't match (or other I/O error) */
result = MISSING;
(*missing)++;
} else if (((r1 != r2) && (g1 == g2) && (b1 == b2))
|| ((r1 == r2) && (g1 != g2) && (b1 == b2))
|| ((r1 == r2) && (g1 == g2) && (b1 != b2)))
{
/* off by one channel */
if (r1 != r2) {
if ((r1 > r2 ? r1 - r2 : r2 - r1) > 1) {
result = OFF_BY_MANY;
(*offmany)++;
} else {
result = OFF_BY_ONE;
(*off1)++;
}
} else if (g1 != g2) {
if ((g1 > g2 ? g1 - g2 : g2 - g1) > 1) {
result = OFF_BY_MANY;
(*offmany)++;
} else {
result = OFF_BY_ONE;
(*off1)++;
}
} else if (b1 != b2) {
if ((b1 > b2 ? b1 - b2 : b2 - b1) > 1) {
result = OFF_BY_MANY;
(*offmany)++;
} else {
result = OFF_BY_ONE;
(*off1)++;
}
}
} else {
result = OFF_BY_MANY;
(*offmany)++;
}
return result;
}
int
main(int argc, char *argv[])
{
const char *argv0 = argv[0];
FILE *f1 = NULL;
FILE *f2 = NULL;
struct stat sf1;
struct stat sf2;
memset(&sf1, 0, sizeof(struct stat));
memset(&sf2, 0, sizeof(struct stat));
struct stat sf1, sf2;
size_t matching = 0;
size_t off1 = 0;
size_t offmany = 0;
size_t missing = 0;
int c;
int list_diff = 0;
int list_same = 0;
int list_pixel_values = 0;
int print_bytes = 0;
int quiet = 0;
size_t bytes = 0;
int silent = 0;
size_t f1_skip = 0;
size_t f2_skip = 0;
size_t stop_after = 0;
size_t bytes = 0;
bu_setprogname(argv[0]);
/* process opts */
while ((c = bu_getopt(argc, argv, "sdbi:n:q?")) != -1) {
while ((c = bu_getopt(argc, argv, "lbi:s")) != -1) {
switch (c) {
case 's':
list_same = 1;
break;
case 'd':
list_diff = 1;
case 'l':
list_pixel_values = 1;
break;
case 'b':
print_bytes = 1;
break;
case 'i':
handle_range_opt(bu_optarg, &f1_skip, &f2_skip);
handle_i_opt(bu_optarg, &f1_skip, &f2_skip);
break;
case 'n':
{
long num = strtol(bu_optarg, NULL, 10);
stop_after = (num < 0) ? 0 : num;
case 's':
silent = 1;
break;
}
case 'q':
quiet = 1;
break;
case '?':
case 'h':
usage(argv0);
return 0;
default:
bu_log("\n");
usage(argv[0]);
exit(OPTS_ERROR);
}
}
@@ -273,17 +164,17 @@ main(int argc, char *argv[])
/* validate what is left over */
if (argc < 1 || argc > 4) {
bu_log("ERROR: incorrect number of arguments provided\n\n");
usage(argv0);
usage(argv[0]);
exit(OPTS_ERROR);
}
if ((argc > 0 && !argv[0]) || (argc > 1 && !argv[1])) {
bu_log("ERROR: bad filename\n\n");
usage(argv0);
usage(argv[0]);
exit(OPTS_ERROR);
}
if ((argc > 2 && !argv[2]) || (argc > 3 && !argv[3])) {
bu_log("ERROR: bad skip value\n\n");
usage(argv0);
usage(argv[0]);
exit(OPTS_ERROR);
}
@@ -295,25 +186,10 @@ main(int argc, char *argv[])
} else {
snprintf(range, 64, "%s", argv[2]);
}
handle_range_opt(range, &f1_skip, &f2_skip);
handle_i_opt(range, &f1_skip, &f2_skip);
}
if (!print_bytes) {
if ((f1_skip > ((size_t)-1)/3)
|| (f2_skip > ((size_t)-1)/3))
{
bu_log("ERROR: overflow, -i skip value(s) are too big {%zu:%zu}\n", f1_skip, f2_skip);
exit(OPTS_ERROR);
}
f1_skip *= 3;
f2_skip *= 3;
if (stop_after > ((size_t)-1)/3)
{
bu_log("ERROR: overflow, -n number is too big {%zu}\n", stop_after);
exit(OPTS_ERROR);
}
stop_after *= 3;
}
/* printf("Skip from FILE1: %ld and from FILE2: %ld\n", f1_skip, f2_skip); */
if (BU_STR_EQUAL(argv[0], "-")) {
f1 = stdin;
@@ -321,7 +197,6 @@ main(int argc, char *argv[])
perror(argv[0]);
exit(FILE_ERROR);
}
if ((argc < 2) || BU_STR_EQUAL(argv[1], "-")) {
f2 = stdin;
} else if ((f2 = fopen(argv[1], "rb")) == NULL) {
@@ -329,165 +204,108 @@ main(int argc, char *argv[])
exit(FILE_ERROR);
}
setmode(fileno(stdin), O_BINARY);
/* we're writing out ascii */
/* setmode(fileno(stdout), O_BINARY); */
stat(argv[0], &sf1);
stat(argv[1], &sf2);
if (f1_skip != f2_skip && f1 == stdin && f2 == stdin) {
bu_exit(OPTS_ERROR, "ERROR: cannot skip the same input stream by different amounts\n");
if (sf1.st_size != sf2.st_size) {
bu_exit(FILE_ERROR, "Different file sizes found: %s(%d) and %s(%d). Cannot perform pixcmp.\n", argv[0], (int)sf1.st_size, argv[1], (int)sf2.st_size);
}
errno = 0;
if (fstat(fileno(f1), &sf1)) {
bu_log("Warning - f1 fstat failed: %s\n", strerror(errno));
if (!print_bytes) {
f1_skip *= 3;
f2_skip *= 3;
}
errno = 0;
if (fstat(fileno(f2), &sf2)) {
bu_log("Warning - f2 fstat failed: %s\n", strerror(errno));
}
bu_log("FILE1_size(%zu) FILE1_skip(%zu) FILE2_size(%zu) FILE2_skip(%zu)\n", (size_t)sf1.st_size, f1_skip, (size_t)sf2.st_size, f2_skip);
if (!quiet && ((sf1.st_size - f1_skip) != (sf2.st_size - f2_skip))) {
bu_log("WARNING: Different image sizes detected\n");
if (print_bytes) {
bu_log("\t%s: %7zu bytes (%8zu bytes, skipping %7zu)\n",
argv[0], (size_t)sf1.st_size - f1_skip, (size_t)sf1.st_size, f1_skip);
bu_log("\t%s: %7zu bytes (%8zu bytes, skipping %7zu)\n",
argv[1], (size_t)sf2.st_size - f2_skip, (size_t)sf2.st_size, f2_skip);
} else {
bu_log("\t%s: %7zu pixels (%8zu bytes, skipping %7zu)\n",
argv[0], ((size_t)sf1.st_size - f1_skip)/3, (size_t)sf1.st_size, f1_skip);
bu_log("\t%s: %7zu pixels (%8zu bytes, skipping %7zu)\n",
argv[1], ((size_t)sf2.st_size - f2_skip)/3, (size_t)sf2.st_size, f2_skip);
}
}
/* make sure we read all bytes */
if (stop_after == 0) {
stop_after = FMAX((sf1.st_size - f1_skip), (sf2.st_size - f2_skip));
if (f1 == stdin && f2 == stdin) {
/* dual stdin is interleaved */
stop_after = (stop_after+1)/2;
}
}
/*
bu_log("mode is [%d] and [%d]\n", S_ISFIFO(sf1.st_mode), S_ISFIFO(sf2.st_mode));
bu_log("tty is [%d] and [%d]\n", isatty(fileno(f1)), isatty(fileno(f2)));
*/
/* skip requested pixels/bytes in FILE1 */
if (f1_skip) {
if (S_ISFIFO(sf1.st_mode)) {
size_t skipped = 0;
for (skipped = 0; skipped < f1_skip; skipped++) {
(void)fgetc(f1);
}
} else if (fseek(f1, (long)f1_skip, SEEK_SET)) {
bu_log("ERROR: Unable to seek %zd %s%s in FILE1\n",
f1_skip,
print_bytes?"byte":"pixel",
f1_skip==1?"":"s");
perror("FILE1 fseek failure");
exit(FILE_ERROR);
}
if (f1_skip && fseek(f1, f1_skip, SEEK_SET)) {
bu_log("ERROR: Unable to seek %zd %s%s in FILE1\n",
f1_skip,
print_bytes?"byte":"pixel",
f1_skip==1?"":"s");
perror("FILE1 fseek failure");
exit(FILE_ERROR);
}
/* skip requested pixels in FILE2 */
if (f2_skip) {
if (S_ISFIFO(sf2.st_mode)) {
size_t skipped = 0;
for (skipped = 0; skipped < f2_skip; skipped++) {
(void)fgetc(f2);
}
} else if (fseek(f2, (long)f2_skip, SEEK_SET)) {
bu_log("ERROR: Unable to seek %zd %s%s in FILE2\n",
f2_skip,
print_bytes?"byte":"pixel",
f2_skip==1?"":"s");
perror("FILE2 fseek failure");
exit(FILE_ERROR);
}
}
/* print header to stderr, output to stdout */
if (!quiet && (list_same || list_diff)) {
if (print_bytes) {
bu_log("#Byte FILE1 FILE2 LABEL\n");
} else {
bu_log("#Pixel\t(FILE1 R, G, B) (FILE2 R, G, B)\n");
}
if (f2_skip && fseek(f2, f2_skip, SEEK_SET)) {
bu_log("ERROR: Unable to seek %zd %s%s in FILE2\n",
f1_skip,
print_bytes?"byte":"pixel",
f1_skip==1?"":"s");
perror("FILE2 fseek failure");
exit(FILE_ERROR);
}
/* iterate over the pixels/bytes in the files */
while (bytes < stop_after) {
enum diff result;
int r1 = -1;
int r2 = -1;
int g1 = -1;
int g2 = -1;
int b1 = -1;
int b2 = -1;
/* bu_log("\tbytes[%zu] < stop[%zu\n", bytes, stop_after); */
while ((!feof(f1) && !feof(f2)) &&
(!ferror(f1) && !ferror(f2))) {
register int r1, r2, g1, g2, b1, b2;
r1 = r2 = g1 = g2 = b1 = b2 = -1;
r1 = fgetc(f1);
r2 = fgetc(f2);
if (feof(f1) || feof(f2)) break;
bytes++;
if (print_bytes) {
/* replicate */
b1 = g1 = 0;
b2 = g2 = 0;
} else {
if (!print_bytes) {
g1 = fgetc(f1);
g2 = fgetc(f2);
if (feof(f1) || feof(f2)) break;
bytes++;
b1 = fgetc(f1);
b2 = fgetc(f2);
if (feof(f1) || feof(f2)) break;
bytes++;
}
result = compare_rgb(r1, g1, b1, r2, g2, b2, &matching, &off1, &offmany, &missing);
if ((r1 == r2) && (g1 == g2) && (b1 == b2)) {
matching++;
continue;
}
/* print them? */
if ((result==MATCHING && list_same)
|| (result!=MATCHING && list_diff))
{
const char *label = NULL;
switch (result) {
case MATCHING:
label = "MATCHING";
break;
case OFF_BY_MANY:
label = "OFF_BY_MANY";
break;
case OFF_BY_ONE:
label = "OFF_BY_ONE";
break;
case MISSING:
default:
label = "MISSING";
break;
/* tabulate differing pixels */
if (((r1 != r2) && (g1 == g2) && (b1 == b2)) ||
((r1 == r2) && (g1 != g2) && (b1 == b2)) ||
((r1 == r2) && (g1 == g2) && (b1 != b2))) {
/* off by one channel */
if (r1 != r2) {
if ((r1 > r2 ? r1 - r2 : r2 - r1) > 1) {
offmany++;
} else {
off1++;
}
} else if (g1 != g2) {
if ((g1 > g2 ? g1 - g2 : g2 - g1) > 1) {
offmany++;
} else {
off1++;
}
} else if (b1 != b2) {
if ((b1 > b2 ? b1 - b2 : b2 - b1) > 1) {
offmany++;
} else {
off1++;
}
}
} else {
/* off by many */
offmany++;
}
/* they're different, so print something */
if (list_pixel_values) {
if (print_bytes) {
printf("%zu %3d %3d %s\n", bytes, r1, r2, label);
printf("%ld %3d %3d\n", bytes, r1, r2);
} else {
printf("%zu\t(%3d, %3d, %3d)\t(%3d, %3d, %3d) %s\n", bytes / 3, r1, g1, b1, r2, g2, b2, label);
printf("%ld\t(%3d, %3d, %3d)\t(%3d, %3d, %3d)\n", bytes / 3, r1, g1, b1, r2, g2, b2);
}
}
}
/* print summary */
if (!quiet) {
printf("pixcmp %s: %8zd matching, %8zd off by 1, %8zd off by many",
print_bytes?"bytes":"pixels", matching, off1, offmany);
if (missing) {
printf(", %8zd missing\n", missing);
} else {
printf("\n");
}
if (!silent) {
printf("pixcmp %s: %8zd matching, %8zd off by 1, %8zd off by many\n",
print_bytes?"bytes":"pixels",
matching, off1, offmany);
}
/* check for errors */
@@ -496,16 +314,21 @@ main(int argc, char *argv[])
return FILE_ERROR;
}
/* if files were of different lengths, consider it an error */
if (feof(f1) != feof(f2)) {
return FILE_ERROR;
}
/* indicate how many differences there were overall */
if (offmany || missing) {
return EXIT_OFF_BY_MANY;
if (offmany) {
return OFF_BY_MANY;
}
if (off1) {
return EXIT_OFF_BY_ONE;
return OFF_BY_ONE;
}
/* Success! */
return EXIT_OFF_BY_NONE;
return OFF_BY_NONE;
}
+10 -11
View File
@@ -1,29 +1,28 @@
set(
BENCHMARK_PIX
set(BENCHMARK_PIX
bldg391.pix
m35.pix
moss.pix
sphflake.pix
star.pix
world.pix
)
)
set(
PIX_LOG
set(PIX_LOG
bldg391.log
m35.log
moss.log
sphflake.log
star.log
world.log
)
)
brlcad_adddata(BENCHMARK_PIX pix)
brlcad_adddata(PIX_LOG pix)
BRLCAD_ADDDATA(BENCHMARK_PIX pix)
BRLCAD_ADDDATA(PIX_LOG pix)
cmakefiles(${BENCHMARK_PIX})
cmakefiles(${PIX_LOG})
cmakefiles(CMakeLists.txt)
CMAKEFILES(${BENCHMARK_PIX})
CMAKEFILES(${PIX_LOG})
CMAKEFILES(CMakeLists.txt)
# Local Variables:
# tab-width: 8
+4 -6
View File
@@ -1,7 +1,7 @@
/* R U N . C
* BRL-CAD
*
* Copyright (c) 2011-2025 United States Government as represented by
* Copyright (c) 2011-2020 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* Redistribution and use in source and binary forms, with or without
@@ -67,14 +67,12 @@ run(int ac, char *av[])
const char *run_geomname = av[0];
const char *run_geometry = av[1];
long int hypersample = strtod(av[2], NULL);
struct bu_vls args = BU_VLS_INIT_ZERO;
av += 3;
ac -= 3;
{
struct bu_vls args = bu_argv_to_string(ac, (const char **)av);
echo("DEBUG: Running %s -B -M -s512 -H%ld -J0 %s -o %s.pix %s/%s.g %s\n", av[0], hypersample, args, run_geomname, run_geomname, run_geometry);
bu_vls_free(&args);
}
args = bu_argv_to_string(ac, (const char **)av);
echo("DEBUG: Running %s -B -M -s512 -H%ld -J0 %s -o %s.pix %s/%s.g %s\n", av[0], hypersample, args, run_geomname, run_geomname, run_geometry);
/* pipe(stdin_for_bu_exec); */
retval = bu_exec("program", NULL, NULL, NULL);
+27 -57
View File
@@ -2,7 +2,7 @@
# R U N . S H
# BRL-CAD
#
# Copyright (c) 2004-2025 United States Government as represented by
# Copyright (c) 2004-2020 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
@@ -70,29 +70,25 @@ LC_ALL=C
# commands that this script expects
for __cmd in echo pwd ; do
out=`echo "test" | $__cmd 2>&1`
echo "test" | $__cmd > /dev/null 2>&1
if test ! x$? = x0 ; then
echo "INTERNAL ERROR: $__cmd command is required"
echo " (output was [$out])"
exit 1
fi
done
out=`echo "test" | grep "test" 2>&1`
echo "test" | grep "test" > /dev/null 2>&1
if test ! x$? = x0 ; then
echo "INTERNAL ERROR: grep command is required"
echo " (output was [$out])"
exit 1
fi
out=`echo "test" | tr "test" "test" 2>&1`
echo "test" | tr "test" "test" > /dev/null 2>&1
if test ! x$? = x0 ; then
echo "INTERNAL ERROR: tr command is required"
echo " (output was [$out])"
exit 1
fi
out=`echo "test" | sed "s/test/test/" 2>&1`
echo "test" | sed "s/test/test/" > /dev/null 2>&1
if test ! x$? = x0 ; then
echo "INTERNAL ERROR: sed command is required"
echo " (output was [$out])"
exit 1
fi
@@ -105,13 +101,6 @@ case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
*) ECHO_N= ECHO_C='\c' ECHO_T= ;;
esac
# Use a local cache
BU_DIR_CACHE="`pwd`/cache-$$-benchmark"
rm -rf $BU_DIR_CACHE && mkdir $BU_DIR_CACHE
export BU_DIR_CACHE
LIBRT_CACHE="`pwd`/rtcache-$$-benchmark"
rm -rf $LIBRT_CACHE && mkdir $LIBRT_CACHE
export LIBRT_CACHE
#######################
# log to tty and file #
@@ -402,14 +391,12 @@ fi
# where to write results
LOGFILE=run-$$-benchmark.log
if test -e $LOGFILE ; then
echo "WARNING: $LOGFILE already exists. Appending."
else
touch "$LOGFILE"
fi
touch "$LOGFILE"
if test ! -w "$LOGFILE" ; then
echo "WARNING: Unable to log to $LOGFILE"
LOGFILE=
if test ! "x$LOGFILE" = "x/dev/null" ; then
echo "ERROR: Unable to log to $LOGFILE"
fi
LOGFILE=/dev/null
fi
VERBOSE_ECHO=:
@@ -428,13 +415,7 @@ fi
$ECHO "B R L - C A D B E N C H M A R K"
$ECHO "================================="
$ECHO "Running $THIS on `date`"
if test "x$LOGFILE" != "x" ; then
$ECHO "Logging output to $LOGFILE"
elif test "x$QUIET" != "x" ; then
$ECHO "Logging output to STDOUT"
else
$ECHO "Logging output is OFF"
fi
$ECHO "Logging output to $LOGFILE"
$ECHO "`uname -a 2>&1`"
$ECHO
@@ -603,11 +584,8 @@ else
$ECHO "Using [$ELP] for ELP"
fi
# stop git shell & msys2 arg manipulation
export MSYS_NO_PATHCONV=1 MSYS2_ARG_CONV_EXCL="-F/dev/debug"
# sanity check: make sure $RT runs
out=`eval \"$RT\" -s1 -F/dev/debug \"${DB}/moss.g\" LIGHT 2>&1`
# more sanity checks, make sure the binaries and scripts run
eval \"$RT\" -s1 -F/dev/debug \"${DB}/moss.g\" LIGHT > /dev/null 2>&1
ret=$?
if test ! "x${ret}" = "x0" ; then
$ECHO
@@ -615,27 +593,25 @@ if test ! "x${ret}" = "x0" ; then
"$RT"
$ECHO
$ECHO "ERROR: RT does not seem to work as expected"
$ECHO " (returned $ret, output was [$out])"
exit 2
fi
# sanity check: make sure $CMP runs
out=`eval \"$CMP\" - - 2>&1 <<EOF
EOF`
# create a temporary file named "null", fopen("/dev/null") does not work on
# windows (using cygwin), so punt.
> null
eval \"$CMP\" null null >/dev/null 2>&1
rm -f null
ret=$?
if test ! "x${ret}" = "x0" ; then
$ECHO
$ECHO "ERROR: CMP does not seem to work as expected"
$ECHO " (returned $ret, output was [$out])"
exit 2
fi
# sanity check: make sure $ELP runs
out=`eval \"$ELP\" 0 2>&1`
eval \"$ELP\" 0 > /dev/null 2>&1
if test ! "x${ret}" = "x0" ; then
$ECHO
$ECHO "ERROR: ELP does not seem to work as expected"
$ECHO " (returned $ret, output was [$out])"
exit 2
fi
@@ -695,8 +671,7 @@ $ECHO
# if expr works, let the user know about how long this might take
zero=`expr 1 - 1 2>&1`
if test "x$zero" = "x0" ; then
if test "x`expr 1 - 1 2>/dev/null`" = "x0" ; then
mintime="`expr 6 \* $TIMEFRAME`"
if test $mintime -lt 1 ; then
mintime=0 # zero is okay
@@ -718,7 +693,6 @@ if test "x$zero" = "x0" ; then
$ECHO
else
$ECHO "WARNING: expr is unavailable, unable to compute statistics"
$ECHO " (output of 1 - 1 was [$zero])"
$ECHO
fi
@@ -885,13 +859,13 @@ sqrt ( ) {
if test "x$sqrt_number" = "x" ; then
$ECHO "ERROR: cannot compute the square root of nothing" 1>&2
exit 1
elif test $sqrt_number -lt 0 ; then
elif test $sqrt_number -lt 0 > /dev/null 2>&1 ; then
$ECHO "ERROR: square root of negative numbers is only in your imagination" 1>&2
exit 1
fi
sqrt_have_dc=yes
out=`echo "1 1 + p" | dc 2>&1`
echo "1 1 + p" | dc >/dev/null 2>&1
if test ! x$? = x0 ; then
sqrt_have_dc=no
fi
@@ -901,7 +875,7 @@ sqrt ( ) {
sqrt_root=`echo "$sqrt_number v p" | dc`
else
sqrt_have_bc=yes
out=`echo "1 + 1" | bc 2>&1`
echo "1 + 1" | bc >/dev/null 2>&1
if test ! "x$?" = "x0" ; then
sqrt_have_bc=no
fi
@@ -1148,7 +1122,7 @@ EOF
ls -la *.pix*
fi
$VERBOSE_ECHO "DEBUG: $CMP $PIX/${bench_testname}.pix ${bench_testname}.pix"
cmp_result="`eval \\\"${CMP}\\\" \\\"${PIX}/${bench_testname}.pix\\\" ${bench_testname}.pix 2>&1 | grep pixels`"
cmp_result="`eval \\\"${CMP}\\\" \\\"${PIX}/${bench_testname}.pix\\\" ${bench_testname}.pix 2>&1`"
ret=$?
$ECHO "$cmp_result"
@@ -1251,13 +1225,13 @@ perf ( ) {
# see if we have a calculator
perf_have_dc=yes
out=`echo "1 1 + p" | dc 2>&1`
echo "1 1 + p" | dc >/dev/null 2>&1
if test ! x$? = x0 ; then
perf_have_dc=no
fi
perf_have_bc=yes
out=`echo "1 + 1" | bc 2>&1`
echo "1 + 1" | bc >/dev/null 2>&1
if test ! x$? = x0 ; then
perf_have_bc=no
fi
@@ -1622,10 +1596,6 @@ else
fi
$ECHO
# Cleanup
rm -rf "$BU_DIR_CACHE"
rm -rf "$LIBRT_CACHE"
$ECHO "Output was saved to $LOGFILE from `pwd`"
$ECHO "Benchmark testing complete."
+1 -1
View File
@@ -2,7 +2,7 @@
# T R Y . S H
# BRL-CAD
#
# Copyright (c) 2004-2025 United States Government as represented by
# Copyright (c) 2004-2020 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
+1 -1
View File
@@ -2,7 +2,7 @@
# V I E W D I F F . S H
# BRL-CAD
#
# Copyright (c) 2004-2025 United States Government as represented by
# Copyright (c) 2004-2020 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
Vendored Executable
+209
View File
@@ -0,0 +1,209 @@
#!/bin/sh
#
# This is a simple script to translate autotools style
# configure options into CMake variables. The resulting
# translation is then run as a CMake configure.
srcpath=$(dirname $0)
options="$srcpath"
while [ "$1" != "" ]
do
case $1
in
--enable-all) options="$options -DBRLCAD_BUNDLED_LIBS=BUNDLED";
shift;;
--disable-all) options="$options -DBRLCAD_BUNDLED_LIBS=SYSTEM";
shift;;
--enable-opengl) options="$options -DBRLCAD_ENABLE_OPENGL=ON";
shift;;
--disable-opengl) options="$options -DBRLCAD_ENABLE_OPENGL=OFF";
shift;;
--enable-runtime-debug) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=ON";
shift;;
--disable-runtime-debug) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=OFF";
shift;;
--enable-run-time-debug) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=ON";
shift;;
--disable-run-time-debug) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=OFF";
shift;;
--enable-runtime-debugging) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=ON";
shift;;
--disable-runtime-debugging) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=OFF";
shift;;
--enable-run-time-debugging) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=ON";
shift;;
--disable-run-time-debugging) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=OFF";
shift;;
--enable-debug) options="$options -DBRLCAD_FLAGS_DEBUG=ON";
shift;;
--disable-debug) options="$options -DBRLCAD_FLAGS_DEBUG=OFF";
shift;;
--enable-flags-debug) options="$options -DBRLCAD_FLAGS_DEBUG=ON";
shift;;
--disable-flags-debug) options="$options -DBRLCAD_FLAGS_DEBUG=OFF";
shift;;
--enable-debug-flags) options="$options -DBRLCAD_FLAGS_DEBUG=ON";
shift;;
--disable-debug-flags) options="$options -DBRLCAD_FLAGS_DEBUG=OFF";
shift;;
--enable-warnings) options="$options -DBRLCAD_ENABLE_COMPILER_WARNINGS=ON";
shift;;
--disable-warnings) options="$options -DBRLCAD_ENABLE_COMPILER_WARNINGS=OFF";
shift;;
--enable-compiler-warnings) options="$options -DBRLCAD_ENABLE_COMPILER_WARNINGS=ON";
shift;;
--disable-compiler-warnings) options="$options -DBRLCAD_ENABLE_COMPILER_WARNINGS=OFF";
shift;;
--enable-strict) options="$options -DBRLCAD_ENABLE_STRICT=ON";
shift;;
--disable-strict) options="$options -DBRLCAD_ENABLE_STRICT=OFF";
shift;;
--enable-strict-compile) options="$options -DBRLCAD_ENABLE_STRICT=ON";
shift;;
--disable-strict-compile) options="$options -DBRLCAD_ENABLE_STRICT=OFF";
shift;;
--enable-strict-compile-flags) options="$options -DBRLCAD_ENABLE_STRICT=ON";
shift;;
--disable-strict-compile-flags) options="$options -DBRLCAD_ENABLE_STRICT=OFF";
shift;;
--enable-all-cxx) options="$options -DENABLE_ALL_CXX_COMPILE=ON";
shift;;
--disable-all-cxx) options="$options -DENABLE_ALL_CXX_COMPILE=OFF";
shift;;
--enable-docs) options="$options -DBRLCAD_EXTRADOCS=ON";
shift;;
--disable-docs) options="$options -DBRLCAD_EXTRADOCS=OFF";
shift;;
--enable-extra-docs) options="$options -DBRLCAD_EXTRADOCS=ON";
shift;;
--disable-extra-docs) options="$options -DBRLCAD_EXTRADOCS=OFF";
shift;;
--enable-docbook) options="$options -DBRLCAD_EXTRADOCS=ON";
shift;;
--disable-docbook) options="$options -DBRLCAD_EXTRADOCS=OFF";
shift;;
--enable-lemon) options="$options -DBRLCAD_LEMON=BUNDLED";
shift;;
--disable-lemon) options="$options -DBRLCAD_LEMON=SYSTEM";
shift;;
--enable-re2c) options="$options -DBRLCAD_RE2C=BUNDLED";
shift;;
--disable-re2c) options="$options -DBRLCAD_RE2C=SYSTEM";
shift;;
--enable-perplex) options="$options -DBRLCAD_PERPLEX=BUNDLED";
shift;;
--disable-perplex) options="$options -DBRLCAD_PERPLEX=SYSTEM";
shift;;
--enable-astyle) options="$options -DBRLCAD_ASTYLE=BUNDLED";
shift;;
--disable-astyle) options="$options -DBRLCAD_ASTYLE=SYSTEM";
shift;;
--enable-xsltproc) options="$options -DBRLCAD_XSLTPROC=BUNDLED";
shift;;
--disable-xsltproc) options="$options -DBRLCAD_XSLTPROC=SYSTEM";
shift;;
--enable-xmllint) options="$options -DBRLCAD_XMLLINT=BUNDLED";
shift;;
--disable-xmllint) options="$options -DBRLCAD_XMLLINT=SYSTEM";
shift;;
--enable-regex) options="$options -DBRLCAD_REGEX=BUNDLED";
shift;;
--disable-regex) options="$options -DBRLCAD_REGEX=SYSTEM";
shift;;
--enable-zlib) options="$options -DBRLCAD_ZLIB=BUNDLED";
shift;;
--disable-zlib) options="$options -DBRLCAD_ZLIB=SYSTEM";
shift;;
--enable-libz) options="$options -DBRLCAD_ZLIB=BUNDLED";
shift;;
--disable-libz) options="$options -DBRLCAD_ZLIB=SYSTEM";
shift;;
--enable-png) options="$options -DBRLCAD_PNG=BUNDLED";
shift;;
--disable-png) options="$options -DBRLCAD_PNG=SYSTEM";
shift;;
--enable-netpbm) options="$options -DBRLCAD_NETPBM=BUNDLED";
shift;;
--disable-netpbm) options="$options -DBRLCAD_NETPBM=SYSTEM";
shift;;
--enable-utahrle) options="$options -DBRLCAD_UTAHRLE=BUNDLED";
shift;;
--disable-utahrle) options="$options -DBRLCAD_UTAHRLE=SYSTEM";
shift;;
--enable-tcl) options="$options -DBRLCAD_TCL=BUNDLED";
shift;;
--disable-tcl) options="$options -DBRLCAD_TCL=SYSTEM";
shift;;
--enable-tk) options="$options -DBRLCAD_TK=BUNDLED";
shift;;
--disable-tk) options="$options -DBRLCAD_TK=SYSTEM";
shift;;
--enable-itcl) options="$options -DBRLCAD_ITCL=BUNDLED";
shift;;
--disable-itcl) options="$options -DBRLCAD_ITCL=SYSTEM";
shift;;
--enable-itk) options="$options -DBRLCAD_ITK=BUNDLED";
shift;;
--disable-itk) options="$options -DBRLCAD_ITK=SYSTEM";
shift;;
--enable-iwidgets) options="$options -DBRLCAD_IWIDGETS=BUNDLED";
shift;;
--disable-iwidgets) options="$options -DBRLCAD_IWIDGETS=SYSTEM";
shift;;
--enable-tkhtml) options="$options -DBRLCAD_TKHTML=BUNDLED";
shift;;
--disable-tkhtml) options="$options -DBRLCAD_TKHTML=SYSTEM";
shift;;
--enable-tktable) options="$options -DBRLCAD_TKTABLE=BUNDLED";
shift;;
--disable-tktable) options="$options -DBRLCAD_TKTABLE=SYSTEM";
shift;;
--enable-opennurbs) options="$options -DBRLCAD_OPENNURBS=BUNDLED";
shift;;
--disable-opennurbs) options="$options -DBRLCAD_OPENNURBS=SYSTEM";
shift;;
--enable-spsr) options="$options -DBRLCAD_SPSR=BUNDLED";
shift;;
--disable-spsr) options="$options -DBRLCAD_SPSR=SYSTEM";
shift;;
--enable-scl) options="$options -DBRLCAD_SC=BUNDLED";
shift;;
--disable-scl) options="$options -DBRLCAD_SC=SYSTEM";
shift;;
--enable-step) options="$options -DBRLCAD_SC=BUNDLED";
shift;;
--disable-step) options="$options -DBRLCAD_SC=SYSTEM";
shift;;
--enable-step-class-libraries) options="$options -DBRLCAD_SC=BUNDLED";
shift;;
--disable-step-class-libraries) options="$options -DBRLCAD_SC=SYSTEM";
shift;;
--enable-vds) options="$options -DBRLCAD_VDS=BUNDLED";
shift;;
--disable-vds) options="$options -DBRLCAD_VDS=SYSTEM";
shift;;
--enable-openscenegraph) options="$options -DBRLCAD_OSG=BUNDLED";
shift;;
--disable-openscenegraph) options="$options -DBRLCAD_OSG=SYSTEM";
shift;;
--enable-gdiam) options="$options -DBRLCAD_GDIAM=BUNDLED";
shift;;
--disable-gdiam) options="$options -DBRLCAD_GDIAM=SYSTEM";
shift;;
--enable-proj4) options="$options -DBRLCAD_PROJ4=BUNDLED";
shift;;
--disable-proj4) options="$options -DBRLCAD_PROJ4=SYSTEM";
shift;;
--enable-gdal) options="$options -DBRLCAD_GDAL=BUNDLED";
shift;;
--disable-gdal) options="$options -DBRLCAD_GDAL=SYSTEM";
shift;;
--prefix=*) inputstr=$1;
options="$options -DCMAKE_INSTALL_PREFIX=${inputstr#--prefix=}";
shift;;
*) echo "Warning: unknown option $1";
shift;;
esac
done
echo cmake $options
cmake $options
BIN
View File
Binary file not shown.
+91 -158
View File
@@ -1,17 +1,28 @@
function(G_TARGET in_model folder)
# There is quite a bit of shared logic for the various converters when it comes
# to building .g outputs, so we use a single function to manage the process and
# handle format-specific bits internally. TODO - we probably need to add
# optional argument support here later to support (say) specifying a specific
# COMGEOM or STEP format version...
function(ADD_G_TARGET in_model folder)
# Initialize
set(MODEL_TYPE "UNKNOWN")
# Regardless of what we decide, let CMake know about the file
cmakefiles(${CMAKE_CURRENT_SOURCE_DIR}/${in_model})
# Get our root path
if(CMAKE_CONFIGURATION_TYPES)
set(bin_root "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
else(CMAKE_CONFIGURATION_TYPES)
set(bin_root "${CMAKE_BINARY_DIR}")
endif(CMAKE_CONFIGURATION_TYPES)
# Find our conversion type
set(model_types "3dm;asc;comgeom;fg4;stp")
foreach(mt ${model_types})
if("${MODEL_TYPE}" STREQUAL "UNKNOWN")
if("${in_model}" MATCHES ".${mt}$")
set(MODEL_TYPE "${mt}")
string(REGEX REPLACE "([0-9a-z]*).${mt}" "\\1" in_model_root "${in_model}")
set(MODEL_TYPE "${mt}")
string(REGEX REPLACE "([0-9a-z]*).${mt}" "\\1" in_model_root "${in_model}")
endif("${in_model}" MATCHES ".${mt}$")
endif("${MODEL_TYPE}" STREQUAL "UNKNOWN")
endforeach(mt ${model_types})
@@ -19,128 +30,97 @@ function(G_TARGET in_model folder)
message(FATAL_ERROR "Unable to identify input model type for file ${in_model}")
endif("${MODEL_TYPE}" STREQUAL "UNKNOWN")
# Make sure variables are set up for configure_file
set(in_model_root "${in_model_root}")
# Find our output file and path
string(REPLACE "${CMAKE_SOURCE_DIR}/" "" rel_dir "${CMAKE_CURRENT_SOURCE_DIR}")
set(output_file ${DATA_DIR}/${rel_dir}/${in_model_root}.g)
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.log)
# Make sure the output db target directory is there
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${DATA_DIR}/${rel_dir}")
# Make sure the output db target directories are there
if(CMAKE_CONFIGURATION_TYPES)
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${CFG_TYPE}/${DATA_DIR}/${rel_dir}")
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
else(CMAKE_CONFIGURATION_TYPES)
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${DATA_DIR}/${rel_dir}")
endif(CMAKE_CONFIGURATION_TYPES)
# Rhino 3DM file
#############################################################################
# Build logic
#############################################################################
# The 3DM conversion is rather different than the general pattern at the
# moment (However, the 3dm approach is probably the "wave of the future" in
# the sense that it uses libgcv...)
if(${MODEL_TYPE} STREQUAL "3dm")
if(NOT TARGET 3dm-g)
return()
endif(NOT TARGET 3dm-g)
set(CONV_ARGS "-o \"${CMAKE_BINARY_DIR}/${output_file}\" \"${CMAKE_CURRENT_SOURCE_DIR}/${in_model}\"")
configure_file("${CMAKE_SOURCE_DIR}/db/to_g.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake" @ONLY)
distclean("${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake")
# Custom command to generate the output
set(INPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}")
set(OUTPUT_FILE "${output_file}")
# Use the model name for the script, since the output file is specific to this input
configure_file("${CMAKE_SOURCE_DIR}/db/conv_run.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake" @ONLY)
# Define the target
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/${output_file}
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/${output_file}"
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND ${CMAKE_COMMAND} -DEXEC=$<TARGET_FILE:3dm-g> -P "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake"
DEPENDS 3dm-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
)
)
endif(${MODEL_TYPE} STREQUAL "3dm")
# BRL-CAD ASCII database
# The rest of the conversions follow the simpler/older pattern:
if(${MODEL_TYPE} STREQUAL "asc")
set(CONV_ARGS "\"${CMAKE_CURRENT_SOURCE_DIR}/${in_model}\" \"${CMAKE_BINARY_DIR}/${output_file}\"")
configure_file("${CMAKE_SOURCE_DIR}/db/to_g.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake" @ONLY)
distclean("${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake")
if(BRLCAD_ENABLE_TCL)
if(NOT TARGET asc2g)
return()
endif(NOT TARGET asc2g)
# Custom command to generate the output
if (BRLCAD_ENABLE_TCL)
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/${output_file}
COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/${output_file}
COMMAND ${CMAKE_COMMAND} -DEXEC=$<TARGET_FILE:asc2g> -P "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake"
DEPENDS asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}"
)
else(BRLCAD_ENABLE_TCL)
if(NOT TARGET gcv)
return()
endif(NOT TARGET gcv)
# Custom command to generate the output
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/${output_file}
COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/${output_file}
COMMAND ${CMAKE_COMMAND} -DEXEC=$<TARGET_FILE:gcv> -P "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake"
DEPENDS gcv "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}"
)
endif(BRLCAD_ENABLE_TCL)
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}" ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
DEPENDS asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}"
)
endif (BRLCAD_ENABLE_TCL)
endif(${MODEL_TYPE} STREQUAL "asc")
# COMGEOM (pre BRL-CAD Geometry Information For Targets (GIFT) files)
if(${MODEL_TYPE} STREQUAL "comgeom")
if(NOT TARGET comgeom-g)
return()
endif(NOT TARGET comgeom-g)
set(CONV_ARGS "-v 5 \"${CMAKE_CURRENT_SOURCE_DIR}/${in_model}\" \"${CMAKE_BINARY_DIR}/${output_file}\"")
configure_file("${CMAKE_SOURCE_DIR}/db/to_g.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake" @ONLY)
distclean("${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake")
# Custom command to generate the output
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/${output_file}
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/${output_file}"
COMMAND ${CMAKE_COMMAND} -DEXEC=$<TARGET_FILE:comgeom-g> -P "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake"
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND comgeom-g -v 5 ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} > ${log_file} 2>&1
DEPENDS comgeom-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
)
)
endif(${MODEL_TYPE} STREQUAL "comgeom")
# FASTGEN 4
if(${MODEL_TYPE} STREQUAL "fg4")
if(NOT TARGET fast4-g)
return()
endif(NOT TARGET fast4-g)
set(CONV_ARGS "\"${CMAKE_CURRENT_SOURCE_DIR}/${in_model}\" \"${CMAKE_BINARY_DIR}/${output_file}\"")
configure_file("${CMAKE_SOURCE_DIR}/db/to_g.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake" @ONLY)
distclean("${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake")
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/${output_file}
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/${output_file}"
COMMAND ${CMAKE_COMMAND} -DEXEC=$<TARGET_FILE:fast4-g> -P "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake"
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND fast4-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} > ${log_file} 2>&1
DEPENDS fast4-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
)
)
endif(${MODEL_TYPE} STREQUAL "fg4")
# STEP AP203
if(${MODEL_TYPE} STREQUAL "stp")
if(NOT TARGET step-g)
return()
endif(NOT TARGET step-g)
set(CONV_ARGS "-O \"${CMAKE_BINARY_DIR}/${output_file}\" \"${CMAKE_CURRENT_SOURCE_DIR}/${in_model}\"")
configure_file("${CMAKE_SOURCE_DIR}/db/to_g.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake" @ONLY)
distclean("${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake")
# Custom command to generate the output
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/${output_file}
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/${output_file}"
COMMAND ${CMAKE_COMMAND} -DEXEC=$<TARGET_FILE:step-g> -P "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake"
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND step-g -O ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} > ${log_file} 2>&1
DEPENDS step-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
)
)
endif(${MODEL_TYPE} STREQUAL "stp")
# If we got this far, do the target, install and clean-up rules
add_custom_target(${in_model_root}.g ALL DEPENDS ${CMAKE_BINARY_DIR}/${output_file})
set_target_properties(${in_model_root}.g PROPERTIES FOLDER "${folder}")
if(NOT ${MODEL_TYPE} STREQUAL "asc" OR BRLCAD_ENABLE_TCL)
add_custom_target(${in_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
set_target_properties(${in_model_root}.g PROPERTIES FOLDER "${folder}")
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
install(FILES ${CMAKE_BINARY_DIR}/${output_file} DESTINATION ${DATA_DIR}/${rel_dir})
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
# Install logic
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/${rel_dir})
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${log_file}")
distclean("${log_file}")
endfunction(G_TARGET in_model folder)
# Clean-up
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${log_file}")
DISTCLEAN("${log_file}")
endif(NOT ${MODEL_TYPE} STREQUAL "asc" OR BRLCAD_ENABLE_TCL)
set(
G_BENCHMARK_MODELS
endfunction(ADD_G_TARGET in_model folder)
set(G_BENCHMARK_MODELS
bldg391.asc
m35.asc
moss.asc
@@ -149,10 +129,8 @@ set(
world.asc
)
set(
G_SAMPLE_MODELS
set(G_SAMPLE_MODELS
aet.asc
annual_gift_man.asc
axis.asc
bearing.asc
boolean-ops.asc
@@ -173,15 +151,11 @@ set(
operators.asc
pic.asc
pinewood.asc
primitives.asc
prim.asc
radialgrid.asc
rounds.asc
shipping_container.asc
tank_car.asc
terra.asc
toyjeep.asc
traffic_light.asc
truck.asc
wave.asc
woodsman.asc
@@ -193,105 +167,64 @@ add_subdirectory(nist)
add_subdirectory(faa)
foreach(g_input ${G_BENCHMARK_MODELS})
g_target(${g_input} "BRL-CAD Geometry Models/Benchmark")
ADD_G_TARGET(${g_input} "BRL-CAD Geometry Models/Benchmark")
endforeach(g_input ${G_BENCHMARK_MODELS})
foreach(g_input ${G_SAMPLE_MODELS})
g_target(${g_input} "BRL-CAD Geometry Models/Sample")
ADD_G_TARGET(${g_input} "BRL-CAD Geometry Models/Sample")
endforeach(g_input ${G_SAMPLE_MODELS})
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY AND TARGET gcv)
brlcad_adddata(1647260.dsp db)
brlcad_adddata(ebm_logo.bw db)
brlcad_adddata(terra.bin db)
brlcad_adddata(vol_data.bw db)
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY AND TARGET gcv)
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
BRLCAD_ADDDATA(terra.dsp db)
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
if(SH_EXEC)
if(TARGET mged OR TARGET gcv)
set(conversion_g_files)
set(conversion_g_files_fp)
set(conversion_deps_list)
set(conversion_g_files)
set(conversion_g_files_fp)
set(conversion_deps_list)
if (BRLCAD_ENABLE_TCL)
macro(Sh_Conversion_Test gfile depends_list)
if(TARGET mged)
add_custom_target(
convert-${gfile}
COMMAND
${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged>
${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile}
)
else()
add_custom_target(
convert-${gfile}
COMMAND
${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:gcv>
${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile}
)
endif(TARGET mged)
add_custom_target(convert-${gfile} COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile})
set_target_properties(convert-${gfile} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
set_target_properties(convert-${gfile} PROPERTIES FOLDER "BRL-CAD Conversion Tests")
set(conversion_g_files ${conversion_g_files} ${gfile})
if(NOT "${depends_list}" STREQUAL "")
add_dependencies(convert-${gfile} ${depends_list})
set(conversion_deps_list ${conversion_deps_list} ${depends_list})
add_dependencies(convert-${gfile} ${depends_list})
set(conversion_deps_list ${conversion_deps_list} ${depends_list})
endif(NOT "${depends_list}" STREQUAL "")
endmacro(Sh_Conversion_Test)
foreach(g_input ${G_BENCHMARK_MODELS})
get_filename_component(GROOT "${g_input}" NAME_WE)
if(TARGET mged)
sh_conversion_test(${GROOT}.g "mged")
else()
sh_conversion_test(${GROOT}.g "gcv")
endif(TARGET mged)
Sh_Conversion_Test(${GROOT}.g "mged")
endforeach(g_input ${G_BENCHMARK_MODELS})
foreach(g_input ${G_SAMPLE_MODELS})
get_filename_component(GROOT "${g_input}" NAME_WE)
if(TARGET mged)
sh_conversion_test(${GROOT}.g "mged")
else()
sh_conversion_test(${GROOT}.g "gcv")
endif(TARGET mged)
Sh_Conversion_Test(${GROOT}.g "mged")
endforeach(g_input ${G_SAMPLE_MODELS})
list(REMOVE_DUPLICATES conversion_deps_list)
foreach(gfile ${conversion_g_files})
set(conversion_g_files_fp ${conversion_g_files_fp} "${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile}")
endforeach(gfile ${conversion_g_files})
if(TARGET mged)
add_custom_target(
convert
COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${conversion_g_files_fp}
)
else()
add_custom_target(
convert
COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:gcv> ${conversion_g_files_fp}
)
endif(TARGET mged)
add_custom_target(convert COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${conversion_g_files_fp})
set_target_properties(convert PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
set_target_properties(convert PROPERTIES FOLDER "BRL-CAD Conversion Tests")
add_dependencies(convert ${conversion_deps_list})
endif(TARGET mged OR TARGET gcv)
endif (BRLCAD_ENABLE_TCL)
endif(SH_EXEC)
cmakefiles(
CMAKEFILES(
${G_BENCHMARK_MODELS}
${G_SAMPLE_MODELS}
1647260.dsp
CMakeLists.txt
aet.rt
cornell.rt
cube.rt
db.php
ebm_logo.bw
include/ctype.inc
include/debug.inc
terra.bin
to_g.cmake.in
traffic_light.rt
vol_data.bw
)
# Local Variables:
-191
View File
@@ -1,191 +0,0 @@
title {Annual Gift Man}
units in
put {body.black.s1} arb8 V1 {228.5999999999999658939487 -228.5999999999999658939487 88.89999999999999147348717} V2 {228.5999999999999658939487 228.5999999999999658939487 88.89999999999999147348717} V3 {228.5999999999999658939487 228.5999999999999658939487 63.49999999999999289457264} V4 {228.5999999999999658939487 -228.5999999999999658939487 63.49999999999999289457264} V5 {-228.5999999999999658939487 -228.5999999999999658939487 88.89999999999999147348717} V6 {-228.5999999999999658939487 228.5999999999999658939487 88.89999999999999147348717} V7 {-228.5999999999999658939487 228.5999999999999658939487 63.49999999999999289457264} V8 {-228.5999999999999658939487 -228.5999999999999658939487 63.49999999999999289457264}
put {body.gold.s2} arb8 V1 {228.5999999999999658939487 -38.10000000000000852651283 88.89999999999994884092303} V2 {228.5999999999999658939487 38.10000000000000852651283 88.89999999999994884092303} V3 {228.5999999999999658939487 38.10000000000000852651283 63.49999999999998578914528} V4 {228.5999999999999658939487 -38.10000000000000852651283 63.49999999999998578914528} V5 {177.7999999999999545252649 -38.10000000000000852651283 88.89999999999994884092303} V6 {177.7999999999999545252649 38.10000000000000852651283 88.89999999999994884092303} V7 {177.7999999999999545252649 38.10000000000000852651283 63.49999999999998578914528} V8 {177.7999999999999545252649 -38.10000000000000852651283 63.49999999999998578914528}
put {body.gold.s1} arb8 V1 {228.5999999999999943156581 -50.80000000000000426325641 101.5999999999999801048034} V2 {228.5999999999999943156581 50.80000000000000426325641 101.5999999999999801048034} V3 {228.5999999999999943156581 50.80000000000000426325641 50.79999999999999715782906} V4 {228.5999999999999943156581 -50.80000000000000426325641 50.79999999999999715782906} V5 {177.8000000000000113686838 -50.80000000000000426325641 101.5999999999999801048034} V6 {177.8000000000000113686838 50.80000000000000426325641 101.5999999999999801048034} V7 {177.8000000000000113686838 50.80000000000000426325641 50.79999999999999715782906} V8 {177.8000000000000113686838 -50.80000000000000426325641 50.79999999999999715782906}
put {body.gold.c} comb region no tree {- {l body.gold.s1} {l body.gold.s2}}
put {missile2.s2} tgc V {-117.4750000000000227373675 -277.8124999999999431565811 12.70000000000000284217094} H {-3.110602869834276865189663E-15 0 -25.39999999999999857891453} A {0 9.524999999999998578914528 0} B {-9.524999999999998578914528 0 1.166476076187853824446124E-15} C {0 0.8255000000000000115463195 0} D {-0.8255000000000000115463195 0 1.010945932696140237566435E-16}
put {missile1.s2} tgc V {-117.4749999999999943156581 277.8124999999999431565811 12.70000000000000284217094} H {-3.110602869834276865189663E-15 0 -25.39999999999999857891453} A {0 -9.524999999999998578914528 0} B {-9.524999999999998578914528 0 1.166476076187853824446124E-15} C {0 -0.8255000000000000115463195 0} D {-0.8255000000000000115463195 0 1.010945932696140237566435E-16}
put {missile2.s1} tgc V {-117.4750000000000227373675 -277.8124999999999431565811 12.70000000000000284217094} H {0 0 101.5999999999999943156581} A {0 9.524999999999998578914528 0} B {9.524999999999998578914528 0 0} C {0 9.524999999999998578914528 0} D {9.524999999999998578914528 0 0}
put {missile1.s1} tgc V {-117.4749999999999943156581 277.8124999999999431565811 12.70000000000000284217094} H {0 0 101.5999999999999943156581} A {0 -9.524999999999998578914528 0} B {9.524999999999998578914528 0 0} C {0 -9.524999999999998578914528 0} D {9.524999999999998578914528 0 0}
put {rt_leg.s1i2} arb8 V1 {25.40000000000000568434189 -98.42500000000002557953849 -241.2999999999999829469743} V2 {25.40000000000000213162821 -104.7750000000000198951966 -241.2999999999999829469743} V3 {25.40000000000000213162821 -104.7750000000000198951966 -12.7000000000000010658141} V4 {25.40000000000000568434189 -98.42500000000002557953849 -12.7000000000000010658141} V5 {-76.20000000000003126388037 -98.42500000000001136868377 -241.2999999999999829469743} V6 {-76.20000000000003126388037 -104.7750000000000056843419 -241.2999999999999829469743} V7 {-76.20000000000003126388037 -104.7750000000000056843419 -12.7000000000000010658141} V8 {-76.20000000000003126388037 -98.42500000000001136868377 -12.7000000000000010658141}
put {lt_leg.s1i2} arb8 V1 {25.40000000000001634248292 98.42500000000002557953849 -241.2999999999999829469743} V2 {25.40000000000001634248292 104.7750000000000198951966 -241.2999999999999829469743} V3 {25.40000000000001634248292 104.7750000000000198951966 -12.7000000000000010658141} V4 {25.40000000000001634248292 98.42500000000002557953849 -12.7000000000000010658141} V5 {-76.20000000000001705302566 98.42500000000002557953849 -241.2999999999999829469743} V6 {-76.20000000000001705302566 104.7750000000000198951966 -241.2999999999999829469743} V7 {-76.20000000000001705302566 104.7750000000000198951966 -12.7000000000000010658141} V8 {-76.20000000000001705302566 98.42500000000002557953849 -12.7000000000000010658141}
put {mustache.r} comb region yes tree {n {- {l head.s8} {l head.s1}} {l head.s8i}}
attr set {mustache.r} {region} {R} {region_id} {1037} {material_id} {1} {los} {100} {color} {255/255/255}
put {button.s6a} tgc V {-228.600000000000051159077 -126.9999999999999715782906 38.10000000000002273736754} H {317.5978069738537215016549 0 328.8821567148312965400692} A {11.41951933037608313270539 0 -11.02770163103658696002185} B {0 -15.87500000000000177635684 0} C {11.41951933037608490906223 0 -11.02770163103658873637869} D {0 -15.87500000000000177635684 0}
put {button.r6a} comb region yes tree {- {n {- {l button.s6a} {l button.s6}} {l body.s2a}} {l body.s2}}
attr set {button.r6a} {region} {R} {region_id} {1036} {material_id} {1} {los} {100} {color} {255/255/255}
put {button.s5a} tgc V {-228.600000000000051159077 -126.9999999999999715782906 38.10000000000002273736754} H {391.8968898810059044990339 0 235.4754078488767561339046} A {8.176229439197108206371922 0 -13.60753089864603637693108} B {0 -15.87500000000000177635684 0} C {8.176229439197108206371922 0 -13.60753089864603637693108} D {0 -15.87500000000000177635684 0}
put {button.r5a} comb region yes tree {- {n {- {l button.s5a} {l button.s5}} {l body.s2a}} {l body.s2}}
attr set {button.r5a} {region} {R} {region_id} {1035} {material_id} {1} {los} {100} {color} {255/255/255}
put {button.s4a} tgc V {-228.600000000000051159077 -126.9999999999999715782906 38.10000000000002273736754} H {439.4888473829994381958386 0 126.0213990795319745075176} A {4.375743023594861114133892 0 -15.26002942302081066827668} B {0 -15.87499999999999822364316 0} C {4.375743023594861114133892 0 -15.26002942302081066827668} D {0 -15.87499999999999822364316 0}
put {button.r4a} comb region yes tree {- {n {- {l button.s4a} {l button.s4}} {l body.s2a}} {l body.s2}}
attr set {button.r4a} {region} {R} {region_id} {1034} {material_id} {1} {los} {100} {color} {255/255/255}
put {button.s3a} tgc V {-228.6000000000000227373675 127 38.10000000000002273736754} H {317.5978069738537215016549 0 328.8821567148312965400692} A {11.41951933037608313270539 0 -11.02770163103658696002185} B {0 15.87500000000000177635684 0} C {11.41951933037608490906223 0 -11.02770163103658873637869} D {0 15.87500000000000177635684 0}
put {button.r3a} comb region yes tree {- {n {- {l button.s3a} {l button.s3}} {l body.s2a}} {l body.s2}}
attr set {button.r3a} {region} {R} {region_id} {1033} {material_id} {1} {los} {100} {color} {255/255/255}
put {button.s2a} tgc V {-228.6000000000000227373675 127 38.10000000000002273736754} H {391.8968898810059044990339 0 235.4754078488767561339046} A {8.176229439197108206371922 0 -13.60753089864603637693108} B {0 15.87500000000000177635684 0} C {8.176229439197108206371922 0 -13.60753089864603637693108} D {0 15.87500000000000177635684 0}
put {button.r2a} comb region yes tree {- {n {- {l button.s2a} {l button.s2}} {l body.s2a}} {l body.s2}}
attr set {button.r2a} {region} {R} {region_id} {1032} {material_id} {1} {los} {100} {color} {255/255/255}
put {button.s1a} tgc V {-228.6000000000000227373675 127 38.10000000000002273736754} H {439.4888473829994381958386 0 126.0213990795319745075176} A {4.375743023594861114133892 0 -15.26002942302081066827668} B {0 15.875 0} C {4.375743023594861114133892 0 -15.26002942302081066827668} D {0 15.875 0}
put {button.r1a} comb region yes tree {- {n {- {l button.s1a} {l button.s1}} {l body.s2a}} {l body.s2}}
attr set {button.r1a} {region} {R} {region_id} {1031} {material_id} {1} {los} {100} {color} {255/255/255}
put {rt_arm.s4i} tgc V {-117.4750000000000227373675 -266.6999999999999886313162 11.11250000000000248689958} H {0 0 114.3000000000000113686838} A {0 23.81249999999999644728632 0} B {23.81249999999999644728632 0 0} C {0 23.81249999999999644728632 0} D {23.81249999999999644728632 0 0}
put {lt_arm.s4i} tgc V {-117.4749999999999943156581 266.6999999999999886313162 11.11250000000000248689958} H {0 0 114.3000000000000113686838} A {0 -23.81249999999999644728632 0} B {23.81249999999999644728632 0 0} C {0 -23.81249999999999644728632 0} D {23.81249999999999644728632 0 0}
put {missile2.r} comb region yes tree {u {l missile2.s1} {l missile2.s2}}
attr set {missile2.r} {region} {R} {region_id} {1024} {material_id} {1} {los} {100} {color} {255/150/50}
put {missile1.r} comb region yes tree {u {l missile1.s1} {l missile1.s2}}
attr set {missile1.r} {region} {R} {region_id} {1023} {material_id} {1} {los} {100} {color} {255/150/50}
put {rt_ear.s2i} arb8 V1 {-104.7750000000000056843419 -152.3999999999999772626325 495.2999999999999545252649} V2 {-104.7750000000000198951966 -203.1999999999999886313162 495.2999999999999545252649} V3 {-104.7750000000000198951966 -203.1999999999999886313162 596.8999999999999772626325} V4 {-104.7750000000000056843419 -152.3999999999999772626325 596.8999999999999772626325} V5 {-130.1750000000000113686838 -152.399999999999948840923 495.2999999999999545252649} V6 {-130.1750000000000113686838 -203.1999999999999602096068 495.2999999999999545252649} V7 {-130.1750000000000113686838 -203.1999999999999602096068 596.8999999999999772626325} V8 {-130.1750000000000113686838 -152.399999999999948840923 596.8999999999999772626325}
put {lt_ear.s2i} arb8 V1 {-104.7749999999999914734872 152.3999999999999772626325 495.2999999999999545252649} V2 {-104.7749999999999914734872 203.1999999999999886313162 495.2999999999999545252649} V3 {-104.7749999999999914734872 203.1999999999999886313162 596.8999999999999772626325} V4 {-104.7749999999999914734872 152.3999999999999772626325 596.8999999999999772626325} V5 {-130.1749999999999829469743 152.3999999999999772626325 495.2999999999999545252649} V6 {-130.1749999999999829469743 203.1999999999999886313162 495.2999999999999545252649} V7 {-130.1749999999999829469743 203.1999999999999886313162 596.8999999999999772626325} V8 {-130.1749999999999829469743 152.3999999999999772626325 596.8999999999999772626325}
put {rt_leg.s1i} arb8 V1 {25.40000000000000213162821 -123.8250000000000312638804 -241.2999999999999829469743} V2 {25.40000000000000213162821 -130.1750000000000113686838 -241.2999999999999829469743} V3 {25.40000000000000213162821 -130.1750000000000113686838 -12.7000000000000010658141} V4 {25.40000000000000213162821 -123.8250000000000312638804 -12.7000000000000010658141} V5 {-76.20000000000003126388037 -123.8250000000000170530257 -241.2999999999999829469743} V6 {-76.20000000000003126388037 -130.1750000000000113686838 -241.2999999999999829469743} V7 {-76.20000000000003126388037 -130.1750000000000113686838 -12.7000000000000010658141} V8 {-76.20000000000003126388037 -123.8250000000000170530257 -12.7000000000000010658141}
put {lt_leg.s1i} arb8 V1 {25.40000000000001634248292 123.8250000000000312638804 -241.2999999999999829469743} V2 {25.40000000000001634248292 130.1750000000000113686838 -241.2999999999999829469743} V3 {25.40000000000001634248292 130.1750000000000113686838 -12.7000000000000010658141} V4 {25.40000000000001634248292 123.8250000000000312638804 -12.7000000000000010658141} V5 {-76.20000000000001705302566 123.8250000000000312638804 -241.2999999999999829469743} V6 {-76.20000000000001705302566 130.1750000000000113686838 -241.2999999999999829469743} V7 {-76.20000000000001705302566 130.1750000000000113686838 -12.7000000000000010658141} V8 {-76.20000000000001705302566 123.8250000000000312638804 -12.7000000000000010658141}
put {annual_gift_man} comb region no tree {u {u {u {l body {0.984807753012208 0 -0.17364817766693 75.4019057580597 0 1 0 0 0.17364817766693 0 0.984807753012208 27.1522734574961 0 0 0 1}} {l head {0.984807753012208 0 -0.17364817766693 75.4019057580597 0 1 0 0 0.17364817766693 0 0.984807753012208 27.1522734574961 0 0 0 1}}} {u {l hat {0.984807753012208 0 -0.17364817766693 75.4019057580597 0 1 0 0 0.17364817766693 0 0.984807753012208 27.1522734574961 0 0 0 1}} {l legs {0.984807753012208 0 -0.17364817766693 75.4019057580597 0 1 0 0 0.17364817766693 0 0.984807753012208 27.1522734574961 0 0 0 1}}}} {l arms {0.984807753012208 0 -0.17364817766693 75.4019057580597 0 1 0 0 0.17364817766693 0 0.984807753012208 27.1522734574961 0 0 0 1}}}
put {button.s6} tgc V {-228.600000000000051159077 -126.9999999999999715782906 38.10000000000002273736754} H {317.5978069738537215016549 0 328.8821567148312965400692} A {9.135615464300869348335254 0 -8.822161304829272410188423} B {0 -12.69999999999999396038675 0} C {9.135615464300869348335254 0 -8.822161304829272410188423} D {0 -12.69999999999999396038675 0}
put {button.r6} comb region yes tree {- {n {l button.s6} {l body.s4i}} {l body.s2}}
attr set {button.r6} {region} {R} {region_id} {1010} {material_id} {1} {los} {100}
put {button.s5} tgc V {-228.600000000000051159077 -126.9999999999999715782906 38.10000000000002273736754} H {391.8968898810059044990339 0 235.4754078488767561339046} A {6.540983551357687275640274 0 -10.8860247189168308779017} B {0 -12.69999999999999396038675 0} C {6.540983551357687275640274 0 -10.8860247189168308779017} D {0 -12.69999999999999396038675 0}
put {button.r5} comb region yes tree {- {n {l button.s5} {l body.s4i}} {l body.s2}}
attr set {button.r5} {region} {R} {region_id} {1009} {material_id} {1} {los} {100}
put {button.s4} tgc V {-228.600000000000051159077 -126.9999999999999715782906 38.10000000000002273736754} H {439.4888473829994381958386 0 126.0213990795319745075176} A {3.500594418875888624853587 0 -12.20802353841664888989271} B {0 -12.69999999999999396038675 0} C {3.500594418875888624853587 0 -12.20802353841664888989271} D {0 -12.69999999999999396038675 0}
put {button.r4} comb region yes tree {- {n {l button.s4} {l body.s4i}} {l body.s2}}
attr set {button.r4} {region} {R} {region_id} {1008} {material_id} {1} {los} {100}
put {button.s3} tgc V {-228.6000000000000227373675 127 38.10000000000002273736754} H {317.5978069738537215016549 0 328.8821567148312965400692} A {9.135615464300869348335254 0 -8.822161304829272410188423} B {0 12.69999999999999928945726 0} C {9.135615464300869348335254 0 -8.822161304829272410188423} D {0 12.69999999999999928945726 0}
put {button.r3} comb region yes tree {- {n {l button.s3} {l body.s4i}} {l body.s2}}
attr set {button.r3} {region} {R} {region_id} {1007} {material_id} {1} {los} {100}
put {button.s2} tgc V {-228.6000000000000227373675 127 38.10000000000002273736754} H {391.8968898810059044990339 0 235.4754078488767561339046} A {6.540983551357687275640274 0 -10.8860247189168308779017} B {0 12.69999999999999928945726 0} C {6.540983551357687275640274 0 -10.8860247189168308779017} D {0 12.69999999999999928945726 0}
put {button.r2} comb region yes tree {- {n {l button.s2} {l body.s4i}} {l body.s2}}
attr set {button.r2} {region} {R} {region_id} {1006} {material_id} {1} {los} {100}
put {button.s1} tgc V {-228.6000000000000227373675 127 38.10000000000002273736754} H {439.4888473829994381958386 0 126.0213990795319745075176} A {3.500594418875888624853587 0 -12.20802353841664888989271} B {0 12.69999999999999928945726 0} C {3.500594418875888624853587 0 -12.20802353841664888989271} D {0 12.69999999999999928945726 0}
put {button.r1} comb region yes tree {- {n {l button.s1} {l body.s4i}} {l body.s2}}
attr set {button.r1} {region} {R} {region_id} {1005} {material_id} {1} {los} {100}
put {rt_arm.s5} tgc V {-117.4750000000000227373675 -228.5999999999999658939487 304.7999999999999545252649} H {0 -41.27499999999999857891453 0} A {0 0 50.79999999999999715782906} B {50.79999999999999715782906 0 0} C {0 0 50.79999999999999715782906} D {50.79999999999999715782906 0 0}
put {lt_arm.s5} tgc V {-117.4749999999999943156581 228.5999999999999943156581 304.7999999999999545252649} H {0 41.27499999999999857891453 0} A {0 0 50.79999999999999715782906} B {50.79999999999999715782906 0 0} C {0 0 50.79999999999999715782906} D {50.79999999999999715782906 0 0}
put {rt_arm.s4} tgc V {-117.4750000000000227373675 -266.6999999999999886313162 12.70000000000000284217094} H {0 0 114.2999999999999971578291} A {0 25.39999999999999502620085 0} B {25.39999999999999857891453 0 0} C {0 25.39999999999999502620085 0} D {25.39999999999999857891453 0 0}
put {lt_arm.s4} tgc V {-117.4749999999999943156581 266.6999999999999886313162 12.70000000000000284217094} H {0 0 114.2999999999999971578291} A {0 -25.39999999999999502620085 0} B {25.39999999999999857891453 0 0} C {0 -25.39999999999999502620085 0} D {25.39999999999999857891453 0 0}
put {rt_arm.s3} arb8 V1 {-79.37500000000002842170943 -228.5999999999999943156581 -101.5999999999999943156581} V2 {-79.37500000000002842170943 -203.1999999999999886313162 -101.5999999999999943156581} V3 {-79.37500000000002842170943 -203.1999999999999886313162 -38.10000000000001563194019} V4 {-79.37500000000002842170943 -228.5999999999999943156581 -25.4000000000000198951966} V5 {-155.5750000000000170530257 -228.5999999999999658939487 -101.5999999999999943156581} V6 {-155.5749999999999602096068 -203.1999999999999602096068 -101.5999999999999801048034} V7 {-155.5750000000000454747351 -203.1999999999999602096068 -38.10000000000001563194019} V8 {-155.5750000000000738964445 -228.5999999999999658939487 -25.400000000000037658765}
put {rt_eye.s2} tgc V {-76.19999999999998863131623 -44.44999999999998863131623 603.25} H {50.79999999999999715782906 0 0} A {0 0 -6.349999999999998756550212} B {0 -6.349999999999996980193373 0} C {0 0 -6.349999999999998756550212} D {0 -6.349999999999996980193373 0}
put {lt_arm.s3} arb8 V1 {-79.375 228.5999999999999943156581 -101.5999999999999943156581} V2 {-79.375 203.1999999999999886313162 -101.5999999999999943156581} V3 {-79.375 203.1999999999999886313162 -38.10000000000001563194019} V4 {-79.375 228.5999999999999943156581 -25.4000000000000198951966} V5 {-155.5749999999999886313162 228.5999999999999943156581 -101.5999999999999943156581} V6 {-155.5749999999999317878974 203.1999999999999886313162 -101.5999999999999801048034} V7 {-155.5750000000000170530257 203.1999999999999886313162 -38.10000000000001563194019} V8 {-155.5750000000000454747351 228.5999999999999943156581 -25.400000000000037658765}
put {rt_arm.r3} comb region yes tree {l rt_arm.gray.s2}
attr set {rt_arm.r3} {region} {R} {region_id} {1022} {material_id} {1} {los} {100} {color} {50/50/50}
put {rt_arm.s2} arb8 V1 {-79.37500000000002842170943 -228.5999999999999943156581 -101.5999999999999943156581} V2 {-79.37500000000002842170943 -266.6999999999999886313162 -101.5999999999999943156581} V3 {-79.37500000000002842170943 -266.6999999999999886313162 304.7999999999999545252649} V4 {-79.37500000000002842170943 -228.5999999999999943156581 304.7999999999999545252649} V5 {-155.5750000000000170530257 -228.5999999999999658939487 -101.5999999999999943156581} V6 {-155.5750000000000170530257 -266.6999999999999886313162 -101.5999999999999943156581} V7 {-155.5750000000000170530257 -266.6999999999999886313162 304.7999999999999545252649} V8 {-155.5750000000000170530257 -228.5999999999999658939487 304.7999999999999545252649}
put {lt_eye.s2} tgc V {-76.19999999999998863131623 44.44999999999999573674359 603.25} H {50.79999999999999715782906 0 0} A {0 0 -6.349999999999998756550212} B {0 6.349999999999999644728632 0} C {0 0 -6.349999999999998756550212} D {0 6.349999999999999644728632 0}
put {rt_eye.r2} comb region yes tree {n {l rt_eye.s1} {l rt_eye.s2}}
attr set {rt_eye.r2} {region} {R} {region_id} {1030} {material_id} {1} {los} {100} {color} {0/0/0}
put {lt_arm.r3} comb region yes tree {l lt_arm.gray.s2}
attr set {lt_arm.r3} {region} {R} {region_id} {1021} {material_id} {1} {los} {100} {color} {50/50/50}
put {lt_arm.s2} arb8 V1 {-79.375 228.5999999999999943156581 -101.5999999999999943156581} V2 {-79.375 266.6999999999999886313162 -101.5999999999999943156581} V3 {-79.375 266.6999999999999886313162 304.7999999999999545252649} V4 {-79.375 228.5999999999999943156581 304.7999999999999545252649} V5 {-155.5749999999999886313162 228.5999999999999943156581 -101.5999999999999943156581} V6 {-155.5749999999999886313162 266.6999999999999886313162 -101.5999999999999943156581} V7 {-155.5749999999999886313162 266.6999999999999886313162 304.7999999999999545252649} V8 {-155.5749999999999886313162 228.5999999999999943156581 304.7999999999999545252649}
put {rt_eye.s1} ell V {-50.80000000000000426325641 -44.44999999999998863131623 603.25} A {19.04999999999999715782906 0 0} B {0 -19.04999999999999715782906 0} C {0 0 19.04999999999999715782906}
put {rt_arm.r2} comb region yes tree {n {l rt_arm.c} {l rt_arm.gray.s}}
attr set {rt_arm.r2} {region} {R} {region_id} {1019} {material_id} {1} {los} {100} {color} {50/50/50}
put {rt_arm.s1} tgc V {-117.4750000000000227373675 -228.5999999999999658939487 304.7999999999999545252649} H {0 -38.09999999999999431565811 0} A {0 0 76.19999999999998863131623} B {76.19999999999998863131623 0 0} C {0 0 76.19999999999998863131623} D {76.19999999999998863131623 0 0}
put {lt_eye.r2} comb region yes tree {n {l lt_eye.s1} {l lt_eye.s2}}
attr set {lt_eye.r2} {region} {R} {region_id} {1028} {material_id} {1} {los} {100} {color} {0/0/0}
put {lt_eye.s1} ell V {-50.79999999999999715782906 44.44999999999999573674359 603.25} A {19.04999999999999715782906 0 0} B {0 19.04999999999999715782906 0} C {0 0 19.04999999999999715782906}
put {rt_eye.r1} comb region yes tree {- {l rt_eye.s1} {l rt_eye.s2}}
attr set {rt_eye.r1} {region} {R} {region_id} {1029} {material_id} {1} {los} {100} {color} {255/255/255}
put {lt_arm.r2} comb region yes tree {n {l lt_arm.c} {l lt_arm.gray.s}}
attr set {lt_arm.r2} {region} {R} {region_id} {1020} {material_id} {1} {los} {100} {color} {50/50/50}
put {lt_arm.s1} tgc V {-117.4749999999999943156581 228.5999999999999943156581 304.7999999999999545252649} H {0 38.09999999999999431565811 0} A {0 0 76.19999999999998863131623} B {76.19999999999998863131623 0 0} C {0 0 76.19999999999998863131623} D {76.19999999999998863131623 0 0}
put {rt_arm.r1} comb region yes tree {- {- {l rt_arm.c} {l rt_arm.gray.s}} {l rt_arm.gray.s2}}
attr set {rt_arm.r1} {region} {R} {region_id} {1018} {material_id} {1} {los} {100} {color} {255/0/0}
put {lt_eye.r1} comb region yes tree {- {l lt_eye.s1} {l lt_eye.s2}}
attr set {lt_eye.r1} {region} {R} {region_id} {1027} {material_id} {1} {los} {100} {color} {255/255/255}
put {lt_arm.r1} comb region yes tree {- {- {l lt_arm.c} {l lt_arm.gray.s}} {l lt_arm.gray.s2}}
attr set {lt_arm.r1} {region} {R} {region_id} {1017} {material_id} {1} {los} {100} {color} {255/0/0}
put {rt_ear.s2} tgc V {-130.1750000000000113686838 -152.3999999999999772626325 546.1000000000000227373675} H {25.39999999999999857891453 0 0} A {0 0 -50.7999999999999900524017} B {0 -50.79999999999997584154698 0} C {0 0 -50.7999999999999900524017} D {0 -50.79999999999997584154698 0}
put {lt_ear.s2} tgc V {-130.1749999999999829469743 152.4000000000000056843419 546.1000000000000227373675} H {25.39999999999999857891453 0 0} A {0 0 -50.7999999999999900524017} B {0 50.79999999999999715782906 0} C {0 0 -50.7999999999999900524017} D {0 50.79999999999999715782906 0}
put {rt_ear.s1} arb8 V1 {-104.7750000000000056843419 -76.19999999999997442046151 533.3999999999999772626325} V2 {-104.7750000000000056843419 -152.4000000000000056843419 533.3999999999999772626325} V3 {-104.7750000000000056843419 -152.4000000000000056843419 558.7999999999999545252649} V4 {-104.7750000000000056843419 -76.19999999999997442046151 558.7999999999999545252649} V5 {-130.1749999999999829469743 -76.19999999999997442046151 533.3999999999999772626325} V6 {-130.1750000000000113686838 -152.3999999999999772626325 533.3999999999999772626325} V7 {-130.1750000000000113686838 -152.3999999999999772626325 558.7999999999999545252649} V8 {-130.1749999999999829469743 -76.19999999999997442046151 558.7999999999999545252649}
put {rt_leg.s3} tgc V {-25.40000000000001278976924 -101.5999999999999943156581 -12.69999999999999928945726} H {0 -25.39999999999998792077349 0} A {0 0 76.19999999999997442046151} B {76.19999999999998863131623 0 0} C {0 0 76.19999999999997442046151} D {76.19999999999998863131623 0 0}
put {lt_ear.s1} arb8 V1 {-104.7749999999999914734872 76.19999999999998863131623 533.3999999999999772626325} V2 {-104.7749999999999914734872 152.4000000000000056843419 533.3999999999999772626325} V3 {-104.7749999999999914734872 152.4000000000000056843419 558.7999999999999545252649} V4 {-104.7749999999999914734872 76.19999999999998863131623 558.7999999999999545252649} V5 {-130.1749999999999829469743 76.19999999999998863131623 533.3999999999999772626325} V6 {-130.1749999999999829469743 152.4000000000000056843419 533.3999999999999772626325} V7 {-130.1749999999999829469743 152.4000000000000056843419 558.7999999999999545252649} V8 {-130.1749999999999829469743 76.19999999999998863131623 558.7999999999999545252649}
put {lt_leg.s3} tgc V {-25.39999999999999857891453 101.5999999999999943156581 -12.69999999999999928945726} H {0 25.39999999999999857891453 0} A {0 0 76.19999999999997442046151} B {76.19999999999998863131623 0 0} C {0 0 76.19999999999997442046151} D {76.19999999999998863131623 0 0}
put {rt_leg.r3} comb region yes tree {n {l rt_leg.c} {l rt_leg.black.s}}
attr set {rt_leg.r3} {region} {R} {region_id} {1014} {material_id} {1} {los} {100} {color} {0/0/0}
put {rt_leg.s2} arb8 V1 {76.19999999999998863131623 -76.20000000000000284217094 -317.4999999999999431565811} V2 {76.19999999999994599875208 -152.3999999999999772626325 -317.4999999999999431565811} V3 {101.5999999999999801048034 -165.100000000000051159077 -355.5999999999999090505298} V4 {101.6000000000000369482223 -63.50000000000000710542736 -355.5999999999999090505298} V5 {-126.9999999999999857891453 -76.19999999999990336618794 -317.4999999999998863131623} V6 {-126.9999999999999857891453 -152.399999999999948840923 -317.4999999999999431565811} V7 {-127.0000000000000284217094 -165.0999999999999943156581 -355.5999999999999090505298} V8 {-127.0000000000000426325641 -63.49999999999993605115378 -355.5999999999999090505298}
put {lt_leg.r3} comb region yes tree {n {l lt_leg.c} {l lt_leg.black.s}}
attr set {lt_leg.r3} {region} {R} {region_id} {1013} {material_id} {1} {los} {100} {color} {0/0/0}
put {lt_leg.s2} arb8 V1 {76.20000000000000284217094 76.19999999999998863131623 -317.4999999999999431565811} V2 {76.1999999999999602096068 152.3999999999999772626325 -317.4999999999999431565811} V3 {101.5999999999999943156581 165.100000000000051159077 -355.5999999999999090505298} V4 {101.600000000000051159077 63.49999999999999289457264 -355.5999999999999090505298} V5 {-126.9999999999999715782906 76.19999999999991757704265 -317.4999999999998863131623} V6 {-126.9999999999999715782906 152.3999999999999772626325 -317.4999999999999431565811} V7 {-127.0000000000000142108547 165.1000000000000227373675 -355.5999999999999090505298} V8 {-127.0000000000000284217094 63.4999999999999502620085 -355.5999999999999090505298}
put {rt_leg.r2} comb region yes tree {n {l rt_leg.c} {l rt_leg.white.s}}
attr set {rt_leg.r2} {region} {R} {region_id} {1015} {material_id} {1} {los} {100} {color} {255/255/255}
put {rt_leg.s1} arb8 V1 {50.79999999999998294697434 -101.5999999999999943156581 -317.5} V2 {50.79999999999998294697434 -127 -317.5} V3 {50.79999999999998294697434 -127 -12.69999999999999928945726} V4 {50.79999999999998294697434 -101.5999999999999943156581 -12.69999999999999928945726} V5 {-101.6000000000000085265128 -101.5999999999999801048034 -317.5} V6 {-101.6000000000000085265128 -126.9999999999999857891453 -317.5} V7 {-101.6000000000000085265128 -126.9999999999999857891453 -12.69999999999999928945726} V8 {-101.6000000000000085265128 -101.5999999999999801048034 -12.69999999999999928945726}
put {lt_leg.r2} comb region yes tree {n {l lt_leg.c} {l lt_leg.white.s}}
attr set {lt_leg.r2} {region} {R} {region_id} {1012} {material_id} {1} {los} {100} {color} {255/255/255}
put {lt_leg.s1} arb8 V1 {50.79999999999999715782906 101.5999999999999943156581 -317.5} V2 {50.79999999999999715782906 127 -317.5} V3 {50.79999999999999715782906 127 -12.69999999999999928945726} V4 {50.79999999999999715782906 101.5999999999999943156581 -12.69999999999999928945726} V5 {-101.5999999999999943156581 101.5999999999999943156581 -317.5} V6 {-101.5999999999999943156581 127 -317.5} V7 {-101.5999999999999943156581 127 -12.69999999999999928945726} V8 {-101.5999999999999943156581 101.5999999999999943156581 -12.69999999999999928945726}
put {rt_leg.r1} comb region yes tree {- {- {- {- {l rt_leg.c} {l rt_leg.white.s}} {l rt_leg.black.s}} {l rt_leg.s1i}} {l rt_leg.s1i2}}
attr set {rt_leg.r1} {region} {R} {region_id} {1016} {material_id} {1} {los} {100} {color} {255/0/0}
put {lt_leg.r1} comb region yes tree {- {- {- {- {l lt_leg.c} {l lt_leg.white.s}} {l lt_leg.black.s}} {l lt_leg.s1i}} {l lt_leg.s1i2}}
attr set {lt_leg.r1} {region} {R} {region_id} {1011} {material_id} {1} {los} {100} {color} {255/0/0}
put {body.s3i2} arb8 V1 {-6.151326253166899959978764 231.3729373086425198380311 390.9270626913569799398829} V2 {-6.151326253166907065406122 175.6740115273925368910568 446.6259884726068776217289} V3 {-6.151326253166899959978764 222.1160604959457600671158 493.068037441160242906335} V4 {-6.151326253166892854551406 277.8149862771957714357995 437.369111659910345224489} V5 {-231.13999999999995793587 231.37293730864257668145 390.9270626913569799398829} V6 {-231.13999999999995793587 175.6740115273925653127662 446.6259884726068776217289} V7 {-231.13999999999995793587 222.1160604959457884888252 493.068037441160242906335} V8 {-231.13999999999995793587 277.8149862771958282792184 437.369111659910345224489}
put {body.s3i1} arb8 V1 {-6.151326253166928381688194 -231.37293730864257668145 390.9270626913570367833017} V2 {-6.151326253166928381688194 -175.6740115273925368910568 446.6259884726068776217289} V3 {-6.151326253166928381688194 -222.1160604959457600671158 493.068037441160242906335} V4 {-6.151326253166928381688194 -277.8149862771958282792184 437.369111659910345224489} V5 {-231.1399999999999863575795 -231.37293730864257668145 390.9270626913570367833017} V6 {-231.1399999999999863575795 -175.6740115273925368910568 446.6259884726068776217289} V7 {-231.1399999999999863575795 -222.1160604959457600671158 493.068037441160242906335} V8 {-231.1399999999999863575795 -277.8149862771958282792184 437.369111659910345224489}
put {rt_ear.r} comb region yes tree {u {l rt_ear.s1} {n {l rt_ear.s2} {l rt_ear.s2i}}}
attr set {rt_ear.r} {region} {R} {region_id} {1026} {material_id} {1} {los} {100} {color} {50/50/50}
put {lt_ear.r} comb region yes tree {u {l lt_ear.s1} {n {l lt_ear.s2} {l lt_ear.s2i}}}
attr set {lt_ear.r} {region} {R} {region_id} {1025} {material_id} {1} {los} {100} {color} {50/50/50}
put {rt_arm.c} comb region no tree {u {u {u {u {l rt_arm.s1} {l rt_arm.s2}} {l rt_arm.s3}} {- {l rt_arm.s4} {l rt_arm.s4i}}} {l rt_arm.s5}}
put {lt_arm.c} comb region no tree {u {u {u {u {l lt_arm.s1} {l lt_arm.s2}} {l lt_arm.s3}} {- {l lt_arm.s4} {l lt_arm.s4i}}} {l lt_arm.s5}}
put {rt_leg.c} comb region no tree {u {u {l rt_leg.s1} {l rt_leg.s2}} {l rt_leg.s3}}
put {lt_leg.c} comb region no tree {u {u {l lt_leg.s1} {l lt_leg.s2}} {l lt_leg.s3}}
put {body.s4i} tgc V {-228.6000000000000227373675 -228.5999999999999943156581 38.09999999999999431565811} H {0 457.1999999999999886313162 0} A {0 0 381.0000000000000568434189} B {457.1999999999999886313162 0 0} C {0 0 381.0000000000000568434189} D {457.1999999999999886313162 0 0}
put {body.s2i} arb8 V1 {228.5999999999999943156581 -228.5999999999999943156581 342.8999999999999772626325} V2 {228.5999999999999943156581 228.5999999999999943156581 342.8999999999999772626325} V3 {228.5999999999999943156581 228.5999999999999943156581 38.09999999999999431565811} V4 {228.5999999999999943156581 -228.5999999999999943156581 38.09999999999999431565811} V5 {-228.5999999999999943156581 -228.5999999999999943156581 342.8999999999999772626325} V6 {-228.5999999999999943156581 228.5999999999999943156581 342.8999999999999772626325} V7 {-228.5999999999999943156581 228.5999999999999943156581 38.09999999999999431565811} V8 {-228.5999999999999943156581 -228.5999999999999943156581 38.09999999999999431565811}
put {buttons} comb region no tree {u {u {u {u {l button.r1} {l button.r1a}} {u {l button.r2} {l button.r2a}}} {u {u {l button.r3} {l button.r3a}} {u {l button.r4} {l button.r4a}}}} {u {u {l button.r5} {l button.r5a}} {u {l button.r6} {l button.r6a}}}}
attr set {buttons} {color} {0/255/0}
put {head.s9i} arb8 V1 {-98.42500000000002557953849 -76.1999999999999602096068 514.3499999999996816768544} V2 {-98.42500000000002557953849 76.1999999999999602096068 514.3499999999996816768544} V3 {-98.42500000000002557953849 76.1999999999999602096068 457.2000000000000454747351} V4 {-98.42500000000002557953849 -76.1999999999999602096068 457.2000000000000454747351} V5 {-9.525000000000012789769244 -76.1999999999999602096068 514.3499999999996816768544} V6 {-9.525000000000012789769244 76.1999999999999602096068 514.3499999999996816768544} V7 {-9.525000000000012789769244 76.1999999999999602096068 457.2000000000000454747351} V8 {-9.525000000000012789769244 -76.1999999999999602096068 457.2000000000000454747351}
put {body.s2a} tgc V {-228.6000000000000227373675 -228.5999999999999943156581 38.09999999999999431565811} H {0 457.1999999999999886313162 0} A {0 0 361.9499999999999886313162} B {438.1499999999999772626325 0 0} C {0 0 361.9500000000000454747351} D {438.1499999999999772626325 0 0}
put {head.s8i} arb8 V1 {-98.42500000000001136868377 -69.84999999999999431565811 514.3499999999997953636921} V2 {-98.42500000000001136868377 69.84999999999999431565811 514.3499999999997953636921} V3 {-98.42500000000001136868377 25.39999999999999857891453 546.1000000000000227373675} V4 {-98.42500000000001136868377 -25.39999999999999857891453 546.1000000000000227373675} V5 {-9.525000000000019895196601 -69.85000000000027853275242 514.3499999999994543031789} V6 {-9.525000000000019895196601 69.85000000000027853275242 514.3499999999995679900167} V7 {-9.525000000000019895196601 25.40000000000017266188479 546.1000000000000227373675} V8 {-9.525000000000019895196601 -25.40000000000007673861546 546.1000000000000227373675}
put {head.s7i} arb8 V1 {-98.42500000000001136868377 -63.49999999999999289457264 514.3499999999997953636921} V2 {-98.42500000000001136868377 63.49999999999999289457264 514.3499999999997953636921} V3 {-98.42500000000001136868377 63.49999999999999289457264 463.5499999999998408384272} V4 {-98.42500000000001136868377 -63.49999999999999289457264 463.5499999999998408384272} V5 {-9.525000000000019895196601 -63.49999999999999289457264 514.3499999999997953636921} V6 {-9.525000000000019895196601 63.49999999999999289457264 514.3499999999997953636921} V7 {-9.525000000000019895196601 63.49999999999999289457264 463.5499999999998408384272} V8 {-9.525000000000019895196601 -63.49999999999999289457264 463.5499999999998408384272}
put {head.s4i} arb8 V1 {-3.110602869834276076328758E-15 -25.39999999999999502620085 587.3749999999998863131623} V2 {-7.776507174585689796391442E-15 -63.49999999999998578914528 587.3749999999998863131623} V3 {-7.776507174585689796391442E-15 -63.49999999999998578914528 619.125} V4 {-3.110602869834276076328758E-15 -25.39999999999999502620085 619.125} V5 {-50.7999999999999900524017 -25.39999999999998792077349 587.3749999999998863131623} V6 {-50.79999999999999715782906 -63.49999999999997868371793 587.3749999999998863131623} V7 {-50.79999999999999715782906 -63.49999999999997868371793 619.125} V8 {-50.7999999999999900524017 -25.39999999999998792077349 619.125}
put {head.s3i} arb8 V1 {0 25.39999999999999502620085 587.3749999999998863131623} V2 {0 63.49999999999998578914528 587.3749999999998863131623} V3 {0 63.49999999999998578914528 619.125} V4 {0 25.39999999999999502620085 619.125} V5 {-50.7999999999999900524017 25.39999999999999502620085 587.3749999999998863131623} V6 {-50.7999999999999900524017 63.49999999999998578914528 587.3749999999998863131623} V7 {-50.7999999999999900524017 63.49999999999998578914528 619.125} V8 {-50.7999999999999900524017 25.39999999999999502620085 619.125}
put {head.s2i} arb8 V1 {-98.42500000000001136868377 -107.9499999999999886313162 527.0499999999998408384272} V2 {-98.42500000000001136868377 107.9499999999999886313162 527.0499999999998408384272} V3 {-98.42500000000001136868377 107.9499999999999886313162 565.1499999999998635757947} V4 {-98.42500000000001136868377 -107.9499999999999886313162 565.1499999999998635757947} V5 {-136.5249999999999772626325 -107.9499999999999886313162 527.0499999999998408384272} V6 {-136.5249999999999772626325 107.9499999999999886313162 527.0499999999998408384272} V7 {-136.5249999999999772626325 107.9499999999999886313162 565.1499999999998635757947} V8 {-136.5249999999999772626325 -107.9499999999999886313162 565.1499999999998635757947}
put {head.s1i} tgc V {-117.4749999999999943156581 0 444.5} H {0 0 203.2000000000000454747351} A {0 -100.0125000000000028421709 0} B {100.0125000000000170530257 0 0} C {0 -100.0125000000000028421709 0} D {100.0125000000000170530257 0 0}
put {beard.r} comb region yes tree {- {n {- {l head.s8} {l head.s1}} {l head.s9}} {l head.s9i}}
attr set {beard.r} {region} {R} {region_id} {1038} {material_id} {1} {los} {100} {color} {255/255/255}
put {body.s5} arb8 V1 {31.75 -25.39999999999999857891453 444.5} V2 {31.75 25.39999999999999857891453 444.5} V3 {31.75 25.39999999999999857891453 342.8999999999999772626325} V4 {31.75 -25.39999999999999857891453 342.8999999999999772626325} V5 {-228.5999999999999943156581 -25.39999999999999857891453 444.5} V6 {-228.5999999999999943156581 25.39999999999999857891453 444.5} V7 {-228.5999999999999943156581 25.39999999999999857891453 342.8999999999999772626325} V8 {-228.5999999999999943156581 -25.39999999999999857891453 342.8999999999999772626325}
put {body.s4} arb8 V1 {228.5999999999999943156581 -25.39999999999999857891453 38.09999999999999431565811} V2 {228.5999999999999943156581 25.39999999999999857891453 38.09999999999999431565811} V3 {228.5999999999999943156581 25.39999999999999857891453 342.8999999999999772626325} V4 {228.5999999999999943156581 -25.39999999999999857891453 342.8999999999999772626325} V5 {-228.5999999999999943156581 -25.39999999999999857891453 38.09999999999999431565811} V6 {-228.5999999999999943156581 25.39999999999999857891453 38.09999999999999431565811} V7 {-228.5999999999999943156581 25.39999999999999857891453 342.8999999999999772626325} V8 {-228.5999999999999943156581 -25.39999999999999857891453 342.8999999999999772626325}
put {body.r4} comb region yes tree {u {- {n {l body.c} {l body.white.s1}} {l body.gold.s1}} {- {n {l body.c} {l body.white.s2}} {l body.gold.s1}}}
attr set {body.r4} {region} {R} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
put {body.s3} arb8 V1 {-6.349999999999999644728632 -228.600000000000051159077 342.8999999999998635757947} V2 {-6.349999999999999644728632 228.600000000000051159077 342.8999999999998635757947} V3 {-6.349999999999999644728632 228.600000000000051159077 444.5000000000000568434189} V4 {-6.349999999999999644728632 -228.600000000000051159077 444.5000000000000568434189} V5 {-228.6000000000000795807864 -228.600000000000051159077 342.8999999999998635757947} V6 {-228.6000000000000795807864 228.600000000000051159077 342.8999999999998635757947} V7 {-228.6000000000000795807864 228.600000000000051159077 444.5000000000000568434189} V8 {-228.6000000000000795807864 -228.600000000000051159077 444.5000000000000568434189}
put {body.r3} comb region yes tree {n {l body.c} {l body.gold.c}}
attr set {body.r3} {region} {R} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/215/0}
put {body.s2} tgc V {-228.6000000000000227373675 -228.5999999999999943156581 38.09999999999999431565811} H {0 457.1999999999999886313162 0} A {0 0 355.5999999999999658939487} B {431.7999999999998976818461 0 0} C {0 0 355.5999999999999658939487} D {431.7999999999998976818461 0 0}
put {body.r2} comb region yes tree {- {n {l body.c} {l body.black.s1}} {l body.gold.c}}
attr set {body.r2} {region} {R} {region_id} {1000} {material_id} {1} {los} {100} {color} {0/0/0}
put {body.s1} arb8 V1 {228.5999999999999658939487 -228.5999999999999658939487 -12.69999999999999928945726} V2 {228.5999999999999658939487 228.5999999999999658939487 -12.69999999999999928945726} V3 {228.5999999999999658939487 228.5999999999999658939487 38.09999999999999431565811} V4 {228.5999999999999658939487 -228.5999999999999658939487 38.09999999999999431565811} V5 {-228.5999999999999658939487 -228.5999999999999658939487 -12.69999999999999928945726} V6 {-228.5999999999999658939487 228.5999999999999658939487 -12.69999999999999928945726} V7 {-228.5999999999999658939487 228.5999999999999658939487 38.09999999999999431565811} V8 {-228.5999999999999658939487 -228.5999999999999658939487 38.09999999999999431565811}
put {body.r1} comb region yes tree {- {- {- {- {l body.c} {l body.white.s1}} {l body.white.s2}} {l body.black.s1}} {l body.gold.s1}}
attr set {body.r1} {region} {R} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/0/0}
put {head.s9} arb8 V1 {-98.42500000000001136868377 -88.89999999999997726263246 514.3499999999996816768544} V2 {-98.42500000000001136868377 88.89999999999997726263246 514.3499999999996816768544} V3 {-98.42500000000001136868377 88.89999999999997726263246 444.4999999999998863131623} V4 {-98.42500000000001136868377 -88.89999999999997726263246 444.4999999999998863131623} V5 {-9.525000000000016342482922 -88.89999999999997726263246 514.3499999999996816768544} V6 {-9.525000000000016342482922 88.89999999999997726263246 514.3499999999996816768544} V7 {-9.525000000000016342482922 88.89999999999997726263246 444.4999999999998863131623} V8 {-9.525000000000016342482922 -88.89999999999997726263246 444.4999999999998863131623}
put {head.s8} tgc V {-117.4749999999999943156581 0 444.5} H {0 0 203.1999999999999886313162} A {0 -107.9499999999999886313162 0} B {107.9499999999999744204615 0 0} C {0 -107.9499999999999886313162 0} D {107.9499999999999744204615 0 0}
put {head.s6} ell V {-15.875 0 546.1000000000000227373675} A {25.39999999999999857891453 0 0} B {0 25.39999999999999857891453 0} C {0 0 6.349999999999999644728632}
put {head.s5} tgc V {-15.875 0 546.1000000000000227373675} H {0 0 69.84999999999999431565811} A {0 -25.39999999999999857891453 0} B {25.39999999999999857891453 0 0} C {0 -1.587499999999999911182158 0} D {1.587499999999999911182158 0 0}
put {head.s1} tgc V {-117.4749999999999943156581 0 444.5} H {0 0 203.1999999999999886313162} A {0 -101.6000000000000085265128 0} B {101.6000000000000227373675 0 0} C {0 -101.6000000000000085265128 0} D {101.6000000000000227373675 0 0}
put {head.r1} comb region yes tree {u {u {- {- {- {- {- {l head.s1} {l head.s1i}} {l head.s2i}} {l head.s3i}} {l head.s4i}} {l head.s7i}} {l head.s5}} {l head.s6}}
attr set {head.r1} {region} {R} {region_id} {1002} {material_id} {1} {los} {100} {color} {50/50/50}
put {rt_arm} comb region no tree {u {u {l rt_arm.r1} {l rt_arm.r2}} {u {l rt_arm.r3} {l missile2.r}}}
put {lt_arm} comb region no tree {u {u {l lt_arm.r1} {l lt_arm.r2}} {u {l lt_arm.r3} {l missile1.r}}}
put {rt_leg} comb region no tree {u {u {l rt_leg.r1} {l rt_leg.r2}} {l rt_leg.r3}}
put {lt_leg} comb region no tree {u {u {l lt_leg.r1} {l lt_leg.r2}} {l lt_leg.r3}}
put {rt_leg.white.s} arb8 V1 {127 -1.555301434917138590367013E-14 -253.9999999999999147348717} V2 {126.9999999999999715782906 -203.2000000000001023181539 -253.9999999999999147348717} V3 {126.9999999999999715782906 -203.2000000000001023181539 -279.3999999999999204192136} V4 {127 -1.555301434917138590367013E-14 -279.3999999999999204192136} V5 {-152.3999999999999772626325 1.866361721900566119113798E-14 -253.9999999999999147348717} V6 {-152.4000000000000056843419 -203.2000000000000454747351 -253.9999999999999147348717} V7 {-152.4000000000000056843419 -203.2000000000000454747351 -279.3999999999999204192136} V8 {-152.3999999999999772626325 1.866361721900566119113798E-14 -279.3999999999999204192136}
put {lt_leg.white.s} arb8 V1 {127 0 -253.9999999999999147348717} V2 {127 203.2000000000000738964445 -253.9999999999999147348717} V3 {127 203.2000000000000738964445 -279.3999999999999204192136} V4 {127 0 -279.3999999999999204192136} V5 {-152.3999999999999772626325 0 -253.9999999999999147348717} V6 {-152.3999999999999772626325 203.2000000000000738964445 -253.9999999999999147348717} V7 {-152.3999999999999772626325 203.2000000000000738964445 -279.3999999999999204192136} V8 {-152.3999999999999772626325 0 -279.3999999999999204192136}
put {body.c} comb region no tree {u {u {u {u {l body.s1} {n {l body.s2} {l body.s2i}}} {- {- {l body.s3} {l body.s3i1}} {l body.s3i2}}} {n {l body.s4} {l body.s4i}}} {l body.s5}}
put {hat.s3} ell V {-117.4749999999999943156581 0 889} A {38.09999999999999431565811 0 0} B {0 38.09999999999999431565811 0} C {0 0 38.09999999999999431565811}
put {hat.r3} comb region yes tree {l hat.s3}
attr set {hat.r3} {region} {R} {region_id} {1004} {material_id} {1} {los} {100} {color} {255/255/255}
put {hat.s2} tgc V {-117.4749999999999943156581 0 685.8000000000000682121026} H {0 0 203.1999999999999886313162} A {0 -101.5999999999999943156581 0} B {101.5999999999999943156581 0 0} C {0 -12.69999999999999928945726 0} D {12.69999999999999928945726 0 0}
put {hat.r2} comb region yes tree {l hat.s2}
attr set {hat.r2} {region} {R} {region_id} {1003} {material_id} {1} {los} {100} {color} {255/0/0}
put {hat.s1} tgc V {-117.4749999999999943156581 0 647.7000000000000454747351} H {0 0 38.09999999999999431565811} A {0 -114.2999999999999829469743 0} B {114.2999999999999829469743 0 0} C {0 -114.2999999999999829469743 0} D {114.2999999999999829469743 0 0}
put {hat.r1} comb region yes tree {l hat.s1}
attr set {hat.r1} {region} {R} {region_id} {1001} {material_id} {1} {los} {100} {color} {255/255/255}
put {rt_leg.black.s} arb8 V1 {127 -1.555301434917138590367013E-14 -355.5999999999999090505298} V2 {126.9999999999999715782906 -203.2000000000001023181539 -355.5999999999999090505298} V3 {126.9999999999999715782906 -203.2000000000001023181539 -279.3999999999999204192136} V4 {127 -1.555301434917138590367013E-14 -279.3999999999999204192136} V5 {-152.3999999999999772626325 1.866361721900566119113798E-14 -355.5999999999999090505298} V6 {-152.4000000000000056843419 -203.2000000000000454747351 -355.5999999999999090505298} V7 {-152.4000000000000056843419 -203.2000000000000454747351 -279.3999999999999204192136} V8 {-152.3999999999999772626325 1.866361721900566119113798E-14 -279.3999999999999204192136}
put {lt_leg.black.s} arb8 V1 {127 0 -355.5999999999999090505298} V2 {127 203.2000000000000738964445 -355.5999999999999090505298} V3 {127 203.2000000000000738964445 -279.3999999999999204192136} V4 {127 0 -279.3999999999999204192136} V5 {-152.3999999999999772626325 0 -355.5999999999999090505298} V6 {-152.3999999999999772626325 203.2000000000000738964445 -355.5999999999999090505298} V7 {-152.3999999999999772626325 203.2000000000000738964445 -279.3999999999999204192136} V8 {-152.3999999999999772626325 0 -279.3999999999999204192136}
put {rt_arm.gray.s2} tgc V {-117.4750000000000227373675 -228.5999999999999658939487 304.7999999999999545252649} H {0 -41.27499999999999857891453 0} A {0 0 25.39999999999999857891453} B {25.39999999999999857891453 0 0} C {0 0 25.39999999999999857891453} D {25.39999999999999857891453 0 0}
put {lt_arm.gray.s2} tgc V {-117.4749999999999943156581 228.5999999999999943156581 304.7999999999999545252649} H {0 41.27499999999999857891453 0} A {0 0 25.39999999999999857891453} B {25.39999999999999857891453 0 0} C {0 0 25.39999999999999857891453} D {25.39999999999999857891453 0 0}
put {arms} comb region no tree {u {l lt_arm {-0.5 0 -0.866025403784439 87.752043073497 0 1 0 0 0.866025403784439 0 -0.5 558.936334309577 0 0 0 1}} {l rt_arm {-0.17364817766693 0 -0.984807753012208 162.295083446698 0 1 0 0 0.984807753012208 0 -0.17364817766693 473.418255337989 0 0 0 1}}}
put {eyes} comb region no tree {u {u {l lt_eye.r1} {l lt_eye.r2}} {u {l rt_eye.r1} {l rt_eye.r2}}}
put {body} comb region no tree {u {u {u {l body.r1} {l body.r2}} {u {l body.r3} {l body.r4}}} {l buttons}}
put {legs} comb region no tree {u {l lt_leg {0.707106781186548 0 -0.707106781186547 -16.4197438789308 0 1 0 0 0.707106781186547 0 0.707106781186548 14.2407683632075 0 0 0 1}} {l rt_leg {0.984807753012208 0 0.17364817766693 1.8194487828801 0 1 0 0 -0.17364817766693 0 0.984807753012208 -4.60360524948499 0 0 0 1}}}
put {head} comb region no tree {u {u {u {l head.r1} {l lt_ear.r}} {u {l rt_ear.r} {l eyes}}} {u {l mustache.r} {l beard.r}}}
put {hat} comb region no tree {u {u {l hat.r1} {l hat.r2}} {l hat.r3}}
put {rt_arm.gray.s} arb8 V1 {-76.20000000000001705302566 -177.7999999999999545252649 -12.69999999999999928945726} V2 {-76.20000000000001705302566 -279.3999999999999772626325 -12.69999999999999928945726} V3 {-76.20000000000001705302566 -279.3999999999999772626325 -114.2999999999999971578291} V4 {-76.20000000000001705302566 -177.7999999999999545252649 -114.2999999999999971578291} V5 {-165.1000000000000227373675 -177.7999999999999261035555 -12.69999999999999928945726} V6 {-165.1000000000000227373675 -279.3999999999999772626325 -12.69999999999999928945726} V7 {-165.1000000000000227373675 -279.3999999999999772626325 -114.2999999999999971578291} V8 {-165.1000000000000227373675 -177.7999999999999261035555 -114.2999999999999971578291}
put {lt_arm.gray.s} arb8 V1 {-76.19999999999998863131623 177.7999999999999545252649 -12.69999999999999928945726} V2 {-76.19999999999998863131623 279.3999999999999772626325 -12.69999999999999928945726} V3 {-76.19999999999998863131623 279.3999999999999772626325 -114.2999999999999971578291} V4 {-76.19999999999998863131623 177.7999999999999545252649 -114.2999999999999971578291} V5 {-165.0999999999999943156581 177.7999999999999545252649 -12.69999999999999928945726} V6 {-165.0999999999999943156581 279.3999999999999772626325 -12.69999999999999928945726} V7 {-165.0999999999999943156581 279.3999999999999772626325 -114.2999999999999971578291} V8 {-165.0999999999999943156581 177.7999999999999545252649 -114.2999999999999971578291}
put {body.white.s2} arb8 V1 {228.6000000000000227373675 -25.39999999999999857891453 38.09999999999999431565811} V2 {228.6000000000000227373675 25.39999999999999857891453 38.09999999999999431565811} V3 {228.6000000000000227373675 25.39999999999999857891453 444.5000000000000568434189} V4 {228.6000000000000227373675 -25.39999999999999857891453 444.5000000000000568434189} V5 {-228.6000000000000227373675 -25.39999999999999857891453 38.09999999999999431565811} V6 {-228.6000000000000227373675 25.39999999999999857891453 38.09999999999999431565811} V7 {-228.6000000000000227373675 25.39999999999999857891453 444.5000000000000568434189} V8 {-228.6000000000000227373675 -25.39999999999999857891453 444.5000000000000568434189}
put {body.white.s1} arb8 V1 {228.5999999999999658939487 -228.5999999999999658939487 -12.69999999999999928945726} V2 {228.5999999999999658939487 228.5999999999999658939487 -12.69999999999999928945726} V3 {228.5999999999999658939487 228.5999999999999658939487 63.49999999999999289457264} V4 {228.5999999999999658939487 -228.5999999999999658939487 63.49999999999999289457264} V5 {-228.5999999999999658939487 -228.5999999999999658939487 -12.69999999999999928945726} V6 {-228.5999999999999658939487 228.5999999999999658939487 -12.69999999999999928945726} V7 {-228.5999999999999658939487 228.5999999999999658939487 63.49999999999999289457264} V8 {-228.5999999999999658939487 -228.5999999999999658939487 63.49999999999999289457264}
+5 -6
View File
@@ -1,5 +1,4 @@
set(
CHESS_PARTS
set(CHESS_PARTS
bishop.asc
chessboard.asc
king.asc
@@ -7,16 +6,16 @@ set(
pawn.asc
queen.asc
rook.asc
)
)
foreach(piece ${CHESS_PARTS})
g_target(${piece} "BRL-CAD Geometry Models/Sample/Chess")
ADD_G_TARGET(${piece} "BRL-CAD Geometry Models/Sample/Chess")
endforeach(piece ${CHESS_PARTS})
cmakefiles(
CMAKEFILES(
${CHESS_PARTS}
CMakeLists.txt
)
)
# Local Variables:
# tab-width: 8
+5 -3
View File
@@ -1,10 +1,12 @@
set(COMGEOM_V5_MODELS ADA073408.comgeom)
set(COMGEOM_V5_MODELS
ADA073408.comgeom
)
foreach(comgeom_input ${COMGEOM_V5_MODELS})
g_target(${comgeom_input} "BRL-CAD Geometry Models/Sample")
ADD_G_TARGET(${comgeom_input} "BRL-CAD Geometry Models/Sample")
endforeach(comgeom_input ${COMGEOM_V5_MODELS})
cmakefiles(
CMAKEFILES(
${COMGEOM_V5_MODELS}
CMakeLists.txt
README_ADA073408
+41
View File
@@ -0,0 +1,41 @@
string(REPLACE "\\" "" GCV_EXEC "${EXEC}")
set(INPUT_FILE "@INPUT_FILE@")
set(OUTPUT_FILE "@OUTPUT_FILE@")
set(BIN_DIR "@BIN_DIR@")
# NOTE: OUTPUT_FILE needs to be defined in terms of a path relative to the root
# of the build diretory, not as an absolute path. Since that root may change
# at runtime in multiconfig builds, the full output path cannot be encoded
# directly into the generated script.
get_filename_component(OF_ABS "${OUTPUT_FILE}" ABSOLUTE)
if ("${OF_ABS}" STREQUAL "${OUTPUT_FILE}")
message(FATAL_ERROR "Absoute output file path \"${OUTPUT_FILE}\" supplied for conversion of \"${INPUT_FILE}\" - path must be relative.")
endif ("${OF_ABS}" STREQUAL "${OUTPUT_FILE}")
# Because the build directory changes at runtime in multiconfig builds, we
# need to deduce its current value from GCV_EXEC.
get_filename_component(CBDIR "${GCV_EXEC}" DIRECTORY)
string(REGEX REPLACE "${BIN_DIR}$" "" CROOT "${CBDIR}")
# BRLCAD_ROOT is the hammer that makes certain we are running
# things found in the build directory.
set(ENV{BRLCAD_ROOT} "${CROOT}")
# Now that we know the root, finalize the full path output file location
set(OUTPUT_FILE "${CROOT}/${OUTPUT_FILE}")
execute_process(
COMMAND "${GCV_EXEC}" -o "${OUTPUT_FILE}" "${INPUT_FILE}"
RESULT_VARIABLE conv_result OUTPUT_VARIABLE conv_log ERROR_VARIABLE conv_log
)
if(conv_result)
message(FATAL_ERROR "[geometry conversion] Failure: ${conv_result}\n${GCV_EXEC} -o \"${OUTPUT_FILE}\" \"${INPUT_FILE}\"\n\n${conv_log}")
endif(conv_result)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
Regular → Executable
+1 -1
View File
@@ -2,7 +2,7 @@
# C U B E . R T
# BRL-CAD
#
# Copyright (c) 2004-2025 United States Government as represented by
# Copyright (c) 2004-2020 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
+1 -1
View File
@@ -2,7 +2,7 @@
/* D B . P H P
* BRL-CAD
*
* Copyright (c) 2004-2025 United States Government as represented by
* Copyright (c) 2004-2020 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This library is free software; you can redistribute it and/or
BIN
View File
Binary file not shown.
+7 -4
View File
@@ -1,14 +1,17 @@
set(FAA_SAMPLE_MODELS Business_Jet.fg4 Generic_Twin.fg4)
set(FAA_SAMPLE_MODELS
Business_Jet.fg4
Generic_Twin.fg4
)
foreach(faa_input ${FAA_SAMPLE_MODELS})
g_target(${faa_input} "BRL-CAD Geometry Models/Sample")
ADD_G_TARGET(${faa_input} "BRL-CAD Geometry Models/Sample")
endforeach(faa_input ${FAA_SAMPLE_MODELS})
cmakefiles(
CMAKEFILES(
${FAA_SAMPLE_MODELS}
CMakeLists.txt
README
)
)
# Local Variables:
# tab-width: 8
+5 -5
View File
@@ -64920,7 +64920,7 @@ CQUAD 12 13 4 12 16 8 0.000 2
CCONE2 1 4 17 18 2.250 +
+ 2.250 0.000 0.000
SECTION 3 168 2 1
$NAME 3 168 Horizontal Stabilator Vector Pulley left forward
$NAME 3 168 Horiztonal Stabilator Vector Pulley left forward
$COMMENT12345678123456781234567812345678123456781234567812345678123456781234567812345678
$COMMENT 2 3 4 5 6 7 8 9 10
GRID 1 -280.990 6.010 208.570
@@ -64992,7 +64992,7 @@ CQUAD 12 13 4 12 16 8 0.000 2
CCONE2 1 4 17 18 0.500 +
+ 0.500 0.000 0.000
SECTION 3 170 2 1
$NAME 3 170 Horizontal Stabilator Vector Pulley left aft
$NAME 3 170 Horiztonal Stabilator Vector Pulley left aft
$COMMENT12345678123456781234567812345678123456781234567812345678123456781234567812345678
$COMMENT 2 3 4 5 6 7 8 9 10
GRID 1 -1239.68 7.150 204.800
@@ -65064,7 +65064,7 @@ CQUAD 12 13 4 12 16 8 0.000 2
CCONE2 1 4 17 18 0.500 +
+ 0.500 0.000 0.000
SECTION 3 172 2 1
$NAME 3 172 Horizontal Stabilator Vector Pulley right forward
$NAME 3 172 Horiztonal Stabilator Vector Pulley right forward
$COMMENT12345678123456781234567812345678123456781234567812345678123456781234567812345678
$COMMENT 2 3 4 5 6 7 8 9 10
GRID 1 -280.990 -6.010 208.570
@@ -65136,7 +65136,7 @@ CQUAD 12 13 4 12 16 8 0.000 2
CCONE2 1 4 17 18 0.500 +
+ 0.500 0.000 0.000
SECTION 3 174 2 1
$NAME 3 174 Horizontal Stabilator Vector Pulley right aft
$NAME 3 174 Horiztonal Stabilator Vector Pulley right aft
$COMMENT12345678123456781234567812345678123456781234567812345678123456781234567812345678
$COMMENT 2 3 4 5 6 7 8 9 10
GRID 1 -1239.68 -7.150 204.800
@@ -209761,7 +209761,7 @@ CTRI 10 1 4 6 8 0.100 2
CTRI 11 1 5 7 1 0.100 2
CTRI 12 1 7 2 1 0.100 2
SECTION 9 639 2 0
$NAME 9 639 Standby power control unit
$NAME 9 639 Standby power contol unit
GRID 1 -217.100 -43.700 249.434
GRID 2 -217.100 -44.700 247.434
GRID 3 -217.000 -43.700 249.434
+4 -5
View File
@@ -1,5 +1,4 @@
set(
NIST_SAMPLE_MODELS
set(NIST_SAMPLE_MODELS
NIST_MBE_PMI_1.stp
NIST_MBE_PMI_2.stp
NIST_MBE_PMI_3.stp
@@ -11,10 +10,10 @@ set(
)
foreach(im ${NIST_SAMPLE_MODELS})
g_target(${im} "BRL-CAD Geometry Models/Sample")
ADD_G_TARGET(${im} "BRL-CAD Geometry Models/Sample")
endforeach(im ${NIST_SAMPLE_MODELS})
cmakefiles(
CMAKEFILES(
${NIST_SAMPLE_MODELS}
CMakeLists.txt
README
@@ -30,7 +29,7 @@ cmakefiles(
pdf/9.pdf
pdf/10.pdf
pdf/11.pdf
)
)
# Local Variables:
# tab-width: 8
+63 -25513
View File
File diff suppressed because one or more lines are too long
-120
View File
File diff suppressed because one or more lines are too long
-36
View File
@@ -1,36 +0,0 @@
title {Sample geometry with a radial gridlines and a shadow-casting light}
units m
put {cylinder.r} comb region yes tree {- {- {- {- {- {l c1.tgc} {l c1i.tgc}} {l c1c1.arb8}} {l c1c2.arb8}} {l c1c3.tgc}} {l c1c4.tgc}}
attr set {cylinder.r} {region} {R} {region_id} {1003} {material_id} {1} {los} {100}
put {50m_ring.s} tor V {0 0 0} H {6.12323399573676603586882E-17 0 -1} r_a 50000 r_h 100
put {40m_ring.s} tor V {0 0 0} H {6.12323399573676603586882E-17 0 -1} r_a 40000 r_h 100
put {30m_ring.s} tor V {0 0 0} H {6.12323399573676603586882E-17 0 -1} r_a 30000 r_h 100
put {20m_ring.s} tor V {0 0 0} H {6.12323399573676603586882E-17 0 -1} r_a 20000 r_h 100
put {10m_ring.s} tor V {0 0 0} H {6.12323399573676603586882E-17 0 -1} r_a 10000 r_h 100
put {c1c2.arb8} arb8 V1 {-1449.999999999999545252649 -99.99999999999998578914528 0} V2 {-1449.999999999999545252649 100 0} V3 {-1449.999999999999545252649 100 1900} V4 {-1449.999999999999545252649 -99.99999999999998578914528 1900} V5 {-449.9999999999999431565811 -99.99999999999998578914528 0} V6 {-449.9999999999999431565811 100 0} V7 {-449.9999999999999431565811 100 1900} V8 {-449.9999999999999431565811 -99.99999999999998578914528 1900}
put {c1c1.arb8} arb8 V1 {1450 -500 1250} V2 {1450 500 1250} V3 {1450 500 1750} V4 {1450 -500 1750} V5 {450 -500 1250} V6 {450 500 1250} V7 {450 500 1750} V8 {450 -500 1750}
put {ground.s} arb8 V1 {60000.00000000002182787284 -60000.00000000002182787284 -100} V2 {60000.00000000002182787284 60000.00000000002182787284 -100} V3 {60000.00000000002182787284 60000.00000000002182787284 0} V4 {60000.00000000002182787284 -60000.00000000002182787284 0} V5 {-60000.00000000001455191523 -60000.00000000002182787284 -100} V6 {-60000.00000000001455191523 60000.00000000002182787284 -100} V7 {-60000.00000000001455191523 60000.00000000002182787284 0} V8 {-60000.00000000001455191523 -60000.00000000002182787284 0}
put {ground.r} comb region yes tree {l ground.s}
attr set {ground.r} {region} {R} {region_id} {1000} {material_id} {1} {los} {100} {color} {0/255/0}
put {c1c4.tgc} tgc V {-6.123233995736766242944808E-14 -500 1000} H {0 -1000 6.123233995736767505122256E-14} A {200 0 0} B {0 1.224646799147353374806706E-14 -200} C {200 0 0} D {0 1.224646799147353374806706E-14 -200}
put {c1c3.tgc} tgc V {0 500 1500} H {0 1000 6.123233995736764980767359E-14} A {200 0 0} B {0 1.224646799147353374806706E-14 -200} C {200 0 0} D {0 1.224646799147353374806706E-14 -200}
put {165deg.s} tgc V {53125.92044589875149540603 -14235.04748063865554286167 0} H {-106251.8408917975175427273 28470.09496127731472370215 6.735557395310443447840915E-12} A {-5.91458985689334876413324E-15 1.584809575715884060677382E-15 -100} B {-25.88190451025210236934981 -96.59258262890682544821175 0} C {-5.91458985689334876413324E-15 1.584809575715884060677382E-15 -100} D {-25.88190451025210236934981 -96.59258262890682544821175 0}
put {135deg.s} tgc V {38890.87296526011050445959 -38890.8729652601177804172 0} H {-77781.74593052023556083441 77781.74593052025011274964 6.735557395310443447840915E-12} A {-4.329780281177466281177668E-15 4.329780281177467070038573E-15 -100} B {-70.71067811865475505328504 -70.71067811865474084243033 0} C {-4.329780281177466281177668E-15 4.329780281177467070038573E-15 -100} D {-70.71067811865475505328504 -70.71067811865474084243033 0}
put {105deg.s} tgc V {14235.04748063864644791465 -53125.92044589875877136365 0} H {-28470.09496127729653380811 106251.8408917975320946425 6.735557395310443447840915E-12} A {-1.58480957571588307460125E-15 5.914589856893349552994145E-15 -100} B {-96.59258262890682544821175 -25.88190451025208460578142 0} C {-1.58480957571588307460125E-15 5.914589856893349552994145E-15 -100} D {-96.59258262890682544821175 -25.88190451025208460578142 0}
put {150deg.s} tgc V {47631.39720814413158223033 -27499.99999999999636202119 0} H {-95262.79441628826316446066 55000 6.735557395310443447840915E-12} A {-5.302876193624534820650073E-15 3.061616997868382648155861E-15 -100} B {-49.99999999999999289457264 -86.60254037844387653422018 0} C {-5.302876193624534820650073E-15 3.061616997868382648155861E-15 -100} D {-49.99999999999999289457264 -86.60254037844387653422018 0}
put {120deg.s} tgc V {27499.99999999998908606358 -47631.39720814413158223033 0} H {-54999.99999999998544808477 95262.79441628826316446066 6.735557395310443447840915E-12} A {-3.061616997868381859294956E-15 5.302876193624534820650073E-15 -100} B {-86.60254037844387653422018 -49.99999999999997868371793 0} C {-3.061616997868381859294956E-15 5.302876193624534820650073E-15 -100} D {-86.60254037844387653422018 -49.99999999999997868371793 0}
put {light.s} ell V {0 0 1500} A {10 0 0} B {0 10 0} C {0 0 10}
put {light.r} comb region yes tree {l light.s}
attr set {light.r} {oshader} {light {f 10 s 32 v 0}} {region} {R} {shader} {light {f 10.0 s 32 v 0}} {region_id} {1002} {material_id} {1} {los} {100} {color} {255/255/255}
put {c1i.tgc} tgc V {0 0 0} H {0 0 1900} A {900 0 0} B {0 900 0} C {900 0 0} D {0 900 0}
put {75deg.s} tgc V {-14235.04748063864099094644 -53125.92044589875877136365 0} H {28470.09496127728561987169 106251.8408917975320946425 6.735557395310443447840915E-12} A {1.584809575715882482955572E-15 5.914589856893349552994145E-15 -100} B {-96.59258262890682544821175 25.88190451025207394764038 0} C {1.584809575715882482955572E-15 5.914589856893349552994145E-15 -100} D {-96.59258262890682544821175 25.88190451025207394764038 0}
put {45deg.s} tgc V {-38890.8729652601177804172 -38890.8729652601177804172 0} H {77781.74593052025011274964 77781.74593052025011274964 6.735557395310443447840915E-12} A {4.329780281177467070038573E-15 4.329780281177467070038573E-15 -100} B {-70.71067811865475505328504 70.71067811865475505328504 0} C {4.329780281177467070038573E-15 4.329780281177467070038573E-15 -100} D {-70.71067811865475505328504 70.71067811865475505328504 0}
put {15deg.s} tgc V {-53125.92044589875877136365 -14235.04748063864099094644 0} H {106251.8408917975320946425 28470.09496127728561987169 6.735557395310443447840915E-12} A {5.914589856893349552994145E-15 1.584809575715882482955572E-15 -100} B {-25.88190451025207394764038 96.59258262890682544821175 0} C {5.914589856893349552994145E-15 1.584809575715882482955572E-15 -100} D {-25.88190451025207394764038 96.59258262890682544821175 0}
put {90deg.s} tgc V {-3.367778697655221320023674E-12 -55000 0} H {6.735557395310443447840915E-12 110000.0000000000145519152 6.735557395310443447840915E-12} A {3.749399456654643800636173E-31 6.123233995736766085172627E-15 -100} B {-100 6.123233995736766085172627E-15 0} C {3.749399456654643800636173E-31 6.123233995736766085172627E-15 -100} D {-100 6.123233995736766085172627E-15 0}
put {60deg.s} tgc V {-27500.00000000000727595761 -47631.39720814412430627272 0} H {55000.00000000002182787284 95262.79441628826316446066 6.735557395310443447840915E-12} A {3.061616997868383437016766E-15 5.302876193624534031789167E-15 -100} B {-86.60254037844386232336547 50.00000000000001421085472 0} C {3.061616997868383437016766E-15 5.302876193624534031789167E-15 -100} D {-86.60254037844386232336547 50.00000000000001421085472 0}
put {30deg.s} tgc V {-47631.39720814413158223033 -27499.99999999999636202119 0} H {95262.79441628826316446066 55000 6.735557395310443447840915E-12} A {5.302876193624534820650073E-15 3.061616997868382253725408E-15 -100} B {-49.99999999999999289457264 86.60254037844387653422018 0} C {5.302876193624534820650073E-15 3.061616997868382253725408E-15 -100} D {-49.99999999999999289457264 86.60254037844387653422018 0}
put {grid.r} comb region yes tree {u {u {u {u {u {l 50m_ring.s} {l 40m_ring.s}} {u {l 30m_ring.s} {l 20m_ring.s}}} {u {u {l 10m_ring.s} {l 0deg.s}} {u {l 15deg.s} {l 30deg.s}}}} {u {u {u {l 45deg.s} {l 60deg.s}} {u {l 75deg.s} {l 90deg.s}}} {u {u {l 105deg.s} {l 120deg.s}} {u {l 135deg.s} {l 150deg.s}}}}} {l 165deg.s}}
attr set {grid.r} {region} {R} {shader} {plastic} {region_id} {1001} {material_id} {1} {los} {100} {color} {255/255/255}
put {c1.tgc} tgc V {0 0 0} H {0 0 2000} A {1000 0 0} B {0 1000 0} C {1000 0 0} D {0 1000 0}
put {0deg.s} tgc V {-55000 0 0} H {110000.0000000000145519152 0 6.735557395310443447840915E-12} A {6.123233995736766085172627E-15 0 -100} B {0 100 0} C {6.123233995736766085172627E-15 0 -100} D {0 100 0}
put {all.g} comb region no tree {u {u {u {- {l ground.r} {l grid.r}} {- {l grid.r} {l c1.tgc}}} {l cylinder.r}} {l light.r}}
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -4,14 +4,14 @@ C Y ground.r 1000 0 1 0 1 100 0 0 0 0 1 1 0
stack
camo o=2 s=100000; turbump s=20000; plastic sp=.1 di=.7
M u terra.s 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0
s dsp terra.no_sm file="terra.bin" sm=0 w=256 n=256 stom=100000,0,0,0,0,100000,0,0,0,0,25,0,0,0,0,1
s dsp terra.no_sm file="terra.dsp" sm=0 w=256 n=256 stom=100000,0,0,0,0,100000,0,0,0,0,25,0,0,0,0,1
S 20 water.s 0 2.560000000000e+07 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 2.560000000000e+07 0.000000000000e+00 0.000000000000e+00 2.560000000000e+07 1.187252625000e+06 0.000000000000e+00 0.000000000000e+00 1.187252625000e+06 -2.560000000000e+07 0.000000000000e+00 0.000000000000e+00 -2.560000000000e+07 2.560000000000e+07 0.000000000000e+00 -2.560000000000e+07 2.560000000000e+07 1.187252625000e+06 -2.560000000000e+07 0.000000000000e+00 1.187252625000e+06
C Y water.r 1001 0 2 0 1 100 1 114 147 163 1 1 0
stack
turbump s=100000; glass tr=0 re=0.4
M u water.s 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0
M - terra.s 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0
s dsp terra.s file="terra.bin" sm=1 w=256 n=256 stom=100000,0,0,0,0,100000,0,0,0,0,25,0,0,0,0,1
s dsp terra.s file="terra.dsp" sm=1 w=256 n=256 stom=100000,0,0,0,0,100000,0,0,0,0,25,0,0,0,0,1
S 19 light.s 0 3.869340800000e+07 5.792957000000e+06 1.000000000000e+07 1.000000000000e+06 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+06 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+06 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00
C Y light.r 1002 0 1 0 1 100 1 250 253 191 1 0 0
light
View File
-54
View File
@@ -1,54 +0,0 @@
# Make sure the converter executable exists
string(REPLACE "\\" "" CONV_EXEC "${EXEC}")
if(NOT EXISTS "${CONV_EXEC}")
message(FATAL_ERROR "Invalid geometry converter executable specified: ${CONV_EXEC}")
endif(NOT EXISTS "${CONV_EXEC}")
# Use local cache directories for the conversion
set(CBDIR "@CMAKE_CURRENT_BINARY_DIR@")
set(CSDIR "@CMAKE_CURRENT_SOURCE_DIR@")
set(BU_DIR_CACHE ${CBDIR}/cache_@in_model_root@)
set(LIBRT_CACHE ${CBDIR}/rtcache_@in_model_root@)
set(ENV{BU_DIR_CACHE} ${BU_DIR_CACHE})
set(ENV{LIBRT_CACHE} ${LIBRT_CACHE})
file(REMOVE_RECURSE "${BU_DIR_CACHE}")
file(REMOVE_RECURSE "${LIBRT_CACHE}")
file(MAKE_DIRECTORY "${BU_DIR_CACHE}")
file(MAKE_DIRECTORY "${LIBRT_CACHE}")
# Deduce the current BRLCAD_ROOT value from the conversion executable path.
# Setting BRLCAD_ROOT is the hammer that makes certain we are running things
# found in the build directory.
get_filename_component(CEDIR "${CONV_EXEC}" DIRECTORY)
set(BIN_DIR "@BIN_DIR@")
string(REGEX REPLACE "${BIN_DIR}$" "" CROOT "${CEDIR}")
set(ENV{BRLCAD_ROOT} "${CROOT}")
# Now that we know the root, finalize the full path output file location and
# run the conversion.
execute_process(
COMMAND "${CONV_EXEC}" @CONV_ARGS@
RESULT_VARIABLE conv_result
OUTPUT_VARIABLE conv_log
ERROR_VARIABLE conv_log
)
if(conv_result)
set(CARGS @CONV_ARGS@)
message(FATAL_ERROR "[@in_model_root@] Failure: ${conv_result}\n${CONV_EXEC} ${CARGS}\"\n\n${conv_log}")
endif(conv_result)
# Cleanup
execute_process(
COMMAND "@CMAKE_COMMAND@" -E rm -rf ${BU_DIR_CACHE}
)
execute_process(
COMMAND "@CMAKE_COMMAND@" -E rm -rf ${LIBRT_CACHE}
)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-184496
View File
File diff suppressed because it is too large Load Diff
-89
View File
@@ -1,89 +0,0 @@
#!/bin/sh
# Ensure /bin/sh
export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
path_to_this="`dirname $0`"
LC_ALL=C
echo Looking for RT...
# find the raytracer
# RT environment variable overrides
if test "x${RT}" = "x" ; then
# see if we find the rt binary
if test -x "$path_to_this/../src/rt/rt" ; then
echo ...found $path_to_this/../src/rt/rt
RT="$path_to_this/../src/rt/rt"
elif test -x "$path_to_this/rt" ; then
echo ...found $path_to_this/rt
RT="$path_to_this/rt"
elif test -x "$path_to_this/../bin/rt" ; then
echo ...found $path_to_this/../bin/rt
RT="$path_to_this/../bin/rt"
elif test -x "$path_to_this/../build/bin/rt" ; then
echo ...found $path_to_this/../build/bin/rt
RT="$path_to_this/../build/bin/rt"
elif test -x "/usr/brlcad/bin/rt" ; then
echo ...found /usr/brlcad/bin/rt
RT="/usr/brlcad/bin/rt"
fi
else
echo ...using $RT from RT environment variable setting
fi
echo Looking for DB...
# find the geometry directory
# DB environment variable overrides
if test "x${DB}" = "x" ; then
# see if we find the db dir
if test -d "$path_to_this/../build/share/db" ; then
echo ...found $path_to_this/../build/share/db
DB="$path_to_this/../build/share/db"
elif test -d "$path_to_this/../db" ; then
echo ...found $path_to_this/../db
DB="$path_to_this/../db"
elif test -d "$path_to_this/db" ; then
echo ...found $path_to_this/db
DB="$path_to_this/db"
fi
else
echo ...using $DB from DB environment variable setting
fi
# print results or choke
if test "x${RT}" = "x" ; then
echo "ERROR: Could not find the BRL-CAD raytracer"
exit 1
else
echo "Using [$RT] for RT"
fi
if test "x${DB}" = "x" ; then
echo "ERROR: Could not find the BRL-CAD database directory"
exit 1
else
echo "Using [$DB] for DB"
fi
if test -f traffic_light.png ; then mv traffic_light.png traffic_light.png.$$ ; fi
if test -f traffic_light.log ; then mv traffic_light.log traffic_light.log.$$ ; fi
echo "Ray-tracing to file: traffic_light.png"
$RT -M -s1024 $*\
-o traffic_light.png\
${DB}/traffic_light.g\
'scene.c' \
2> traffic_light.log\
<<EOF
viewsize 1.60626398444471e+03;
orientation 5.25794963790780e-01 4.41938505076552e-01 4.69062489119843e-01 5.55166997473420e-01;
eye_pt 3.17305150328335e+04 -5.45678517872137e+03 5.82070858116997e+03;
start 0; clean;
end;
EOF
if test x$? != x0 ; then
echo "ERROR: Ray-trace failed."
fi
echo "Done. See traffic_light.log for details."
BIN
View File
Binary file not shown.
+3 -94
View File
@@ -645,7 +645,7 @@
volume = {Proceedings SPIE, 1098},
pages = {42-54},
year = {1989},
url = {http://dx.doi.org/10.1117/12.960423},
url = { http://dx.doi.org/10.1117/12.960423},
owner = {morrison},
timestamp = {2008.02.05}
}
@@ -1298,7 +1298,7 @@
@TECHREPORT{Ross92,
author = {Ross, Adam},
title = {3D Geometric Target Analysis of The Advanced Field Artillery System (AFAS)},
title = {3D Geometric Target Analysis of The Advanced Field Artillary System (AFAS)},
year = {1992},
month = aug,
publisher = {The U.S. Army Ballistic Research Laboratory},
@@ -1847,21 +1847,6 @@
timestamp = {2008.02.07}
}
@INPROCEEDINGS{Moulton02a,
author = {Moulton, Jr., Russ and Fink, Christopher E.},
title = {Ray-tracing approach for realistic hyperspectral forest canopies},
booktitle = {Targets and Backgrounds VIII: Characterization and Representation, Proceedings of SPIE},
volume = {4178},
pages = {46-64},
year = {2002},
month = aug,
doi = {10.1117/12.478828},
location = {Orlando, FL, United States},
note = {Society of Photo-Optical Instrumentation Engineers (SPIE). Presented at AeroSense 2002.},
owner = {morrison},
timestamp = {2022.01.10}
}
@ARTICLE{Mathy03a,
author = {Mathy, F. and Guillemaud, R. and Picone, M.},
title = {Experimental validation of a coupled photon Monte Carlo and CAD software},
@@ -1887,7 +1872,7 @@
pages = {175-193},
number = {2},
month = feb,
eid = {10.1016/S0010-4485(03)00060-5},
eid = {10.1016/S0010-4485(03)00060-5 },
owner = {cyapp},
timestamp = {2008.02.08}
}
@@ -2261,82 +2246,6 @@
timestamp = {2018.06.06}
}
@TECHREPORT{Dean18a,
author = {Dean, Allen and Thomas, Jr., John},
title = {Development of Large and Small Missile Target Models},
institution = {United States Air Force Research Laboratory, Munitions Directorate},
year = {2018},
month = dec,
number = {AFRL-RW-EG-TR-2018-100},
address = {Air Force Research Laboratory, Eglin Air Force Base, FL 32542-6810},
note = {Distribution authorized to Department of Defense and U.S. DoD contractors only; critical technology; distribution limitations applied November 2018. Other requests must be referred to AFRL/RWML, Eglin AFB FL 32542-5910.},
owner = {morrison},
timestamp = {2020.10.30}
}
@TECHREPORT{Velykodniy19a,
author = {Velykodniy, Stanislav and Burlachenko, Zh and Zaitseva-Velykodna, Svitlana},
title = {Graphic Databases Reengineering in BRL-CAD Open Source Computer-aided Design Environment. Modeling of the Structural Part},
institution = {Odessa State Environmental University},
year = {2019},
month = {06},
pages = {130-139},
doi = {10.30929/1995-0519.2019.3.130-139},
note = {Ukrainian title: РЕИНЖИНИРИНГ ГРАФИЧЕСКИХ БАЗ ДАННЫХ В СРЕДЕ ОТКРЫТОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ BRL-CAD. МОДЕЛИРОВАНИЕ СТРУКТУРНОЙ ЧАСТИ},
owner = {morrison},
timestamp = {2021.10.02}
}
@ARTICLE{Velykodniy19b,
author = {Velykodniy, Stanislav Sergeyevich},
title = {ANALYSIS AND SYNTHESIS OF THE RESULTS OF COMPLEX EXPERIMENTAL RESEARCH ON REENGINEERING OF OPEN CAD SYSTEMS},
journal = {Applied Aspects of Information Technology},
institution = {Ministry of Education and Science of Ukraine, Odessa National Polytechnic University},
year = {2019},
month = {06},
pages = {186-205},
volume = {2}
number = {3},
issn = {2617-4316},
doi = {10.15276/aait.03.2019.2},
address = {Odessa National Polytechnic University 1, Shevchenko Avenue 65044, Odessa, Ukraine},
note = {Web Site: https://aait.opu.ua},
owner = {morrison},
timestamp = {2021.10.02}
}
@ARTICLE{Velykodniy19c,
author = {Velykodniy, Stanislav Sergeyevich},
title = {Reengineering of Open Software System of 3D Modeling BRL-CAD},
journal = {Innovative Technologies and Scientific Solutions for Industries},
institution = {Kharkov National University of Radio Electronics, State Enterprise "Southern National Design & Research Institute of Aerospace Industries"},
year = {2019},
month = sep,
day = {23},
pages = {62-71},
number = {3 (9)},
issn = {2522-9818},
doi = {10.30837/2522-9818.2019.9.062},
url = {https://itssi-journal.com/index.php/ittsi/article/view/145},
address = {Ukraine, 61166, Kharkiv, Nauka Ave, 14},
note = {Affiliation: Odessa State Environmental University. Information site: http://itssi-journal.com},
owner = {morrison},
timestamp = {2021.10.02}
}
@TECHREPORT{Yapp20,
author = {Yapp, Cliff},
title = {Methodology Improvements to Non-Uniform Rational B-Splines (NURBS) Geometry Conversion in BRL-CAD},
institution = {United States Army, Data and Analysis Center},
year = {2020},
month = mar,
number = {CCDC DAC-TR-2020-021, JASPO-V-19-03-001},
address = {Data and Analysis Center, Aberdeen Proving Ground, MD 21005-5068},
note = {Approved for Public Release, distribution unlimited.},
owner = {morrison},
timestamp = {2021.08.05}
}
@comment{jabref-meta: selector_journal:}
@comment{jabref-meta: selector_author:}
+20 -40
View File
@@ -2,39 +2,35 @@ verbose_add_subdirectory(doc docbook)
verbose_add_subdirectory(doc html)
verbose_add_subdirectory(doc legal)
set(
documentation_DATA
set(documentation_DATA
BRL-CAD.bib
GITHUB
IDEAS
PROJECTS
README.Linux
README.MacOSX
README.Windows
README.BSD
README.Solaris
README.VAX
README.other/README.AIX
README.other/README.BSD
README.other/README.IRIX
README.other/README.Solaris
README.other/README.VAX
checklist.txt
description.txt
notes/TODO.BREP
notes/TODO.shaded_displays
notes/apitrace.txt
notes/brep.txt
notes/bu_opt_design_notes.txt
notes/cvs.txt
notes/debugging_example.txt
notes/debugging_notes.txt
notes/editors.txt
notes/history.txt
notes/hypot.txt
notes/mater.txt
notes/matrix.txt
pre_BRL-CAD.bib
)
add_doc(documentation_DATA ".")
)
ADD_DOC(documentation_DATA ".")
set(
documentation_mged_old_DATA
set(documentation_mged_old_DATA
mged/a.tex
mged/adc.ps
mged/all.tex
@@ -204,33 +200,17 @@ set(
notes/rounding.txt
notes/tool_categories.txt
old-mged.tr
)
add_doc(documentation_mged_old_DATA mged_old REQUIRED "mged")
)
ADD_DOC(documentation_mged_old_DATA mged_old)
if(TARGET mged)
configure_file(pad_file.xml.in "${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml" @ONLY)
distclean("${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml" DESTINATION ${DOC_DIR})
endif(TARGET mged)
configure_file(pad_file.xml.in "${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml" DESTINATION ${DOC_DIR})
cmakefiles(
CMAKEFILES(
CMakeLists.txt
README.adoc
README.other/README.OSCON-2014
STARTERS
STRATEGY
git/bisect.txt
git/check.yml
git/diffing.txt
git/git2gource.cpp
git/gitconfig
git/gitk
git/gitstats.txt
git/gource.sh
git/gource.txt
git/history.txt
git/merging.txt
git/mime_types.txt
git/usability.txt
notes/bsd_semaphore_bug.txt
notes/cmake_paths/CMakeLists.txt
notes/cmake_paths/README.txt
@@ -241,10 +221,10 @@ cmakefiles(
notes/implicit_constraints.txt
notes/lcov.txt
pad_file.xml.in
)
)
# Generic C/C++ examples
cmakefiles(
CMAKEFILES(
notes/c_cxx_patterns/01_basic_C/CMakeLists.txt
notes/c_cxx_patterns/01_basic_C/main.c
notes/c_cxx_patterns/01_basic_C/nlib.c
@@ -267,10 +247,10 @@ cmakefiles(
notes/c_cxx_patterns/05_PImpl_CXX/nlib.h
notes/c_cxx_patterns/CMakeLists.txt
notes/c_cxx_patterns/README
)
)
# Notes about parser generators
cmakefiles(
CMAKEFILES(
notes/parsers/bison_to_lemon.txt
notes/parsers/flex_to_re2c.txt
notes/parsers/templates/CMakeLists.txt
@@ -279,7 +259,7 @@ cmakefiles(
notes/parsers/templates/parser.lemon
notes/parsers/templates/scanner.perplex
notes/parsers/writing_perplex_lemon_parsers.txt
)
)
# Local Variables:
# tab-width: 8
-104
View File
@@ -1,104 +0,0 @@
BRL-CAD has migrated from the Sourceforge hosting solution
(https://sf.net/projects/brlcad) to Github (https://github.com/BRL-CAD/brlcad).
As with other large projects that have undertaken large scale hosting and VCS
migration(1) the BRL-CAD project is adjusting to working in the new
environment. The following notes are intended to capture practical tips and
information related to working with BRL-CAD on the Github platform.
--------------------------------------------------------------------------------
For those wishing to direct Github emails to different addresses on a
per-project basis, the following information may be useful:
https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#customizing-email-routes-per-organization
--------------------------------------------------------------------------------
Using Github Actions to iteratively debug problems.
Github's runners (build platforms for it's Actions CI system) offer a way to
test platforms we don't otherwise have access to. Sometimes, if we need to
iteratively test inputs being supplied to tools on those platforms to diagnose
a problem, the full configure/build/test cycle can be a very slow way to
proceed.
A way forward in this case is to create a temporary local repository with a
checking of the binary version of BRL-CAD used for the specific platform in
question, along with test inputs and an action defined to run the specific test
in question. (REMEMBER - github repos are public, so only define and use inputs
suitable for public consumption!)
For the below example, we created a repository with the Windows binary install
and a README file explaining what the test is doing:
-rw-rw-r-- 1 user user 72 Sep 23 17:52 README
drwxrwxr-x 3 user user 12288 Sep 24 07:41 bin
drwxrwxr-x 4 user user 4096 Sep 23 17:49 libexec
drwxrwxr-x 13 user user 4096 Sep 23 17:50 lib
drwxrwxr-x 5 user user 4096 Sep 23 17:49 include
drwxrwxr-x 16 user user 4096 Sep 23 17:50 share
drwxrwxr-x 8 user user 4096 Sep 24 07:42 .git
drwxrwxr-x 3 user user 4096 Sep 23 17:53 .github
Then, in the .github/workflows directory we create a .yml file to trigger the
test whenever we push a change. For this example we were wanting to test the
benchmark script, so we create a .github/workflows/benchmark.yml file with the
following contents:
name: benchhmark
on: [push]
jobs:
bench:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
# https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
- run: echo '::add-path::{C:\Program Files\Git\bin}'
- run: sh.exe ./bin/benchmark run
This allowed developers to iteratively adjust the bin/benchmark shell script
and test the results in the compilation Windows environment, *without* having
to perform the full compilation cycle on Windows each time. Once a working
benchmark script was identified it was added back to the primary repository and
the test repo deleted.
--------------------------------------------------------------------------------
Debugging flags can be added to the actions environment for a given repo:
https://github.community/t/ci-access-to-shell-session/17250
(Note: the "Secrets" label is misleading in this particular case - that is
the mechanism by which the values are introduced into the runner environment,
but there are no actual secrets contained in the values of the debugging
variables.)
--------------------------------------------------------------------------------
Git provides a stats page, but that page reports only commits to the "main"
branch. To prepare a more comprehensive stats page, one alternative that has
been tested is:
https://github.com/tomgi/git_stats
After installing, statistics pages can be generated by running:
the following in a clone of the repository.
user@machine:~/brlcad$ git_stats generate
Note - on Ubuntu, per https://github.com/rails/rails/issues/34822 I had to add the line:
to the git_stats file
user@machine:~$ echo "gem 'bigdecimal', '1.4.2'" >> /var/lib/gems/2.7.0/gems/git_stats-1.0.17/bin/git_stats
and install the older version of bigdecimal (per https://stackoverflow.com/a/17026442):
user@machine:~$ gem install bigdecimal -v 1.4.2
---------------------------------------------------------------------------------
(1) Other large scale git conversions:
https://web.archive.org/web/20130327012743/https://techbase.kde.org/Projects/MovetoGit
https://techbase.kde.org/Projects/MovetoGit
https://blog.runtux.com/posts/2014/04/18/233/
https://blogs.ed.ac.uk/timc/2017/11/24/migrating-from-svn-to-git-while-splitting-repository/
http://esr.ibiblio.org/?p=5634
http://esr.ibiblio.org/?p=6792
http://esr.ibiblio.org/?p=8607
https://gitlab.com/ideasman42/blender-git-migration/
+10 -72
View File
@@ -34,17 +34,6 @@ 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.
Alpine Linux
------------
Alpine is an interesting test platform in that it does not use
glibc but instead relies on mucl.
At a minimum, will need the following packages:
apk add cmake git gcc g++ make linux-headers
TODO - look into setup-xorg-base
Arch Linux
----------
@@ -64,10 +53,10 @@ you will be able to compile BRL-CAD.
Following the build instructions in the INSTALL file. You will need:
gcc (8+, e.g. 8.0.3)
g++ (8+, e.g. 8.0.3)
gcc (3+, e.g. 4.0.3)
g++ (3+, e.g. 4.0.3)
make (e.g. gnu make 3.8.0)
cmake (3.20 or newer)
cmake (2.8.8 or newer)
All three of those have implicit dependencies on other packages.
@@ -100,14 +89,10 @@ should be deleted and recreated for each new attempt at package
generation.
Redhat/Rocky (should also apply to other Redhat derivatives)
------------------------------------------------------------
Redhat/Fedora
-------------
If you don't already have the necessary development tools:
yum install git cmake gcc gcc-c++
Development packages for building on Redhat-based platforms:
Development packages for building on Redhat/Fedora platforms:
yum install libX11-devel
yum install libXext-devel # optional
@@ -116,53 +101,14 @@ Development packages for building on Redhat-based platforms:
yum install fontconfig-devel # optional
yum install mesa-libGL-devel # optional
If you wish to create rpm packages, you'll need rpmbuild
yum install rpm-build # optional
When setting up older OS versions for building BRL-CAD, it is sometimes
necessary to install some non-default compilation tools in addition to the
usual dependencies. (The default toolchain can be too old to properly build
BRL-CAD, if the compilers don't support sufficiently modern standards.) The
following example is for Rocky Linux 8:
yum install scl-utils
yum install gcc-toolset-11
Then to run within that environment:
scl enable gcc-toolset-11 bash
The CMake version may be too old as well. One way to deal with this is to
download the source code and bootstrap it (do this within the gcc-toolset-11
enabled bash):
sudo yum install openssl-devel
curl -L -O -J https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3.tar.gz
tar -xvf cmake-3.28.3.tar.gz
cd cmake-3.28.3
./bootstrap --prefix=/opt/cmake
make -j3 && make install
export PATH=/opt/cmake/bin
From there, with the gcc-toolset enabled and the PATH set to include the new
CMake, it should be possible to proceed normally with the build.
-------
To determine what particular version of Redhat or Redhat-like system you are
To determine what particular version of Redhat or Fedora you are
using, check these files:
cat /etc/redhat-release (Redhat)
cat /etc/fedora-release (Fedora)
cat /etc/rocky-release (Rocky)
-------
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 Redhat-derived
'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>
@@ -173,14 +119,6 @@ system. It can be used like so:
It is also possible to create an RPM package using CPack with the
make package build target, on systems with the proper RPM tools.
-------
One issue encountered running Rocky Linux 8 in VirtualBox - networking is off
by default. To enable, look for a file in /etc/sysconfig/network-scripts/
called something like enp0s3 and set ONBOOT=yes (see
https://unix.stackexchange.com/a/79273)
PPC64 Linux
-----------
+9 -14
View File
@@ -28,8 +28,9 @@ 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 no longer supports X11, so the
recommended X Window Server is now XQuartz: http://www.xquartz.org
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
------------------
@@ -81,20 +82,14 @@ 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, doc, etc.) individually and then
just subdirectories (e.g. src/other, doc, etc.) individually and then
do a toplevel make in non-parallel mode to finalize the build.
Debugging
---------
Apple now employs code signing and we do not yet. To debug apps using
Instruments, they will need to be signed with permissions in order to
debug them. Here's an example that signs them all with a
get-task-allow permission that lets them be introspected:
echo "<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>com.apple.security.get-task-allow</key><true/></dict></plist>" >> debug.plist
codesign -s - -v -f --entitlements debug.plist bin/*
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
-55
View File
@@ -1,55 +0,0 @@
BRL-CAD on Solaris README
=========================
There have been a variety of Solaris-style operating systems that appeared
following Sun's open-source release of OpenSolaris.
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 can proceed with building 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. 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. UPDATE - as of 2024 a *much* newer compiler will be needed...
C++17 support is now required.)
+45 -131
View File
@@ -3,23 +3,57 @@ 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 are recommended. If generating an installer,
the following options are available and supported:
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.
Nullsoft Scriptable Install System (NSIS) - generates a. .exe installer
WiX Toolset - generates an MSI installer.
These tools must be installed separately - they are not included with
CMake or Visual Studio.
Note: In principle BRL-CAD can be built using CMake and environments
like Cygwin and/or Mingw/Msys, but they are largely untested and
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
@@ -59,126 +93,6 @@ 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.
Debugging with Visual Studio
----------------------------
For most compilation environments, BRL-CAD defines a Debug build
configuration which disables optimizations and a Release build that
enables them - although Debug builds are generally easier to use when
tracking down problems, both configurations keep debugging information.
This allows for easier diagnosis of problems in real-world use, as
well as diagnosis of issues that occur only when optimizations are
enabled.
MSVC and Windows present a more complicated situation. On that platform,
Debug versions of applications are not redistributable:
https://docs.microsoft.com/en-us/cpp/windows/determining-which-dlls-to-redistribute
As a consequence the default BRL-CAD build configuration for Release
(unlike other platforms) does not support debugging.
If it is necessary to debug a Release mode specific issue on Windows,
extra steps are needed. Users of CMake may be familiar with the build
configuration RelWithDebInfo, which is normally disabled for BRL-CAD
builds - debugging a Release-mode-only problem is exactly the situation
in which this build configuration is needed.
To re-enable the availability of RelWithDebInfo for BRL-CAD builds, set
the compilation variable ENABLE_ALL_CONFIG_TYPES to ON - once set,
BRL-CAD's configure will no longer eliminate CMake build types other
than Debug and Release.
Working with MSI files
----------------------
The WiX Toolset's MSI file, in addition to the standard interactive
graphical install, also supports a command line based silent
install. (See, for example, https://stackoverflow.com/a/25230485)
msiexec.exe /i c:\BRL-CAD-7.32.0_win64.msi /QN /L*V "C:\Temp\brlcad_install.log"
The logging step is not required but is recommended to allow for
easier understanding of any issues that might arise.
===========================================
=== Setting a specific SDK version ===
If a particular version of the Windows SDK is needed, it is specified
with CMAKE_SYSTEM_VERSION (for example, to use 10.0.15063.0 the user
would define a New Entry in the CMake GUI before running configure,
make the variable CMAKE_SYSTEM_VERSION as a string type, and assign the
value of 10.0.15063.0.)
Note that for this to work the SDK version in question must be
installed on the system. To see what versions are installed,
look for Windows SDK installs in the "Apps & Features" Setup
interface.
=======================================================
=== Tracking down the source of a header inclusion ===
If a Windows system header is reporting an error, it can be helpful to identify
where the header is being included from. By default MSVC doesn't report this,
but in Visual Studio there is a "ShowIncludes" setting that may be enabled to
find this information:
https://stackoverflow.com/a/1138045
This setting may also be added to the compilation flags directly
in CMake as "/showIncludes":
https://docs.microsoft.com/en-us/cpp/build/reference/showincludes-list-include-files
Note that the output of this can be very verbose, especially if applied
globally to all targets - you may want to consider applying it specifically to
an individual target with target_compile_options. This flag is a very useful
tool when trying to determine *why* a particular header is present in an error
message.
=========================================================
=== Debugging build outputs from a Ninja compilation ===
Normally, Visual Studio is used to debug Windows executables. However,
another alternative is available called WinDbg:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools
This has been used successfully to debug Ninja produced executables.
Note that if debugging an issue unique to Release builds, you will
want to set the CMake variable ENABLE_ALL_CONFIG_TYPES to ON
and the specific build type to RelWithDebInfo
cmake.exe -G Ninja -ENABLE_ALL_CONFIG_TYPES=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
===========================================
=== 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
======================================
MINGW (WORK IN PROGRESS - THIS DOES NOT YET WORK!!!)
-----
-77
View File
@@ -1,77 +0,0 @@
= BRL-CAD: Open Source Solid Modeling
:toc: macro
:toc-title:
:icons: font
:experimental:
// Attributes for easy maintenance
:project-url: https://brlcad.org
:docs-url: https://brl-cad.github.io/docs
:repo-url: https://github.com/BRL-CAD/brlcad
:chat-url: https://brlcad.zulipchat.com
image:https://img.shields.io/badge/license-BSD/LGPL-blue.svg["License"]
image:https://img.shields.io/badge/status-active-brightgreen.svg["Status"]
BRL-CAD is a powerful open-source cross-platform solid modeling system that includes interactive geometry editing, high-performance ray-tracing for rendering and geometric analysis, image and signal-processing tools, a system performance analysis benchmark suite, and libraries for robust geometric manipulation.
For more than 40 years, BRL-CAD has been a primary solid modeling system used by the U.S. military to model weapons systems for vulnerability and lethality analyses.
---
toc::[]
== Key Features
* **CSG Modeling:** Constructive Solid Geometry (CSG) provides precise Boolean operations on primitives.
* **High Performance:** Multi-threaded ray-tracing and a high-performance memory allocator.
* **Hybrid Representation:** Supports both CSG and B-Rep (NURBS) geometry.
* **Extensive Toolset:** Over 400 specialized command-line utilities for geometry processing.
* **Legacy of Stability:** Proven in production environments since 1979.
== Getting Started
=== Prerequisites
To build BRL-CAD from source, you will need:
* **CMake** (3.14+)
* **C/C++ Compiler** (GCC, Clang, or MSVC)
* **Build Tools** (Make, Ninja, or Visual Studio)
=== Quick Build (Unix/macOS)
[source,bash]
----
mkdir build
cd build
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
----
[NOTE]
====
For detailed installation instructions across different platforms, please refer to our link:{docs-url}/install[Installation Guide].
====
== Documentation
We are currently transitioning our extensive documentation (Docbook/XML + MediaWiki + troff + text + ...) to an **Antora-powered ecosystem**.
* **Tutorials:** link:{docs-url}/tutorials[Browse the Manuals]
* **Developer Guides:** link:{docs-url}/hacking and link:{repo-url}/blob/main/HACKING
* **Wiki:** {project-url}/wiki[snapshot that is a little out of date]
* **Etc:** link:{docs-url}[Not everything, but a lot]
== Contributing
BRL-CAD is a community-driven project. We welcome contributions in the form of bug reports, feature requests, code, and documentation.
1. **Chat with Us:** Connect with us on Zulip link:{chat-url}.
2. **Find Issues:** Check our link:{repo-url}/issues[Issue Tracker].
3. **Submit a PR:** We follow a standard Fork-and-Pull Request workflow.
[IMPORTANT]
.Documentation Contributors
We're prototyping the use of **AsciiDoc** for all project documentation in a separate "docs" repo.
== License
BRL-CAD is free and open-source software. Most components are licensed under the **BSD** or **LGPL** licenses. See the `COPYING` file for more details.
+35
View File
@@ -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.
@@ -14,10 +14,3 @@ 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.
---------------------------------------------------------------------
When setting up to compile on GhostBSD, the following packages are
enough to get started:
pkg install cmake ninja os-generic-userland-devtools
+51
View File
@@ -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
+53
View File
@@ -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
+61
View File
@@ -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...)
+1 -1
View File
@@ -32,7 +32,7 @@ Difficulty:
Prerequisites:
* Basic familiarity with C++ STL
References:
* https://github.com/BRL-CAD/stepcode
* src/other/step
* src/conv/step
* include
* http://www.sgi.com/tech/stl/
+2 -2
View File
@@ -7,7 +7,7 @@
BRL-CAD Development Strategy
This is a living document that defines and aims to help maintain a
consistent development strategy for addressing BRL-CAD requirements.
consistent develpment strategy for addressing BRL-CAD requirements.
It recognizes areas of strategic importance, outlines projects to
bolster those areas, and identifies specific actionable objectives.
@@ -234,7 +234,7 @@ bolster those areas, and identifies specific actionable objectives.
**** TODO create data caching test cases (1)
**** TODO implement libbu data caching (1)
*** implement LIBRT object caching (4)
*** implment LIBRT object caching (4)
**** TODO serialize BoT prep data to cache (1)
**** TODO serialize NURBS prep data to cache (1)
**** TODO serialize tess/plot data to cache (2)
+1 -1
View File
@@ -60,7 +60,7 @@ Compilation
Testing
-------
28. Are any new inputs checked, sanitized?
29. For changes fixing a recurrent bug, is there an accompanying test?
29. For changes fixing a recurrant bug, is there an accompanying test?
30. Does performance testing pass and NOT decrease? No slow downs.
31. Do all regression tests pass? No new failures.
+39 -5
View File
@@ -1,13 +1,47 @@
# Define a build target that builds a no-op executable, so we can ensure
# a target for generator expression use regardless of other changes elsewhere
# in the build system
add_executable(db_dir_info db_dir_info.c)
set_target_properties(db_dir_info PROPERTIES FOLDER "DocBook")
# We need various configuration files set up for DocBook processing tools
add_subdirectory(resources)
# Rework CMake binary and source paths for DocBook templates - if we
# have spaces in the paths, they will cause a problem.
string(REPLACE " " "%20" DOCBOOK_BINARY_DIR "${CMAKE_BINARY_DIR}")
string(REPLACE " " "%20" DOCBOOK_SOURCE_DIR "${CMAKE_SOURCE_DIR}")
# Files for PDF products
if(BRLCAD_EXTRADOCS_PDF)
# Apache FOP needs a couple of config files set up
set(srcdir ${CMAKE_CURRENT_SOURCE_DIR})
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/fop.xconf.in ${CMAKE_BINARY_DIR}/doc/docbook/fop.xconf)
endif(BRLCAD_EXTRADOCS_PDF)
# For the html files, we need brlcad.css
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/brlcad_css-${CMAKE_CFG_INTDIR}-done
COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/css/brlcad.css $<TARGET_FILE_DIR:db_dir_info>/${RBIN_DIR}/${DOC_DIR}/html/css/brlcad.css
COMMAND "${CMAKE_COMMAND}" -E touch ${CMAKE_CURRENT_BINARY_DIR}/brlcad_css-${CMAKE_CFG_INTDIR}-done
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/css/brlcad.css
)
add_custom_target(brlcad_css DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/brlcad_css-${CMAKE_CFG_INTDIR}-done)
set_target_properties(brlcad_css PROPERTIES FOLDER "DocBook")
install(FILES css/brlcad.css DESTINATION ${DOC_DIR}/html/css)
DISTCLEAN(${CMAKE_CFG_INTDIR}/${DOC_DIR}/html/css/brlcad.css)
# Include CMake macros for DocBook.
include(${BRLCAD_SOURCE_DIR}/misc/CMake/DocBook.cmake)
add_subdirectory(articles)
add_subdirectory(books)
add_subdirectory(devguides)
add_subdirectory(lessons)
add_subdirectory(presentations)
add_subdirectory(specifications)
add_subdirectory(system)
set(
ignore_files
set(ignore_files
CMakeLists.txt
README
README.DB_authors_notes
@@ -15,8 +49,8 @@ set(
db_dir_info.c
fop.xconf.in
log4j.properties
)
cmakefiles(${ignore_files})
)
CMAKEFILES(${ignore_files})
# Local Variables:
# tab-width: 8
+1 -1
View File
@@ -161,7 +161,7 @@ OTHER CONSIDERATIONS
These documents make extensive use of the XInclude modular
documentation specification. Consequently, the contents of any one
particular "document" may be scattered over many other documents.
This design direction is intended to allow reuse of standard
This design direction is intended to allow re-use of standard
definitions and descriptions in multiple documents serving multiple
purposes. When a definition is updated for one document,
re-generation of other documents will incorporate the update as well
+21 -31
View File
@@ -1,28 +1,19 @@
# Style sheet for XSLT transformation to article HTML pages
if(BRLCAD_EXTRADOCS_HTML)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl)
endif(BRLCAD_EXTRADOCS_HTML)
if(BRLCAD_EXTRADOCS_PHP)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl)
endif(BRLCAD_EXTRADOCS_PHP)
# Files for PDF products
if(BRLCAD_EXTRADOCS_PDF)
# Style sheet for XSLT transformation to PDF
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-article-fo-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-fo-stylesheet.xsl
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-fo-stylesheet.xsl")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-article-fo-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-fo-stylesheet.xsl)
endif(BRLCAD_EXTRADOCS_PDF)
# For HTML and FO (FO is an intermediate file used in the
@@ -32,8 +23,7 @@ set(XSL_PHP_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/wordpres
set(XSL_HTML_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl")
set(XSL_FO_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-fo-stylesheet.xsl")
set(
articles_EN
set(articles_EN
TEMPLATE.xml
about.xml
build_pattern.xml
@@ -51,10 +41,9 @@ set(
mged.xml
main_menu.xml
overlap_tool.xml
)
)
set(
articles_EN_IMAGES
set(articles_EN_IMAGES
images/Lee_tux.gif
images/build_pattern_fig01.png
images/build_pattern_fig02.png
@@ -174,26 +163,27 @@ set(
images/prims.gif
images/rim.gif
images/rim.jpg
)
if(TARGET mged OR TARGET qged OR TARGET archer)
if(BRLCAD_EXTRADOCS)
add_doc(articles_EN_IMAGES html/articles/images)
add_docbook("HTML;PHP;PDF" articles_EN articles articles_EN_IMAGES_cp)
endif(BRLCAD_EXTRADOCS)
endif(TARGET mged OR TARGET qged OR TARGET archer)
)
if(BRLCAD_EXTRADOCS)
ADD_DOC(articles_EN_IMAGES articles/images)
else(BRLCAD_EXTRADOCS)
CMAKEFILES(${articles_EN_IMAGES})
endif(BRLCAD_EXTRADOCS)
cmakefiles(
ADD_DOCBOOK("HTML;PHP;PDF" articles_EN articles articles_EN_IMAGES_cp)
CMAKEFILES(
CMakeLists.txt
${articles_EN}
${articles_EN_IMAGES}
images/tire_fig12.svg
images/tire_fig13.svg
)
)
add_subdirectory(hy)
add_subdirectory(it)
add_subdirectory(ru)
CMAKEFILES(CMakeLists.txt)
# Local Variables:
# tab-width: 8
# mode: cmake
+2 -2
View File
@@ -82,14 +82,14 @@
<imageobject role="html">
<!--
NOTE: fileref will normally be something like
"../articles/images/nirt_fig02.png" NOT http: URL
"../../articles/images/nirt_fig02.png" NOT http: URL
-->
<imagedata align="center" fileref="http://brlcad.org/images/logo/BRL-CAD_gear_logo_w_name_256.png" format="PNG" width="256"/>
</imageobject>
<imageobject role="fo">
<!--
NOTE: fileref will normally be something like
"../articles/images/nirt_fig02.png" NOT http: URL
"../../articles/images/nirt_fig02.png" NOT http: URL
-->
<imagedata align="center" fileref="http://brlcad.org/images/logo/BRL-CAD_gear_logo_w_name_256.png" format="PNG" width="256"/>
</imageobject>
+13 -13
View File
@@ -77,10 +77,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/build_pattern_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/build_pattern_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -131,7 +131,7 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
thorough and name each primitive, region, and assembly properly. Consider
the following example:
<inlinemediaobject><imageobject role="html"><imagedata fileref="../articles/images/build_pattern_fig07.png"/></imageobject><imageobject role="fo"><imagedata fileref="../articles/images/build_pattern_fig07.png"/></imageobject></inlinemediaobject>
<inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/images/build_pattern_fig07.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/images/build_pattern_fig07.png"/></imageobject></inlinemediaobject>
</para>
<para>
Top-level duplications copy the patterned object and reference its entire
@@ -186,10 +186,10 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/build_pattern_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/build_pattern_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -243,10 +243,10 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/build_pattern_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/build_pattern_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -269,10 +269,10 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/build_pattern_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig04.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/build_pattern_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig04.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -282,10 +282,10 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/build_pattern_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig05.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/build_pattern_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig05.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -310,10 +310,10 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/build_pattern_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig06.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/build_pattern_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_pattern_fig06.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
+8 -8
View File
@@ -48,10 +48,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/build_region_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_region_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/build_region_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_region_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -70,10 +70,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/build_region_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_region_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/build_region_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_region_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -107,10 +107,10 @@ u wgn.s2 + wgn.s2+1 - wgn.s2-1
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/build_region_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_region_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/build_region_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_region_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -125,10 +125,10 @@ u wgn.s2 + wgn.s2+1 - wgn.s2-1
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/build_region_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_region_fig04.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/build_region_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/build_region_fig04.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
+6 -6
View File
@@ -27,10 +27,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/ebm_primitive_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/ebm_primitive_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -39,10 +39,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/ebm_primitive_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/ebm_primitive_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -51,10 +51,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/ebm_primitive_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/ebm_primitive_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
+4 -187
View File
@@ -34,7 +34,7 @@
<title>GCV architecture</title>
<mediaobject>
<imageobject>
<imagedata fileref="../articles/images/gcv_architecture.png"/>
<imagedata fileref="../../articles/images/gcv_architecture.png"/>
</imageobject>
</mediaobject>
</figure>
@@ -249,7 +249,7 @@ LIBGCV_ADD_PLUGIN(foo "foo_read.c" "librt;libbu")
<tbody>
<row>
<entry><code>gcv_region_end()</code></entry>
<entry>Apply Boolean evaluation to region-level tessellated meshes using the default NMG Boolean evaluator, replacing each region-level node and its subtree of tessellated leaf meshes with a single BoT structure that is then passed to the specified callback. The <code>client_data</code> pointer should point to a <code>struct gcv_region_end_data</code>. The individual leaf nodes must already be tessellated into BoTs. This can be done by specifying a <code>leaf_func</code> such as <code>rt_booltree_leaf_tess()</code>. In the case of failure, an error message is emitted via <code>bu_log()</code> and the callback is not invoked. Any use of <code>bu_bomb()</code> produced by the callback is trapped and an error message is displayed while continuing the tree walk.</entry>
<entry>Apply Boolean evaluation to region-level tessellated meshes using the default NMG Boolean evaluator, replacing each region-level node and its subtree of tessellated leaf meshes with a single BoT structure that is then passed to the specified callback. The <code>client_data</code> pointer should point to a <code>struct gcv_region_end_data</code>. The individual leaf nodes must already be tessellated into BoTs. This can be done by specifying a <code>leaf_func</code> such as <code>nmg_booltree_leaf_tess()</code>. In the case of failure, an error message is emitted via <code>bu_log()</code> and the callback is not invoked. Any use of <code>bu_bomb()</code> produced by the callback is trapped and an error message is displayed while continuing the tree walk.</entry>
</row>
<row>
<entry><code>gcv_bottess_region_end()</code></entry>
@@ -283,7 +283,7 @@ LIBGCV_ADD_PLUGIN(foo "foo_read.c" "librt;libbu")
<title>Tessellation of incompatible entities</title>
<mediaobject>
<imageobject>
<imagedata fileref="../articles/images/gcv_unsupported_tessellation.png"/>
<imagedata fileref="../../articles/images/gcv_unsupported_tessellation.png"/>
</imageobject>
</mediaobject>
</figure>
@@ -341,7 +341,7 @@ LIBGCV_ADD_PLUGIN(foo "foo_read.c" "librt;libbu")
<title>Using MGED's gdiff utility</title>
<mediaobject>
<imageobject>
<imagedata fileref="../articles/images/gcv_using_gdiff.png"/>
<imagedata fileref="../../articles/images/gcv_using_gdiff.png"/>
</imageobject>
</mediaobject>
</figure>
@@ -763,188 +763,5 @@ apply_filter_with_options(struct gcv_context *context, const struct gcv_filter *
</tgroup>
</table>
</section>
<section>
<title>Open Asset Import Library Reader</title>
<para>The Open Asset Import Library (assimp) is an open source library integrated into GCV,
capable of loading and converting geometry from 45 3D file-formats.
</para>
<table frame='none'>
<title>Conversion extensions supported by Asset Import Library reader</title>
<tgroup cols='3'>
<colspec colwidth="8%"/>
<colspec colwidth="10%"/>
<tbody>
<row> <!-- 1 -->
<entry>.3d</entry>
<entry>.gltf / .glb (1.0)</entry>
<entry>.obj</entry>
</row>
<row> <!-- 2 -->
<entry>.3ds</entry>
<entry>.gltf (2.0)</entry>
<entry>.off</entry>
</row>
<row> <!-- 3 -->
<entry>.3mf</entry>
<entry>.hmp</entry>
<entry>.ogex</entry>
</row>
<row> <!-- 4 -->
<entry>.ac</entry>
<entry>.ifc</entry>
<entry>.ply</entry>
</row>
<row> <!-- 5 -->
<entry>.ac3d</entry>
<entry>.lwo</entry>
<entry>.pmx</entry>
</row>
<row> <!-- 6 -->
<entry>.acc</entry>
<entry>.lws</entry>
<entry>.q3o</entry>
</row>
<row> <!-- 7 -->
<entry>.ase</entry>
<entry>.lxo</entry>
<entry>.q3s</entry>
</row>
<row> <!-- 8 -->
<entry>.b3d</entry>
<entry>.md2</entry>
<entry>.raw</entry>
</row>
<row> <!-- 9 -->
<entry>.blend</entry>
<entry>.md3</entry>
<entry>.sib</entry>
</row>
<row> <!-- 10 -->
<entry>.bvh</entry>
<entry>.md5</entry>
<entry>.smd</entry>
</row>
<row> <!-- 11 -->
<entry>.cms</entry>
<entry>.mdc</entry>
<entry>.stl</entry>
</row>
<row> <!-- 12 -->
<entry>.cob</entry>
<entry>.mdl</entry>
<entry>.x</entry>
</row>
<row> <!-- 13 -->
<entry>.dae</entry>
<entry>.mesh / .mesh.xml</entry>
<entry>.x3d</entry>
</row>
<row> <!-- 14 -->
<entry>.dxf</entry>
<entry>.ms3d</entry>
<entry>.xgl</entry>
</row>
<row> <!-- 15 -->
<entry>.fbx</entry>
<entry>.nff</entry>
<entry>.zgl</entry>
</row>
</tbody>
</tgroup>
</table>
<table frame='none'>
<title>Asset Import Library reader options</title>
<tgroup cols='2' align='left'>
<tbody>
<row>
<entry><literal>--starting-ident=<replaceable>number</replaceable></literal></entry>
<entry>Specify the starting ident for the regions created. The default is <literal>1000</literal>. This number will be incremented for each region, unless <literal>--constant-ident</literal> is specified.</entry>
</row>
<row>
<entry><literal>--constant-ident</literal></entry>
<entry>Specify that the starting ident should remain constant.</entry>
</row>
<row>
<entry><literal>--material=<replaceable>code</replaceable></literal></entry>
<entry>Specify the material code that will be assigned to all created regions (the default is <literal>1</literal>).</entry>
</row>
<row>
<entry><literal>--format=<replaceable>file_fmt</replaceable></literal></entry>
<entry>Specify the file format for conversion. By default, this is inferred from the file extension.</entry>
</row>
</tbody>
</tgroup>
</table>
<example>
<title>Specifying the Asset Import reader</title>
<para>NOTE: As the Asset Import library handles many formats, some of which are also handled by other conversion methods,
it currently must be explicitly called to invoke. The format itself is then inferred from the files extension.</para>
<screen>
$ <userinput>gcv --input-format=assetimport input_file.ext output_file.ext</userinput>
</screen>
</example>
</section>
<section>
<title>Open Asset Import Library Writer</title>
<para>The Open Asset Import Library (assimp) is an open source library integrated into GCV,
capable of exporting to 15 different 3D file-formats.
</para>
<table frame='none'>
<title>Conversion extensions supported by Asset Import Library writer</title>
<tgroup cols='3'>
<colspec colwidth="10%"/>
<colspec colwidth="8%"/>
<tbody>
<row> <!-- 1 -->
<entry>.3ds</entry>
<entry>.fbx</entry>
<entry>.pbrt</entry>
</row>
<row> <!-- 2 -->
<entry>.3mf</entry>
<entry>.glb</entry>
<entry>.ply</entry>
</row>
<row> <!-- 3 -->
<entry>.assbin (assetimport binary)</entry>
<entry>.gltf</entry>
<entry>.stl</entry>
</row>
<row> <!-- 4 -->
<entry>.assxml (assetimport xml)</entry>
<entry>.json</entry>
<entry>.stp</entry>
</row>
<row> <!-- 5 -->
<entry>.dae</entry>
<entry>.obj</entry>
<entry>.x3d</entry>
</row>
</tbody>
</tgroup>
</table>
<table frame='none'>
<title>Asset Import Library writer options</title>
<tgroup cols='2' align='left'>
<tbody>
<row>
<entry><literal>--format=<replaceable>file_fmt</replaceable></literal></entry>
<entry>Specify the file format for conversion. By default, this is inferred from the file extension.</entry>
</row>
</tbody>
</tgroup>
</table>
<example>
<title>Specifying the Asset Import writer</title>
<para>
NOTE: As the Asset Import library handles many formats, some of which are also handled by other conversion methods,
it currently must be explicitly called to invoke. The format itself is then inferred from the files extension.</para>
<screen>
$ <userinput>gcv --output-format=assetimport input_file.ext output_file.ext</userinput>
</screen>
</example>
</section>
</section>
</article>
+5 -10
View File
@@ -1,15 +1,10 @@
set(articles_HY about_hy.xml)
set(articles_HY
about_hy.xml
)
if(TARGET mged OR TARGET qged OR TARGET archer)
if(BRLCAD_EXTRADOCS)
add_docbook("HTML;PHP;PDF" articles_HY articles/hy articles_EN_IMAGES_cp)
endif(BRLCAD_EXTRADOCS)
endif(TARGET mged OR TARGET qged OR TARGET archer)
ADD_DOCBOOK("HTML;PHP;PDF" articles_HY articles/hy articles_EN_IMAGES_cp)
cmakefiles(
CMakeLists.txt
${articles_HY}
)
CMAKEFILES(CMakeLists.txt)
# Local Variables:
# tab-width: 8
+12 -15
View File
@@ -1,7 +1,8 @@
set(articles_IT about_it.xml)
set(articles_IT
about_it.xml
)
set(
articles_IT_IMAGES
set(articles_IT_IMAGES
images/bc2.gif
images/brlcad-overview-benchmark-Bldg_391.jpg
images/brlcad-overview-benchmark-M35.jpg
@@ -11,20 +12,16 @@ set(
images/brlcad-overview-benchmark-World.jpg
images/brlcad-overview-data-flow.png
images/sflogo.png
)
)
if(BRLCAD_EXTRADOCS)
ADD_DOC(articles_IT_IMAGES html/articles/it/images)
else(BRLCAD_EXTRADOCS)
CMAKEFILES(${articles_IT_IMAGES})
endif(BRLCAD_EXTRADOCS)
if(TARGET mged OR TARGET qged OR TARGET archer)
if(BRLCAD_EXTRADOCS)
add_doc(articles_IT_IMAGES html/articles/it/images)
add_docbook("HTML;PHP;PDF" articles_IT articles/it articles_IT_IMAGES_cp)
endif(BRLCAD_EXTRADOCS)
endif(TARGET mged OR TARGET qged OR TARGET archer)
ADD_DOCBOOK("HTML;PHP;PDF" articles_IT articles/it articles_IT_IMAGES_cp)
cmakefiles(
CMakeLists.txt
${articles_IT}
${articles_IT_IMAGES}
)
CMAKEFILES(CMakeLists.txt)
# Local Variables:
# tab-width: 8
+25
View File
@@ -2814,6 +2814,11 @@
<link xlink:href="../../man1/en/cad_parea.php">CAD Parea</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/canonize.php">Canonize</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/cell-fb.php">Cell FB</link>
@@ -2934,6 +2939,11 @@
<link xlink:href="../../man1/en/fbcolor.php">Fbcolor</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/fbed.php">Fbed</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/fbfade.php">Fbfade</link>
@@ -3170,6 +3180,11 @@
<link xlink:href="../../man1/en/ir-X.php">Ir-X</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/lgt.php">Lgt</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/loop.php">Loop</link>
@@ -3510,6 +3525,16 @@
<link xlink:href="../../man1/en/png-pix.php">Png Pix</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/pp-fb.php">PP FB</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/proe-g.php">Proe-g</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/random.php">Random</link>
+70 -86
View File
@@ -2713,14 +2713,6 @@ rt -s 512 -F :1
zero knobs and sliders
</entry>
</row>
<row>
<entry>
N
</entry>
<entry>
shoot a ray with nirt
</entry>
</row>
<row>
<entry>
&lt; F1 &gt;
@@ -6426,20 +6418,20 @@ x delete character
– View from top direction.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">ae
<literal>mged&gt;</literal> <emphasis role="strong">ae
270 0</emphasis>
– View from right hand side.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">ae
<literal>mged&gt;</literal> <emphasis role="strong">ae
35 25 10</emphasis>
– View from azimuth 35, elevation 25, with view rotated
by 10˚.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">ae
<literal>mged&gt;</literal> <emphasis role="strong">ae
-i 0 0 5</emphasis>
– Rotate the current view through 5˚ about the viewing
direction.
@@ -6636,7 +6628,7 @@ x delete character
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<link linkend="ae"><emphasis role="strong">ae</emphasis></link><emphasis role="strong">35
25</emphasis>
– Rotate view to look straight on at square face of
@@ -6759,12 +6751,12 @@ x delete character
– Clear the <emphasis>mged</emphasis> display(s).
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<link linkend="E"><emphasis role="strong">E</emphasis></link><emphasis role="strong">region_1</emphasis>
– <emphasis>E</emphasis> a single region.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">area</emphasis> – Calculate the presented area of the enclosing polygon
of the region.
</para>
@@ -6869,38 +6861,38 @@ x delete character
those found in the default bindings.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">toplevel .t</emphasis>
– Create a toplevel window named .t.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">attach -t 0 -S 800 -n .t.ogl ogl</emphasis>
– Open a 800x800 OpenGL display window named .t.ogl
that is not a top-level window.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">button .t.dismiss -text Dismiss -command
<quote>release .t.ogl; destroy .t</quote></emphasis>
– Create a button to dismiss the display manager etc.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">pack .t.ogl -expand 1 -fill both</emphasis>
– Pack the display manager inside .t.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">pack .t.dismiss</emphasis>
– Pack the Dismiss button inside .t.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">attach</emphasis>
– List the help message that includes the valid display
types.
@@ -7099,7 +7091,7 @@ x delete character
Examples:
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">bo -i -u c cmds
<literal>mged&gt;</literal> <emphasis role="strong">bo -i -u c cmds
/usr/brlcad/html/manuals/mged/mged_cmds.html</emphasis>
</para>
<para>
@@ -7108,7 +7100,7 @@ x delete character
<emphasis>/usr/brlcad/html/manuals/mged/mged_cmds.html.</emphasis>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">bo -o
<literal>mged&gt;</literal> <emphasis role="strong">bo -o
/home/jim/cmds.html cmds</emphasis>
</para>
<para>
@@ -7535,7 +7527,7 @@ x delete character
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">db
<literal>mged&gt;</literal> <emphasis role="strong">db
adjust sphere.s V [center]</emphasis>
</para>
<para>
@@ -8241,28 +8233,28 @@ x delete character
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">db
<literal>mged&gt;</literal> <emphasis role="strong">db
get cone.s</emphasis>
– Get a list of all the attributes and their values for
shape <emphasis>cone.s</emphasis>.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">db
<literal>mged&gt;</literal> <emphasis role="strong">db
get cone.s V</emphasis>
– Get the value of the <emphasis>V</emphasis> (vertex)
attribute of shape <emphasis>cone.s</emphasis>.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">db
<literal>mged&gt;</literal> <emphasis role="strong">db
put new_cone.s tgc V {0 0 0} H {0 0 1} A {1 0 0} B {0 1 0} C {5 0 0}
D {0 5 0}</emphasis>
– Create a new <link linkend="TGC">TGC</link> shape
named <emphasis>new_cone.s</emphasis> with the specified attributes.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">db
<literal>mged&gt;</literal> <emphasis role="strong">db
adjust new_cone.s V {0 0 10}</emphasis>
– Adjust the <emphasis>V</emphasis> (vertex) attribute
of <emphasis>new_cone.s</emphasis> to the value {0 0 10}.
@@ -8364,15 +8356,15 @@ x delete character
</term>
<listitem>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dbconcat
<literal>mged&gt;</literal> <emphasis role="strong">dbconcat
model_two.g two_</emphasis>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dbconcat
<literal>mged&gt;</literal> <emphasis role="strong">dbconcat
-s model_two.g</emphasis>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dbconcat
<literal>mged&gt;</literal> <emphasis role="strong">dbconcat
-c -p model_two.g two_</emphasis>
</para>
</listitem>
@@ -8410,13 +8402,13 @@ x delete character
</term>
<listitem>
<para>
<literal>mged&gt; </literal>debugbu
<literal>mged&gt;</literal> debugbu
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">debugbu 2</emphasis>
</para>
<para>
@@ -8534,7 +8526,7 @@ x delete character
<emphasis>librt</emphasis> and the current value.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">debuglib 1</emphasis> – Set the <emphasis>librt</emphasis> debug flag to
&lt;DEBUG_ALLRAYS&gt; (print info about rays).
</para>
@@ -8825,11 +8817,11 @@ x delete character
– Get a list of the available display manager internal variables.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dm
<literal>mged&gt;</literal> <emphasis role="strong">dm
set perspective 1</emphasis> – Turn on perspective projection in the display.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dm
<literal>mged&gt;</literal> <emphasis role="strong">dm
size</emphasis> – Return the size to the display manager.
</para>
<para>
@@ -8837,28 +8829,28 @@ x delete character
900x900.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dm
<literal>mged&gt;</literal> <emphasis role="strong">dm
m 2 100 200</emphasis> – Simulate a button2 press at (100, 200) in X screen
coordinates.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dm
<literal>mged&gt;</literal> <emphasis role="strong">dm
am r 400 100</emphasis> – Start an alternate mouse mode rotation.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dm
<literal>mged&gt;</literal> <emphasis role="strong">dm
adc d 300 200</emphasis> – Start a tick distance manipulation.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dm
<literal>mged&gt;</literal> <emphasis role="strong">dm
con t z 200 200</emphasis> – Start a constrained translation down the Z axis.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dm
<literal>mged&gt;</literal> <emphasis role="strong">dm
con a d 200 100</emphasis> – Start a constrained tick distance manipulation.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">dm
<literal>mged&gt;</literal> <emphasis role="strong">dm
idle</emphasis> – End drag.
</para>
<para>
@@ -9223,7 +9215,7 @@ x delete character
<emphasis>material code</emphasis> to 8.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">edcomb comb1 0 0 0 0</emphasis> – Unset the <emphasis>region</emphasis> flag for
combination <emphasis>comb1.</emphasis>
</para>
@@ -9511,7 +9503,7 @@ x delete character
<emphasis>shapea</emphasis> as shaded polygons.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">ev
<literal>mged&gt;</literal> <emphasis role="strong">ev
-wT region1</emphasis> – Display evaluated <emphasis>region1</emphasis> as
wireframe without triangulating.
</para>
@@ -9761,7 +9753,7 @@ foo.r_xpand/R
plane at <emphasis>x</emphasis>=20.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">facedef 5678 b 0 0 10 10 0 10 10 10
10</emphasis> – Move face 5678 such that it is in the plane formed by
the three points (0 0 10), (10 0 10), and (10 10 10).
@@ -10563,7 +10555,7 @@ foo.r_xpand/R
face in <emphasis>out_arb.</emphasis>
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">inside in_arb 1 1 1 1 1 1</emphasis> – Create a shape named <emphasis>in_arb</emphasis> such
that each face is 1 <link linkend="units">unit</link> from the
corresponding face in the current key
@@ -11166,13 +11158,13 @@ foo.r_xpand/R
– Display details about region1.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">l
<literal>mged&gt;</literal> <emphasis role="strong">l
group1/group2/region1/shape3</emphasis> – Display shape parameters for
<emphasis>shape3</emphasis> with matrices applied from the
<emphasis>path.</emphasis>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">l
<literal>mged&gt;</literal> <emphasis role="strong">l
-r a/b</emphasis> – Display all possible paths that start with
<emphasis>a/b</emphasis> and end in a primitive
<emphasis>shape</emphasis> – The shape parameters with the accumulated
@@ -11417,22 +11409,22 @@ foo.r_xpand/R
(output is formatted).
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">ls
<literal>mged&gt;</literal> <emphasis role="strong">ls
-a shape*</emphasis> – List all objects with names beginning with
<quote>shape.</quote>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">ls
<literal>mged&gt;</literal> <emphasis role="strong">ls
-p wheel*</emphasis> – List all primitives with names beginning with
<quote>wheel.</quote>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">ls
<literal>mged&gt;</literal> <emphasis role="strong">ls
-r wheel*</emphasis> – List all regions with names beginning with
<quote>wheel.</quote>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">ls
<literal>mged&gt;</literal> <emphasis role="strong">ls
-c suspension*</emphasis> – List all combinations with names beginning with
<quote>suspension.</quote>
</para>
@@ -11628,7 +11620,7 @@ foo.r_xpand/R
– Create a sphere named <emphasis>shapea.</emphasis>
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">make -t</emphasis> – Return a list of shape types handled by
<emphasis>make.</emphasis>
</para>
@@ -12227,7 +12219,7 @@ foo.r_xpand/R
<emphasis>model.g.</emphasis>
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">opendb</emphasis> – Return the name of the current database file.
</para>
<para>
@@ -13006,7 +12998,7 @@ foo.r_xpand/R
it the title <quote>Test Title.</quote>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">ps
<literal>mged&gt;</literal> <emphasis role="strong">ps
-l 10 -t <quote>Test Fat Lines</quote> fat_lines.ps</emphasis> – This time use fat lines.
</para>
<para>
@@ -13356,15 +13348,15 @@ foo.r_xpand/R
– Print usage message.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">qray fmt o</emphasis> – Returns the overlap format string.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">qray oddcolor</emphasis> – Returns the rgb color used to color odd partitions.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">qray oddcolor 255 0 0</emphasis> – Sets the odd partition color to red.
</para>
<para>
@@ -13937,7 +13929,7 @@ foo.r_xpand/R
– Close the current display manager.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">release .dm_X0</emphasis> – Close <emphasis>.dm_X0.</emphasis>
</para>
<para>
@@ -14088,7 +14080,7 @@ foo.r_xpand/R
– Rotate 45 degrees about the Z axis.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">rot
<literal>mged&gt;</literal> <emphasis role="strong">rot
45 45 0</emphasis> – Rotate 45˚ about the <emphasis>y</emphasis> axis,
then rotate 45 degrees about the <emphasis>x</emphasis> axis.
</para>
@@ -14307,7 +14299,7 @@ foo.r_xpand/R
<emphasis>X</emphasis> framebuffer.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">rt
<literal>mged&gt;</literal> <emphasis role="strong">rt
-C 200/200/255 – roof</emphasis> – Run the <emphasis>rt</emphasis> program to produce a
color-shaded image of the object <emphasis>roof</emphasis> using
MGED s current viewing parameters. The image will have a sky-blue
@@ -14924,11 +14916,11 @@ EOF
toViewcenter, Viewrot, model2view and view2model).
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">status Viewrot</emphasis> – Get the view rotation matrix.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">status state</emphasis> – Get the edit state.
</para>
<para>
@@ -15005,7 +14997,7 @@ EOF
– The view is unchanged.
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">sv
<literal>mged&gt;</literal> <emphasis role="strong">sv
1024 0 0</emphasis> – The view center is moved half way between the current
view center and the right side of the view screen.
</para>
@@ -15106,22 +15098,22 @@ EOF
– List all objects with names beginning with <quote>shape.</quote> (output is formatted)
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">t
<literal>mged&gt;</literal> <emphasis role="strong">t
-a shape*</emphasis> – List all objects with names beginning with
<quote>shape.</quote>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">t
<literal>mged&gt;</literal> <emphasis role="strong">t
-s wheel*</emphasis> – List all shapes with names beginning with
<quote>wheel.</quote>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">t
<literal>mged&gt;</literal> <emphasis role="strong">t
-r wheel*</emphasis> – List all regions with names beginning with
<quote>wheel.</quote>
</para>
<para>
<literal>mged&gt; </literal><emphasis role="strong">t
<literal>mged&gt;</literal> <emphasis role="strong">t
-c suspension*</emphasis> – List all combinations with names beginning with
<quote>suspension.</quote>
</para>
@@ -15573,12 +15565,12 @@ EOF
<emphasis>group1</emphasis> down to the primitive shape level.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">tree -i 2 group1</emphasis> – This time use two spaces for each level of
indentation.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">tree -c group1</emphasis> – No shapes are printed.
</para>
<para>
@@ -16282,31 +16274,31 @@ EOF
– Open a list named <emphasis>square.</emphasis>
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">vdraw params color ff00</emphasis> – Set color to green.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">vdraw write next 0 0 0 0</emphasis> – Start a line at the origin.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">vdraw write next 1 100 0 0</emphasis> – Draw line to (100 0 0).
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">vdraw write next 1 100 100 0</emphasis> – Draw line to (100 100 0).
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">vdraw write next 1 0 100 0</emphasis> – Draw line to (0 100 0).
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">vdraw write next 1 0 0 0</emphasis> – Draw line to (0 0 0).
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">vdraw send</emphasis> – Draw the square in the MGED display.
</para>
<para>
@@ -16368,7 +16360,7 @@ EOF
– Get the view center.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">view center 0 0 0</emphasis> – Set the view center at the origin of model space.
</para>
<para>
@@ -16471,7 +16463,7 @@ EOF
– Rotate 90 degrees about view <emphasis>x</emphasis> axis.
</para>
<para>
<literal>mged&gt; </literal>
<literal>mged&gt;</literal>
<emphasis role="strong">vrot 0 180 0</emphasis> – Rotate 180 degrees about view <emphasis>y</emphasis>
axis.
</para>
@@ -19187,14 +19179,6 @@ EOF
The <emphasis>BRL­CAD</emphasis> <link linkend="rt">rt</link>
program performs such <emphasis>ray tracing</emphasis>.
</para>
<para>
Note: For users working with sensitive information (proprietary,
copyrighted, classified, etc.) remember you will will need to apply
any appropriate notices and markings yourself as a post-processing step when
generating images. BRL-CAD has no inherent awareness of the type of data
it is working with, just as a word processor or image editor does not know the
nature of the document being edited.
</para>
<para>
<emphasis role="strong">region</emphasis>
</para>
+6 -6
View File
@@ -60,10 +60,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/mgedrc_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/mgedrc_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/mgedrc_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/mgedrc_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -205,10 +205,10 @@ proc cps {oldprim newprim} {cp $oldprim $newprim; sed $newprim}
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/mgedrc_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/mgedrc_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/mgedrc_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/mgedrc_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -260,10 +260,10 @@ proc cps {oldprim newprim} {cp $oldprim $newprim; sed $newprim}
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/mgedrc_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/mgedrc_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/mgedrc_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/mgedrc_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
+62 -71
View File
@@ -63,29 +63,20 @@
<literallayout class="monospaced">
user@machine ~ $ nirt --h
Usage: nirt [options] model.g [objects]...
Usage: 'nirt [options] model.g objects...'
Options:
-h, -?, --help print help and exit
-A n add attribute_name=n
-M read matrix, cmds on stdin
-b back out of geometry before first shot (deprecated, default
behavior)
-c shoot ray from current center
-e script run script before interacting
-f format load predefined format (see -L) or file
-E ignore any -e or -f options specified earlier on the command line
-L list output formatting options
-s run in silent (non-verbose) mode
-v run in verbose mode
-H n flag (n) for enable/disable informational header - (n=1 [on] by
default, always off in silent mode)
-u n set use_air=n (default 0)
-O action handle overlap claims via action
-x v set librt(3) diagnostic flag=v
-X v set nirt diagnostic flag=v
--center x,y,z, --xyz x,y,z
specify xyz center point
-b back out of geometry before first shot
-B n set rt_bot_minpieces=n
-e script run script before interacting
-f sfile run script sfile before interacting
-L list output formatting options
-M read matrix, cmds on stdin
-O action handle overlap claims via action
-s run in silent (non-verbose) mode
-u n set use_air=n (default 0)
-v run in verbose mode
-x v set librt(3) diagnostic flag=v
-X v set nirt diagnostic flag=v
</literallayout>
</para>
@@ -106,10 +97,10 @@ Options:
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig01.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -562,10 +553,10 @@ mged&gt;
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig02.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -580,10 +571,10 @@ mged&gt;
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig03.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -637,10 +628,10 @@ mged&gt;
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig04.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig04.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -671,10 +662,10 @@ mged&gt; ae 90 0
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig05.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig05.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -731,10 +722,10 @@ mged&gt; ae 90 0
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig06.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig06.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -777,10 +768,10 @@ mged&gt; ae 90 0
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig07.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig07.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig07.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig07.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -823,10 +814,10 @@ mged&gt; ae 90 0
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig08.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig08.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig08.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig08.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -858,10 +849,10 @@ mged&gt; ae 90 0
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig09.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig09.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig09.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig09.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -881,7 +872,7 @@ mged&gt; ae 90 0
command line, there is a mouse-based trigger that can be used. In the <application>MGED</application>
menu, selecting Settings-&gt;Mouse Behavior-&gt;Query Ray will change the behavior of
the mouse. Selecting the view window, placing the mouse at some
point over the model, and performing a click will cast a
point over the model, and preforming a click will cast a
ray in the view direction, centered at the point under the mouse pointer rather
than the view center.
</para>
@@ -900,10 +891,10 @@ mged&gt;
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig10.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig10.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig10.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig10.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -991,10 +982,10 @@ right_cube.r ( 2.000 -1.000 0.000) 2.00 0.000
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig11.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig11.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig11.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig11.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1016,10 +1007,10 @@ right_cube.r ( 2.000 -1.000 0.000) 2.00 0.000
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig12.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig12.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig12.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig12.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1039,10 +1030,10 @@ right_cube.r ( 2.000 -1.000 0.000) 2.00 0.000
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig13.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig13.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig13.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig13.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1061,10 +1052,10 @@ right_cube.r ( 2.000 -1.000 0.000) 2.00 0.000
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig14.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig14.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig14.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig14.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1089,10 +1080,10 @@ right_cube.r ( 2.000 -1.000 0.000) 2.00 0.000
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig08.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig08.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig08.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig08.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1131,10 +1122,10 @@ mged&gt; erase query_rayff00ff
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig15.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig15.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig15.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig15.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1161,10 +1152,10 @@ mged&gt; who p
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig16.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig16.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig16.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig16.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1187,10 +1178,10 @@ mged&gt; who p
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig17.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig17.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig17.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig17.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1245,10 +1236,10 @@ left_cube.r ( -1.000 0.022 0.011) 2.00 0.000
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig18.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig18.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig18.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig18.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1329,7 +1320,7 @@ reg_name,path_name,reg_id,x_in,y_in,z_in,d_in,x_out,y_out,z_out,d_out,los,scaled
test.csv) and imported into a spreadsheet:
<screenshot>
<mediaobject><imageobject role="html"><imagedata align="center" fileref="../articles/images/nirt_fig19.png"/></imageobject><imageobject role="fo"><imagedata align="center" fileref="../articles/images/nirt_fig19.png"/></imageobject></mediaobject>
<mediaobject><imageobject role="html"><imagedata align="center" fileref="../../articles/images/nirt_fig19.png"/></imageobject><imageobject role="fo"><imagedata align="center" fileref="../../articles/images/nirt_fig19.png"/></imageobject></mediaobject>
</screenshot>
</para>
@@ -1602,10 +1593,10 @@ left_and_right_cubes.r ( -1.0000 0.0000 0.0000) 2.0000 0.0000
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig20.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig20.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig20.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig20.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1825,7 +1816,7 @@ reg_name,path_name,reg_id,x_in,y_in,z_in,d_in,x_out,y_out,z_out,d_out,los,scaled
As before, this format is trivially imported into a spreadsheet:
<screenshot>
<mediaobject><imageobject role="html"><imagedata align="center" fileref="../articles/images/nirt_fig21.png"/></imageobject><imageobject role="fo"><imagedata align="center" fileref="../articles/images/nirt_fig21.png"/></imageobject></mediaobject>
<mediaobject><imageobject role="html"><imagedata align="center" fileref="../../articles/images/nirt_fig21.png"/></imageobject><imageobject role="fo"><imagedata align="center" fileref="../../articles/images/nirt_fig21.png"/></imageobject></mediaobject>
</screenshot>
</para>
@@ -1921,10 +1912,10 @@ center_cube.r ( 1.0000, 0.0000, 0.0000) 2.0000 0.0000
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig22.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig22.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig22.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig22.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1966,10 +1957,10 @@ center_cube.r ( 1.0000, 0.0000, 0.0000) 2.0000 0.0000
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig23.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig23.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig23.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig23.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1990,10 +1981,10 @@ center_cube.r ( 1.0000, 0.0000, 0.0000) 2.0000 0.0000
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/nirt_fig24.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig24.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/nirt_fig24.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/nirt_fig24.png" format="PNG"/>
</imageobject>
<caption>
<para>
+26 -26
View File
@@ -55,10 +55,10 @@
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -209,10 +209,10 @@ lollipop/
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -279,10 +279,10 @@ cube.s: ARB8
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -299,10 +299,10 @@ cube.s: ARB8
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig04.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig04.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -318,10 +318,10 @@ cube.s: ARB8
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig05.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig05.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -376,10 +376,10 @@ cube.s: ARB8
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig06.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig06.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -511,10 +511,10 @@ cube.s: ARB8
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig07.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig07.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig07.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig07.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -559,10 +559,10 @@ cube.s: ARB8
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig08.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig08.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig08.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig08.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -638,10 +638,10 @@ object2.c: --
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig09.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig09.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig09.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig09.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -682,10 +682,10 @@ object2.c: --
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig10.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig10.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig10.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig10.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -739,10 +739,10 @@ object1.c: --
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig11.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig11.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig11.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig11.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -761,10 +761,10 @@ object1.c: --
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig12.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig12.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig12.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig12.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -834,10 +834,10 @@ object1.c: --
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/oed_fig13.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig13.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/oed_fig13.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/oed_fig13.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
+8 -8
View File
@@ -48,16 +48,16 @@ mged&gt; overlaps_tool -F [.overlaps file]
<section>
<title>Overlaps Menu GUI</title>
<para>
The overlaps menu has two sections -- New File and Existing File.
The overlaps menu has two sections -- New File and Exisiting File.
</para>
<para>
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="left" fileref="../articles/images/overlap_tool_fig01.gif" format="GIF" width="540"/>
<imagedata align="left" fileref="../../articles/images/overlap_tool_fig01.gif" format="GIF" width="540"/>
</imageobject>
<imageobject role="fo">
<imagedata align="left" fileref="../articles/images/overlap_tool_fig01.gif" format="GIF" width="540"/>
<imagedata align="left" fileref="../../articles/images/overlap_tool_fig01.gif" format="GIF" width="540"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -75,10 +75,10 @@ mged&gt; overlaps_tool -F [.overlaps file]
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="left" fileref="../articles/images/overlap_tool_fig02.gif" format="GIF" width="636"/>
<imagedata align="left" fileref="../../articles/images/overlap_tool_fig02.gif" format="GIF" width="636"/>
</imageobject>
<imageobject role="fo">
<imagedata align="left" fileref="../articles/images/overlap_tool_fig02.gif" format="GIF" width="636"/>
<imagedata align="left" fileref="../../articles/images/overlap_tool_fig02.gif" format="GIF" width="636"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -116,7 +116,7 @@ mged&gt; overlaps_tool -F [.overlaps file]
</section>
</section>
<section>
<title>Existing File</title>
<title>Exisiting File</title>
<para>
These options are to launch the checker tool directly for a previously created overlaps file.
</para>
@@ -143,10 +143,10 @@ mged&gt; overlaps_tool -F [.overlaps file]
<screenshot>
<mediaobject>
<imageobject role="html">
<imagedata align="left" fileref="../articles/images/overlap_tool_fig03.png" format="PNG" width="549"/>
<imagedata align="left" fileref="../../articles/images/overlap_tool_fig03.png" format="PNG" width="549"/>
</imageobject>
<imageobject role="fo">
<imagedata align="left" fileref="../articles/images/overlap_tool_fig03.png" format="PNG" width="549"/>
<imagedata align="left" fileref="../../articles/images/overlap_tool_fig03.png" format="PNG" width="549"/>
</imageobject>
</mediaobject>
</screenshot>
+18 -18
View File
@@ -79,10 +79,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/pipes_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/pipes_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/pipes_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/pipes_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -91,10 +91,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/pipes_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/pipes_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/pipes_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/pipes_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -103,10 +103,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/pipes_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/pipes_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/pipes_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/pipes_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -189,10 +189,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/pipes_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/pipes_fig04.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/pipes_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/pipes_fig04.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -297,35 +297,35 @@
<tbody>
<row>
<entry>- mged&gt;p 500 -500 150</entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../articles/images/pipes_fig05.png"/></imageobject><imageobject role="fo"><imagedata fileref="../articles/images/pipes_fig05.png"/></imageobject></inlinemediaobject></entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/images/pipes_fig05.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/images/pipes_fig05.png"/></imageobject></inlinemediaobject></entry>
</row>
<row>
<entry>- mged&gt;p -500 -500 250</entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../articles/images/pipes_fig06.png"/></imageobject><imageobject role="fo"><imagedata fileref="../articles/images/pipes_fig06.png"/></imageobject></inlinemediaobject></entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/images/pipes_fig06.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/images/pipes_fig06.png"/></imageobject></inlinemediaobject></entry>
</row>
<row>
<entry>- mged&gt;p -500 500 350</entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../articles/images/pipes_fig07.png"/></imageobject><imageobject role="fo"><imagedata fileref="../articles/images/pipes_fig07.png"/></imageobject></inlinemediaobject></entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/images/pipes_fig07.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/images/pipes_fig07.png"/></imageobject></inlinemediaobject></entry>
</row>
<row>
<entry>- mged&gt;p 500 500 450</entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../articles/images/pipes_fig08.png"/></imageobject><imageobject role="fo"><imagedata fileref="../articles/images/pipes_fig08.png"/></imageobject></inlinemediaobject></entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/images/pipes_fig08.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/images/pipes_fig08.png"/></imageobject></inlinemediaobject></entry>
</row>
<row>
<entry>- mged&gt;p 500 -500 550</entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../articles/images/pipes_fig09.png"/></imageobject><imageobject role="fo"><imagedata fileref="../articles/images/pipes_fig09.png"/></imageobject></inlinemediaobject></entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/images/pipes_fig09.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/images/pipes_fig09.png"/></imageobject></inlinemediaobject></entry>
</row>
<row>
<entry>- mged&gt;p -500 -500 650</entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../articles/images/pipes_fig10.png"/></imageobject><imageobject role="fo"><imagedata fileref="../articles/images/pipes_fig10.png"/></imageobject></inlinemediaobject></entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/images/pipes_fig10.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/images/pipes_fig10.png"/></imageobject></inlinemediaobject></entry>
</row>
<row>
<entry>- mged&gt;p -500 500 750</entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../articles/images/pipes_fig11.png"/></imageobject><imageobject role="fo"><imagedata fileref="../articles/images/pipes_fig11.png"/></imageobject></inlinemediaobject></entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/images/pipes_fig11.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/images/pipes_fig11.png"/></imageobject></inlinemediaobject></entry>
</row>
<row>
<entry>- mged&gt;p 0 500 800</entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../articles/images/pipes_fig12.png"/></imageobject><imageobject role="fo"><imagedata fileref="../articles/images/pipes_fig12.png"/></imageobject></inlinemediaobject></entry>
<entry><inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/images/pipes_fig12.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/images/pipes_fig12.png"/></imageobject></inlinemediaobject></entry>
</row>
</tbody>
</tgroup>
@@ -339,10 +339,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/pipes_fig13.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/pipes_fig13.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/pipes_fig13.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/pipes_fig13.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
+14 -14
View File
@@ -26,10 +26,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/projection_shader_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/projection_shader_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -172,10 +172,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/projection_shader_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/projection_shader_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -304,10 +304,10 @@ Diagrammed, this command breaks down as follows:
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/projection_shader_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/projection_shader_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -345,10 +345,10 @@ Diagrammed, this command breaks down as follows:
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/projection_shader_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig04.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/projection_shader_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig04.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -357,10 +357,10 @@ Diagrammed, this command breaks down as follows:
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/projection_shader_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig05.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/projection_shader_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig05.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -385,10 +385,10 @@ prj_add circuitboard.prj circuit_front_950.pix 950 950
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/projection_shader_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig06.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/projection_shader_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig06.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -401,10 +401,10 @@ prj_add circuitboard.prj circuit_front_950.pix 950 950
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/projection_shader_fig07.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig07.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/projection_shader_fig07.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/projection_shader_fig07.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
+5 -10
View File
@@ -1,14 +1,9 @@
set(articles_RU about_ru.xml)
if(TARGET mged OR TARGET qged OR TARGET archer)
if(BRLCAD_EXTRADOCS)
add_docbook("HTML;PHP;PDF" articles_RU articles/ru "")
endif(BRLCAD_EXTRADOCS)
endif(TARGET mged OR TARGET qged OR TARGET archer)
set(articles_RU
about_ru.xml
)
ADD_DOCBOOK("HTML;PHP;PDF" articles_RU articles/ru "")
cmakefiles(
${articles_RU}
CMakeLists.txt
)
CMAKEFILES(CMakeLists.txt)
# Local Variables:
# tab-width: 8
+28 -28
View File
@@ -52,10 +52,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig01.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -174,10 +174,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig02.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -202,10 +202,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig03.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -284,10 +284,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig04.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig04.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -307,10 +307,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig05.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig05.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -334,10 +334,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig06.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig06.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -364,10 +364,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig07.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig07.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig07.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig07.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -392,10 +392,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig08.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig08.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig08.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig08.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -451,10 +451,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig09.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig09.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig09.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig09.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -475,10 +475,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig10.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig10.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig10.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig10.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -504,10 +504,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig11.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig11.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig11.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig11.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -535,10 +535,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig12.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig12.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig12.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig12.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -563,10 +563,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig13.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig13.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig13.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig13.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -623,10 +623,10 @@
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../articles/images/tire_fig14.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig14.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../articles/images/tire_fig14.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/images/tire_fig14.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -76,13 +76,13 @@
<imageobject role="html">
<imagedata
width="6in"
fileref="../books/images/tutorial_series_volI_fig01.png" format="PNG"/>
fileref="../../books/images/tutorial_series_volI_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata
width="100%"
scalefit="1"
fileref="../books/images/tutorial_series_volI_fig01.png" format="PNG"/>
fileref="../../books/images/tutorial_series_volI_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
@@ -275,12 +275,12 @@
<imagedata
width="2in"
scalefit="1"
fileref="../books/images/tutorial_series_volI_fig02.png"
fileref="../../books/images/tutorial_series_volI_fig02.png"
/>
</imageobject>
<imageobject role="fo">
<imagedata
fileref="../books/images/tutorial_series_volI_fig02.png"
fileref="../../books/images/tutorial_series_volI_fig02.png"
/>
</imageobject>
</inlinemediaobject></entry>
@@ -289,12 +289,12 @@
<imagedata
width="2in"
scalefit="1"
fileref="../books/images/tutorial_series_volI_fig03.png"
fileref="../../books/images/tutorial_series_volI_fig03.png"
/>
</imageobject>
<imageobject role="fo">
<imagedata
fileref="../books/images/tutorial_series_volI_fig03.png"
fileref="../../books/images/tutorial_series_volI_fig03.png"
/>
</imageobject>
</inlinemediaobject></entry>
@@ -303,12 +303,12 @@
<imagedata
width="2in"
scalefit="1"
fileref="../books/images/tutorial_series_volI_fig04.png"
fileref="../../books/images/tutorial_series_volI_fig04.png"
/>
</imageobject>
<imageobject role="fo">
<imagedata
fileref="../books/images/tutorial_series_volI_fig04.png"
fileref="../../books/images/tutorial_series_volI_fig04.png"
/>
</imageobject>
</inlinemediaobject></entry>
@@ -326,12 +326,12 @@
<imagedata
width="2in"
scalefit="1"
fileref="../books/images/tutorial_series_volI_fig05.png"
fileref="../../books/images/tutorial_series_volI_fig05.png"
/>
</imageobject>
<imageobject role="fo">
<imagedata
fileref="../books/images/tutorial_series_volI_fig05.png"
fileref="../../books/images/tutorial_series_volI_fig05.png"
/>
</imageobject>
</inlinemediaobject></entry>
@@ -340,12 +340,12 @@
<imagedata
width="2in"
scalefit="1"
fileref="../books/images/tutorial_series_volI_fig06.png"
fileref="../../books/images/tutorial_series_volI_fig06.png"
/>
</imageobject>
<imageobject role="fo">
<imagedata
fileref="../books/images/tutorial_series_volI_fig06.png"
fileref="../../books/images/tutorial_series_volI_fig06.png"
/>
</imageobject>
</inlinemediaobject></entry>
@@ -354,12 +354,12 @@
<imagedata
width="2in"
scalefit="1"
fileref="../books/images/tutorial_series_volI_fig07.png"
fileref="../../books/images/tutorial_series_volI_fig07.png"
/>
</imageobject>
<imageobject role="fo">
<imagedata
fileref="../books/images/tutorial_series_volI_fig07.png"
fileref="../../books/images/tutorial_series_volI_fig07.png"
/>
</imageobject>
</inlinemediaobject></entry>
@@ -138,10 +138,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" width="4in" fileref="../books/images/tutorial_series_volIII_fig01.png" format="PNG"/>
<imagedata align="center" width="4in" fileref="../../books/images/tutorial_series_volIII_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata width="80%" scalefit="1" fileref="../books/images/tutorial_series_volIII_fig01.png" format="PNG"/>
<imagedata width="80%" scalefit="1" fileref="../../books/images/tutorial_series_volIII_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -150,10 +150,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" width="4in" fileref="../books/images/tutorial_series_volIII_fig02.png" format="PNG"/>
<imagedata align="center" width="4in" fileref="../../books/images/tutorial_series_volIII_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata width="80%" scalefit="1" fileref="../books/images/tutorial_series_volIII_fig02.png" format="PNG"/>
<imagedata width="80%" scalefit="1" fileref="../../books/images/tutorial_series_volIII_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -231,10 +231,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" width="4in" fileref="../books/images/tutorial_series_volIII_fig03.png" format="PNG"/>
<imagedata align="center" width="4in" fileref="../../books/images/tutorial_series_volIII_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata width="4in" scalefit="1" fileref="../books/images/tutorial_series_volIII_fig03.png" format="PNG"/>
<imagedata width="4in" scalefit="1" fileref="../../books/images/tutorial_series_volIII_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -289,8 +289,8 @@
</para>
<para>
<inlinemediaobject>
<imageobject role="html"><imagedata width="1in" scalefit="1" fileref="../books/images/tutorial_series_volIII_fig30.png"/></imageobject>
<imageobject role="fo"><imagedata fileref="../books/images/tutorial_series_volIII_fig30.png"/></imageobject>
<imageobject role="html"><imagedata width="1in" scalefit="1" fileref="../../books/images/tutorial_series_volIII_fig30.png"/></imageobject>
<imageobject role="fo"><imagedata fileref="../../books/images/tutorial_series_volIII_fig30.png"/></imageobject>
</inlinemediaobject>
</para>
</entry>
@@ -312,8 +312,8 @@
</para>
<para>
<inlinemediaobject>
<imageobject role="html"><imagedata width="1in" scalefit="1" fileref="../books/images/tutorial_series_volIII_fig21.png"/></imageobject>
<imageobject role="fo"><imagedata fileref="../books/images/tutorial_series_volIII_fig21.png"/></imageobject>
<imageobject role="html"><imagedata width="1in" scalefit="1" fileref="../../books/images/tutorial_series_volIII_fig21.png"/></imageobject>
<imageobject role="fo"><imagedata fileref="../../books/images/tutorial_series_volIII_fig21.png"/></imageobject>
</inlinemediaobject>
</para>
</entry>
@@ -333,8 +333,8 @@
</para>
<para>
<inlinemediaobject>
<imageobject role="html"><imagedata width="1in" scalefit="1" fileref="../books/images/tutorial_series_volIII_fig22.png"/></imageobject>
<imageobject role="fo"><imagedata fileref="../books/images/tutorial_series_volIII_fig22.png"/></imageobject>
<imageobject role="html"><imagedata width="1in" scalefit="1" fileref="../../books/images/tutorial_series_volIII_fig22.png"/></imageobject>
<imageobject role="fo"><imagedata fileref="../../books/images/tutorial_series_volIII_fig22.png"/></imageobject>
</inlinemediaobject>
</para>
</entry>
@@ -476,10 +476,10 @@
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/tutorial_series_volIII_table_image_1.png" format="PNG"/>
<imagedata fileref="../../books/images/tutorial_series_volIII_table_image_1.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/tutorial_series_volIII_table_image_1.png" format="PNG"/>
<imagedata fileref="../../books/images/tutorial_series_volIII_table_image_1.png" format="PNG"/>
</imageobject>
<caption>
<para>[a] Intersection and union symbols presented here
@@ -828,10 +828,10 @@ mvall oldname newname
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig04.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig04.png" format="PNG"/>
</imageobject>
</mediaobject>
@@ -840,10 +840,10 @@ mvall oldname newname
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig05.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig05.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1026,10 +1026,10 @@ mvall oldname newname
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig24.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig24.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig24.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig24.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1059,10 +1059,10 @@ mvall oldname newname
<para>
<inlinemediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/tutorial_series_volIII_fig23.png"/>
<imagedata fileref="../../books/images/tutorial_series_volIII_fig23.png"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/tutorial_series_volIII_fig23.png"/>
<imagedata fileref="../../books/images/tutorial_series_volIII_fig23.png"/>
</imageobject>
</inlinemediaobject>
</para>
@@ -1076,10 +1076,10 @@ mvall oldname newname
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig25.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig25.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig25.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig25.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1112,10 +1112,10 @@ mvall oldname newname
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig26.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig26.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig26.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig26.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1157,10 +1157,10 @@ mvall oldname newname
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig27.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig27.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig27.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig27.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1208,10 +1208,10 @@ mvall oldname newname
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig28.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig28.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig28.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig28.png" format="PNG"/>
</imageobject>
<caption>
<para>
@@ -1253,10 +1253,10 @@ mvall oldname newname
<informalfigure>
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig29.png"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig29.png"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig29.png"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig29.png"/>
</imageobject>
<caption>
<para>
@@ -1519,10 +1519,10 @@ mvall oldname newname
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig06.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig06.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1530,10 +1530,10 @@ mvall oldname newname
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig07.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig07.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig07.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig07.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1541,10 +1541,10 @@ mvall oldname newname
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig08.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig08.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig08.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig08.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1552,10 +1552,10 @@ mvall oldname newname
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig09.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig09.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig09.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig09.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1595,10 +1595,10 @@ mvall oldname newname
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig10.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig10.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig10.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig10.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1607,10 +1607,10 @@ mvall oldname newname
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig11.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig11.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig11.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig11.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1844,10 +1844,10 @@ mged&gt; dbconcat [-s, -p] filename.g [prefix]
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig12.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig12.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig12.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig12.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1855,10 +1855,10 @@ mged&gt; dbconcat [-s, -p] filename.g [prefix]
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig13.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig13.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig13.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig13.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1866,10 +1866,10 @@ mged&gt; dbconcat [-s, -p] filename.g [prefix]
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig14.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig14.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig14.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig14.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1907,10 +1907,10 @@ mged&gt; dbconcat [-s, -p] filename.g [prefix]
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig15.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig15.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig15.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig15.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -1971,10 +1971,10 @@ mged&gt; dbconcat [-s, -p] filename.g [prefix]
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig16.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig16.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig16.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig16.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -2063,10 +2063,10 @@ comb comb_name u a - b + c
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig17.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig17.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig17.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig17.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -2952,10 +2952,10 @@ comb comb_name u a - b + c
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig18.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig18.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig18.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig18.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -3029,10 +3029,10 @@ comb comb_name u a - b + c
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig19.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig19.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig19.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig19.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -3053,10 +3053,10 @@ comb comb_name u a - b + c
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig20.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig20.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../books/images/tutorial_series_volIII_fig20.png" format="PNG"/>
<imagedata align="center" fileref="../../books/images/tutorial_series_volIII_fig20.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
+69 -131
View File
@@ -1,28 +1,19 @@
# Style sheet for XSLT transformation to book HTML pages
if(BRLCAD_EXTRADOCS_HTML)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl)
endif(BRLCAD_EXTRADOCS_HTML)
if(BRLCAD_EXTRADOCS_PHP)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl)
endif(BRLCAD_EXTRADOCS_PHP)
# Files for PDF products
if(BRLCAD_EXTRADOCS_PDF)
# Style sheet for XSLT transformation to PDF
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-book-fo-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-fo-stylesheet.xsl
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-fo-stylesheet.xsl")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-book-fo-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-fo-stylesheet.xsl)
endif(BRLCAD_EXTRADOCS_PDF)
# For HTML and FO (FO is an intermediate file used in the
@@ -32,8 +23,8 @@ set(XSL_PHP_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/wordpres
set(XSL_HTML_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-xhtml-stylesheet.xsl")
set(XSL_FO_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-book-fo-stylesheet.xsl")
set(
books_EN_IMAGES
set(books_EN_IMAGES
images/tutorial_series_volI_fig01.png
images/tutorial_series_volI_fig02.png
images/tutorial_series_volI_fig03.png
@@ -83,12 +74,12 @@ set(
images/v4-image009.jpg
images/v4-image010.jpg
images/v4-image011.jpg
)
if(TARGET mged OR TARGET qged OR TARGET archer)
if(BRLCAD_EXTRADOCS)
add_doc(books_EN_IMAGES html/books/images)
endif(BRLCAD_EXTRADOCS)
endif(TARGET mged OR TARGET qged OR TARGET archer)
)
if(BRLCAD_EXTRADOCS)
ADD_DOC(books_EN_IMAGES books/images)
else(BRLCAD_EXTRADOCS)
CMAKEFILES(${books_EN_IMAGES})
endif(BRLCAD_EXTRADOCS)
# The PDFs need some special logic to generate custom
# covers.
@@ -96,148 +87,95 @@ endif(TARGET mged OR TARGET qged OR TARGET archer)
set(COVER_COLOR "cc9966")
set(CURRENT_VOLUME "I")
set(CURRENT_TITLE "An Overview of BRL-CAD")
configure_file(
${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-cover-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeI-cover.xsl
@ONLY
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeI-cover.xsl")
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-cover-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeI-cover.xsl @ONLY)
string(REPLACE " " "%20" TUTORIAL_COVER_XSL ${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeI-cover.xsl)
configure_file(
${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeI.xsl
@ONLY
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeI.xsl")
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeI.xsl @ONLY)
set(XSL_FO_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeI.xsl")
if(TARGET mged OR TARGET qged OR TARGET archer)
if(BRLCAD_EXTRADOCS)
add_docbook("HTML;PHP;PDF" BRL-CAD_Tutorial_Series-VolumeI.xml books books_EN_IMAGES_cp)
endif(BRLCAD_EXTRADOCS)
endif(TARGET mged OR TARGET qged OR TARGET archer)
ADD_DOCBOOK("HTML;PHP;PDF" BRL-CAD_Tutorial_Series-VolumeI.xml books books_EN_IMAGES_cp)
set(COVER_COLOR "cc6666")
set(CURRENT_VOLUME "II")
set(CURRENT_TITLE "Introduction to MGED")
configure_file(
${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-cover-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeII-cover.xsl
@ONLY
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeII-cover.xsl")
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-cover-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeII-cover.xsl @ONLY)
string(REPLACE " " "%20" TUTORIAL_COVER_XSL ${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeII-cover.xsl)
configure_file(
${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeII.xsl
@ONLY
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeII.xsl")
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeII.xsl @ONLY)
set(XSL_FO_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeII.xsl")
if(TARGET mged OR TARGET qged OR TARGET archer)
if(BRLCAD_EXTRADOCS)
add_docbook("HTML;PHP;PDF" BRL-CAD_Tutorial_Series-VolumeII.xml books books_EN_IMAGES_cp)
endif(BRLCAD_EXTRADOCS)
endif(TARGET mged OR TARGET qged OR TARGET archer)
ADD_DOCBOOK("HTML;PHP;PDF" BRL-CAD_Tutorial_Series-VolumeII.xml books books_EN_IMAGES_cp)
set(COVER_COLOR "669966")
set(CURRENT_VOLUME "III")
set(CURRENT_TITLE "Principles of Effective Modeling")
configure_file(
${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-cover-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIII-cover.xsl
@ONLY
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIII-cover.xsl")
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-cover-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIII-cover.xsl @ONLY)
string(REPLACE " " "%20" TUTORIAL_COVER_XSL ${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIII-cover.xsl)
configure_file(
${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIII.xsl
@ONLY
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIII.xsl")
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIII.xsl @ONLY)
set(XSL_FO_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIII.xsl")
if(TARGET mged OR TARGET qged OR TARGET archer)
if(BRLCAD_EXTRADOCS)
add_docbook("HTML;PHP;PDF" BRL-CAD_Tutorial_Series-VolumeIII.xml books books_EN_IMAGES_cp)
endif(BRLCAD_EXTRADOCS)
endif(TARGET mged OR TARGET qged OR TARGET archer)
ADD_DOCBOOK("HTML;PHP;PDF" BRL-CAD_Tutorial_Series-VolumeIII.xml books books_EN_IMAGES_cp)
set(COVER_COLOR "6699cc")
set(CURRENT_VOLUME "IV")
set(CURRENT_TITLE "Converting Geometry Between BRL-CAD and Other Formats")
configure_file(
${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-cover-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIV-cover.xsl
@ONLY
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIV-cover.xsl")
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-cover-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIV-cover.xsl @ONLY)
string(REPLACE " " "%20" TUTORIAL_COVER_XSL ${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIV-cover.xsl)
configure_file(
${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIV.xsl
@ONLY
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIV.xsl")
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/resources/brlcad/tutorial-template.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIV.xsl @ONLY)
set(XSL_FO_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/BRL-CAD_Tutorial_Series-VolumeIV.xsl")
if(TARGET mged OR TARGET qged OR TARGET archer)
if(BRLCAD_EXTRADOCS)
add_docbook("HTML;PHP;PDF" BRL-CAD_Tutorial_Series-VolumeIV.xml books books_EN_IMAGES_cp)
endif(BRLCAD_EXTRADOCS)
endif(TARGET mged OR TARGET qged OR TARGET archer)
ADD_DOCBOOK("HTML;PHP;PDF" BRL-CAD_Tutorial_Series-VolumeIV.xml books books_EN_IMAGES_cp)
set(
hacking_brlcad_images
images/hacking_brlcad_article_tire_pdf.png
images/hacking_brlcad_bearing_cc.png
images/hacking_brlcad_book_vol3_pdf.png
images/hacking_brlcad_brlcad_intro_hy.png
images/hacking_brlcad_brlcad-wiki.png
images/hacking_brlcad_csg.png
images/hacking_brlcad_cubit.png
images/hacking_brlcad_docbook_CMakeLists.png
images/hacking_brlcad_docbook_working_session.png
images/hacking_brlcad_doxygen_output.png
images/hacking_brlcad_emacs-nxml.png
images/hacking_brlcad_example_docbook_default_output.png
images/hacking_brlcad_g_spec_pdf.png
images/hacking_brlcad_havoc_c.png
images/hacking_brlcad_havoc_views_c.png
images/hacking_brlcad_M1A1_9x10_300dpi_cc.png
images/hacking_brlcad_man_page_search.png
images/hacking_brlcad_sflake2_cc.png
images/hacking_brlcad_Sgi_cube_cc.png
images/hacking_brlcad_stryker_slat.png
images/hacking_brlcad_tcl_tk_presentation.png
images/hacking_brlcad_teapot.png
images/hacking_brlcad_tracked_mine.png
images/hacking_brlcad_tutorial_1_pdf.png
images/hacking_brlcad_xyz.png
)
cmakefiles(
${books_EN_IMAGES}
${hacking_brlcad_images}
BRL-CAD_Tutorial_Series-VolumeI.xml
BRL-CAD_Tutorial_Series-VolumeII.xml
BRL-CAD_Tutorial_Series-VolumeIII.xml
BRL-CAD_Tutorial_Series-VolumeIV.xml
CMakeLists.txt
HACKING_BRL-CAD.xml
README
tutorial_series_authors.xml
)
CMAKEFILES(tutorial_series_authors.xml)
set(hacking_brlcad_images
images/hacking_brlcad_article_tire_pdf.png
images/hacking_brlcad_bearing_cc.png
images/hacking_brlcad_book_vol3_pdf.png
images/hacking_brlcad_brlcad_intro_hy.png
images/hacking_brlcad_brlcad-wiki.png
images/hacking_brlcad_csg.png
images/hacking_brlcad_cubit.png
images/hacking_brlcad_docbook_CMakeLists.png
images/hacking_brlcad_docbook_working_session.png
images/hacking_brlcad_doxygen_output.png
images/hacking_brlcad_emacs-nxml.png
images/hacking_brlcad_example_docbook_default_output.png
images/hacking_brlcad_g_spec_pdf.png
images/hacking_brlcad_havoc_c.png
images/hacking_brlcad_havoc_views_c.png
images/hacking_brlcad_M1A1_9x10_300dpi_cc.png
images/hacking_brlcad_man_page_search.png
images/hacking_brlcad_sflake2_cc.png
images/hacking_brlcad_Sgi_cube_cc.png
images/hacking_brlcad_stryker_slat.png
images/hacking_brlcad_tcl_tk_presentation.png
images/hacking_brlcad_teapot.png
images/hacking_brlcad_tracked_mine.png
images/hacking_brlcad_tutorial_1_pdf.png
images/hacking_brlcad_xyz.png
)
CMAKEFILES(${hacking_brlcad_images})
CMAKEFILES(HACKING_BRL-CAD.xml)
CMAKEFILES(README)
CMAKEFILES(CMakeLists.txt)
# Local Variables:
# tab-width: 8
+74 -64
View File
@@ -275,10 +275,10 @@
<title>Solid Geometry</title>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_tracked_mine.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_tracked_mine.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_tracked_mine.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_tracked_mine.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
<para>
@@ -290,10 +290,10 @@
<title>Raytracing</title>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_bearing_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_bearing_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_bearing_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_bearing_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
<para>
@@ -305,7 +305,7 @@
<title>Geometry Conversion</title>
<mediaobject>
<imageobject>
<imagedata fileref="../books/images/hacking_brlcad_cubit.png" format="PNG" scalefit="1" width="100%" contentdepth="100%" />
<imagedata fileref="../../books/images/hacking_brlcad_cubit.png" format="PNG" scalefit="1" width="100%" contentdepth="100%" />
</imageobject>
</mediaobject>
<para>
@@ -313,7 +313,7 @@
</para>
<!--<mediaobject>
<imageobject>
<imagedata fileref="../books/images/hacking_brlcad_missing.png" format="PNG" scalefit="1" width="100%" contentdepth="100%" />
<imagedata fileref="../../books/images/hacking_brlcad_missing.png" format="PNG" scalefit="1" width="100%" contentdepth="100%" />
</imageobject>
</mediaobject>-->
<para>
@@ -325,10 +325,10 @@
<title>Procedural Geometry</title>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_sflake2_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_sflake2_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_sflake2_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_sflake2_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
<para>
@@ -340,10 +340,10 @@
<title>Boundary Representation</title>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_teapot.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_teapot.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_teapot.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_teapot.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
<para>
@@ -355,10 +355,10 @@
<title>Path Tracing</title>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_stryker_slat.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_stryker_slat.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_stryker_slat.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_stryker_slat.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
<para>
@@ -370,10 +370,10 @@
<title>Constructive Solid Geometry (CSG)</title>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_M1A1_9x10_300dpi_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_M1A1_9x10_300dpi_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_M1A1_9x10_300dpi_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_M1A1_9x10_300dpi_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
<para>
@@ -381,10 +381,10 @@
</para>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_csg.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_csg.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_csg.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_csg.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
</section>
@@ -393,18 +393,18 @@
<title>Hidden Line Rendering</title>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_havoc_c.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_havoc_c.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_havoc_c.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_havoc_c.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_havoc_views_c.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_havoc_views_c.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_havoc_views_c.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_havoc_views_c.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
<para>
@@ -416,10 +416,10 @@
<title>Scripting Interface</title>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_Sgi_cube_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_Sgi_cube_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_Sgi_cube_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_Sgi_cube_cc.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
<para>
@@ -498,7 +498,7 @@
<section>
<title>The Big Picture</title>
<para>
The source code and most project data are stored in a Git<footnote><para><link xlink:href="http://git-scm.com/"/></para></footnote> version control system for change tracking and collaborative development. Primary development in the "main" branch is generally stable, but cross-platform compilation is not guaranteed. A separate branch (named STABLE) provides a higher level of quality assurance. Every released version of BRL-CAD is tested and tagged.
The source code and most project data are stored in a Subversion<footnote><para><link xlink:href="http://subversion.apache.org/"/></para></footnote> version control system for change tracking and collaborative development. Trunk development is generally stable, but cross-platform compilation is not guaranteed. A separate branch (named STABLE) provides a higher level of quality assurance. Every released version of BRL-CAD is tested and tagged.
</para>
<para>
@@ -644,6 +644,15 @@
</listitem>
</varlistentry>
<varlistentry>
<term>
<filename>src/other/</filename>
</term>
<listitem>
<para>3rd party frameworks (Tcl/Tk, libpng, zlib, etc.)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<filename>src/proc-db/</filename>
@@ -762,7 +771,7 @@
<title>Code Conventions</title>
<para>
BRL-CAD has a STABLE branch in Git that should always compile and run on all supported platforms. The primary development branch trunk, unlike STABLE, is generally expected to compile but may occasionally fail to do so during active development.
BRL-CAD has a STABLE branch in SVN that should always compile and run on all supported platforms. The primary development branch trunk, unlike STABLE, is generally expected to compile but may occasionally fail to do so during active development.
</para>
<section>
<title>Languages</title>
@@ -1011,11 +1020,11 @@ some_function(char *j)
</para>
<section><title>Obtaining the Code</title>
<para>
You can get the development code for BRL-CAD from our Git code repository using the following command:
You can get the development code for BRL-CAD from our Subversion code repository using the following command:
</para>
<para>
<command>git clone https://github.com/BRL-CAD/brlcad</command>
<command>svn checkout svn://svn.code.sf.net/p/brlcad/code/brlcad/trunk brlcad-code</command>
</para>
<para>
@@ -1153,10 +1162,10 @@ some_function(char *j)
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_emacs-nxml.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_emacs-nxml.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_emacs-nxml.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_emacs-nxml.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
@@ -1218,10 +1227,10 @@ xmllint failure: 1
</para>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_docbook_CMakeLists.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_docbook_CMakeLists.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_docbook_CMakeLists.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_docbook_CMakeLists.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
@@ -1276,10 +1285,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_example_docbook_default_output.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_example_docbook_default_output.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_example_docbook_default_output.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_example_docbook_default_output.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
@@ -1298,10 +1307,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_docbook_working_session.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_docbook_working_session.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_docbook_working_session.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_docbook_working_session.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
@@ -1321,10 +1330,10 @@ Scanning dependencies of target ellipsoid_article_html
</para>
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_brlcad_intro_hy.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_brlcad_intro_hy.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_brlcad_intro_hy.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_brlcad_intro_hy.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
</section>
@@ -1401,10 +1410,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_tutorial_1_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_tutorial_1_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_tutorial_1_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_tutorial_1_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
@@ -1441,10 +1450,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_brlcad-wiki.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_brlcad-wiki.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_brlcad-wiki.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_brlcad-wiki.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
</section>
@@ -1456,10 +1465,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_man_page_search.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_man_page_search.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_man_page_search.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_man_page_search.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
</section>
@@ -1475,10 +1484,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_doxygen_output.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_doxygen_output.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_doxygen_output.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_doxygen_output.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
</section>
@@ -1490,10 +1499,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_tcl_tk_presentation.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_tcl_tk_presentation.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_tcl_tk_presentation.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_tcl_tk_presentation.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
</section>
@@ -1505,10 +1514,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_article_tire_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_article_tire_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_article_tire_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_article_tire_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
</section>
@@ -1520,10 +1529,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_book_vol3_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_book_vol3_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_book_vol3_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_book_vol3_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
</section>
@@ -1535,10 +1544,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_g_spec_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_g_spec_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_g_spec_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_g_spec_pdf.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
</section>
@@ -1550,10 +1559,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_tcl_tk_presentation.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_tcl_tk_presentation.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_tcl_tk_presentation.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_tcl_tk_presentation.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
</section>
@@ -1581,7 +1590,7 @@ Scanning dependencies of target ellipsoid_article_html
</para>
<para>
We also have a list of bugs in our <link xlink:href="https://github.com/BRL-CAD/brlcad/blob/main/BUGS">BUGS file</link>. While most of the bugs in the list focus on the BRL-CAD code, there are a few related to the documentation. If you plan to tackle a documentation bug, remember to report it in our <link xlink:href="https://github.com/BRL-CAD/brlcad/issues">issue tracker</link> (https://github.com/BRL-CAD/brlcad/issues).
We also have a list of bugs in our <link xlink:href="http://sourceforge.net/p/brlcad/code/HEAD/tree/brlcad/trunk/BUGS">BUGS file</link>. While most of the bugs in the list focus on the BRL-CAD code, there are a few related to the documentation. If you plan to tackle a documentation bug, remember to report it in our <link xlink:href="http://sourceforge.net/p/brlcad/bugs/">bug tracker</link> (http://sourceforge.net/p/brlcad/bugs/).
</para>
</section>
@@ -1603,15 +1612,15 @@ Scanning dependencies of target ellipsoid_article_html
<section><title>Obtaining the Documentation</title>
<para>
The documentation and the toolchain required to generate the documentation is part of the software's development code. You should download the source code from the Git version control system using the following command:
The documentation and the toolchain required to generate the documentation is part of the software's development code. You should download the source code from the Subversion version control system using the following command:
</para>
<para>
<command>git clone https://github.com/BRL-CAD/brlcad</command>
<command>svn checkout svn://svn.code.sf.net/p/brlcad/code/brlcad/trunk brlcad-code</command>
</para>
<para>
The directory <filename>brlcad</filename> should be within your <filename>/home</filename> directory so that BRL-CAD's build directory commands don't interfere with your system's commands.
The directory <filename>brlcad-code</filename> should be within your <filename>/home</filename> directory so that BRL-CAD's build directory commands don't interfere with your system's commands.
</para>
<section><title>Obtaining FOP</title>
@@ -1724,7 +1733,7 @@ Scanning dependencies of target ellipsoid_article_html
<section><title>Bug Reporting and Feature Requests</title>
<para>
Finding bugs in software is often a challenging task for developers. If you find a problem with the software, file a bug report on BRL-CAD's official <link xlink:href="https://github.com/BRL-CAD/brlcad/issues">issue tracking page</link> on SourceForge (http://sourceforge.net/p/brlcad/bugs/). Please remember to provide enough detail so that we can reproduce the problem. You can also post to our developer mailing list at <email>brlcad-devel@lists.sourceforge.net</email>.
Finding bugs in software is often a challenging task for developers. If you find a problem with the software, file a bug report on BRL-CAD's official <link xlink:href="http://sourceforge.net/p/brlcad/bugs/">bug tracking page</link> on SourceForge (http://sourceforge.net/p/brlcad/bugs/). Please remember to provide enough detail so that we can reproduce the problem. You can also post to our developer mailing list at <email>brlcad-devel@lists.sourceforge.net</email>.
</para>
<para>
@@ -1743,10 +1752,10 @@ Scanning dependencies of target ellipsoid_article_html
<mediaobject>
<imageobject role="html">
<imagedata fileref="../books/images/hacking_brlcad_xyz.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_xyz.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="../books/images/hacking_brlcad_xyz.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
<imagedata fileref="../../books/images/hacking_brlcad_xyz.png" format="PNG" scalefit="1" width="100%" contentdepth="100%"/>
</imageobject>
</mediaobject>
@@ -1816,14 +1825,15 @@ Scanning dependencies of target ellipsoid_article_html
<listitem><para>Wiki: <link xlink:href="http://brlcad.org/wiki/Main_Page"/></para></listitem>
<listitem><para>FAQs: <link xlink:href="http://brlcad.org/wiki/FAQ"/></para></listitem>
<listitem><para>Online documentation resources: <link xlink:href="http://brlcad.org/wiki/Documentation"/></para></listitem>
<listitem><para>Venerated developers' guide (HACKING File): <link xlink:href="https://github.com/BRL-CAD/brlcad/blob/main/HACKING"/></para></listitem>
<listitem><para>Venerated developers' guide (HACKING File): <link xlink:href="http://svn.code.sf.net/p/brlcad/code/brlcad/trunk/HACKING"/></para></listitem>
<listitem><para>BRL-CAD commands: <link xlink:href="http://brlcad.org/wiki/BRL-CAD_Commands"/></para></listitem>
<listitem><para>MGED command reference: <link xlink:href="http://brlcad.org/wiki/MGED_Commands"/></para></listitem>
<listitem><para>BRL-CAD primitives reference: <link xlink:href="http://brlcad.org/wiki/BRL-CAD_Primitives"/></para></listitem>
<listitem><para>Git: <link xlink:href="http://brlcad.org/wiki/Git"/></para></listitem>
<listitem><para>SVN: <link xlink:href="http://brlcad.org/wiki/SVN"/></para></listitem>
<listitem><para>BRL-CAD patch submission: <link xlink:href="http://brlcad.org/wiki/Patches"/></para></listitem>
<listitem><para>Image gallery: <link xlink:href="http://brlcad.org/gallery/"/></para></listitem>
<listitem><para>BRL-CAD Github page: <link xlink:href="http://github.com/BRL-CAD/brlcad/"/></para></listitem>
<listitem><para>BRL-CAD SourceForge page (since we use SVN for version control): <link xlink:href="http://sourceforge.net/projects/brlcad/"/></para></listitem>
<listitem><para>SourceForge registration page (for contributors to submit patches): <link xlink:href="https://sourceforge.net/user/registration"/></para></listitem>
<listitem><para>Application requirements for Google Summer of Code (GSoC) participants: <link xlink:href="http://brlcad.org/wiki/Google_Summer_of_Code/Application_Guidelines"/></para></listitem>
<listitem><para>Acceptance requirements for Google Summer of Code (GSoC) participants: <link xlink:href="http://brlcad.org/wiki/Google_Summer_of_Code/Acceptance"/></para></listitem>
<listitem><para>Behavioral expectations for GSoC participants: <link xlink:href="http://brlcad.org/wiki/Google_Summer_of_Code/Expectations"/></para></listitem>
+1 -1
View File
@@ -18,7 +18,7 @@
* file is used to provide a db_dir_info build target to reference in CMake.
*/
int main(void) {
int main() {
}
/*
-82
View File
@@ -1,82 +0,0 @@
# Style sheet for XSLT transformation to HTML pages
if(BRLCAD_EXTRADOCS_HTML)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-man-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-xhtml-stylesheet.xsl
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-xhtml-stylesheet.xsl")
endif(BRLCAD_EXTRADOCS_HTML)
if(BRLCAD_EXTRADOCS_PHP)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-man-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-xhtml-stylesheet.xsl
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-xhtml-stylesheet.xsl")
endif(BRLCAD_EXTRADOCS_PHP)
# Style sheet for XSLT transformation to manual pages
if(BRLCAD_EXTRADOCS_MAN)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-man-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-stylesheet.xsl
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-stylesheet.xsl")
endif(BRLCAD_EXTRADOCS_MAN)
# Files for PDF
if(BRLCAD_EXTRADOCS_PDF)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-man-fo-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-fo-stylesheet.xsl
)
distclean("${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-fo-stylesheet.xsl")
endif(BRLCAD_EXTRADOCS_PDF)
# For HTML, MAN and FO (FO is an intermediate file used in the
# XML->PDF transformation) we use variables to hold the full
# stylesheet path. In the case we need to further
# customize FO stylesheets we can have separate CMake logic in
# appropriate directories to handle the customization (e.g., the
# BRL-CAD manuals in books/en/CMakeLists.txt).
set(XSL_PHP_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/wordpress.xsl")
set(XSL_HTML_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-xhtml-stylesheet.xsl")
set(XSL_MAN_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-stylesheet.xsl")
set(XSL_FO_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-man-fo-stylesheet.xsl")
set(devguides_EN bool_eval_development.xml)
set(
devguides_EN_IMAGES
images/ccx_overlap_event.png
images/ssx_transverse_event.png
images/ssx_tangent_event.png
images/compare_endpoint_style.png
images/lcurves_with_shaded_context.png
images/ssx_10_vs_13.png
images/curve_traversal_directions.png
images/axis_X.png
images/intermediate_linked_curves.png
images/ssx_overlap_event.png
images/evaluation_overview.png
)
if(TARGET mged OR TARGET qged OR TARGET archer)
if(BRLCAD_EXTRADOCS)
add_doc(devguides_EN_IMAGES html/devguides/images)
add_docbook("HTML;PHP;PDF" devguides_EN devguides/en devguides_EN_IMAGES_cp)
endif(BRLCAD_EXTRADOCS)
endif(TARGET mged OR TARGET qged OR TARGET archer)
cmakefiles(
CMakeLists.txt
${devguides_EN}
${devguides_EN_IMAGES}
)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Some files were not shown because too many files have changed in this diff Show More