Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
614129fe4c |
@@ -1,2 +0,0 @@
|
||||
# Try to tell GitHub how to handle .asc files
|
||||
*.asc linguist-language=Tcl
|
||||
@@ -1,260 +0,0 @@
|
||||
name: Prepare bext dependencies
|
||||
description: Restore a compatible bext production artifact or build the pinned revision.
|
||||
|
||||
inputs:
|
||||
platform-channel:
|
||||
description: Published bext platform channel.
|
||||
required: true
|
||||
source-dir:
|
||||
description: Absolute path to the BRL-CAD source tree.
|
||||
required: true
|
||||
output-dir:
|
||||
description: Absolute path where the bext dependency tree will be prepared.
|
||||
required: true
|
||||
build-type:
|
||||
description: BRL-CAD build configuration that will consume the dependency tree.
|
||||
required: false
|
||||
default: Release
|
||||
artifact-token:
|
||||
description: Token with Actions read access to BRL-CAD/bext.
|
||||
required: false
|
||||
|
||||
outputs:
|
||||
bext-sha:
|
||||
description: The bext revision in the prepared dependency tree.
|
||||
value: ${{ steps.result.outputs.bext-sha }}
|
||||
source:
|
||||
description: Whether preparation used a production artifact, cache, or local build.
|
||||
value: ${{ steps.result.outputs.source }}
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Resolve bext production artifact
|
||||
id: resolve
|
||||
shell: bash
|
||||
env:
|
||||
BEXT_BUILD_TYPE: ${{ inputs.build-type }}
|
||||
BEXT_CHANNEL: ${{ inputs.platform-channel }}
|
||||
BRLCAD_SOURCE_DIR: ${{ inputs.source-dir }}
|
||||
GH_TOKEN: ${{ inputs.artifact-token }}
|
||||
run: |
|
||||
set -uo pipefail
|
||||
source_dir="$BRLCAD_SOURCE_DIR"
|
||||
if command -v cygpath >/dev/null 2>&1; then
|
||||
source_dir="$(cygpath -u "$source_dir")"
|
||||
fi
|
||||
required_sha="$(awk -F'[()]' '/^[[:space:]]*brlcad_bext_init\([0-9a-fA-F]{40}\)/ { print tolower($2) }' "$source_dir/CMakeLists.txt")"
|
||||
if [[ ! "$required_sha" =~ ^[0-9a-f]{40}$ ]]; then
|
||||
echo "Expected exactly one brlcad_bext_init(<sha>) call in $source_dir/CMakeLists.txt" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
repository='BRL-CAD/bext'
|
||||
marker_name="bext-production-$required_sha"
|
||||
marker_info="$(gh api "repos/$repository/actions/artifacts?name=$marker_name&per_page=100" \
|
||||
--jq '[.artifacts[] | select(.expired == false and .name == "'"$marker_name"'")] | sort_by(.created_at) | last | select(. != null) | [.name, .workflow_run.id] | @tsv' 2>/dev/null)" || marker_info=''
|
||||
|
||||
selected_sha=''
|
||||
run_id=''
|
||||
if [[ -n "$marker_info" ]]; then
|
||||
selected_sha="$required_sha"
|
||||
IFS=$'\t' read -r _ run_id <<< "$marker_info"
|
||||
echo "Found complete bext production artifacts for pinned revision $required_sha."
|
||||
else
|
||||
marker_info="$(gh api "repos/$repository/actions/artifacts?per_page=100" \
|
||||
--jq '[.artifacts[] | select(.expired == false and (.name | test("^bext-production-[0-9a-f]{40}$")))] | sort_by(.created_at) | last | select(. != null) | [.name, .workflow_run.id] | @tsv' 2>/dev/null)" || marker_info=''
|
||||
if [[ -n "$marker_info" ]]; then
|
||||
IFS=$'\t' read -r latest_marker run_id <<< "$marker_info"
|
||||
selected_sha="${latest_marker#bext-production-}"
|
||||
comparison="$(gh api "repos/$repository/compare/$required_sha...$selected_sha" --jq '.status' 2>/dev/null)" || comparison=''
|
||||
if [[ "$comparison" == 'ahead' || "$comparison" == 'identical' ]]; then
|
||||
echo "::warning::Using newer successful bext revision $selected_sha instead of BRL-CAD's pinned revision $required_sha."
|
||||
else
|
||||
selected_sha=''
|
||||
run_id=''
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
artifact_ready=false
|
||||
artifact_name=''
|
||||
if [[ "$RUNNER_OS" == 'Windows' && "$BEXT_BUILD_TYPE" == 'Debug' ]]; then
|
||||
echo 'Windows Debug requires a Debug bext build; skipping Release production artifacts.'
|
||||
selected_sha=''
|
||||
run_id=''
|
||||
elif [[ -n "$selected_sha" ]]; then
|
||||
artifact_name="bext-$BEXT_CHANNEL-$selected_sha"
|
||||
artifact_count="$(gh api "repos/$repository/actions/runs/$run_id/artifacts?name=$artifact_name&per_page=100" \
|
||||
--jq '[.artifacts[] | select(.expired == false and .name == "'"$artifact_name"'")] | length' 2>/dev/null)" || artifact_count=0
|
||||
if [[ "$artifact_count" == '1' ]]; then
|
||||
artifact_ready=true
|
||||
else
|
||||
selected_sha=''
|
||||
run_id=''
|
||||
artifact_name=''
|
||||
fi
|
||||
fi
|
||||
|
||||
cache_schema=1
|
||||
image_version="${ImageVersion:-unknown}"
|
||||
runner_arch="${RUNNER_ARCH:-unknown}"
|
||||
fallback_cache_key="bext-$cache_schema-$BEXT_CHANNEL-$BEXT_BUILD_TYPE-$required_sha-$image_version-$runner_arch"
|
||||
production_cache_key="bext-$cache_schema-$BEXT_CHANNEL-Release-$selected_sha"
|
||||
if [[ "$artifact_ready" != 'true' ]]; then
|
||||
echo "No compatible production artifact is available; using the cache/build fallback for $required_sha."
|
||||
fi
|
||||
|
||||
echo "required-sha=$required_sha" >> "$GITHUB_OUTPUT"
|
||||
echo "selected-sha=$selected_sha" >> "$GITHUB_OUTPUT"
|
||||
echo "run-id=$run_id" >> "$GITHUB_OUTPUT"
|
||||
echo "artifact-name=$artifact_name" >> "$GITHUB_OUTPUT"
|
||||
echo "artifact-ready=$artifact_ready" >> "$GITHUB_OUTPUT"
|
||||
echo "production-cache-key=$production_cache_key" >> "$GITHUB_OUTPUT"
|
||||
echo "fallback-cache-key=$fallback_cache_key" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Restore production artifact cache
|
||||
if: steps.resolve.outputs.artifact-ready == 'true'
|
||||
id: production-cache
|
||||
uses: actions/cache/restore@v6
|
||||
with:
|
||||
path: ${{ inputs.output-dir }}
|
||||
key: ${{ steps.resolve.outputs.production-cache-key }}
|
||||
|
||||
- name: Download bext production artifact
|
||||
if: steps.resolve.outputs.artifact-ready == 'true' && steps.production-cache.outputs.cache-hit != 'true'
|
||||
id: download
|
||||
shell: bash
|
||||
env:
|
||||
ARTIFACT_NAME: ${{ steps.resolve.outputs.artifact-name }}
|
||||
BEXT_CHANNEL: ${{ inputs.platform-channel }}
|
||||
BEXT_OUTPUT_DIR: ${{ inputs.output-dir }}
|
||||
BEXT_RUN_ID: ${{ steps.resolve.outputs.run-id }}
|
||||
GH_TOKEN: ${{ inputs.artifact-token }}
|
||||
run: |
|
||||
set -uo pipefail
|
||||
output_dir="$BEXT_OUTPUT_DIR"
|
||||
if command -v cygpath >/dev/null 2>&1; then
|
||||
output_dir="$(cygpath -u "$output_dir")"
|
||||
fi
|
||||
download_dir="$RUNNER_TEMP/bext-download-$BEXT_RUN_ID-$BEXT_CHANNEL"
|
||||
cmake -E rm -rf "$download_dir" "$output_dir"
|
||||
cmake -E make_directory "$download_dir" "$output_dir"
|
||||
|
||||
ready=false
|
||||
if gh run download "$BEXT_RUN_ID" --repo BRL-CAD/bext --name "$ARTIFACT_NAME" --dir "$download_dir"; then
|
||||
archive="$download_dir/bext-$BEXT_CHANNEL.tar.gz"
|
||||
if (cd "$output_dir" && cmake -E tar xzf "$archive") && \
|
||||
[[ -d "$output_dir/install" && -d "$output_dir/noinstall" && -f "$output_dir/bext-install-manifest.json" ]]; then
|
||||
ready=true
|
||||
fi
|
||||
fi
|
||||
cmake -E rm -rf "$download_dir"
|
||||
if [[ "$ready" != 'true' ]]; then
|
||||
cmake -E rm -rf "$output_dir"
|
||||
echo '::warning::Unable to download or validate the bext production artifact; using the pinned cache/build fallback.'
|
||||
fi
|
||||
echo "ready=$ready" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Restore fallback bext cache
|
||||
if: steps.production-cache.outputs.cache-hit != 'true' && steps.download.outputs.ready != 'true'
|
||||
id: fallback-cache
|
||||
uses: actions/cache/restore@v6
|
||||
with:
|
||||
path: ${{ inputs.output-dir }}
|
||||
key: ${{ steps.resolve.outputs.fallback-cache-key }}
|
||||
|
||||
- name: Build pinned bext revision
|
||||
if: steps.production-cache.outputs.cache-hit != 'true' && steps.download.outputs.ready != 'true' && steps.fallback-cache.outputs.cache-hit != 'true'
|
||||
shell: bash
|
||||
env:
|
||||
BEXT_BUILD_TYPE: ${{ inputs.build-type }}
|
||||
BEXT_OUTPUT_DIR: ${{ inputs.output-dir }}
|
||||
BEXT_SHA: ${{ steps.resolve.outputs.required-sha }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
output_dir="$BEXT_OUTPUT_DIR"
|
||||
if command -v cygpath >/dev/null 2>&1; then
|
||||
output_dir="$(cygpath -u "$output_dir")"
|
||||
fi
|
||||
source_dir="$RUNNER_TEMP/bext-src"
|
||||
build_dir="$RUNNER_TEMP/bext-build"
|
||||
cleanup() {
|
||||
cmake -E rm -rf "$source_dir" "$build_dir"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
cleanup
|
||||
cmake -E rm -rf "$output_dir"
|
||||
|
||||
git clone --filter=blob:none https://github.com/BRL-CAD/bext.git "$source_dir"
|
||||
git -C "$source_dir" -c advice.detachedHead=false checkout "$BEXT_SHA"
|
||||
configure_args=(-S "$source_dir" -B "$build_dir" -G Ninja -DENABLE_ALL=ON -DGIT_SHALLOW_CLONE=ON "-DCMAKE_BUILD_TYPE=$BEXT_BUILD_TYPE" "-DCMAKE_INSTALL_PREFIX=$output_dir")
|
||||
if [[ "$RUNNER_OS" == 'Windows' ]]; then
|
||||
configure_args+=(-DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe)
|
||||
elif [[ "$RUNNER_OS" == 'macOS' ]]; then
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
fi
|
||||
cmake "${configure_args[@]}"
|
||||
cmake --build "$build_dir" --config "$BEXT_BUILD_TYPE" --parallel 2
|
||||
|
||||
- name: Validate bext dependency tree
|
||||
shell: bash
|
||||
env:
|
||||
BEXT_OUTPUT_DIR: ${{ inputs.output-dir }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
output_dir="$BEXT_OUTPUT_DIR"
|
||||
if command -v cygpath >/dev/null 2>&1; then
|
||||
output_dir="$(cygpath -u "$output_dir")"
|
||||
fi
|
||||
[[ -d "$output_dir/install" && -d "$output_dir/noinstall" && -f "$output_dir/bext-install-manifest.json" ]]
|
||||
tool="$output_dir/noinstall/bin/strclear"
|
||||
if [[ "$RUNNER_OS" == 'Windows' ]]; then
|
||||
[[ -f "$tool.exe" ]]
|
||||
else
|
||||
[[ -x "$tool" ]]
|
||||
fi
|
||||
|
||||
- name: Save production artifact cache
|
||||
if: steps.download.outputs.ready == 'true'
|
||||
uses: actions/cache/save@v6
|
||||
with:
|
||||
path: ${{ inputs.output-dir }}
|
||||
key: ${{ steps.resolve.outputs.production-cache-key }}
|
||||
|
||||
- name: Save fallback bext cache
|
||||
if: steps.production-cache.outputs.cache-hit != 'true' && steps.download.outputs.ready != 'true' && steps.fallback-cache.outputs.cache-hit != 'true'
|
||||
uses: actions/cache/save@v6
|
||||
with:
|
||||
path: ${{ inputs.output-dir }}
|
||||
key: ${{ steps.resolve.outputs.fallback-cache-key }}
|
||||
|
||||
- name: Report bext source
|
||||
id: result
|
||||
shell: bash
|
||||
env:
|
||||
ARTIFACT_READY: ${{ steps.resolve.outputs.artifact-ready }}
|
||||
ARTIFACT_SHA: ${{ steps.resolve.outputs.selected-sha }}
|
||||
DOWNLOAD_READY: ${{ steps.download.outputs.ready }}
|
||||
FALLBACK_CACHE_HIT: ${{ steps.fallback-cache.outputs.cache-hit }}
|
||||
PRODUCTION_CACHE_HIT: ${{ steps.production-cache.outputs.cache-hit }}
|
||||
REQUIRED_SHA: ${{ steps.resolve.outputs.required-sha }}
|
||||
run: |
|
||||
if [[ "$PRODUCTION_CACHE_HIT" == 'true' ]]; then
|
||||
source=production-cache
|
||||
elif [[ "$DOWNLOAD_READY" == 'true' ]]; then
|
||||
source=production-artifact
|
||||
elif [[ "$FALLBACK_CACHE_HIT" == 'true' ]]; then
|
||||
source=fallback-cache
|
||||
else
|
||||
source=local-build
|
||||
fi
|
||||
if [[ "$ARTIFACT_READY" == 'true' && ( "$PRODUCTION_CACHE_HIT" == 'true' || "$DOWNLOAD_READY" == 'true' ) ]]; then
|
||||
sha="$ARTIFACT_SHA"
|
||||
else
|
||||
sha="$REQUIRED_SHA"
|
||||
fi
|
||||
echo "source=$source" >> "$GITHUB_OUTPUT"
|
||||
echo "bext-sha=$sha" >> "$GITHUB_OUTPUT"
|
||||
echo "Prepared bext $sha from $source."
|
||||
@@ -1,637 +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
|
||||
# distribute them across five serial queues. To avoid the target list going
|
||||
# stale, this header is followed by jobs generated from the CMake logic.
|
||||
|
||||
name: Distcheck
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '30 3 * * 5'
|
||||
|
||||
jobs:
|
||||
bext:
|
||||
name: Prepare bext
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- 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
|
||||
# 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@v6
|
||||
with:
|
||||
path: brlcad
|
||||
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
|
||||
distcheck-default_build_type:
|
||||
name: distcheck-default_build_type
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [bext]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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 -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-default_build_type --target distcheck-default_build_type
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-default_build_type/distcheck-default_build_type.log
|
||||
|
||||
distcheck-debug:
|
||||
name: distcheck-debug
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [bext]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=Debug -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-debug --config Debug --target distcheck-debug
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-debug/distcheck-debug.log
|
||||
|
||||
distcheck-release:
|
||||
name: distcheck-release
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [bext]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=${{ runner.temp }}/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
|
||||
|
||||
distcheck-no_unity_debug:
|
||||
name: distcheck-no_unity_debug
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [bext]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- name: Directory setup
|
||||
run: cmake -E make_directory build_distcheck-no_unity_debug
|
||||
- name: Configure
|
||||
run: cmake -S brlcad -B build_distcheck-no_unity_debug -G Ninja -DCMAKE_BUILD_TYPE=Debug -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output -DBRLCAD_ENABLE_UNITY_BUILD=OFF
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-no_unity_debug --config Debug --target distcheck-no_unity_debug
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-no_unity_debug/distcheck-no_unity_debug.log
|
||||
|
||||
distcheck-no_unity_release:
|
||||
name: distcheck-no_unity_release
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [bext]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- name: Directory setup
|
||||
run: cmake -E make_directory build_distcheck-no_unity_release
|
||||
- name: Configure
|
||||
run: cmake -S brlcad -B build_distcheck-no_unity_release -G Ninja -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output -DBRLCAD_ENABLE_UNITY_BUILD=OFF
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-no_unity_release --config Release --target distcheck-no_unity_release
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-no_unity_release/distcheck-no_unity_release.log
|
||||
|
||||
distcheck-enableall_debug:
|
||||
name: distcheck-enableall_debug
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [distcheck-default_build_type]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=Debug -DENABLE_ALL=ON -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-enableall_debug --config Debug --target distcheck-enableall_debug
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-enableall_debug/distcheck-enableall_debug.log
|
||||
|
||||
distcheck-enableall_release:
|
||||
name: distcheck-enableall_release
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [distcheck-debug]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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 -DENABLE_ALL=ON -DBRLCAD_EXT_DIR=${{ runner.temp }}/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
|
||||
|
||||
distcheck-prepared_debug:
|
||||
name: distcheck-prepared_debug
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [distcheck-release]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=Debug -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-prepared_debug --config Debug --target distcheck-prepared_debug
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-prepared_debug/distcheck-prepared_debug.log
|
||||
|
||||
distcheck-prepared_release:
|
||||
name: distcheck-prepared_release
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [distcheck-no_unity_debug]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=${{ runner.temp }}/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
|
||||
|
||||
distcheck-no_tcl:
|
||||
name: distcheck-no_tcl
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [distcheck-no_unity_release]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=Debug -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output -DBRLCAD_ENABLE_TCL=OFF
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-no_tcl --config Debug --target distcheck-no_tcl
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-no_tcl/distcheck-no_tcl.log
|
||||
|
||||
distcheck-no_tk:
|
||||
name: distcheck-no_tk
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [distcheck-enableall_debug]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=Debug -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output -DBRLCAD_ENABLE_TK=OFF
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-no_tk --config Debug --target distcheck-no_tk
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-no_tk/distcheck-no_tk.log
|
||||
|
||||
distcheck-no_strict:
|
||||
name: distcheck-no_strict
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [distcheck-enableall_release]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=Debug -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output -DBRLCAD_ENABLE_STRICT=OFF
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-no_strict --config Debug --target distcheck-no_strict
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-no_strict/distcheck-no_strict.log
|
||||
|
||||
distcheck-no_object:
|
||||
name: distcheck-no_object
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [distcheck-prepared_debug]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=Debug -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output -DUSE_OBJECT_LIBS=OFF
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-no_object --config Debug --target distcheck-no_object
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-no_object/distcheck-no_object.log
|
||||
|
||||
distcheck-odd_pathnames:
|
||||
name: distcheck-odd_pathnames
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [distcheck-prepared_release]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=Debug -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-odd_pathnames --config Debug --target distcheck-odd_pathnames
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-odd_pathnames/distcheck-odd_pathnames.log
|
||||
|
||||
distcheck-in_src_dir:
|
||||
name: distcheck-in_src_dir
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [distcheck-no_tcl]
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
- 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
|
||||
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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
- 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=Debug -DBRLCAD_EXT_DIR=${{ runner.temp }}/bext_output
|
||||
- name: Build
|
||||
run: cmake --build build_distcheck-in_src_dir --config Debug --target distcheck-in_src_dir
|
||||
- name: Log
|
||||
if: always()
|
||||
run: cat build_distcheck-in_src_dir/distcheck-in_src_dir.log
|
||||
@@ -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@v6
|
||||
|
||||
- name: Build Directory setup
|
||||
run: |
|
||||
cmake -E make_directory ./build_linux
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
export PATH=$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=$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
|
||||
|
||||
@@ -1,449 +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-24.04
|
||||
strategy:
|
||||
fail-fast: true
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: github.event_name == 'push'
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
# 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@v6
|
||||
with:
|
||||
path: brlcad
|
||||
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
|
||||
- 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=${{ runner.temp }}/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-24.04
|
||||
needs: [linux]
|
||||
strategy:
|
||||
fail-fast: true
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: github.event_name == 'push'
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
# 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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
|
||||
- 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=${{ runner.temp }}/bext_output
|
||||
cmake --build build_archives --config Release --target distcheck-source_archives
|
||||
|
||||
# A full bext build every time we push is too much, but we can exercise the
|
||||
# basic bext mechanisms and also the BRLCAD_COMPONENTS subbuild at the same
|
||||
# time if we do a local bext build of *just* the libbg subset of BRL-CAD. If
|
||||
# the COMPONENTS mechanism works as it should it won't trigger a full bext
|
||||
# build, and we'll only be compiling what libbg needs.
|
||||
componentbext:
|
||||
name: BRLCAD_COMPONENTS
|
||||
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
|
||||
|
||||
# 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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
|
||||
- name: Directory setup
|
||||
run: |
|
||||
cmake -E make_directory build_components
|
||||
cmake -E make_directory $HOME/.cache
|
||||
cmake -E make_directory $HOME/.cache/BRL-CAD
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cmake -S brlcad -B build_components -DCMAKE_BUILD_TYPE=Release -DBRLCAD_COMPONENTS=libbg
|
||||
cmake --build build_components --config Release
|
||||
|
||||
windows:
|
||||
name: MSVC - Ninja
|
||||
runs-on: windows-2025
|
||||
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@v3
|
||||
|
||||
- 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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: windows-2025-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
|
||||
- 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=${{ runner.temp }}\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-2025
|
||||
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@v3
|
||||
|
||||
- name: Add cl.exe to PATH
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: windows-2025-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
|
||||
- name: Build Directory setup
|
||||
run: |
|
||||
cmake -E make_directory ./build_winstd
|
||||
|
||||
- name: MSVC and Ninja diagnostics
|
||||
shell: cmd
|
||||
run: |
|
||||
where cmake
|
||||
where ninja
|
||||
where cl.exe
|
||||
where msbuild
|
||||
cmake --version
|
||||
cl.exe
|
||||
set INCLUDE
|
||||
set LIB
|
||||
set LIBPATH
|
||||
|
||||
- name: Configure
|
||||
shell: cmd
|
||||
run: |
|
||||
cmake -S brlcad -B build_winstd -DBRLCAD_EXT_PARALLEL=1 -DBRLCAD_BUNDLED_LIBS=Bundled -DCMAKE_BUILD_TYPE=Release -DBRLCAD_EXT_DIR=%RUNNER_TEMP%\bext_output -DBRLCAD_ENABLE_QT=ON -DBRLCAD_CONFIG_PROBE_DIAGNOSTICS=ON -DBRLCAD_PROBE_SNAPSHOT_FILE=%GITHUB_WORKSPACE%\build_winstd\parallel-probes.txt
|
||||
|
||||
- name: Configure probe diagnostics
|
||||
if: always()
|
||||
shell: pwsh
|
||||
run: |
|
||||
$build = Join-Path $env:GITHUB_WORKSPACE 'build_winstd'
|
||||
$diagnosticDir = Join-Path $build 'CMakeTmp/probe_diagnostics'
|
||||
if (Test-Path $diagnosticDir) {
|
||||
Get-ChildItem -Path $diagnosticDir -File | Sort-Object Name | ForEach-Object {
|
||||
Write-Host "`n===== $($_.FullName) ====="
|
||||
Get-Content -Path $_.FullName
|
||||
}
|
||||
} else {
|
||||
Write-Host "No parallel-probe diagnostic directory was created."
|
||||
}
|
||||
$cmakeError = Join-Path $build 'CMakeFiles/CMakeError.log'
|
||||
if (Test-Path $cmakeError) {
|
||||
Write-Host "`n===== $cmakeError ====="
|
||||
Get-Content -Path $cmakeError
|
||||
}
|
||||
$cache = Join-Path $build 'CMakeCache.txt'
|
||||
if (Test-Path $cache) {
|
||||
Write-Host "`n===== selected cache entries ====="
|
||||
Select-String -Path $cache -Pattern '^(HAVE_CONIO_H|BRLCAD_PROBE_USE_NINJA|BRLCAD_PROBE_NINJA_EXE|BRLCAD_PROBE_VCVARS|BRLCAD_PROBE_VCVARS_ARCH):' | ForEach-Object { $_.Line }
|
||||
}
|
||||
|
||||
- name: Rebuild conio probe verbosely
|
||||
if: always()
|
||||
shell: cmd
|
||||
continue-on-error: true
|
||||
run: |
|
||||
if not exist build_winstd\CMakeTmp\INCLUDE_PROBE_build (
|
||||
echo INCLUDE_PROBE mini-project was not configured.
|
||||
exit /b 0
|
||||
)
|
||||
cmake --build build_winstd\CMakeTmp\INCLUDE_PROBE_build --config Release --target HAVE_CONIO_H --verbose
|
||||
|
||||
- name: Build
|
||||
id: build_parallel
|
||||
shell: cmd
|
||||
run: |
|
||||
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 --target mged
|
||||
|
||||
- name: Check
|
||||
shell: cmd
|
||||
run: |
|
||||
cmake --build build_winstd --config Release --target check -j2
|
||||
|
||||
- name: Package
|
||||
shell: cmd
|
||||
run: |
|
||||
cmake --build build_winstd --config Release --target package -j2
|
||||
|
||||
osx:
|
||||
name: macOS Clang
|
||||
needs: [linux]
|
||||
runs-on: macos-15
|
||||
strategy:
|
||||
fail-fast: true
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Install Xquartz
|
||||
run: |
|
||||
brew install xquartz --cask
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: macos-15-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
|
||||
- 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=${{ runner.temp }}/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
|
||||
@@ -1,400 +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
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
|
||||
linux_bext:
|
||||
name: Linux - BRL-CAD bext build
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: true
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
# 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@v6
|
||||
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: ${{ !cancelled() }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v3
|
||||
|
||||
- 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@v6
|
||||
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: ${{ !cancelled() }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v3
|
||||
|
||||
- name: Add cl.exe to PATH
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
|
||||
- name: Add github workspace to path
|
||||
shell: cmd
|
||||
run: echo %GITHUB_WORKSPACE%>>"%GITHUB_PATH%"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
|
||||
- name: Build Directory setup
|
||||
run: |
|
||||
cmake -E make_directory ./build_winstd
|
||||
|
||||
- name: Configure
|
||||
shell: cmd
|
||||
run: |
|
||||
where cmake
|
||||
where ninja
|
||||
where cl.exe
|
||||
where msbuild
|
||||
cmake -S brlcad -B build_winstd -DBRLCAD_EXT_PARALLEL=1 -DBRLCAD_BUNDLED_LIBS=Bundled -DCMAKE_BUILD_TYPE=Release -DBRLCAD_BEXT_CLEANUP=ON -DBRLCAD_ENABLE_QT=ON
|
||||
|
||||
- name: Build
|
||||
shell: cmd
|
||||
run: |
|
||||
cmake --build build_winstd --config Release --target mged
|
||||
|
||||
- name: Check
|
||||
shell: cmd
|
||||
run: |
|
||||
cmake --build build_winstd --config Release --target check
|
||||
|
||||
- name: Package
|
||||
shell: cmd
|
||||
run: |
|
||||
cmake --build build_winstd --config Release --target package
|
||||
|
||||
osx_bext:
|
||||
name: macOS - BRL-CAD bext build
|
||||
needs: [linux_bext]
|
||||
runs-on: macos-15
|
||||
strategy:
|
||||
fail-fast: true
|
||||
if: ${{ !cancelled() }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Install Xquartz
|
||||
run: |
|
||||
brew install xquartz --cask
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
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-24.04
|
||||
strategy:
|
||||
fail-fast: true
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
# 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: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: brlcad
|
||||
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
|
||||
- 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
|
||||
env:
|
||||
BRLCAD_EXT_DIR: ${{ runner.temp }}/bext_output
|
||||
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-24.04
|
||||
strategy:
|
||||
fail-fast: true
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Setup - System
|
||||
run: |
|
||||
sudo apt-get update
|
||||
# Get the lcov tool and its dependencies
|
||||
sudo apt-get install lcov gdb
|
||||
# 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@v6
|
||||
with:
|
||||
path: brlcad
|
||||
|
||||
- name: Prepare bext dependencies
|
||||
uses: ./brlcad/.github/actions/prepare-bext
|
||||
with:
|
||||
platform-channel: ubuntu-24.04-${{ runner.arch }}-release
|
||||
source-dir: ${{ github.workspace }}/brlcad
|
||||
output-dir: ${{ runner.temp }}/bext_output
|
||||
build-type: Release
|
||||
artifact-token: ${{ secrets.BEXT_ARTIFACT_TOKEN }}
|
||||
|
||||
- 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=${{ runner.temp }}/bext_output -DBRLCAD_ENABLE_QT=ON
|
||||
|
||||
- name: Build
|
||||
id: build_parallel
|
||||
run: |
|
||||
export PATH=$GITHUB_WORKSPACE:$PATH
|
||||
cmake --build build_lcov -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_lcov -j1
|
||||
|
||||
- name: Run Tests
|
||||
id: coverage_tests
|
||||
run: |
|
||||
find . -name '*.gcda' -exec rm {} \;
|
||||
cmake --build . --target check
|
||||
working-directory: ${{ github.workspace }}/build_lcov
|
||||
|
||||
- name: Diagnose failed annotation test
|
||||
if: failure() && steps.coverage_tests.outcome == 'failure'
|
||||
continue-on-error: true
|
||||
run: |
|
||||
set +e
|
||||
ctest -R '^rt_datum_annot_semantics$' -VV
|
||||
cat Testing/Temporary/LastTest.log
|
||||
if command -v gdb >/dev/null 2>&1; then
|
||||
gdb --quiet --batch \
|
||||
-ex 'set pagination off' \
|
||||
-ex run \
|
||||
-ex 'thread apply all bt full' \
|
||||
--args ./src/librt/tests/rt_datum_annot_semantics
|
||||
fi
|
||||
working-directory: ${{ github.workspace }}/build_lcov
|
||||
|
||||
- name: Capture Coverage
|
||||
run: |
|
||||
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
|
||||
|
||||
+2
-41
@@ -1,41 +1,2 @@
|
||||
# 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
|
||||
*__pycache__*
|
||||
|
||||
|
||||
/.cproject
|
||||
/.project
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
# Code Quality Standards
|
||||
|
||||
Write code as a senior engineer would for long-term maintenance. These are non-negotiable defaults, not suggestions to apply when asked.
|
||||
|
||||
## Principles
|
||||
|
||||
- **DRY.** Extract duplicate logic. Refactor. Once and only once.
|
||||
- **Minimize surprises.** Preserve existing style and conventions. Test when you can.
|
||||
- **No magic values.** Use named constants, enums, or configuration. Every literal needs justification.
|
||||
- **Minimize scope.** Prefer tightest scope that works - local variables, parameters, encapsulation. Broader scope needs justification.
|
||||
- **No dead code.** Delete commented-out code, unused variables, unreachable branches. Version control remembers.
|
||||
- **Comments explain why.** Document intent, constraints, and non-obvious decisions. Use "what" summaries only for complex or non-obvious algorithms. If routine code needs a comment to explain it, the code should be clearer.
|
||||
- **Clean up what you touch.** Improve code you are changing: rename unclear variables, extract functions, simplify conditionals. Do not mix unrelated cleanup with logic changes - separate concerns, separate commits.
|
||||
- **Handle errors deliberately.** Whether failing loudly or quietly, make it an intentional choice. No accidental swallowing.
|
||||
- **YAGNI.** Do not add speculative abstractions, unused parameters, or unplanned extension points. Build what is needed now. Refactor when requirements actually change.
|
||||
- **Perfection is when there is nothing left to take away.** Prefer reduction over addition, simpler is better. Too clever to debug easily is too clever.
|
||||
|
||||
## Before Finishing
|
||||
|
||||
Review your changes for code smells, duplicated logic, hardcoded values, overly broad scope, unclear names, missing error handling, unnecessary complexity, etc. Fix issues in the same pass - do not defer cleanup.
|
||||
|
||||
## Git
|
||||
|
||||
Never commit without permission (ask every time). Never push to remote. Never use `codex`, `chatgpt`, `openai`, `gemini`, `antigravity`, `copilot`, `claude`, `llm`, `ai`, or similar terms in branch names, tag names, commits, PRs, comments, and other metadata. Do not add generated-by notices or otherwise indicate authorship unless user explicitly requests. Do not include specific machine information - full file system paths, machine names, IP addresses, or other identifiable information in commit messages, code, comments or documentation.
|
||||
|
||||
## Repository Coding Conventions
|
||||
|
||||
The HACKING file in the root of the source tree defines coding conventions specific to BRL-CAD, including versions of common functions that are used in our code base instead of raw standard functions. Review this file before writing code so your changes and additions adhere to BRL-CAD standards.
|
||||
|
||||
BRL-CAD code should typically use our ZERO and EQUAL macros rather than raw floating-point equality comparisons to avoid Werror=float-equal compilation failures on expressions such as a == 0.0 (should be ZERO(a)) or b != c (should be !EQUAL(b, c)).
|
||||
|
||||
When completing a code change (not for intermediate iterations, but when preparing to hand back a finalized change) use our regress-repository and regress-licenses build targets to check that the result satisfies our internal checkers.
|
||||
@@ -37,7 +37,7 @@ contributor credits are organized into the following general
|
||||
categories depending on the level and type of involvement:
|
||||
|
||||
* Mathematical, Algorithmic, and Geometric Support
|
||||
* Documentation, Artwork, and Website Contributors
|
||||
* Documentation Writers
|
||||
* Code Contributors
|
||||
* Special Thanks
|
||||
|
||||
@@ -60,7 +60,7 @@ Open Source Point of Contact
|
||||
Morrison, Christopher Sean <morrison@brlcad.org>
|
||||
|
||||
U.S. Army Research Laboratory Point of Contact
|
||||
Yapp, Cliff
|
||||
Davisson, Edwin O. <davisson@arl.army.mil>
|
||||
|
||||
|
||||
DEVELOPERS
|
||||
@@ -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,51 +189,23 @@ 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
|
||||
nicknames indianlarry
|
||||
SURVICE Engineering, Inc.
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Weiss, Richard
|
||||
nicknames r_weiss
|
||||
2008 December
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Browder, Thomas M. Jr.
|
||||
nicknames tbrowder2
|
||||
2008 June
|
||||
ManTech International Corporation
|
||||
Open Source
|
||||
|
||||
Reed, Nicholas
|
||||
nicknames n_reed
|
||||
2008 July
|
||||
ARL Student Hire / University of Maryland, Baltimore County
|
||||
Quantum Research International, Inc.
|
||||
|
||||
Moore, Jr., Carl G.
|
||||
nicknames cmoore, carlmoore
|
||||
2011 October
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
|
||||
MATHEMATICAL, ALGORITHMIC, AND GEOMETRIC SUPPORT
|
||||
@@ -243,10 +215,10 @@ Weaver, Earl P.
|
||||
1980
|
||||
U.S. Army Ballistic Research Laboratory
|
||||
|
||||
Davisson, Edwin O.
|
||||
Davisson, Edwin O. **
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Rogers, David
|
||||
Rodgers, David
|
||||
U.S. Naval Academy
|
||||
|
||||
Stiller, Peter
|
||||
@@ -260,16 +232,16 @@ 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
|
||||
|
||||
|
||||
DOCUMENTATION, ARTWORK, AND WEBSITE CONTRIBUTORS
|
||||
------------------------------------------------
|
||||
DOCUMENTATION WRITERS
|
||||
---------------------
|
||||
|
||||
Weaver, Earl P.
|
||||
1980
|
||||
@@ -279,15 +251,15 @@ Schueler, Betty J.
|
||||
|
||||
Edwards, Eric
|
||||
SURVICE Engineering, Inc.
|
||||
Open Source (Doc Camp)
|
||||
|
||||
Kregel, Dwayne
|
||||
SURVICE Engineering, Inc.
|
||||
|
||||
Leverington, Robert
|
||||
nicknames MinuteElectron
|
||||
2007 June
|
||||
Yapp, Cliff **
|
||||
nicknames starseeker
|
||||
2007 September
|
||||
Open Source
|
||||
Quantum Research International, Inc.
|
||||
|
||||
Harder, Brad
|
||||
nicknames yukonbob, bharder, bch
|
||||
@@ -298,106 +270,11 @@ Gettier, Janine
|
||||
2008 October
|
||||
SURVICE Engineering, Inc.
|
||||
|
||||
Ilya
|
||||
nicknames ilya
|
||||
2008 December
|
||||
Open Source
|
||||
|
||||
Giudice, Jesica
|
||||
nicknames jesica Nohla giudicejesica
|
||||
2009 December
|
||||
Open Source
|
||||
|
||||
Jansa, Pavel
|
||||
nicknames pawleeq
|
||||
2011 November
|
||||
Open Source
|
||||
|
||||
Mgebrova, Karen
|
||||
2012 February
|
||||
Open Source
|
||||
|
||||
Elnazli, Cezar
|
||||
nicknames caen23
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
Burroughs, Jacob
|
||||
nicknames maths22
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
Stoyanova, Stefi
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
Perez, Alex
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
Singh, Harmanpreet
|
||||
nicknames harmanpreet
|
||||
2013 October
|
||||
Open Source (Doc Camp)
|
||||
|
||||
Kamga, Isaac
|
||||
nicknames Izak, iiizzzaaakkk
|
||||
2013 October
|
||||
Open Source (Doc Camp)
|
||||
|
||||
Check, Nyah
|
||||
nicknames Ch3ck
|
||||
2013 October
|
||||
Open Source (Doc Camp)
|
||||
|
||||
Scott Nesbitt
|
||||
2013 October
|
||||
Open Source (Doc Camp)
|
||||
|
||||
Wood, David
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
Agarwal, Yatharth
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
McDonald, Rob
|
||||
2013 November
|
||||
Open Source
|
||||
|
||||
Roberts, Mitchell
|
||||
2014 July
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Tannous, Marc
|
||||
2014 December
|
||||
Open Source (GCI)
|
||||
|
||||
Chiplunkar, Shardul
|
||||
nicknames microchip, shardulc
|
||||
2014 December
|
||||
Open Source (GCI)
|
||||
|
||||
Juvekar, Mandar
|
||||
nicknames mandarj
|
||||
2014 December
|
||||
Open Source (GCI)
|
||||
|
||||
Sofat, Hitesh
|
||||
nicknames sofat
|
||||
2015 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Sieu, Jeff
|
||||
2017 December
|
||||
Open Source (GCI)
|
||||
|
||||
Baker, Josh
|
||||
nicknames joshbaker22
|
||||
2023 August
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
|
||||
CODE CONTRIBUTIONS
|
||||
------------------
|
||||
@@ -514,6 +391,11 @@ ARL Student Hire / Johns Hopkins University
|
||||
Yemc, David J.
|
||||
Johns Hopkins University Applied Physics Laboratory
|
||||
|
||||
Bowman, W. Keith
|
||||
nicknames indianlarry
|
||||
SURVICE Engineering, Inc.
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Anderson, David
|
||||
SGI
|
||||
|
||||
@@ -526,9 +408,7 @@ nicknames mjgillich mgillich
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Howard, Doug
|
||||
nicknames dhoward
|
||||
SURVICE Engineering, Inc.
|
||||
2006 April
|
||||
|
||||
Silva, Prasad Prometheus
|
||||
nicknames prasad_silva
|
||||
@@ -581,11 +461,21 @@ nicknames homovulgaris, madant
|
||||
2008 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Reed, Nicholas
|
||||
nicknames n_reed
|
||||
2008 July
|
||||
ARL Student Hire / University of Maryland, Baltimore County
|
||||
|
||||
Saunders, Benjamin
|
||||
nicknames Ralith, ralith
|
||||
nicknames Ralith
|
||||
2008 July
|
||||
Open Source
|
||||
|
||||
Weiss, Richard
|
||||
nicknames r_weiss
|
||||
2008 December
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Knaute, Philip
|
||||
2009 February
|
||||
Industrieanlagen-Betriebsgesellschaft mbH (IABG)
|
||||
@@ -602,502 +492,6 @@ ARL Student Hire / University of Maryland, Baltimore County
|
||||
|
||||
Shinn, Rob
|
||||
2010 April
|
||||
Open Source
|
||||
|
||||
nicknames Alexandrus
|
||||
2010 July
|
||||
Open Source
|
||||
|
||||
Pal, Csanyi
|
||||
nicknames csanyi_pal
|
||||
2010 July
|
||||
Open Source
|
||||
|
||||
Hinesley, Brandon
|
||||
nicknames bhinesley
|
||||
2011 March
|
||||
Open Source (GSoC)
|
||||
|
||||
Kunigami, Guilherme
|
||||
nicknames kunigami
|
||||
2011 March
|
||||
Open Source (GSoC)
|
||||
|
||||
Jain, Sachin
|
||||
2011 April
|
||||
Open Source
|
||||
|
||||
Gerstner, Nick
|
||||
2011 May
|
||||
SURVICE Engineering, Inc.
|
||||
|
||||
Easterbrook, Zach
|
||||
nicknames lainiwakurax
|
||||
2011 July
|
||||
Open Source
|
||||
|
||||
Nandy, Abhijit
|
||||
nicknames abhi2011
|
||||
2011 July
|
||||
Open Source (SOCIS)
|
||||
|
||||
Silvko, Ksenija
|
||||
nicknames ksuzee
|
||||
2012 March
|
||||
Open Source (GSoC)
|
||||
|
||||
Dueck, Chris R.
|
||||
nicknames crdueck
|
||||
2012 April
|
||||
Open Source (GSoC)
|
||||
|
||||
Jianbang, Wu
|
||||
nicknames phoenix, phoenixyjll
|
||||
2012 April
|
||||
Open Source (GSoC)
|
||||
|
||||
Precup, Cristina
|
||||
nicknames cprecup
|
||||
2012 April
|
||||
Open Source (GSoC)
|
||||
|
||||
Murty, Anurag
|
||||
nicknames anrgmrty
|
||||
2012 May
|
||||
Open Source (GSoC)
|
||||
|
||||
Oezdogan, Mesut
|
||||
nicknames kane_
|
||||
2012 May
|
||||
Open Source (GSoC)
|
||||
|
||||
Taylor, Alex
|
||||
nicknames Al_Da_Best, aldabest
|
||||
2012 May
|
||||
Open Source (GSoC)
|
||||
|
||||
Laijiren
|
||||
nicknames plussai2008
|
||||
2012 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Niculaescu, Oana
|
||||
nicknames elf11
|
||||
2012 August
|
||||
Open Source (SOCIS)
|
||||
|
||||
Ungureanu, Silviu
|
||||
nicknames Silvrous
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
Kashyap, Akshay
|
||||
nicknames Skriptkid
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
Borisov, Dimitar
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
Pal, Ambar
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
Elnazli, Cezar
|
||||
nicknames caen23
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
Huang, Michael
|
||||
nicknames fernozzle
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
nicknames Reikaze
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Phillips, Lachlan
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Calle, Adrián Arroyo
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Keesing, Aaron
|
||||
nicknames agkphysics
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Govindjee, Arjun
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Ramirez, Daniel
|
||||
nicknames javamonn
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Nagy, Csaba
|
||||
nicknames ncsaba
|
||||
2013 April
|
||||
Open Source
|
||||
|
||||
Check, Nyah
|
||||
nicknames Ch3ck
|
||||
2013 July
|
||||
Open Source (GSoC)
|
||||
|
||||
Shah, Kesha
|
||||
nicknames keshashah
|
||||
2013 April
|
||||
Open Source (GSoC)
|
||||
|
||||
Bogolin, Vlad
|
||||
nicknames vladbogo
|
||||
2013 May
|
||||
Open Source (GSoC)
|
||||
|
||||
Kaur, Avneet
|
||||
nicknames avneetkhalsa
|
||||
2013 May
|
||||
Open Source (GSoC)
|
||||
|
||||
Daga, Mohit
|
||||
nicknames zero_level, mohitdaga
|
||||
2013 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Kamga, Isaac
|
||||
nicknames Izak, iiizzzaaakkk
|
||||
2013 July
|
||||
Open Source (GSoC)
|
||||
|
||||
Singh, Harmanpreet
|
||||
nicknames harmanpreet
|
||||
2013 May
|
||||
Open Source (GSoC)
|
||||
|
||||
Huff, Emory
|
||||
nicknames hknoll
|
||||
2013 July
|
||||
ARL Student Hire
|
||||
|
||||
Engbert, Jonathan
|
||||
nicknames ejno
|
||||
2013 July
|
||||
Open Source
|
||||
ARL Student Hire / University of Maryland, Baltimore County
|
||||
|
||||
Andrew
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
Schulte, Johannes
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
Amidon, Peter
|
||||
nicknames peter-sa, Andromeda Galaxy
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
Chiplunkar, Shardul
|
||||
nicknames microchip
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
Берегов, Станислав
|
||||
2013 December
|
||||
Open Source (GCI)
|
||||
|
||||
nicknames huskmate13
|
||||
2014 January
|
||||
Open Source
|
||||
|
||||
Granroth, Gustave
|
||||
2014 May
|
||||
Open Source
|
||||
|
||||
Jain, Rishub
|
||||
2014 July
|
||||
ARL Student Hire
|
||||
|
||||
Roberts, Mitchell
|
||||
2014 July
|
||||
ARL Student Hire
|
||||
|
||||
Bayes, Matthew
|
||||
nicknames klinger4077
|
||||
2014 July
|
||||
ARL Student Hire / University of Maryland College Park
|
||||
|
||||
Mirea, Ștefan-Gabriel
|
||||
2014 October
|
||||
Open Source
|
||||
|
||||
Krishna
|
||||
2015 January
|
||||
Open Source (GCI)
|
||||
|
||||
Konrad, Djimeli
|
||||
2015 February
|
||||
Open Source
|
||||
|
||||
Alexandre da Silva Costa, Vasco
|
||||
nicknames vasco_costa
|
||||
2015 April
|
||||
Open Source (GSoC)
|
||||
|
||||
Thakkar, Kalpit
|
||||
nicknames dracarys983
|
||||
2015 May
|
||||
Open Source (GSoC)
|
||||
|
||||
Ilinca, Andrei
|
||||
nicknames andrei_il
|
||||
2015 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Sofat, Hitesh
|
||||
nicknames sofat
|
||||
2015 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Hollister, Brad
|
||||
nicknames bhollister
|
||||
2015 July
|
||||
Open Source (GSoC)
|
||||
|
||||
Hanji, Param
|
||||
2016 March
|
||||
Open Source (GSoC)
|
||||
|
||||
Wu, Bojian
|
||||
2016 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Bagavathy, Rakshika
|
||||
nicknames tandoorichick
|
||||
2016 October
|
||||
Open Source (GSoC)
|
||||
|
||||
Gao, Tianyue
|
||||
2016 December
|
||||
Open Source (GCI)
|
||||
|
||||
Rathore, Shubham
|
||||
nicknames gabbar1947
|
||||
2017 April
|
||||
Open Source
|
||||
|
||||
nicknames Rakete1111
|
||||
2017 November
|
||||
Open Source
|
||||
|
||||
Narayan, Saran
|
||||
nicknames sharannyn
|
||||
2018 April
|
||||
Open Source (GSoC)
|
||||
|
||||
Shinde, Chetan
|
||||
nicknames chetanshinde911
|
||||
2019 April
|
||||
Open Source (GSoC)
|
||||
|
||||
Haydar, Ali
|
||||
nicknames lois221 lgoogl696 LouisGoogl
|
||||
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
|
||||
|
||||
Rupesh
|
||||
nicknames rupes, rupeshca007
|
||||
2026 March
|
||||
Open Source
|
||||
|
||||
nicknames laithaldaeef
|
||||
2026 March
|
||||
Open Source
|
||||
|
||||
|
||||
SPECIAL THANKS
|
||||
@@ -1123,12 +517,12 @@ Kuehl, Gary
|
||||
U.S. Army Ballistic Research Laboratory
|
||||
|
||||
Martin, Glenn E.
|
||||
Northrop Research and Technology Center
|
||||
Northrup Research and Technology Center
|
||||
|
||||
Willson, Stephen Hunter
|
||||
Northrop Research and Technology Center
|
||||
Northrup Research and Technology Center
|
||||
|
||||
Merritt, Don
|
||||
Merrit, Don
|
||||
nicknames merritt
|
||||
1988 September
|
||||
U.S. Army Ballistic Research Laboratory
|
||||
@@ -1230,7 +624,7 @@ Thomas, Balbir
|
||||
Open Source
|
||||
|
||||
Remenak, Daniel T.
|
||||
nicknames DTRemenak, Erroneous, dtremenak
|
||||
nicknames DTRemenak, Erroneous
|
||||
2005 July
|
||||
California Institute of Technology
|
||||
Open Source
|
||||
@@ -1278,6 +672,12 @@ nicknames ebautu
|
||||
2008 April
|
||||
Open Source
|
||||
|
||||
Browder, Jr., Thomas M.
|
||||
nicknames tbrowder2
|
||||
2008 June
|
||||
ManTech SRS Technologies, Inc.
|
||||
Open Source
|
||||
|
||||
Hocevar, Samuel
|
||||
nicknames sam, sammy
|
||||
2008 July
|
||||
@@ -1344,87 +744,6 @@ nicknames epileg, jordisayol
|
||||
2011 January
|
||||
Open Source
|
||||
|
||||
Pitts, Christopher M.
|
||||
nicknames cmpitts
|
||||
2011 August
|
||||
Open Source
|
||||
|
||||
Wang, Max
|
||||
nicknames wmaanxg
|
||||
2012 October
|
||||
Open Source
|
||||
|
||||
Ha, An Tuan
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Singh, Gauravjeet
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Saxena, Amit
|
||||
nicknames amit.daBeast
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Saini, Talwinder
|
||||
nicknames talwindersaini
|
||||
2013 July
|
||||
Open Source
|
||||
|
||||
YuGin, Tan
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
nicknames mandar
|
||||
2013 December
|
||||
Open Source (GCI)
|
||||
|
||||
Lotsu, Alexander
|
||||
nicknames Alex
|
||||
2013 December
|
||||
Open Source (GCI)
|
||||
|
||||
Hyams, Daniel
|
||||
nicknames dhyams
|
||||
2014 February
|
||||
Open Source
|
||||
|
||||
Reddy, Raj
|
||||
nicknames raj12lnm
|
||||
2014 May
|
||||
Open Source
|
||||
|
||||
Malhotra, Shivoam
|
||||
nicknames shiv05
|
||||
2015 March
|
||||
Open Source
|
||||
|
||||
Chepkwony, Benson
|
||||
nicknames bchepkwny
|
||||
2015 December
|
||||
Open Source
|
||||
|
||||
Sagarwal
|
||||
2017 January
|
||||
Open Source (GCI)
|
||||
|
||||
Liu, Jeffrey
|
||||
2019 December
|
||||
Open Source (GCI)
|
||||
|
||||
Wade, Pauline
|
||||
2021 August
|
||||
Texas A&M University
|
||||
|
||||
nicknames r-ricci
|
||||
2022 January
|
||||
Open Source
|
||||
|
||||
nicknames Meghna45-code
|
||||
2026 July
|
||||
Open Source
|
||||
|
||||
|
||||
CORPORATE AND ORGANIZATION SUPPORT
|
||||
----------------------------------
|
||||
@@ -1442,8 +761,8 @@ Night Vision & Electronic Sensors Directorate
|
||||
|
||||
U.S. Naval Academy
|
||||
|
||||
Northrop Corporation
|
||||
Northrop Research and Technology Center
|
||||
Northrup, Inc.
|
||||
Norhtrup Research and Technology Center
|
||||
|
||||
SGI
|
||||
formerly named Silicon Graphics, Inc.
|
||||
@@ -1496,6 +815,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
|
||||
|
||||
@@ -15,254 +15,8 @@ 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.)
|
||||
|
||||
* recursive bu_parallel() failure, tbd whether cpp11 or pthread impl,
|
||||
likely because IDs are exceeding MAX_PSW, causing mayhem and chaos.
|
||||
|
||||
* 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.
|
||||
|
||||
[HARD] Superlinear growth (3 combs -> 18GB) points at an
|
||||
integer/overflow interaction deep in the space-partitioning cut
|
||||
allocator (rt_ct_get 10MB chunks), intertwined with bu memory.
|
||||
Painful to isolate and validate at scale.
|
||||
[FAN-OUT: poor -- one focused investigator with an allocator/profiler
|
||||
trace; not parallelizable.]
|
||||
|
||||
* 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)
|
||||
|
||||
* 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 %
|
||||
|
||||
* 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
|
||||
|
||||
* 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
|
||||
|
||||
* 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
|
||||
|
||||
* 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
|
||||
|
||||
* 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.
|
||||
|
||||
* apparently all four BRL-CAD Tutorial Series volumes are missing from
|
||||
our bibliography...
|
||||
|
||||
* mater -d information stored in the .g file doesn't survive a
|
||||
garbage collection operation.
|
||||
|
||||
|
||||
* fix checker.sh script and/or overlap GUI so that the latter will
|
||||
read the resulting overlap pairings file from the prior.
|
||||
alternatively, need to be able to run overlap check on server
|
||||
without GUI, so could implement an overlaps file output option to be
|
||||
run via mged -c.
|
||||
|
||||
* running 'put' on geometry that is already displayed results in a NaN
|
||||
view (at least View and Eye_pos parameters are non) despite geometry
|
||||
still being displayed. this causes 'rt' to fly into an infinite
|
||||
loop, presumably trying to increment rays from the eye position.
|
||||
|
||||
* creating an object with a slashes in the name (e.g., cp foo foo/R)
|
||||
results in an object that cannot be deleted/renamed. bad behavior
|
||||
presumably extends to any name with path separators.
|
||||
|
||||
* If we draw any form, then trace it using rt, then change of database
|
||||
(by clicking file>open and selecting another database), badness
|
||||
ensues. One report has quitting the rt window causing a segfault.
|
||||
Another (confirmed) hung mged (stuck/inf loop).
|
||||
|
||||
* annotation bugs:
|
||||
in sph1.s sph 0 0 0 10
|
||||
in ann1.s annot 0 0 0 test1 10 10 3 1
|
||||
in ann2.s annot 30 30 30 test2 40 40 3 1
|
||||
# ann2.s's label looks wrong, points at origin?
|
||||
in ann3.s annot 0 0 0 1 10 10 3 1
|
||||
# using numbers for a label results in no label
|
||||
|
||||
* rtedge with perspective is wrong. it fills in nearly entire faces,
|
||||
vertically in particular. it's worse on small sized renders, and
|
||||
gets better the larger the render size (indicating there's some
|
||||
neighbor distance coming into play that is not affected by
|
||||
max_dist). eoes not happen in non-perspective ray-traces.
|
||||
|
||||
* get_regions tcl command doesn't respond well to situations where
|
||||
child object names in combs have dashes (the "-" character) in
|
||||
names. It tries to interpret the dash as an argument delimiter.
|
||||
Looks like this may be only in situations where the "-" is the
|
||||
lead character and on Windows? Been hard to reproduce...
|
||||
|
||||
* dsp does not facetize correctly with zero elevation areas in the
|
||||
data - need robustness improvements
|
||||
|
||||
* dsp primitives specifying data using Windows style file paths
|
||||
don't work.
|
||||
|
||||
* attempting to create a dsp using a binary object caused a crash on
|
||||
Linux - need to figure out if this was caused by feeding it the wrong
|
||||
kind of binary object or some other error...
|
||||
|
||||
* screengrab on windows does not work
|
||||
|
||||
* Recursive submodel predictably goes infinite, need stack-based
|
||||
db_walk_tree(): mged> in submodel submodel submodel grid test.g
|
||||
|
||||
* ogl display manager and framebuffer are creating windows with
|
||||
transparent backgrounds (the glClear color is not being drawn) on
|
||||
Linux. Presumably a driver-related issue, alpha channel, or expose
|
||||
event issue. Inspecting further, it may be related to environments
|
||||
where shmget() fails (or is requested via /dev/oglp) and we get
|
||||
private memory -- looks like private memory is not initialized
|
||||
(observed on Mac 10.6, Windows, and Ubuntu Linux using 7.26).
|
||||
|
||||
* fblabel seems quite busted, at least talking to a /dev/X fbserv, in
|
||||
that it only draws the first character and eventually displays
|
||||
rem_read() failures when run in -d debug mode.
|
||||
|
||||
* rtedge doesn't refresh a /dev/X fbserv (presumably double-buffered)
|
||||
after doing an overlay render. it does draw, though, as confirmed
|
||||
by a forced fb-fb refresh.
|
||||
|
||||
* 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:
|
||||
rt_db_cvt_to_external5 expecting non-NULL name parameter
|
||||
wdb_export((null)): solid export failure
|
||||
|
||||
* report of mged command history not working with the down arrow key
|
||||
in 7.25.0 (on Windows, unknown on other platforms). Up arrow works
|
||||
fine.
|
||||
|
||||
* wgl framebuffer is not lingering on windows (regardless of using
|
||||
wgll or default) when it should
|
||||
|
||||
* report of LIBBU not working when accessed by a multithreaded
|
||||
application on Windows. reportedly due to some problem with the
|
||||
debug memory queue.
|
||||
|
||||
* report of g-iges crashing (on Windows) when exporting a 1.2MB BoT
|
||||
mesh (presumably imported via stl-g). worked for smaller models.
|
||||
|
||||
* autoview [scale] isn't updating the wireframe when opening a
|
||||
database, drawing geometry, then running autoview. the status bar
|
||||
shows the scale change, but the graphics window remains unaffected
|
||||
unless you run "view size" to set it.
|
||||
|
||||
* overlay command reports an error when trying to load a file
|
||||
names edges.pl, but succeeds when the file is called patches.pl
|
||||
Need to see why edges.pl is not accepted.
|
||||
|
||||
* step-g crashing on mac with lazy symbol load failure missing:
|
||||
brlcad::SurfaceTree::SurfaceTree(ON_BrepFace*, bool, int)
|
||||
|
||||
* metaball tessellation enters either an infinite loop or an absurdly
|
||||
long tessellation process - observed on Linux 64 bit system - quick
|
||||
test:
|
||||
|
||||
rm -f metaball.g && mged -c metaball.g "make m.s metaball; facetize m.bot m.s"
|
||||
|
||||
* corruption/crash issue rendering terra.g without terra.dsp,
|
||||
possibly/probably parallel-related in libbn/noise.c's
|
||||
bn_noise_turb() function. gdb eventually catches a segfault in
|
||||
find_spec_wgt() loop with indications of corrupted memory. valgrind
|
||||
confirms corrupted memory (8 bytes) after a build_spec_table()
|
||||
realloc within find_spec_wgt() but it's not clear why. etbl
|
||||
book-keeping seems okay.. corrupted read consistently detected on
|
||||
spec_wgts = ep->spec_wgts line in bn_noise_turb(). observed on
|
||||
64-bit linux system:
|
||||
|
||||
rm -f terra.pix && valgrind bin/rt -o terra.pix -P1 -H3 -s1024 share/brlcad/7.21.0/db/terra.g all.g
|
||||
|
||||
[HARD] valgrind-confirmed 8-byte corruption after a build_spec_table()
|
||||
realloc in find_spec_wgt(), where "bookkeeping seems okay" -- i.e.,
|
||||
root cause is non-obvious. Classic hard-to-pin data race.
|
||||
[FAN-OUT: poor -- a single heisenbug needing one careful
|
||||
investigator, not parallel coverage.]
|
||||
|
||||
* mged 'joint' hold command isn't working. looks like the fp_names
|
||||
book-keeping is fuxored or the db_lookup is returning NULL (or isn't
|
||||
yet performed).
|
||||
|
||||
* encountered a crash during rtarea on a (default) facetized version
|
||||
of the hyp from the proc-db csgbrep tool.
|
||||
|
||||
* raytracing rhc crashes (inside malloc, so previous memory badness)
|
||||
with normal tolerance set to non-default value (e.g. tol norm 0.1);
|
||||
also fails (non-crash) if absolute tolerance is changed (e.g., tol
|
||||
abs 0.1)
|
||||
|
||||
* revolve raytracing seems to be busted.. at least with the example
|
||||
csgbrep revolve shape
|
||||
|
||||
* torus with a near zero inner diameter results in zero-length edges
|
||||
during tessellation.
|
||||
|
||||
* report that "keep" sometimes results in a .g file with unknown units;
|
||||
dbconcat also is reported to set the units to unknown if concatting
|
||||
* report that keep sometimes results in a .g file with unknown units
|
||||
dbconcat also is reported to set the units to unknown if concating
|
||||
a file with unknown units.
|
||||
|
||||
* infinite loop in rt_find_backing_dist() raytracing a BoT (without
|
||||
@@ -288,19 +42,20 @@ Recent Bugs
|
||||
|
||||
* rt -i -s4096 -H16 -F/dev/null boolean-ops.g all
|
||||
|
||||
* asc2g of a .asc file containing the first line as a "#" comment
|
||||
results in a bu_malloc(0) bomb. comment lines should be valid in
|
||||
.asc files.
|
||||
|
||||
* compilation reportedly fails when building Tcl if the path to the
|
||||
source directory includes a space.
|
||||
|
||||
* mged/tcl "gets" command doesn't work if you run the "source" command
|
||||
to read in a script that uses gets on stdin. it just hangs until
|
||||
multiple sigint's are received.
|
||||
muliple sigint's are received.
|
||||
|
||||
* invoking mged from a system menu seems to be broken. reported by a
|
||||
reliable ArchLinux user. probably exhibits cross-platform on KDE,
|
||||
GNOME, or XFCE (but original environment is unknown). the bug is
|
||||
undoubtedly related to mged's interactive and stdin/stdout input
|
||||
detection where mged thinks it's being scripted (beginning on or
|
||||
about mged.c:1150)
|
||||
* mged 'cd' on Windows results in the rt* commands failing.
|
||||
|
||||
* menu invocation seems to be broken again (ArchLinux)
|
||||
|
||||
* Report of copy/paste not working with Tk on Windows Vista - does
|
||||
work on Windows XP.
|
||||
@@ -316,12 +71,11 @@ 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.
|
||||
|
||||
* rt is consuming 100% CPU in fb_close() on a lingering ogl
|
||||
framebuffer waiting to close. needs to sleep or select for a while.
|
||||
|
||||
* /dev/oglb 'copy mode' fails to refresh the framebuffer
|
||||
|
||||
* X display manager (and probably others) will lock up mged if you Z/B
|
||||
@@ -330,8 +84,15 @@ Recent Bugs
|
||||
sub-1sec fps, Z/B after rotating wireframe but before update
|
||||
finishes drawing.
|
||||
|
||||
* rtedge help shows redirection to a file working, but it does not
|
||||
seem to work (zero-file results).
|
||||
|
||||
* 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.
|
||||
|
||||
@@ -341,14 +102,19 @@ Recent Bugs
|
||||
tclscripts/mged/tclIndex for examples:
|
||||
https://sourceforge.net/tracker/?func=detail&atid=640802&aid=2923199&group_id=105292
|
||||
|
||||
* hyp tessellation routine creates bot that does not raytrace
|
||||
* vdeck truncates the region names in the 'regions' file, probably
|
||||
wrong bu_strlcpy() length.
|
||||
|
||||
* hyp used in a boolean with other objects (even unions) does not
|
||||
raytrace
|
||||
* hyp tesselation routine creates bot that does not raytrace
|
||||
|
||||
* if you attach a display manager in tk-mged, kill the window, then
|
||||
quit, mged crashes on exit.
|
||||
|
||||
* CMD-b and CMD-f navigates the mged command window text widget on Mac
|
||||
and trivally causes problems with the cursor and text injection.
|
||||
|
||||
* ogl display manager still crashes on attach in mged on Mac OS X 10.5
|
||||
|
||||
* mged segfaults when drawing lots of solids at once (e.g. draw *.s)
|
||||
|
||||
* mged command mode doesn't display the output of multiple
|
||||
@@ -359,7 +125,7 @@ Recent Bugs
|
||||
mged -c moss.g "puts OK ; tops ; puts OK2 ; title ; puts DONE"
|
||||
|
||||
Note that this is consistent with doing the same thing on the MGED
|
||||
Command Window's command prompt - if the above is a bug it is
|
||||
Command Window's command prompt - if the above is a bug it is
|
||||
apparently not restricted to command/classic mode.
|
||||
|
||||
Further investigation suggests that this is a consequence of
|
||||
@@ -372,18 +138,23 @@ Recent Bugs
|
||||
* mged rotation halts after a few events and after zooming in/out at
|
||||
least once (Mac OS X 10.5)
|
||||
More info: This problem appears to be specific to a particular
|
||||
X11 version or versions - it has been observed with
|
||||
X11 version or versions - it has been observed with
|
||||
xorg-server-1.4.2-apple33 on 10.5. It does not occur with the
|
||||
community XQuartz 2.5.0 (xorg-server 1.7.6), nor does it occur
|
||||
when Tk 8.5.8 is compiled to use the Aqua backend. At least one other
|
||||
(possibly earlier) version of X11 from Apple on a 10.5 Mac did not
|
||||
exhibit bad rotate behavior. The problem is not specifically the
|
||||
(possibly earlier) verison of X11 from Apple on a 10.5 Mac did not
|
||||
exhibit bad rotate behavior. The problem is not specifically the
|
||||
zooming action - rather, the zoom triggers
|
||||
a Tk focus call on the display manager window (rather than the
|
||||
a Tk focus call on the display manager window (rather than the
|
||||
Tk parent window) and the problem manifests when focus is on the
|
||||
display manager window. mged classic mode, where there is no
|
||||
parent window, exhibits the bad rotate behavior immediately.
|
||||
|
||||
* rtedge fills in nearly entire faces of an object when executing on a
|
||||
model that is in perspective mode. Effects really bad on small sized
|
||||
renders, and gets better the larger the render size. Does not happen
|
||||
in non-perspective ray-traces.
|
||||
|
||||
* infinite light sources close to objects result in unexpected/bad
|
||||
light behavior. example is a 1m sph light about 5m from a box about
|
||||
1k x 1k x 1k in size. setting make each light be red, green, and
|
||||
@@ -394,9 +165,12 @@ Recent Bugs
|
||||
|
||||
* fastgen plate mode bots are reporting invalid shotline segments.
|
||||
depending on whether you shoot from the front or back can result in
|
||||
bogus lists visible with nirt in mged, entirely missing the bot, or
|
||||
bogus lists visiable with nirt in mged, entirely missing the bot, or
|
||||
mismatched entry/exit/overlap segments.
|
||||
|
||||
* 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.
|
||||
|
||||
* tab completion in classic/command mode sometimes doesn't work
|
||||
(presumably if mged can't find tcl resources). was finally able to
|
||||
reproduce this with the result given as:
|
||||
@@ -406,12 +180,17 @@ Recent Bugs
|
||||
* mged 'facetize -n' command is giving many errors:
|
||||
ERROR: color index out of range (-128 > 255)
|
||||
and it shouldn't. seems to be happening on 3-manifold surfaces but
|
||||
only for particular faces. looks like the painting algorithm that is
|
||||
only for particuar faces. looks like the painting algorithm that is
|
||||
being used is flawed (and an incomplete implementation).
|
||||
|
||||
* running 'keep' on too many objects (hundreds is causing a usage
|
||||
statement (and not doing the keep)
|
||||
|
||||
* rtwizard won't display a line overlay if you line object is obscured
|
||||
by another. Example being to display a vehicle as ghost, crew as
|
||||
solid, and crew as line. confirmed even when using the other line
|
||||
occlusion settings.
|
||||
|
||||
* fbserv is receiving image data very slowly if the framebuffer is a
|
||||
remote X24 interface. could reproduce on mac with the following:
|
||||
|
||||
@@ -423,10 +202,9 @@ Recent Bugs
|
||||
|
||||
* File->Export seems to not work on Windows
|
||||
|
||||
* xpush fails to properly create a hierarchy killing existing objects
|
||||
resulting in dangling references. This may have been fixed by
|
||||
r69256, but a model that exposes the issue has to be tested to be
|
||||
sure.
|
||||
* xpush fails to properly create a hierarchy leaving some as top-level
|
||||
objects and killing other existing objects resulting in dangling
|
||||
references.
|
||||
|
||||
* mged on Mac OS X will crash on an X11 call if compiled against
|
||||
system Tcl/Tk (at least on 10.4 linking against 8.4), see TODO
|
||||
@@ -461,6 +239,9 @@ Recent Bugs
|
||||
on freebsd using xfce and metacity (single display, 1680x1050 res).
|
||||
dm shows up just fine.
|
||||
|
||||
* wireframe is failing to draw when framebuffer is displayed (underlay
|
||||
or overlay) in mged. problem is specific to dm-ogl (dm-x is fine).
|
||||
|
||||
* g2asc of a v4 is apparently writing out the wrong s_cgtypes and
|
||||
otherwise parsing v4 .g files incorrectly
|
||||
|
||||
@@ -471,13 +252,22 @@ Recent Bugs
|
||||
ubuntu linux. key events go to the command window even with the
|
||||
graphics window has focus.
|
||||
|
||||
* rt is consuming 100% CPU in fb_close() on a lingering ogl
|
||||
framebuffer waiting to close. needs to sleep or select for a while.
|
||||
|
||||
* report of mged being locked up on startup taking full cpu, works
|
||||
fine with with -c with X dm.
|
||||
|
||||
* MGED File->Preferences->Fonts results in error "named font "button
|
||||
_font" doesn't exist on Linux.
|
||||
|
||||
* mged tab-completion doesn't work if the object names have spaces
|
||||
|
||||
* Open dialog in MGED seems rather busted for scrolling and selection
|
||||
(seems to be Mac OS X specific)
|
||||
|
||||
* turning on Framebuffer->Rectangle Area in mged disables the
|
||||
embedded framebuffer display on Mac OS X when you sweep a raytrace
|
||||
embedded framebuffer diplay on Mac OS X when you sweep a raytrace
|
||||
rectangle. sweeping still works if you leave it at All.
|
||||
|
||||
* invalid shaders result in an "Unable to locate where BRL-CAD ... is
|
||||
@@ -500,6 +290,8 @@ Recent Bugs
|
||||
* overlap tool in mged encourages very inefficient CSG operations
|
||||
(e.g. a simple bolt with an entire hull armor subtracted)
|
||||
|
||||
* a character is (still) sometimes captured by the cursor box
|
||||
|
||||
* permute (in mged) requires apply or save before 'new' vertex values
|
||||
will function properly as keypoints.
|
||||
|
||||
@@ -508,6 +300,16 @@ Recent Bugs
|
||||
* dsp primitive is going into what seems to be an unbounded memory
|
||||
allocation loop during prep, inside dsp_layers().
|
||||
|
||||
* crashes during photonmap raytrace of m35 where right node is invalid
|
||||
rt -o test.pix -V 1.0 -P4 -J0 -l7 -A0 ~/Desktop/m35.g all.g box.r sph.r
|
||||
|
||||
* libfb cannot utilize standard output/error "device" files without
|
||||
path trickery. it recognizes the /dev/ prefix and presumes it's a
|
||||
libfb device instead of a filesystem device.
|
||||
|
||||
OK: rt -F/./dev/stdout
|
||||
BAD: rt -F/dev/stdout
|
||||
|
||||
* libfb cannot open a file descriptor when piping/redirecting output.
|
||||
|
||||
OK: rt -F/./dev/stdout moss.g all.g
|
||||
@@ -530,6 +332,15 @@ Recent Bugs
|
||||
* triangulation of some pipe in toyjeep.g fails (rather reliably) on
|
||||
some given bend. fails in nmg_triangulate model().
|
||||
|
||||
* tgc reports one hit errors though hit point has 0,0,0 direction
|
||||
implying that maybe the point was supposedly deleted.
|
||||
|
||||
* rtedge is not respecting the -c"set" options. needs to give some
|
||||
indication that they were parsed too since it ignores unrecognized
|
||||
values apparently.
|
||||
|
||||
* fbhelp sends some of the output to stdout and some to stderr...
|
||||
|
||||
* debugbu 2 immediately reports a bu_vls_free() error.. apparently
|
||||
been a problem since 4.5 days. this occurs because
|
||||
bu_memdebug_add() is not called unless memory checking is enabled
|
||||
@@ -546,6 +357,11 @@ Recent Bugs
|
||||
|
||||
* Create menu.. create "part" boo hiss..
|
||||
|
||||
* 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
|
||||
@@ -565,6 +381,11 @@ Recent Bugs
|
||||
|
||||
* concave arbs give correct wireframe but do not raytrace correctly.
|
||||
|
||||
* rtwizard/rtedge creates incorrect "fuzzy" edge overlay when creating
|
||||
a "Ghost Image with Insert and Lines" that includes a light source
|
||||
and object close to surface (e.g. moss.g; select plane, light, and
|
||||
cone for ghost; select cone for insert and lines.)
|
||||
|
||||
* mged's solid illuminate doesn't work when Lighting is turned on
|
||||
|
||||
* raytrace of zoomed images (e.g., -s64) doesn't work for if_X24
|
||||
@@ -590,12 +411,16 @@ Recent Bugs
|
||||
* mged primitive editor doesn't accept/apply values to disk for
|
||||
certain primitives (e.g. sph)
|
||||
|
||||
* photon map cache file doesn't work (seems to crash rt on use)
|
||||
|
||||
* enabling perspective mode horks shaded mode, also Z clipping
|
||||
shouldn't be required to get the shading.
|
||||
|
||||
* an underlay framebuffer does not underlay with shaded mode
|
||||
|
||||
* rtarea gives incorrect areas when using -H hypersample flag
|
||||
* 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.
|
||||
|
||||
* setting src/librt/db5_io.c's AVS_ADD off in db5_import_attributes
|
||||
causes bad things to happen and it really shouldn't.
|
||||
@@ -606,9 +431,35 @@ Recent Bugs
|
||||
* sketches extruded with non-square AB vectors results in inner sketch
|
||||
components not getting scaled properly.
|
||||
|
||||
* rtcheck is ignoring fastgen tagged geometry since no multioverlap
|
||||
handler is set.
|
||||
|
||||
* bot-bldxf fails in db_walk_tree(), interface may have changed
|
||||
|
||||
|
||||
Older Bugs
|
||||
----------
|
||||
|
||||
* several manpages are missing or out of date for various tools
|
||||
|
||||
* X11 framebuffer often fails to display on certain middle bit depth
|
||||
displays. (e.g. 15 or 16 bit depth)
|
||||
|
||||
* mk_lcomb fails on large combinations due to mk_tree_pure() building
|
||||
a left-heavy tree and wdb_put_internal() then recursively performing
|
||||
lookup and put calls.
|
||||
|
||||
|
||||
Annoyances
|
||||
----------
|
||||
|
||||
* matrix edits on objects in mged require you to select a primitive
|
||||
for a coordinate system reference. this can be counterintuitive and
|
||||
confusing.
|
||||
|
||||
* there are frequently modality errors when entering edit mode as
|
||||
control and middle mouse rebind to model edit instead of view edit.
|
||||
|
||||
---
|
||||
Bugs should be reported to the bug tracker on the project website at
|
||||
http://sourceforge.net/tracker/?atid=640802&group_id=105292
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
= BRL-CAD Interface Change Policy
|
||||
:toc: macro
|
||||
|
||||
toc::[]
|
||||
|
||||
== Scope
|
||||
|
||||
This policy defines how BRL-CAD public interfaces may change. Public
|
||||
interfaces include developer APIs, command-line interfaces, graphical
|
||||
interfaces, documented commands, installed headers, public macros,
|
||||
public types, and other behavior users reasonably rely on.
|
||||
|
||||
Renaming an application is not minimally impacting: an application
|
||||
name is the primary way users find and run the tool.
|
||||
|
||||
Every public interface change must be either minimally impacting or
|
||||
formally deprecated.
|
||||
|
||||
== Minimally Impacting
|
||||
|
||||
A minimally impacting change may be made at any time. A change is
|
||||
minimally impacting only when it can be represented by the documented
|
||||
rule language in
|
||||
link:doc/changes/minimally-impacting.rules[doc/changes/minimally-impacting.rules]
|
||||
and emitted by the generated update script.
|
||||
|
||||
If the rule language cannot express a change, either extend the rule
|
||||
language so the generated script can perform the update, or treat the
|
||||
change as formally deprecated.
|
||||
|
||||
Minimally impacting path includes:
|
||||
|
||||
* recently introduced interfaces that have not yet appeared unchanged
|
||||
in two releases;
|
||||
* appreciably broken interfaces that have been unusable for at least
|
||||
two releases and have no secondary utility;
|
||||
* elementary mechanical changes such as renames, parameter reordering,
|
||||
parameter removal, defaulted parameter insertion, equivalent
|
||||
interface substitutions, and header moves.
|
||||
|
||||
For function argument rewrites, BRL-CAD assumes callers are not
|
||||
relying on preprocessor-generated call syntax and are not passing
|
||||
nested function calls as arguments to the changed function. That
|
||||
assumption keeps generated substitutions deterministic and reviewable.
|
||||
|
||||
Rule syntax and generated update-script workflow are documented in
|
||||
link:doc/changes/README.adoc[doc/changes/README.adoc]. The generated
|
||||
build-tree rendering of minimally impacting changes is
|
||||
`doc/changes/minimally-impacting.adoc`.
|
||||
|
||||
== Formally Deprecated
|
||||
|
||||
Any public interface change that is not minimally impacting must
|
||||
follow the formal deprecation process.
|
||||
|
||||
During a major release, such as 7.x to 8.x, any public interface may
|
||||
change without advance notice. Major version changes imply interface
|
||||
incompatibility.
|
||||
|
||||
During a minor release, such as 7.44.x to 7.46.x, a public interface
|
||||
must be deprecated beforehand with advance notice in at least two
|
||||
minor releases and at least 90 days elapsed since the initial release
|
||||
announcement.
|
||||
|
||||
Public interfaces scheduled for change should be listed in
|
||||
link:doc/changes/deprecated.adoc[doc/changes/deprecated.adoc] and
|
||||
visibly marked in the source code. Appropriate markings include
|
||||
`DEPRECATED` declarations, preprocessor warnings, `@DEPRECATED`
|
||||
comments, runtime warnings when they do not disrupt valid usage, and
|
||||
documentation updates.
|
||||
|
||||
After a deprecation window has completed, removed or significantly
|
||||
changed interfaces are listed in
|
||||
link:doc/changes/obsoleted.adoc[doc/changes/obsoleted.adoc].
|
||||
|
||||
== Examples
|
||||
|
||||
Removing `rt_shootray()` after it has been published and documented in
|
||||
multiple releases is not minimally impacting unless a generated rule
|
||||
can update callers to an equivalent interface. Otherwise, it must be
|
||||
listed as deprecated, marked in the headers, announced in releases,
|
||||
and only later obsoleted.
|
||||
|
||||
Renaming `bu_log()` or adding a defaulted first argument can be
|
||||
minimally impacting if the change is listed in
|
||||
`minimally-impacting.rules` and the generated update script rewrites
|
||||
existing callers.
|
||||
+1335
-3245
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
@@ -41,11 +41,11 @@ the prefix "lib" in the src/ directory (e.g. src/librt/). All of
|
||||
BRL-CAD's libraries, applications, and any content lacking a license
|
||||
specification are covered by the terms of the LGPL.
|
||||
|
||||
Most of BRL-CAD's build infrastructure including files required by
|
||||
the GNU Build System (such as the CMakeLists.txt files), a variety
|
||||
of scripts located in the misc/ and sh/ directories, and the testing
|
||||
infrastructure (scripts and resources) are provided either under
|
||||
the BSD license or are in the public domain. Similarly, most of
|
||||
Most of BRL-CAD's build infrastructure including files required by the
|
||||
GNU Build System (such as the configure.ac and all Makefile.am files),
|
||||
a variety of scripts located in the misc/ and sh/ directories, and the
|
||||
testing infrastructure (scripts and resources) are provided either
|
||||
under the BSD license or are in the public domain. Similarly, most of
|
||||
the geometric models, images, and other data resources are also
|
||||
provided under the BSD license. Refer to each individual file for
|
||||
specific terms.
|
||||
@@ -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-2026 United States Government as represented by
|
||||
Copyright (c) 1984-2011 United States Government as represented by
|
||||
the U.S. Army Research Laboratory.
|
||||
|
||||
Contact
|
||||
|
||||
+825
@@ -0,0 +1,825 @@
|
||||
The Installation Guide to BRL-CAD
|
||||
=================================
|
||||
|
||||
Please read this document if you are interested in installing BRL-CAD.
|
||||
|
||||
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 of the source distribution that should
|
||||
be consulted if that is the platform you are installing on. This
|
||||
presently includes the following:
|
||||
|
||||
doc/README.MacOSX -- Apple Mac OS X
|
||||
doc/README.IRIX -- SGI IRIX and IRIX64
|
||||
doc/README.Linux -- Various Linux distributions
|
||||
doc/README.Windows -- Microsoft Windows
|
||||
|
||||
|
||||
TABLE OF CONTENTS
|
||||
-----------------
|
||||
Introduction
|
||||
Table of Contents
|
||||
Quick Installation
|
||||
Installing from Binary
|
||||
Installing from Source
|
||||
Configuration Options
|
||||
Compilation Options
|
||||
Installation Options
|
||||
Testing Functionality
|
||||
Post-Installation
|
||||
Reporting Problems
|
||||
|
||||
|
||||
QUICK INSTALLATION
|
||||
------------------
|
||||
|
||||
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.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
For the impatient or simplistic, the following steps should compile,
|
||||
test, and install an optimized BRL-CAD quickly into the /usr/brlcad
|
||||
directory if CMake is installed on your system:
|
||||
|
||||
gunzip brlcad-X.Y.Z.tar.gz
|
||||
tar -xvf brlcad-X.Y.Z.tar
|
||||
mkdir brlcad-build
|
||||
cd brlcad-build
|
||||
cmake ../brlcad-X.Y.Z -DBRLCAD-ENABLE_OPTIMIZED=ON
|
||||
make
|
||||
make benchmark
|
||||
make regress
|
||||
make install # as root, e.g. sudo make install
|
||||
|
||||
If any of the listed steps fail, then something unexpected happened.
|
||||
See the REPORTING PROBLEMS section of this document to report the
|
||||
problem or the INSTALLING FROM SOURCE section for more comprehensive
|
||||
instructions.
|
||||
|
||||
Once installed, add /usr/brlcad/bin to your path, and you should be
|
||||
able to run one of the 400+ applications that constitute BRL-CAD. For
|
||||
example, to run the MGED solid modeler:
|
||||
|
||||
PATH=/usr/brlcad/bin:$PATH ; export PATH
|
||||
mged
|
||||
|
||||
If you use tcsh or another C-shell based command shell, use this
|
||||
instead:
|
||||
|
||||
set path=( /usr/brlcad/bin $path ) ; rehash
|
||||
mged
|
||||
|
||||
|
||||
INSTALLING FROM BINARY
|
||||
----------------------
|
||||
|
||||
There are a variety of different kinds of binary distributions of
|
||||
BRL-CAD. Some of the binary disributions are sufficiently generic and
|
||||
are simply a binary commpressed tarball distribution. Others are
|
||||
specific to a particular platform such as Debian, Mac OS X, FreeBSD,
|
||||
and Windows etc.
|
||||
|
||||
|
||||
Generic Binary Distributions:
|
||||
|
||||
For the unspecialized binary distributions that are basically
|
||||
compressed tarballs of the installation root, they should contain the
|
||||
entire hierarchy of the distribution. That is to say that they
|
||||
contain /usr/brlcad in its entirety so that if you decompress, you
|
||||
will have a `usr' directory that contains a single `brlcad' directory:
|
||||
|
||||
gunzip BRL-CAD_7.2.4_Linux_ia64.tar.gz
|
||||
tar -xvf BRL-CAD_7.2.4_Linux_ia64.tar
|
||||
sudo mkdir /usr/brlcad
|
||||
sudo mv BRL-CAD_7.2.4_Linux_ia64/* /usr/brlcad/
|
||||
|
||||
Of course, there are other compression options possible including zip
|
||||
and bzip2. By default, BRL-CAD expects to be installed into
|
||||
/usr/brlcad. 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.
|
||||
|
||||
However, if you do desire to install and run BRL-CAD from a different
|
||||
location, give it a try.. ;) If it doesn't work (some platforms are more
|
||||
problematic than others), you will need to compile and install from a
|
||||
source distribution.
|
||||
|
||||
|
||||
Mac OS X Disk Mounting Image:
|
||||
|
||||
Mount the .dmg and run the Installer .pkg contained therein. This
|
||||
will install into /usr/brlcad and will only require confirming that
|
||||
your environment is set up properly (i.e. add /usr/brlcad/bin to your
|
||||
path) as described in this document's Installation Options section.
|
||||
|
||||
|
||||
INSTALLING FROM SOURCE
|
||||
----------------------
|
||||
|
||||
There are a couple of ways to obtain the BRL-CAD sources, usually via
|
||||
one of the following starting points:
|
||||
|
||||
1) from a SVN checkout/export, or
|
||||
2) from a source distribution tarball
|
||||
|
||||
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.
|
||||
|
||||
By default, the default configuration will prepare the build system
|
||||
for installation into the /usr/brlcad directory (the
|
||||
CMAKE_INSTALL_PREFIX option may be used to change that). This
|
||||
tradition goes back a couple 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-7.2.4
|
||||
./brlcad-build
|
||||
|
||||
To start the build process, cd into brlcad-build and run the following
|
||||
|
||||
cmake ../brlcad-7.2.4
|
||||
|
||||
By default, an unoptimized build of BRL-CAD will be configured
|
||||
for compilation. This is a "bare bones" compile that does not
|
||||
add debug flags, optimization, or other features that are generally
|
||||
useful. There are several "build profiles" that may be invoked
|
||||
to automatically set up several options for particular purposes -
|
||||
see the BUILD TYPES section below.
|
||||
|
||||
By default, all components and functionality will be built except
|
||||
jove. However, 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 BRLCAD-ENABLE_ALL_LOCAL_LIBS for CMake:
|
||||
|
||||
-DBRLCAD-ENABLE_ALL_LOCAL_LIBS=ON
|
||||
|
||||
If the graphical interface (cmake-gui) is in use, it will list this
|
||||
and other common options by default, allowing the user to check and
|
||||
uncheck the ON/OFF status of various options. 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 either of two variables:
|
||||
|
||||
-DBRLCAD_BUILD_LOCAL_<FEATURE>_FORCE_ON=ON
|
||||
-DBRLCAD_BUILD_LOCAL_<FEATURE>_FORCE_OFF=ON
|
||||
|
||||
These options are not available by default in the graphical interface,
|
||||
but can be accessed by enabling the Advanced view, which will list all
|
||||
available options. This list can be made somewhat more managable by
|
||||
also enabling the Grouped option, which organizes variables into
|
||||
groups based on name. In this case, the above two variables would be
|
||||
found under the BRLCAD group.
|
||||
|
||||
To obtain an optimized build (for example, for BRL-CAD Benchmark
|
||||
performance evaluation), enable BRLCAD-ENABLE_OPTIMIZED_BUILD
|
||||
|
||||
See the CONFIGURATION OPTIONS below for more details on all of the
|
||||
possible settings.
|
||||
|
||||
Once configured, you should be able to succesfully build BRL-CAD via
|
||||
make:
|
||||
|
||||
make
|
||||
|
||||
See the COMPILATION OPTIONS section in this document for more details
|
||||
on compile-time options including options for parallel build support.
|
||||
|
||||
|
||||
Testing the Compilation:
|
||||
|
||||
To test BRL-CAD before installation, you can run the BRL-CAD benchmark.
|
||||
The benchmark will report if the results are correct, testing a
|
||||
majority of the core functionality of BRL-CAD in addition to testing
|
||||
your system's performance:
|
||||
|
||||
make benchmark
|
||||
|
||||
Note that the benchmark target will build ONLY the pieces required for
|
||||
the benchmark tests, unless a general make has already been performed.
|
||||
|
||||
See the TESTING FUNCTIONALITY section of this document for more
|
||||
details on how to ensure that the build completed successfully and
|
||||
additional tests that may be run.
|
||||
|
||||
|
||||
Installing the Compilation:
|
||||
|
||||
After the build successfully completes and assuming the benchmark also
|
||||
produces correct results, installation may begin. Like any package,
|
||||
you must have sufficient filesystem permissions to install. To
|
||||
install into a system location, you can generally either become a
|
||||
super user via the su or sudo commands:
|
||||
|
||||
sudo make install
|
||||
|
||||
See the INSTALLATION OPTIONS section of this document for more details
|
||||
on BRL-CAD installation options and post-install environment
|
||||
preparations.
|
||||
|
||||
BUILD TYPES
|
||||
-----------
|
||||
|
||||
As mentioned earlier, the default CMake settings are very minimalist and
|
||||
not usually the most useful. There are two "build types", controlled by
|
||||
the CMAKE_BUILD_TYPE variable, that are useful for specific purposes:
|
||||
|
||||
* Debug (-DCMAKE_BUILD_TYPE=Debug) - Debug is the configuration that most
|
||||
developers will want to use when working on BRL-CAD. It will add
|
||||
debug flags to the compile, and sets the default install directory to
|
||||
be ../brlcad-install instead of /usr/brlcad. (This avoids the need to
|
||||
constantly enable sudo to do an install, and lets a developer work on
|
||||
their build even when a system install is also present.) In order to
|
||||
run the resulting install binaries, the developer should ensure that
|
||||
the local install path is first in their PATH environment variable -
|
||||
see INSTALLATION OPTIONS below.
|
||||
|
||||
* Release (-DCMAKE_BUILD_TYPE=Release) - A release build is intended for
|
||||
final consumption by end users and as such has optimizations enabled.
|
||||
It also sets the install path to /usr/brlcad/rel-X.Y.Z - best practice
|
||||
for release installation is to set up symbolic links in /usr/brlcad to
|
||||
point to the most current BRL-CAD release, while allowing older versions
|
||||
to remain installed on the system in case they are needed.
|
||||
|
||||
In both of these cases any individual variable may be overridden - for
|
||||
example, setting -DCMAKE_INSTALL_PREFIX=/usr/brlcad in a Debug build will
|
||||
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.
|
||||
|
||||
|
||||
CONFIGURATION OPTIONS
|
||||
---------------------
|
||||
|
||||
The `configure' build script is used to set compilation options and
|
||||
supports a wide selection of compilation directives. See the ENABLE
|
||||
OPTIONS and WITH OPTIONS lists below for the arguments presently
|
||||
available to configure in more descriptive detail. The brief summary
|
||||
is that "enable" options focus INWARD and "with" options focus
|
||||
OUTWARD. There are various --enable-* flags that toggle how BRL-CAD
|
||||
code is compiled. There are various --with-* flags that toggle what
|
||||
system services are used and how to find them.
|
||||
|
||||
In order to avoid compilation problems, you should set all compilation
|
||||
options on the `configure' command line, using `VAR=value'. For
|
||||
example:
|
||||
|
||||
./configure CC=/usr/ucb/bin/cc
|
||||
|
||||
will cause the specified executable program to be used as the C
|
||||
compiler. The most common configuration tested is a default
|
||||
debuggable build intended for installation into /usr/brlcad with no
|
||||
external dependencies assumed:
|
||||
|
||||
./configure --enable-all --disable-strict
|
||||
|
||||
By default, BRL-CAD is configured to build the entire package and will
|
||||
install completely isolated into the /usr/brlcad directory.
|
||||
Configuration will prepare the build for an unoptimized compilation by
|
||||
default and will attempt to utilize required system libraries if they
|
||||
are available, otherwise compiling the required library dependencies
|
||||
as needed. Run `./configure --help' for a list of all of the possible
|
||||
configuration options.
|
||||
|
||||
|
||||
ENABLE OPTIONS:
|
||||
|
||||
The below --enable-* options can be used to enable or disable aspects
|
||||
of compilation that relate to what and how BRL-CAD will be compiled.
|
||||
Using --disable-* is the same as --enable-*=no and either can be used
|
||||
interchangably. As BRL-CAD is a large bazaar of functionality, there
|
||||
are a lot of options and configurations possible. See the section
|
||||
labeled WITH OPTIONS below for a list of options that enable/disable
|
||||
optional system functionality.
|
||||
|
||||
--enable-almost-everything enables compilation of all 3rd party
|
||||
sources that are provided within a BRL-CAD source distribution. If
|
||||
used, this option effectively turns on all of the below documented
|
||||
--enable-*-build options. Default is "auto", 3rd party sources are
|
||||
compiled only if they are not detected as being available and
|
||||
functioning as expected. Aliases:
|
||||
--enable-all
|
||||
--enable-all-build
|
||||
--enable-build-all
|
||||
--enable-all-builds
|
||||
--enable-everything
|
||||
--enable-everything-build
|
||||
--enable-build-everything
|
||||
|
||||
--enable-only-benchmark prepares the build system to only compile and
|
||||
install the minimal set of libraries and binaries needed to run the
|
||||
BRL-CAD Benchmark suite. Default is "no". Aliases:
|
||||
--enable-only-bench
|
||||
--enable-only-benchmarks
|
||||
--enable-bench-only
|
||||
--enable-benchmark-only
|
||||
--enable-benchmarks-only
|
||||
|
||||
--enable-only-rtserver prepares the build system to only compile and
|
||||
install the minimal set of libraries needed for the Java-interfacing
|
||||
"rtserver" interface (used by ARL for analysis purposes). Default is
|
||||
"no". Aliases:
|
||||
--enable-only-rts
|
||||
--enable-only-librtserver
|
||||
--enable-rts-only
|
||||
--enable-rtserver-only
|
||||
--enable-librtserver-only
|
||||
|
||||
--enable-runtime-debug enables support for application and library
|
||||
debugging facilities. Disabling the run-time debugging facilities can
|
||||
provide a significant (10%-30%) performance boost at the expense of
|
||||
extensive error checking (that in turn help prevent corruption of your
|
||||
data). Default is "yes", and should only be disabled for read-only
|
||||
render work where performance is critical. Aliases:
|
||||
--enable-run-time-debug
|
||||
--enable-runtime-debugging
|
||||
--enable-run-time-debugging
|
||||
|
||||
--enable-strict-build causes all compilation warnings to be treated as
|
||||
errors for certain portions of code that has undergone a more thorough
|
||||
review. This behavior of this flag is heavily influenced by
|
||||
compilation settings (such as --enable-warnings) including
|
||||
optimization flags (such as --enable-optimized). Default is "yes".
|
||||
Aliases:
|
||||
--enable-strict
|
||||
--enable-strict-compile
|
||||
--enable-strict-compile-flags
|
||||
|
||||
--enable-64bit-build attempts to force compilation to produce 64-bit
|
||||
binaries and libraries. Note that it merely *ATTEMPTS* to force
|
||||
64-bit compilation but in all practicality and likelihood, you will
|
||||
need to manually specify CFLAGS/CPPFLAGS/CXXFLAGS/LDFLAGS to specify
|
||||
64-bit compilation. Default is "auto", where the default compilation
|
||||
mode as set by the compiler will be utilized. Aliases:
|
||||
--enable-64bit
|
||||
--enable-64
|
||||
--enable-64-build
|
||||
--enable-64-bit
|
||||
--enable-64-bit-build
|
||||
|
||||
--enable-regex-build turns on compilation of the regular expression
|
||||
library that is provided in a BRL-CAD source distribution. Default is
|
||||
"auto", meaning that libregex will be compiled and installed only if a
|
||||
suitable system regex library is not found. Aliases:
|
||||
--enable-regex
|
||||
--enable-libregex
|
||||
--enable-libregex-build
|
||||
|
||||
--enable-png-build turns on compilation of the Portable Network
|
||||
Graphics library that is provided in a BRL-CAD source distribution.
|
||||
Default is "auto", meaning that libpng will be compiled and installed
|
||||
only if a suitable system PNG library is not found. Aliases:
|
||||
--enable-png
|
||||
--enable-libpng
|
||||
--enable-libpng-build
|
||||
|
||||
--enable-zlib-build turns on compilation of the zlib library that is
|
||||
provided in a BRL-CAD source distribution. Default is "auto", meaning
|
||||
that libz will be compiled and installed only if a suitable system
|
||||
zlib is not found. Aliases:
|
||||
--enable-zlib
|
||||
--enable-libz
|
||||
--enable-libz-build
|
||||
|
||||
--enable-urt-build turns on compilation of the Utah Raster Toolkit
|
||||
that is provided in a BRL-CAD source distribution. Default is "auto",
|
||||
meaning that libutahrle will be compiled and installed only if a
|
||||
suitable system rle library is not found. Aliases:
|
||||
--enable-urt
|
||||
--enable-urtoolkit
|
||||
--enable-urtoolkit-build
|
||||
--enable-utahrle
|
||||
--enable-utahrle-build
|
||||
--enable-libutahrle
|
||||
--enable-libutahrle-build
|
||||
--enable-utah-raster-toolkit
|
||||
--enable-utah-raster-toolkit-build
|
||||
|
||||
--enable-opennurbs-build turns on compilation of the openNURBS library
|
||||
that is provided in a BRL-CAD source distribution. Default is "auto",
|
||||
meaning that libopenNURBS will be compiled and installed only if a
|
||||
suitable system openNURBS library is not found. Aliases:
|
||||
--enable-opennurbs
|
||||
--enable-libopennurbs
|
||||
--enable-libopennurbs-build
|
||||
--enable-open-nurbs
|
||||
--enable-open-nurbs-build
|
||||
|
||||
--enable-step-build turns on compilation of the NIST Step Class
|
||||
Libraries that are provided in a BRL-CAD source distribution. Default
|
||||
is "auto", meaning that step will be compiled and installed only if a
|
||||
suitable system NIST SCL libraries are not found. Aliases:
|
||||
--enable-step
|
||||
--enable-steplibs
|
||||
--enable-libstep
|
||||
--enable-libstep-build
|
||||
|
||||
--enable-termlib-build turns on compilation of the termlib library
|
||||
that is provided in a BRL-CAD source distribution. Default is "auto",
|
||||
meaning that libtermlib will be compiled and installed only if a
|
||||
suitable system termcap or termlib library is not found. Aliases:
|
||||
--enable-termlib
|
||||
--enable-termcap
|
||||
--enable-termcap-build
|
||||
--enable-libtermlib
|
||||
--enable-libtermlib-build
|
||||
--enable-libtermcap
|
||||
--enable-libtermcap-build
|
||||
|
||||
--enable-tcl-build turns on compilation of the Tcl library that is
|
||||
provided in a BRL-CAD source distribution. Default is "auto", meaning
|
||||
that libtcl will be compiled and installed only if a suitable system
|
||||
Tcl library is not found. Aliases:
|
||||
--enable-tcl
|
||||
--enable-libtcl
|
||||
--enable-libtcl-build
|
||||
|
||||
--enable-tk-build turns on compilation of the Tk library that is
|
||||
provided in a BRL-CAD source distribution. Default is "auto", meaning
|
||||
that libtk will be compiled and installed only if a suitable system Tk
|
||||
library is not found. Aliases:
|
||||
--enable-tk
|
||||
--enable-libtk
|
||||
--enable-libtk-build
|
||||
|
||||
--enable-aquatk-build turns on compilation of the Aqua Tk options for
|
||||
the Tk library on Mac OSX. Default is "off". Aliases:
|
||||
--enable-aquatk
|
||||
--enable-aqua-tk
|
||||
--enable-aqua-tk-build
|
||||
--enable-tkaqua
|
||||
--enable-tkaqua-build
|
||||
--enable-tk-aqua-build
|
||||
|
||||
--enable-itcl-build turns on compilation of the Incr Tcl/Tk library
|
||||
that is provided in a BRL-CAD source distribution. Default is "auto",
|
||||
meaning that libitcl and libitk will be compiled and installed only if
|
||||
a suitable system library (for either) is not found. Aliases:
|
||||
--enable-itcl
|
||||
--enable-itk
|
||||
--enable-itk-build
|
||||
--enable-libitcl
|
||||
--enable-libitcl-build
|
||||
--enable-libitk
|
||||
--enable-libitk-build
|
||||
--enable-incrtcl
|
||||
--enable-incrtcl-build
|
||||
|
||||
--enable-iwidgets-install turns on installation of the Iwidgets
|
||||
library that is provided in a BRL-CAD source distribution. Default is
|
||||
"auto", meaning that the iwidgets tcl scripts will be installed only
|
||||
if a suitable system Iwidgets functionality is not found. Aliases:
|
||||
--enable-iwidgets
|
||||
--enable-iwidgets-build
|
||||
|
||||
--enable-tkhtml-build turns on compilation of the tkhtml library that is
|
||||
provided in a BRL-CAD source distribution. Default is "yes".
|
||||
Aliases:
|
||||
--enable-tkhtml
|
||||
--enable-tkhtml-build
|
||||
|
||||
--enable-tkpng-build turns on compilation of the tkpng library that is
|
||||
provided in a BRL-CAD source distribution. Default is "auto", meaning
|
||||
that libtkpng will be compiled and installed only if a suitable system
|
||||
tkpng library is not found. Aliases:
|
||||
--enable-tkpng
|
||||
--enable-tkpng-build
|
||||
--enable-libtkpng
|
||||
--enable-libtkpng-build
|
||||
|
||||
--enable-tktable-build turns on compilation of the tktable library that is
|
||||
provided in a BRL-CAD source distribution. Default is "yes". Aliases:
|
||||
--enable-tktable
|
||||
--enable-tktable-build
|
||||
|
||||
--enable-tnt-install turns on installation of the Template Numerical
|
||||
Toolkit that is provided in a BRL-CAD source distribution. Default is
|
||||
"auto", meaning that the TNT headers will be installed only if
|
||||
suitable system TNT functionality is not found. Aliases:
|
||||
--enable-tnt
|
||||
--enable-tnt-build
|
||||
--enable-template-numerical-toolkit
|
||||
--enable-template-numerical-toolkit-build
|
||||
--enable-template-numerical-toolkit-install
|
||||
|
||||
--enable-jove-build turns on compilation of Jonathan's Own Version of
|
||||
Emacs (jove), a lightweight text editor with functionality similar to
|
||||
Emacs but with different key bindings that is included in a BRL-CAD
|
||||
source distribution. Default is "auto", meaning that jove will be
|
||||
compiled and installed only if suitable system editor functionality is
|
||||
not found. Aliases:
|
||||
--enable-jove
|
||||
|
||||
--enable-ef-build turns on compilation of the Endgame Framework module
|
||||
used to provide BRL-CAD geometry import support to the Endgame
|
||||
Framework application development environment. Default is "no".
|
||||
Aliases:
|
||||
--enable-ef
|
||||
--enable-endgameframework
|
||||
--enable-endgameframework-build
|
||||
--enable-endgame-framework
|
||||
--enable-endgame-framework-build
|
||||
|
||||
--enable-unigraphics-build turns on compilation of the Unigraphics (NX)
|
||||
importer used to provide conversion support from Unigraphics format to
|
||||
a tessellated BRL-CAD geometry format. Default is "no". Aliases:
|
||||
--enable-unigraphics
|
||||
--enable-ug
|
||||
--enable-ug-build
|
||||
--enable-nx
|
||||
--enable-nx-build
|
||||
|
||||
--enable-models-install turns on installation of provided example
|
||||
geometry models. Default is "yes". Aliases:
|
||||
--enable-models
|
||||
--enable-models-build
|
||||
--enable-geometry
|
||||
--enable-geometry-build
|
||||
--enable-geometry-install
|
||||
|
||||
--enable-documentation turns on documentation requiring Docbook based
|
||||
compilation. Default is "auto", meaning it will build the documentation
|
||||
if suitable tools to do so are found. Aliases:
|
||||
--enable-documentation-install
|
||||
--enable-docs
|
||||
--enable-docs-install
|
||||
|
||||
--enable-optimized turns on optimized compilation. Note that
|
||||
optimized compilation may potentially change the warnings produced by
|
||||
the compiler. You may also need to specify --disable-strict or
|
||||
--disable-warnings to avoid halting on compilation warnings. Default
|
||||
is "no". Aliases:
|
||||
--enable-opt
|
||||
--enable-optimize
|
||||
--enable-optimization
|
||||
--enable-optimizations
|
||||
|
||||
--enable-debug turns on debug compilation (debugging symbols).
|
||||
Default is "yes". Aliases:
|
||||
--enable-debugging
|
||||
|
||||
--enable-profiling turns on profile compilation. Default is "no".
|
||||
Aliases:
|
||||
--enable-profile
|
||||
--enable-profiled
|
||||
|
||||
--enable-parallel turns on support for SMP architectures. Default is "yes".
|
||||
Aliases:
|
||||
--enable-parallel-build
|
||||
--enable-smp
|
||||
--enable-smp-build
|
||||
|
||||
--enable-dtrace turns on Sun dtrace support. Default is "no".
|
||||
Aliases:
|
||||
None
|
||||
|
||||
--enable-verbose turns on verbose compilation output effectively
|
||||
implying --enable-warnings and --enable-progress as described below.
|
||||
Default is "no". Aliases:
|
||||
--enable-verbosity
|
||||
--enable-output-verbose
|
||||
--enable-verbose-output
|
||||
--enable-build-verbose
|
||||
--enable-verbose-build
|
||||
|
||||
--enable-warnings turns on verbose compilation warnings, causing
|
||||
additional compilation flags to be given to the compiler in order to
|
||||
provoke additional compilation warnings. Default is "no". Aliases:
|
||||
--enable-warning
|
||||
--enable-verbose-warnings
|
||||
--enable-warnings-verbose
|
||||
--enable-build-warnings
|
||||
--enable-warnings-build
|
||||
|
||||
--enable-progress turns on verbose compilation progress status,
|
||||
showing unquelled libtool compilation steps. Default is "no".
|
||||
Aliases:
|
||||
--enable-verbose-progress
|
||||
--enable-progress-verbose
|
||||
--enable-build-progress
|
||||
--enable-progress-build
|
||||
|
||||
--enable-rtgl turns on compilation of an experimental Ray Trace OpenGL
|
||||
display manager, providing shaded displays within MGED. Default is
|
||||
"no". Aliases:
|
||||
None
|
||||
|
||||
|
||||
WITH OPTIONS:
|
||||
|
||||
The below --with-* options enable/disable/locate OPTIONAL SYSTEM
|
||||
FUNCTIONALITY that should be compiled against. Contrary to the
|
||||
--enable-* options, none of the --with-* options are required to
|
||||
obtain a fully functional BRL-CAD install. Using --without-* is the
|
||||
same as --with-*=no and either can be used interchangably (though be
|
||||
careful of options that expect a PATH instead of "no"). See the
|
||||
section labeled ENABLE OPTIONS above for a list of options that
|
||||
enable/disable all other aspects of BRL-CAD compilation.
|
||||
|
||||
--with-jdk[=PATH] turns on compilation of code that requires the Java
|
||||
Development Kit. The specified PATH should be provided. Default is
|
||||
"auto" meaning that if suitable Java functionality is detected, then
|
||||
code that uses Java will be compiled (librtserver). Aliases:
|
||||
--with-java
|
||||
|
||||
--with-proe is in flux with --enable-proe-build. Consult the help for
|
||||
current information.
|
||||
|
||||
--with-x11[=PATH] informs configure where X11 headers/libraries may be
|
||||
located. Default is "auto" meaning that standard/common paths will be
|
||||
searched for X11 functionality. Aliases:
|
||||
--with-x
|
||||
|
||||
--with-ogl informs configure that the OpenGL framebuffer and
|
||||
display manager interfaces should be compiled (and hence they should
|
||||
link against a system OpenGL library). This option has absolutely
|
||||
nothing to do with shaded displays of geometry in MGED. Default is
|
||||
"auto" meaning the interfaces will be automatically compiled if
|
||||
suitable OpenGL headers and libraries are found. Aliases:
|
||||
--with-opengl
|
||||
|
||||
--with-wgl informs configure that it should attempt to compile the
|
||||
Windows GL framebuffer and display manager interfaces. This option is
|
||||
hard-enabled in the MSVC build files for BRL-CAD. Default is "auto"
|
||||
for configure meaning that the wgl interfaces will be compiled if the
|
||||
Windows opengl32 dll is found. Aliases:
|
||||
--with-windowsgl
|
||||
|
||||
|
||||
COMPILATION OPTIONS
|
||||
-------------------
|
||||
|
||||
If you are on a multiprocessor machine, you can compile in parallel
|
||||
depending on the version of `make' being used. For the GNU and BSD
|
||||
make, you can use the -j argument. For example, to use 4 CPUs:
|
||||
|
||||
make -j4
|
||||
|
||||
With the IRIX compiler, the -P option enables parallel build mode and
|
||||
the PARALLEL environment variable sets the number of CPUs (default is
|
||||
two):
|
||||
|
||||
PARALLEL=4 make -P
|
||||
|
||||
If you would like to pass custom compiler or linker options, there are
|
||||
several ways this may be achieved both during 'configure' and/or
|
||||
during 'make'. These flags include CFLAGS, CPPFLAGS, LDFLAGS, and
|
||||
LIBS. Configure supports these as either variables or as --with
|
||||
options:
|
||||
|
||||
./configure CFLAGS="-O3" LDFLAGS="-pthread"
|
||||
./configure --with-cppflags="-I/opt/include" --with-libs="-lz"
|
||||
|
||||
BRLCAD_C_FLAGS - may need to set up the others?
|
||||
|
||||
|
||||
GNU and BSD make support the same flags as overrides of the default
|
||||
provided flags as well:
|
||||
|
||||
make CFLAGS="-O0 -g -pg" LDFLAGS="-L/opt/malloc" LIBS="-lmalloc"
|
||||
|
||||
|
||||
INSTALLATION OPTIONS
|
||||
--------------------
|
||||
|
||||
By default, `make install' will install BRL-CAD's files into
|
||||
`/usr/brlcad/bin', `/usr/brlcad/man', etc. You can specify an
|
||||
installation prefix other than `/usr/brlcad' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
|
||||
Setting Up the Path:
|
||||
|
||||
Once installed, you will need to add /usr/brlcad/bin to your system
|
||||
PATH. For Bourne shell users, you can run the following:
|
||||
|
||||
PATH=/usr/brlcad/bin:$PATH ; export PATH
|
||||
|
||||
For C shell users, this should do the same thing:
|
||||
|
||||
set path=( /usr/brlcad/bin $path ) ; rehash
|
||||
|
||||
If you would like to provide BRL-CAD to multiple users, your shell
|
||||
environment scripts should be edited so that /usr/brlcad/bin is added
|
||||
to the system path. This usually entails editing /etc/profile,
|
||||
/etc/csh.login, /etc/bashrc, and possibly other files depending on
|
||||
your platform.
|
||||
|
||||
|
||||
Setting Up the Manual Pages Path:
|
||||
|
||||
It may be useful to add /usr/brlcad/man to your MANPATH in the same
|
||||
manner as shown above for PATH. Conversely, you can use the `brlman'
|
||||
command that is already preconfigured to locate the BRL-CAD manpages.
|
||||
|
||||
|
||||
Configuring permissions uniformly with group read/write access:
|
||||
|
||||
find /usr/brlcad -type d -exec chmod ug+rwx {} \; -exec chmod o+rx {} \; -o -type f -exec chmod ug+rw {} \; -exec chmod o+r {} \;
|
||||
|
||||
The above 'find' line will set up permissions across a /usr/brlcad
|
||||
rooted installation such that 'user' and 'group' will have read-write
|
||||
access and 'other' will have read access consistently across all
|
||||
files. This is a common configuration used by BRL-CAD developers that
|
||||
allows shared management of installations amongst developers while
|
||||
having all users maintain read-only access.
|
||||
|
||||
|
||||
|
||||
TESTING FUNCTIONALITY
|
||||
---------------------
|
||||
|
||||
Testing a Compilation:
|
||||
|
||||
After BRL-CAD is compiled, you can test the build via:
|
||||
|
||||
make test
|
||||
|
||||
This will run a series of tests on the compiled sources to make sure
|
||||
that they behave as they should. If those tests succeed, another
|
||||
useful test is to ensure that the geometric library computations are
|
||||
correct by running the BRL-CAD Benchmark:
|
||||
|
||||
make benchmark
|
||||
|
||||
The benchmark will run for several minutes computing frames of
|
||||
well-known ray-trace images, and comparing the validity of the results
|
||||
as well as overall performance metrics. The benchmark should report
|
||||
CORRECT after each section of output and a overal VGR metric of
|
||||
performance.
|
||||
|
||||
|
||||
Testing an Installation:
|
||||
|
||||
After BRL-CAD is installed, simply running `rt' and/or `mged' are good
|
||||
tests of basic functionality. Running `rt' without any options should
|
||||
display version information and a usage message. Running `mged'
|
||||
without any options will start the GUI-based solid modeler
|
||||
application. Running "benchmark" should invoke the BRL-CAD Benchmark
|
||||
and test the performance of the binaries as installed on a given
|
||||
system.
|
||||
|
||||
|
||||
POST-INSTALLATION
|
||||
-----------------
|
||||
|
||||
|
||||
REPORTING PROBLEMS
|
||||
------------------
|
||||
|
||||
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.
|
||||
|
||||
|
||||
---
|
||||
$Revision$
|
||||
-3677
File diff suppressed because it is too large
Load Diff
+493
@@ -0,0 +1,493 @@
|
||||
# M A K E F I L E . A M
|
||||
# BRL-CAD
|
||||
#
|
||||
# Copyright (c) 2005-2011 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.
|
||||
#
|
||||
###
|
||||
|
||||
AUTOMAKE_OPTIONS = 1.6 dist-zip dist-bzip2
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
DISTCHECK_CONFIGURE_FLAGS = --enable-all
|
||||
|
||||
required_dirs = \
|
||||
include \
|
||||
src
|
||||
|
||||
bench_dirs = \
|
||||
bench \
|
||||
db \
|
||||
pix
|
||||
|
||||
other_dirs = \
|
||||
doc \
|
||||
m4 \
|
||||
misc \
|
||||
regress \
|
||||
sh
|
||||
|
||||
if ONLY_BENCHMARK
|
||||
SUBDIRS = \
|
||||
$(required_dirs) \
|
||||
$(bench_dirs)
|
||||
|
||||
else !ONLY_BENCHMARK
|
||||
|
||||
if ONLY_RTS
|
||||
SUBDIRS = \
|
||||
$(required_dirs)
|
||||
|
||||
else !ONLY_RTS
|
||||
SUBDIRS = \
|
||||
$(required_dirs) \
|
||||
$(bench_dirs) \
|
||||
$(other_dirs)
|
||||
|
||||
endif
|
||||
# ONLY_RTS
|
||||
|
||||
endif
|
||||
# ONLY_BENCHMARK
|
||||
|
||||
|
||||
DIST_SUBDIRS = \
|
||||
$(required_dirs) \
|
||||
$(bench_dirs) \
|
||||
$(other_dirs)
|
||||
|
||||
documentationdir = $(BRLCAD_DATA)
|
||||
|
||||
documentation_DATA = \
|
||||
AUTHORS \
|
||||
COPYING \
|
||||
HACKING \
|
||||
INSTALL \
|
||||
NEWS \
|
||||
README
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(documentation_DATA) \
|
||||
BUGS \
|
||||
ChangeLog \
|
||||
TODO \
|
||||
autogen.sh \
|
||||
libtool
|
||||
|
||||
DISTCLEANFILES = \
|
||||
$(CONFIG_CACHE) \
|
||||
aclocal.m4 \
|
||||
config.log \
|
||||
config.status \
|
||||
install.$(host_triplet).log \
|
||||
libtool \
|
||||
so_locations
|
||||
|
||||
|
||||
##########################
|
||||
# packaged distributions #
|
||||
##########################
|
||||
|
||||
$(PACKAGE)-$(BRLCAD_VERSION).tar.gz: dist
|
||||
|
||||
# Build a Mac OS X Installer .pkg -- make sure the package resources
|
||||
# reflect the correct version. we specifically do not use an autoconf
|
||||
# template so that the file may be edited without doing a configure
|
||||
# (which would also cause a need to regenerate the template to keep in
|
||||
# sync every time it's edited).
|
||||
$(PACKAGE_NAME)_$(BRLCAD_VERSION).pkg:
|
||||
@if ! test -f "install.$(host_triplet).log" ; then \
|
||||
echo ; \
|
||||
echo "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" ; \
|
||||
echo " WARNING: It seems as though you might not have" ; \
|
||||
echo " installed BRL-CAD yet?" ; \
|
||||
echo ; \
|
||||
echo " You should run 'make install' before creating a" ; \
|
||||
echo " binary distribution package. Trying regardless." ; \
|
||||
echo "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" ; \
|
||||
echo ; \
|
||||
fi
|
||||
@echo "Building an Installer package for Mac OS X"
|
||||
@echo
|
||||
@echo "Warning: this package target presently assumes that the install directory"
|
||||
@echo " does not contain extra files and comprises a full clean install."
|
||||
@echo
|
||||
@if test -f "$(top_srcdir)/misc/macosx/Resources/ReadMe.rtfd/TXT.rtf" ; then \
|
||||
perl -pi -e "s/BRL-CAD [0-9]*\.[0-9]*\.[0-9]*/BRL-CAD $(BRLCAD_VERSION)/g" $(top_srcdir)/misc/macosx/Resources/ReadMe.rtfd/TXT.rtf ; \
|
||||
fi
|
||||
@if test -f "$(top_srcdir)/misc/macosx/Resources/Welcome.rtfd/TXT.rtf" ; then \
|
||||
perl -pi -e "s/BRL-CAD [0-9]*\.[0-9]*\.[0-9]*/BRL-CAD $(BRLCAD_VERSION)/g" $(top_srcdir)/misc/macosx/Resources/Welcome.rtfd/TXT.rtf ; \
|
||||
fi
|
||||
@${SH} $(top_srcdir)/sh/make_pkg.sh "$(PACKAGE_NAME)" "$(BRLCAD_VERSION)" "$(DESTDIR)$(prefix)" "$(top_srcdir)/misc/macosx/Resources"
|
||||
|
||||
openUp:
|
||||
cd misc/macosx && $(MAKE) openUp
|
||||
|
||||
$(PACKAGE_NAME)_$(BRLCAD_VERSION).dmg: $(PACKAGE_NAME)_$(BRLCAD_VERSION).pkg openUp
|
||||
@echo "Building a Disk Image for Mac OS X"
|
||||
@echo
|
||||
@${SH} $(top_srcdir)/sh/make_dmg.sh "$(PACKAGE_NAME)" "$(BRLCAD_VERSION)" "$(top_srcdir)/misc/macosx/background.png"
|
||||
|
||||
# using home is probably not a great choice..
|
||||
$(PACKAGE_NAME)_$(BRLCAD_VERSION).rpm: $(PACKAGE)-$(BRLCAD_VERSION).tar.gz
|
||||
@echo "Building binary RPM for RedHat Linux"
|
||||
@echo
|
||||
@CP@ $(PACKAGE)-$(BRLCAD_VERSION).tar.gz ${HOME}/rpm/SOURCES/
|
||||
rpmbuild -ba $(top_builddir)/misc/brlcad.spec
|
||||
@CP@ ${HOME}/rpm/RPMS/i386/$(PACKAGE_NAME)_$(BRLCAD_VERSION)_*.i386.rpm .
|
||||
@touch $(PACKAGE_NAME)_$(BRLCAD_VERSION).rpm
|
||||
@echo "WARNING: Fake make placeholder created as $(PACKAGE_NAME)_$(BRLCAD_VERSION).rpm"
|
||||
@echo
|
||||
|
||||
# using home is probably not a great choice..
|
||||
# use PACKAGE instead of PACKAGE_NAME because it's a source release
|
||||
$(PACKAGE)-$(BRLCAD_VERSION).src.rpm: $(PACKAGE)-$(BRLCAD_VERSION).tar.gz
|
||||
@echo "Building source RPM for RedHat Linux"
|
||||
@CP@ $(PACKAGE)-$(BRLCAD_VERSION).tar.gz ${HOME}/rpm/SOURCES/
|
||||
rpmbuild -ba $(top_builddir)/misc/brlcad.spec
|
||||
@CP@ ${HOME}/rpm/SRPMS/$(PACKAGE)-$(BRLCAD_VERSION)-*.src.rpm .
|
||||
@touch $(PACKAGE)-$(BRLCAD_VERSION).src.rpm
|
||||
@echo "WARNING: Fake make placeholder created as $(PACKAGE)-$(BRLCAD_VERSION).src.rpm"
|
||||
@echo
|
||||
|
||||
$(PACKAGE_NAME)_$(BRLCAD_VERSION).deb:
|
||||
@echo "Building a package for Debian Linux"
|
||||
@echo
|
||||
@${SH} $(top_srcdir)/sh/make_deb.sh "$(PACKAGE_NAME)_$(BRLCAD_VERSION)"
|
||||
|
||||
$(PACKAGE_NAME)_$(BRLCAD_VERSION).zip:
|
||||
@if ! test -f "install.$(host_triplet).log" ; then \
|
||||
echo ; \
|
||||
echo "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" ; \
|
||||
echo " WARNING: It seems as though you might not have" ; \
|
||||
echo " installed BRL-CAD yet?" ; \
|
||||
echo ; \
|
||||
echo " You should run 'make install' before creating a" ; \
|
||||
echo " binary distribution package. Trying regardless." ; \
|
||||
echo "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" ; \
|
||||
echo ; \
|
||||
fi
|
||||
@echo "Building a zip-compressed file archive"
|
||||
@echo
|
||||
@${SH} $(top_srcdir)/sh/make_zip.sh "$(PACKAGE_NAME)_$(BRLCAD_VERSION)"
|
||||
@echo
|
||||
@echo "Built $(PACKAGE_NAME)_$(BRLCAD_VERSION).zip for $(host_triplet)"
|
||||
|
||||
$(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.gz: $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar
|
||||
@echo "Building a gzip-compressed tape archive"
|
||||
@echo
|
||||
@${SH} $(top_srcdir)/sh/make_tgz.sh "$(PACKAGE_NAME)_$(BRLCAD_VERSION)"
|
||||
@echo
|
||||
@echo "Built $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.gz for $(host_triplet)"
|
||||
|
||||
$(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.bz2: $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar
|
||||
@echo "Building a bzip2-compressed tape archive"
|
||||
@echo
|
||||
@${SH} $(top_srcdir)/sh/make_bz2.sh "$(PACKAGE_NAME)_$(BRLCAD_VERSION)"
|
||||
@echo
|
||||
@echo "Built $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.bz2 for $(host_triplet)"
|
||||
|
||||
$(PACKAGE_NAME)_$(BRLCAD_VERSION).tar:
|
||||
@if ! test -f "install.$(host_triplet).log" ; then \
|
||||
echo ; \
|
||||
echo "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" ; \
|
||||
echo " WARNING: It seems as though you might not have" ; \
|
||||
echo " installed BRL-CAD yet?" ; \
|
||||
echo ; \
|
||||
echo " You should run 'make install' before creating a" ; \
|
||||
echo " binary distribution package. Trying regardless." ; \
|
||||
echo "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" ; \
|
||||
echo ; \
|
||||
fi
|
||||
@echo "Building an uncompressed tape archive"
|
||||
@echo
|
||||
@${SH} $(top_srcdir)/sh/make_tar.sh "$(PACKAGE_NAME)" "$(BRLCAD_VERSION)" "$(DESTDIR)$(prefix)"
|
||||
@echo
|
||||
@echo "Built $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar for $(host_triplet)"
|
||||
|
||||
|
||||
#############
|
||||
# the rules #
|
||||
#############
|
||||
|
||||
.PHONY : clobber benchmark bench regression regress test pkg dmg rpm deb zip tgz tbz
|
||||
|
||||
clobber:
|
||||
@cd bench && $(MAKE) clobber
|
||||
|
||||
benchmark: all
|
||||
@cd bench && $(MAKE) run
|
||||
|
||||
bench: benchmark
|
||||
|
||||
regression: all
|
||||
@cd regress && $(MAKE) regression
|
||||
|
||||
dox : misc/Doxyfile misc/doxygen_structure
|
||||
doxygen $(top_srcdir)/misc/Doxyfile
|
||||
|
||||
regress: regression
|
||||
|
||||
test: regression
|
||||
|
||||
check: regression
|
||||
@TIMEFRAME=1 $(MAKE) benchmark
|
||||
|
||||
pkg: $(PACKAGE_NAME)_$(BRLCAD_VERSION).pkg
|
||||
@echo "Done."
|
||||
|
||||
dmg: pkg $(PACKAGE_NAME)_$(BRLCAD_VERSION).dmg
|
||||
@echo "Done."
|
||||
|
||||
rpm: $(PACKAGE_NAME)_$(BRLCAD_VERSION).rpm $(PACKAGE)-$(BRLCAD_VERSION).src.rpm
|
||||
@echo "Done."
|
||||
|
||||
deb: $(PACKAGE_NAME)_$(BRLCAD_VERSION).deb
|
||||
@echo "Done."
|
||||
|
||||
zip: $(PACKAGE_NAME)_$(BRLCAD_VERSION).zip
|
||||
@echo "Done."
|
||||
|
||||
tgz: $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.gz
|
||||
@echo "Done."
|
||||
|
||||
bz2: $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.bz2
|
||||
@echo "Done."
|
||||
|
||||
tar: $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar
|
||||
@echo "Done."
|
||||
|
||||
package:
|
||||
@echo
|
||||
@echo "To build a BRL-CAD package for distribution, there are various make"
|
||||
@echo "targets available for various platforms:"
|
||||
@echo
|
||||
@echo " make pkg - Builds an Installer package for Mac OS X"
|
||||
@echo " make dmg - Builds a Disk Image for Mac OS X"
|
||||
@echo " make rpm - Builds source and binary RPM for RedHat Linux"
|
||||
@echo " make deb - Builds a package for Debian Linux"
|
||||
@echo " make zip - Builds a zip-compressed file archive"
|
||||
@echo " make tgz - Builds a gzip-compressed tape archive"
|
||||
@echo " make bz2 - Builds a bzip2-compressed tape archive"
|
||||
@echo " make tar - Builds a uncompressed tape archive"
|
||||
@echo
|
||||
|
||||
# make sure all files are in the repository are also in the dist.
|
||||
# make sure files that should not be in the distribution in fact are
|
||||
# not included.
|
||||
dist-hook:
|
||||
files="`find . -name entries -exec grep 'name=' {} /dev/null \; | sed 's/:[[:space:]]*name=\"\(.*\)\"/\1/g' | sed 's/\/\.svn\/entries/\//g' | grep -v 'brlcad-' | grep -v '\/$$'`" ; \
|
||||
missing=0 ; \
|
||||
for file in $$files ; do \
|
||||
if test ! -e $(distdir)/$$file ; then \
|
||||
missing=1 ; \
|
||||
echo "MISSING FROM DIST: $$file" ; \
|
||||
fi ; \
|
||||
done ; \
|
||||
if test "x$$missing" = "x1" ; then \
|
||||
exit 1 ; \
|
||||
fi
|
||||
files="`find $(distdir)/src/tclscripts \( -name pkgIndex.tcl -o -name tclIndex \)`" ; \
|
||||
empty=`for file in $$files ; do found="\`grep -v '^#' $$file | perl -0777 -pi -e 's/^\n//g'\`" ; if test "x$$found" = "x" ; then echo $$file ; fi ; done | wc | awk '{print $$1}'` ; \
|
||||
if test $$empty -gt 9 ; then \
|
||||
echo "TOO MANY EMPTY PKGINDEX.TCL/TCLINDEX FILES" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
find $(distdir) -type f \( -name '.cvsignore' -or -name 'brlcad_config.h' \) -exec rm -f {} \;
|
||||
find $(distdir) -type d \( -name 'CVS' -or -name '.svn' \) -prune -exec rm -rf {} \;
|
||||
dir="`pwd`" ; cd $(top_srcdir) ; \
|
||||
${SH} sh/cmakecheck.sh ; \
|
||||
ret=$$? ; \
|
||||
if test "x$$ret" != "x0" ; then \
|
||||
echo "NEED TO SYNC CMAKELISTS.TXT" ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
cd "$$dir"
|
||||
|
||||
# don't complain about the benchmark 'summary', we don't want to delete it
|
||||
distcleancheck_listfiles = \
|
||||
find . -type f -not -name summary -print
|
||||
|
||||
|
||||
|
||||
##########################
|
||||
# summaries and warnings #
|
||||
##########################
|
||||
|
||||
# make sure a dangerous umask will not prevent others from using an
|
||||
# installed version by checking to make sure the exec mode is set.
|
||||
# We minimally check only the binary and prefix directories.
|
||||
install-data-local:
|
||||
@warn_umask=no ; \
|
||||
case `ls -ld $(DESTDIR)$(prefix)` in \
|
||||
d????????-*) warn_umask=yes ;; \
|
||||
d?????-???*) warn_umask=yes ;; \
|
||||
d??-??????*) warn_umask=yes ;; \
|
||||
esac ; \
|
||||
if test "x$$warn_umask" = "xno" ; then \
|
||||
case `ls -ld $(DESTDIR)$(bindir)` in \
|
||||
d????????-*) warn_umask=yes ;; \
|
||||
d?????-???*) warn_umask=yes ;; \
|
||||
d??-??????*) warn_umask=yes ;; \
|
||||
esac ; \
|
||||
fi ; \
|
||||
files="`find $(top_builddir)/src/tclscripts \( -name pkgIndex.tcl -o -name tclIndex \)`" ; \
|
||||
empty=`for file in $$files ; do found="\`grep -v '^#' $$file | perl -0777 -pi -e 's/^\n//g'\`" ; if test "x$$found" = "x" ; then echo $$file ; fi ; done | wc | awk '{print $$1}'` ; \
|
||||
if test $$empty -gt 9 ; then \
|
||||
echo ; \
|
||||
echo "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" ; \
|
||||
echo " WARNING: Too many of the pkgIndex.tcl and" ; \
|
||||
echo " tclIndex files are empty." ; \
|
||||
echo ; \
|
||||
echo " It is likely that the indices are not being" ; \
|
||||
echo " generated properly which will affect run-time" ; \
|
||||
echo " functionality. VERIFY THE FILES." ; \
|
||||
echo "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" ; \
|
||||
echo ; \
|
||||
fi ; \
|
||||
if test "x$$warn_umask" = "xyes" ; then \
|
||||
echo ; \
|
||||
echo "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" ; \
|
||||
echo " WARNING: There is no execute permission on the" ; \
|
||||
echo " install directory." ; \
|
||||
echo ; \
|
||||
echo " Consider running \"umask 022\" before installing" ; \
|
||||
echo " next time. You should be able to repair this"; \
|
||||
echo " installation's directory permissions with: " ; \
|
||||
echo ; \
|
||||
echo " find $(DESTDIR)$(prefix)/. -type d -exec chmod go+x {} \;" ; \
|
||||
if test -d "$(DESTDIR)$(bindir)" ; then \
|
||||
if test "x$(DESTDIR)$(exec_prefix)/bin" != "x$(DESTDIR)$(bindir)" ; then \
|
||||
echo " find $(DESTDIR)$(bindir)/. -type d -exec chmod go+x {} \;" ; \
|
||||
fi ; \
|
||||
fi ; \
|
||||
if test -d "$(DESTDIR)$(sbindir)" ; then \
|
||||
if test "x$(DESTDIR)$(exec_prefix)/sbin" != "x$(DESTDIR)$(sbindir)" ; then \
|
||||
echo " find $(DESTDIR)$(sbindir)/. -type d -exec chmod go+x {} \;" ; \
|
||||
fi ; \
|
||||
fi ; \
|
||||
if test -d "$(DESTDIR)$(libexecdir)" ; then \
|
||||
if test "x$(DESTDIR)$(exec_prefix)/libexec" != "x$(DESTDIR)$(libexecdir)" ; then \
|
||||
echo " find $(DESTDIR)$(libexecdir)/. -type d -exec chmod go+x {} \;" ; \
|
||||
fi ; \
|
||||
fi ; \
|
||||
if test -d "$(DESTDIR)$(datadir)" ; then \
|
||||
if test "x$(DESTDIR)$(prefix)/share" != "x$(DESTDIR)$(datadir)" ; then \
|
||||
echo " find $(DESTDIR)$(prefix)/. -type d -exec chmod go+x {} \;" ; \
|
||||
fi ; \
|
||||
fi ; \
|
||||
if test -d "$(DESTDIR)$(libdir)" ; then \
|
||||
if test "x$(DESTDIR)$(exec_prefix)/lib" != "x$(DESTDIR)$(libdir)" ; then \
|
||||
echo " find $(DESTDIR)$(libdir)/. -type d -exec chmod go+x {} \;" ; \
|
||||
fi ; \
|
||||
fi ; \
|
||||
if test -d "$(DESTDIR)$(mandir)" ; then \
|
||||
if test "x$(DESTDIR)$(prefix)/man" != "x$(DESTDIR)$(mandir)" ; then \
|
||||
echo " find $(DESTDIR)$(mandir)/. -type d -exec chmod go+x {} \;" ; \
|
||||
fi ; \
|
||||
fi ; \
|
||||
if test -d "$(DESTDIR)$(includedir)" ; then \
|
||||
if test "x$(DESTDIR)$(prefix)/include" != "x$(DESTDIR)$(includedir)" ; then \
|
||||
echo " find $(DESTDIR)$(includedir)/. -type d -exec chmod go+x {} \;" ; \
|
||||
fi ; \
|
||||
fi ; \
|
||||
echo ; \
|
||||
echo " Do not presume the find example is all that is" ; \
|
||||
echo " needed. VERIFY THE PERMISSIONS." ; \
|
||||
echo "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" ; \
|
||||
echo ; \
|
||||
fi ; \
|
||||
touch install.$(host_triplet).log ; \
|
||||
if test -w install.$(host_triplet).log ; then \
|
||||
LC_ALL=C ; \
|
||||
if test "x$USER" = "x" ; then \
|
||||
USER="unknown" ; \
|
||||
fi ; \
|
||||
echo "Installed BRL-CAD Release ${BRLCAD_VERSION} Build ${CONFIG_DATE} by ${USER} to $(DESTDIR)$(prefix) on `date`" >> install.$(host_triplet).log ; \
|
||||
chmod ugo+rw install.$(host_triplet).log ; \
|
||||
fi
|
||||
|
||||
|
||||
# Print out an informative summary. As just about everything seems to
|
||||
# end up calling the all-am hook, which in turns calls the all-local
|
||||
# hook. The initial target goal is used to print out a custom summary
|
||||
# message. If the make being used doesn't set the MAKECMDGOALS
|
||||
# variable, something generic is printed still. For a make install,
|
||||
# print out rule lines according to the size of the installation path
|
||||
# to emphasize the achievement.
|
||||
#
|
||||
all-local:
|
||||
@echo "Done."
|
||||
@echo
|
||||
@echo "BRL-CAD Release ${BRLCAD_VERSION}, Build ${CONFIG_DATE}"
|
||||
@echo
|
||||
@if test "x$(MAKECMDGOALS)" = "xall-am" -o "x$(.TARGETS)" = "xall-am" -o "x$(MAKECMDGOALS)" = "xfast" -o "x$(.TARGETS)" = "xfast" ; then \
|
||||
echo $(ECHO_N) "Elapsed compilation time: " ;\
|
||||
${SH} $(top_srcdir)/sh/elapsed.sh `cat $(top_builddir)/include/conf/TS` ;\
|
||||
echo $(ECHO_N) "Elapsed time since configuration: " ;\
|
||||
${SH} $(top_srcdir)/sh/elapsed.sh ${CONFIG_TS} ;\
|
||||
echo "---" ;\
|
||||
echo "Run 'make install' to begin installation into $(prefix)" ;\
|
||||
echo "Run 'make benchmark' to run the BRL-CAD Benchmark Suite" ;\
|
||||
elif test "x$(MAKECMDGOALS)" = "xinstall-am" -o "x$(.TARGETS)" = "xinstall-am" ; then \
|
||||
echo $(ECHO_N) "Elapsed installation time: " ;\
|
||||
${SH} $(top_srcdir)/sh/elapsed.sh `cat $(top_builddir)/include/conf/TS` ;\
|
||||
echo $(ECHO_N) "Elapsed time since configuration: " ;\
|
||||
${SH} $(top_srcdir)/sh/elapsed.sh ${CONFIG_TS} ;\
|
||||
echo "---" ;\
|
||||
echo "Run 'make test' to run the BRL-CAD Test Suite" ;\
|
||||
echo "Run 'make benchmark' to run the BRL-CAD Benchmark Suite" ;\
|
||||
echo ;\
|
||||
line1=" BRL-CAD ${BRLCAD_VERSION} is now installed into $(prefix)" ;\
|
||||
line2=" Be sure to add $(prefix)/bin to your PATH" ;\
|
||||
separator="`echo $$line1 | tr '[[:print:]]' '*'`" ;\
|
||||
echo "$${separator}****" ;\
|
||||
echo "$$line1" ;\
|
||||
echo "$$line2" ;\
|
||||
echo "$${separator}****" ;\
|
||||
elif test "x$(MAKECMDGOALS)" = "x" -a "x$(.TARGETS)" = "x" ; then \
|
||||
echo $(ECHO_N) "Elapsed time: " ;\
|
||||
${SH} $(top_srcdir)/sh/elapsed.sh `cat $(top_builddir)/include/conf/TS` ;\
|
||||
echo $(ECHO_N) "Elapsed time since configuration: " ;\
|
||||
${SH} $(top_srcdir)/sh/elapsed.sh ${CONFIG_TS} ;\
|
||||
echo "---" ;\
|
||||
echo "Run 'make benchmark' to run the BRL-CAD Benchmark Suite" ;\
|
||||
fi
|
||||
@echo
|
||||
|
||||
|
||||
include $(top_srcdir)/misc/Makefile.defs
|
||||
|
||||
# Local Variables:
|
||||
# mode: Makefile
|
||||
# tab-width: 8
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=8 tabstop=8
|
||||
@@ -1,14 +1,18 @@
|
||||
BRL-CAD
|
||||
Release 7.46.0
|
||||
http://brlcad.org/
|
||||
BRL-CAD
|
||||
Release 7.18.6
|
||||
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,10 +26,12 @@ TABLE OF CONTENTS
|
||||
Bug Reports/Feature Requests
|
||||
Distribution Details
|
||||
Background Information
|
||||
Future Events
|
||||
Getting Help
|
||||
|
||||
|
||||
GETTING STARTED
|
||||
---------------
|
||||
----------------
|
||||
|
||||
This README file exists only to provide you a brief roadmap to the
|
||||
contents of the BRL-CAD distribution.
|
||||
@@ -33,44 +39,66 @@ contents of the BRL-CAD distribution.
|
||||
Some platforms have additional platform-specific documentation that
|
||||
should be consulted after reading this file:
|
||||
|
||||
doc/README.MacOSX -- Apple Mac OS X
|
||||
doc/README.IRIX -- SGI IRIX and IRIX64
|
||||
doc/README.Linux -- Various Linux distributions
|
||||
doc/README.Windows -- Microsoft Windows
|
||||
doc/README.MacOSX -- Apple Mac OS X
|
||||
doc/README.Linux -- Various Linux distributions
|
||||
doc/README.* -- Other platforms, e.g., BSD, VAX
|
||||
|
||||
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
|
||||
See the INSTALL file for details on configuring, compiling, and
|
||||
installing BRL-CAD. In order to compile and install BRL-CAD from a
|
||||
source distribution, the following steps may be taken for a full
|
||||
default install:
|
||||
|
||||
Typically, the following steps should result in a successful install:
|
||||
|
||||
tar -xvzf brlcad-VERSION.tar.gz
|
||||
mkdir brlcad-VERSION/build
|
||||
cd brlcad-VERSION/build
|
||||
cmake .. -DBRLCAD_ENABLE_STRICT=OFF -DCMAKE_BUILD_TYPE=Release
|
||||
make -j4
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
|
||||
See the included INSTALL text file for explanation of the various
|
||||
cmake configuration options available for building BRL-CAD.
|
||||
If you do not have a configure script in your source tree (at the same
|
||||
level as this README file), you will need a relatively up-to-date
|
||||
version of the GNU Build System (autoconf, automake, & libtool)
|
||||
installed. The autogen.sh script will need to be run successfully in
|
||||
order to generate the configure script first:
|
||||
|
||||
sh autogen.sh
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
|
||||
There are various options available to both configure and make. Run
|
||||
"./configure --help" for a list of available configuration options.
|
||||
Users on multiprocessor systems will be able to speed up their builds
|
||||
by passing the -j option to make (e.g. make -j4, assuming GNU make).
|
||||
|
||||
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 was
|
||||
used as a --prefix during configure) in order for the BRL-CAD binaries
|
||||
to be in your path.
|
||||
|
||||
|
||||
BENCHMARK
|
||||
@@ -79,8 +107,7 @@ BENCHMARK
|
||||
After the build successfully completes, you will be able to verify
|
||||
basic functionality by running the BRL-CAD Benchmark. Running the
|
||||
benchmark suite is integrated into the build system such that any time
|
||||
after running CMake (in the cmake gui, configure and generate must both
|
||||
be performed) you may run:
|
||||
after configure, you may run:
|
||||
|
||||
make benchmark
|
||||
|
||||
@@ -97,38 +124,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 +238,45 @@ 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
|
||||
with portions licensed under the GPL, LGPL, GFDL, and BSD licenses.
|
||||
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 dependant 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 to 'devs@brlcad.org' or to any of the other contact means
|
||||
described above in the COMMUNICATIONS section of this document.
|
||||
|
||||
Best Wishes,
|
||||
The BRL-CAD Development Team
|
||||
|
||||
+286
@@ -0,0 +1,286 @@
|
||||
BRL-CAD
|
||||
Release 7.18.4
|
||||
http://brlcad.org/
|
||||
|
||||
BRL-CAD is a powerful cross-platform open source combinatorial
|
||||
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
|
||||
-----------------
|
||||
Introduction
|
||||
Table of Contents
|
||||
Getting Started
|
||||
Compile and Install
|
||||
Benchmark
|
||||
Communication
|
||||
Bug Reports/Feature Requests
|
||||
Distribution Details
|
||||
Background Information
|
||||
Future Events
|
||||
Getting Help
|
||||
|
||||
|
||||
GETTING STARTED
|
||||
----------------
|
||||
|
||||
This README file exists only to provide you a brief roadmap to the
|
||||
contents of the BRL-CAD distribution.
|
||||
|
||||
Some platforms have additional platform-specific documentation that
|
||||
should be consulted after reading this file:
|
||||
|
||||
doc/README.MacOSX -- Apple Mac OS X
|
||||
doc/README.IRIX -- SGI IRIX and IRIX64
|
||||
doc/README.Linux -- Various Linux distributions
|
||||
doc/README.Windows -- Microsoft Windows
|
||||
|
||||
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 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.
|
||||
|
||||
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
|
||||
-------------------
|
||||
|
||||
See the INSTALL file for details on configuring, compiling, and
|
||||
installing BRL-CAD. In order to compile and install BRL-CAD from a
|
||||
source distribution, the build tool CMake is required - see the
|
||||
website at http://www.cmake.org for source and binary installers.
|
||||
CMake is also available in many Linux and *BSD distributions.
|
||||
|
||||
Once CMake is installed, the following steps may be taken for a full
|
||||
default install (starting with a source tarball):
|
||||
|
||||
tar -xvzf brlcad-X.Y.Z.tar.gz
|
||||
mkdir brlcad-build
|
||||
cd brlcad-build
|
||||
cmake ../brlcad-X.Y.Z
|
||||
make
|
||||
make install
|
||||
|
||||
where "X.Y.Z" is the version number of BRL-CAD. If the graphical
|
||||
interface available from CMake is installed cmake-gui may be
|
||||
substituted for cmake above. This will bring up an interface
|
||||
displaying various configuration options available with CMake.
|
||||
These options may also be set directly via the command line, or
|
||||
a configure wrapper script may be substituted for cmake above to
|
||||
provide more autotools-line configuration options.
|
||||
|
||||
Users on multiprocessor systems will be able to speed up their builds
|
||||
by passing the -j option to make (e.g. make -j4, assuming GNU make).
|
||||
|
||||
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
|
||||
---------
|
||||
|
||||
After the build successfully completes, you will be able to verify
|
||||
basic functionality by running the BRL-CAD Benchmark. Running the
|
||||
benchmark suite is integrated into the build system such that any time
|
||||
after running CMake (in the cmake gui, configure and generate must both
|
||||
be performed) you may run:
|
||||
|
||||
make benchmark
|
||||
|
||||
If the build is successful, you will see "CORRECT" numbers and a
|
||||
performance summary at the end. The "vgr" line effectively shows you
|
||||
approximately how much faster your machine is to a VAX 11/780. After
|
||||
installing BRL-CAD, you may run the 'benchmark' tool as well to run
|
||||
the BRL-CAD Benchmark.
|
||||
|
||||
See the paper in doc/benchmark.tr for information on analyzing and
|
||||
comparing the results of the benchmark tests in more detail.
|
||||
|
||||
|
||||
COMMUNICATION
|
||||
-------------
|
||||
|
||||
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. See the posted archives to get a feel for the
|
||||
volume of list traffic for each list and to read/search past
|
||||
discussions.
|
||||
|
||||
On-line web forums are likewise available on the project site at
|
||||
http://sourceforge.net/forum/?group_id=105292
|
||||
|
||||
A variety of information on BRL-CAD is available via the
|
||||
World-Wide-Web. Papers, documentation, and the software repository
|
||||
may be found at:
|
||||
|
||||
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 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
|
||||
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 is freely available and distributed in both binary and source
|
||||
code form through the BRL-CAD project website on Sourceforge:
|
||||
|
||||
http://sf.net/projects/brlcad/
|
||||
|
||||
The package is similarly available via a Subversion repository. To
|
||||
obtain the latest, follow the directions for anonymous checkout at:
|
||||
|
||||
http://sourceforge.net/svn/?group_id=105292
|
||||
|
||||
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
|
||||
----------------------
|
||||
|
||||
BRL-CAD is the primary tri-service solid modeling CAD system used by
|
||||
the U.S. military to model weapons systems for vulnerability and
|
||||
lethality analyses. The solid modeling system is frequently used in a
|
||||
wide range of military and industrial application including in the
|
||||
design and analysis of vehicles, mechanical parts, and architecture.
|
||||
The package has also been used in radiation dose planning, medical
|
||||
visualization, computer graphics education, CSG concepts and modeling
|
||||
education, and system performance benchmark testing among other
|
||||
purposes.
|
||||
|
||||
Actively developed since 1979, BRL-CAD is a collection of more than
|
||||
400 tools, utilities, and applications comprising more than a million
|
||||
lines of source code. BRL-CAD supports a great variety of geometric
|
||||
representations including an extensive set of traditional CSG
|
||||
primitive implicit solids such as boxes, ellipsoids, cones, and tori,
|
||||
as well as explicit solids made from closed collections of Uniform
|
||||
B-Spline Surfaces, Non-Uniform Rational B-Spline (NURBS) surfaces,
|
||||
n-Manifold Geometry (NMG), and purely faceted mesh geometry. All
|
||||
geometric objects may be combined using boolean set-theoretic CSG
|
||||
operations including union, intersection, and difference.
|
||||
|
||||
BRL-CAD has been under active development for more than 20 years with
|
||||
a portability heritage that includes systems such as a DEC VAX-11/780
|
||||
running 4.3 BSD; DECStations running ULTRIX; Silicon Graphics 3030, 4D
|
||||
"IRIS", O2, Onyx, and Origin systems running various versions of IRIX;
|
||||
Sun Microsystems Sun-3 and Sun-4 Sparcs running SunOS; the Cray 1,
|
||||
Cray X-MP, Cray Y-MP, and Cray 2 running UNICOS; DEC Alpha AXP running
|
||||
OSF/1; Apple Macintosh II running A/UX; iPSC/860 Hypercube running
|
||||
NX/2; the Alliant FX/8, FX/80, and FX/2800; Gould/Encore SEL PowerNode
|
||||
6000/9000 and NP1; NeXT workstations; IBM RS/6000; HPPA 9000/700
|
||||
running HPUX; Ardent/Stardent; Encore Multi-Max; and much much more.
|
||||
BRL-CAD's extensive portability of course also includes a plethora of
|
||||
common desktop and server versions of BSD, IRIX, Solaris, Mac OS X,
|
||||
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 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
|
||||
with portions licensed under the GPL, LGPL, GFDL, and BSD licenses.
|
||||
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 dependant 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 to 'devs@brlcad.org' or to any of the other contact means
|
||||
described above in the COMMUNICATIONS section of this document.
|
||||
|
||||
Best Wishes,
|
||||
The BRL-CAD Development Team
|
||||
devs@brlcad.org
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
Remaining items:
|
||||
|
||||
17. fix wish build on windows - current output exe doesn't run
|
||||
|
||||
18. 64 bit Windows build - will need a few flags, at least in tcl/tk
|
||||
|
||||
19. See if you can auto-generate documentation for configure options by pulling
|
||||
doc properties from options not marked as advanced and generating a formatted
|
||||
text file
|
||||
|
||||
20. Update README, INSTALL, doc/*, etc.
|
||||
21. Unbreak Xcode generation (at least Tcl and almost certainly Tk, possibly others)
|
||||
|
||||
Done (to first order, all this needs testing)
|
||||
|
||||
1. Detect OpenGL properly on Apple - choose X11 vs Aqua, and get the ogl code working
|
||||
|
||||
3. Our tcl autopath function for adding paths to the package search list needs fixing - CMake breaks
|
||||
assumptions it was using.
|
||||
|
||||
4. Scrub the third party logic and clean up/simplify - try to get away from using BRLCAD_ variables
|
||||
when they aren't needed.
|
||||
|
||||
5. Break logic out of the toplevel into src and src/other dirs - among other things, we want to
|
||||
be able to cd in to src and type make to avoid the doc subdirectory.
|
||||
|
||||
9. Multiplatform testing. Specifically, find a Windows box and conditionalize everything which
|
||||
doesn't work out-of-box (lex/yacc and sh based logic are obvious, other probables)
|
||||
|
||||
11. Find out why make package from CPack isn't including much of anything, fix it.
|
||||
|
||||
10. Convert -D options that need spaces in args (mostly pathnames) to config.h header files - mostly
|
||||
this is an issue for Tcl/Tk and packages, but CMake->Visual C++ solutions doesn't tolerate the
|
||||
spaces.
|
||||
|
||||
15. Try and get archer working in the build directory - this is going to involve carefully studying
|
||||
what bu_brlcad_data and friends are up to, and what we need to have in place. Right now mged
|
||||
will crash if either a share dir is created in the build toplevel (empty data dir) or there
|
||||
is an installed BRL-CAD in the target install directory (not sure what the issue is there) but
|
||||
will run in isolation. Even a full copy of the installed share dir in the toplevel build causes
|
||||
a crash, and Archer can't find its files even with the full share dir present (?)
|
||||
|
||||
2. Do a diff of all the generated scripts using configure_file - make sure what autotools produces
|
||||
is what is being produced by CMake, and make sure no variable definitions in support of scripts
|
||||
are nuking variables used by CMake - (checked this and defined a few variables, but CMake's
|
||||
habit of using full paths mixes oddly with pkgconfig's standard output of -lm, -lpng, etc. -
|
||||
need to study this more later. Not entirely convinced our autotools setup is fully correct
|
||||
either - does anyone use this?)
|
||||
|
||||
8. Review and test binaries - get regression testing working, check mged and archer, etc. - regression
|
||||
works, mged and archer seem to work fairly well
|
||||
|
||||
7. Build flags - we supply a lot via several options in autotools - express that in CMake
|
||||
|
||||
|
||||
13. Enable any remaining things present in autotools but not CMake - RTGL and libpc come to mind. (got rtgl and libpc)
|
||||
|
||||
15. get tcl/tk build fixed on opensolaris, continue build (got tcl/tk building, but there are other issues with Sun Studio. Other issues don't look to be specific to CMake, though there may be a few hiding behind other errors.)
|
||||
|
||||
16. make the src/other build logic use the version numbers where needed
|
||||
|
||||
14. Apply lessons learned to the SCL build logic
|
||||
|
||||
18. look into doxygen build
|
||||
|
||||
6. Review the dist logic in the toplevel Makefile.am. Gonna have to study up on CPack and CTest -
|
||||
figure out the process for checking permissions, install results, etc. in order to provide
|
||||
the same robustness for CMake generated tarballs that we have for autotools.
|
||||
|
||||
21. Test combinations of options, look more closely at what benchmark and rtserver only
|
||||
intend to accomplish.
|
||||
|
||||
12. Try enabling the Aqua compile logic - it still won't work, but get the build logic to the point
|
||||
where the autotools logic is. - ** Work on this later - fair amount of work here and the Aqua situation
|
||||
is in flux generally to begin with. Not a priority **
|
||||
|
||||
|
||||
Executable
+1598
File diff suppressed because it is too large
Load Diff
+41
-99
@@ -1,106 +1,48 @@
|
||||
add_subdirectory(ref)
|
||||
|
||||
add_definitions(-DCONSOLE)
|
||||
|
||||
brlcad_addexec(pixcmp pixcmp.c libbu)
|
||||
brlcad_add_test(
|
||||
NAME bench_pixcmp_tolerance
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} "-DPIXCMP=$<TARGET_FILE:pixcmp>" "-DTEST_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
-P "${CMAKE_CURRENT_SOURCE_DIR}/pixcmp_test.cmake"
|
||||
)
|
||||
set(BARK_SOURCES benchmark.c compute.c run.c clean.c)
|
||||
brlcad_addexec(bark "${BARK_SOURCES}" "libbu;${M_LIBRARY}" 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"
|
||||
include_directories(
|
||||
${BRLCAD_BINARY_DIR}/include
|
||||
${BRLCAD_SOURCE_DIR}/include
|
||||
${TCL_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
cmakefiles(
|
||||
CMakeLists.txt
|
||||
pixcmp_test.cmake
|
||||
run.sh
|
||||
try.sh
|
||||
viewdiff.sh
|
||||
add_definitions(
|
||||
-DHAVE_CONFIG_H
|
||||
-DBRLCADBUILD
|
||||
)
|
||||
|
||||
if(SH_EXEC AND TARGET m35.g AND BUILD_TESTING)
|
||||
# CTest enabled short run of the benchmark suite
|
||||
brlcad_add_test(NAME benchmark COMMAND ${SH_EXEC} "$<TARGET_FILE_DIR:bark>/benchmark" run TIMEFRAME=1)
|
||||
set_tests_properties(benchmark PROPERTIES LABELS "Benchmark")
|
||||
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")
|
||||
if(TARGET check)
|
||||
add_dependencies(check benchmark-check)
|
||||
endif(TARGET check)
|
||||
IF(MSVC)
|
||||
add_definitions(
|
||||
-DCONSOLE
|
||||
-DBRLCAD_DLL
|
||||
)
|
||||
ENDIF(MSVC)
|
||||
|
||||
# Full run of the benchmark suite
|
||||
add_custom_target(
|
||||
benchmark
|
||||
COMMAND ${SH_EXEC} $<TARGET_FILE_DIR:bark>/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")
|
||||
BRLCAD_ADDEXEC(pixcmp pixcmp.c libbu)
|
||||
|
||||
# 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)
|
||||
configure_file(run.sh ${CMAKE_BINARY_DIR}/bin/benchmark COPYONLY)
|
||||
INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/bin/benchmark DESTINATION ${${CMAKE_PROJECT_NAME}_INSTALL_BIN_DIR})
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
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")
|
||||
|
||||
SET(bench_MANS
|
||||
benchmark.1
|
||||
pixcmp.1
|
||||
)
|
||||
ADD_MAN_PAGES(1 bench_MANS)
|
||||
CMAKEFILES(lgt.sh run.sh try.sh viewdiff.sh)
|
||||
|
||||
IF(SH_EXEC)
|
||||
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
|
||||
)
|
||||
ADD_DEPENDENCIES(benchmark bldg391.g m35.g moss.g sphflake.g star.g world.g)
|
||||
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)
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
|
||||
.PHONY : clean clobber run bench
|
||||
|
||||
bin_PROGRAMS = pixcmp
|
||||
pixcmp_SOURCES = pixcmp.c
|
||||
pixcmp_CFLAGS = ${TCL_CPPFLAGS}
|
||||
pixcmp_LDADD = ${BU}
|
||||
|
||||
dist_bin_SCRIPTS = \
|
||||
benchmark
|
||||
|
||||
man_MANS = \
|
||||
benchmark.1 \
|
||||
pixcmp.1
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(man_MANS) \
|
||||
${dist_bin_SCRIPTS} \
|
||||
lgt.sh \
|
||||
run.sh \
|
||||
try.sh \
|
||||
viewdiff.sh
|
||||
|
||||
benchmark: run.sh
|
||||
cp $(top_srcdir)/bench/run.sh benchmark
|
||||
|
||||
run: all
|
||||
@if test -r ${srcdir}/run.sh ; then \
|
||||
LD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_builddir)/src/other/tk/unix:$$LD_LIBRARY_PATH \
|
||||
DYLD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_buildir)/src/other/tk/unix:$$DYLD_LIBRARY_PATH \
|
||||
${SH} ${srcdir}/run.sh run ; \
|
||||
ret=$$? ; \
|
||||
if test "x$$ret" != "x0" ; then \
|
||||
echo "*** BENCHMARK TESTING FAILED ***" ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
fi
|
||||
@echo "---"
|
||||
@echo "Run 'make clean' in the bench directory to delete the log"
|
||||
@echo "and image files generated during the benchmark analysis."
|
||||
@echo
|
||||
|
||||
bench: run
|
||||
|
||||
clean:
|
||||
@${SH} ${srcdir}/run.sh clean
|
||||
|
||||
clobber:
|
||||
@${SH} ${srcdir}/run.sh clobber
|
||||
|
||||
CLEANFILES = \
|
||||
benchmark
|
||||
|
||||
DISTCLEANFILES = \
|
||||
*.log \
|
||||
*.pix
|
||||
|
||||
DEPS=src/rt db
|
||||
|
||||
include $(top_srcdir)/misc/Makefile.defs
|
||||
@@ -0,0 +1,227 @@
|
||||
.TH BENCHMARK 1 BRL-CAD
|
||||
.\" B E N C H M A R K . 1
|
||||
.\" BRL-CAD
|
||||
.\"
|
||||
.\" Copyright (c) 2006-2011 United States Government as represented by
|
||||
.\" the U.S. Army Research Laboratory.
|
||||
.\"
|
||||
.\" Redistribution and use in source (Docbook format) and 'compiled'
|
||||
.\" forms (PDF, PostScript, HTML, RTF, etc), with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\"
|
||||
.\" 1. Redistributions of source code (Docbook format) must retain the
|
||||
.\" above copyright notice, this list of conditions and the following
|
||||
.\" disclaimer.
|
||||
.\"
|
||||
.\" 2. Redistributions in compiled form (transformed to other DTDs,
|
||||
.\" converted to PDF, PostScript, HTML, RTF, and other formats) 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 documentation without specific prior
|
||||
.\" written permission.
|
||||
.\"
|
||||
.\" THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\".\".\"
|
||||
.SH NAME
|
||||
benchmark \- runs the BRL-CAD benchmark
|
||||
.SH SYNOPSIS
|
||||
.B [OPTION=value] benchmark [command] [OPTION=value] [RT_OPTIONS]
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
The benchmark suite will test the performance of a given system by
|
||||
iteratively rendering several well-known datasets into 512x512 images
|
||||
where performance metrics are documented and fairly well understood.
|
||||
The local machine performance is compared to the base system (called
|
||||
VGR) and a numeric "VGR" mulitplier of performance is computed. This
|
||||
number is a simplified metric from which one may qualitatively compare
|
||||
cpu and cache performance, versions of BRL-CAD, and different compiler
|
||||
characteristics.
|
||||
.PP
|
||||
Run without any arguments or variables set, the benchmark suite will
|
||||
run a series of tests where it renders several image frames. By
|
||||
default, the benchmark suite will attempt to calibrate the intensity
|
||||
of the test frames with the performance characteristics of the machine
|
||||
running the tests.
|
||||
.PP
|
||||
There are several \fBOPTION\fR environment variables that will modify
|
||||
how the BRL-CAD benchmark behaves so that it may be run in a
|
||||
stand-alone environment:
|
||||
.PP
|
||||
\&
|
||||
.B RT
|
||||
\- the ray-trace binary (e.g. ../src/rt/rt or /usr/brlcad/bin/rt)
|
||||
.br
|
||||
\&
|
||||
.B DB
|
||||
\- the directory containing the reference geometry (e.g. ../db)
|
||||
.br
|
||||
\&
|
||||
.B PIX
|
||||
\- the directory containing the reference images (e.g. ../pix)
|
||||
.br
|
||||
\&
|
||||
.B LOG
|
||||
\- the directory containing the reference logs (e.g. ../pix)
|
||||
.br
|
||||
\&
|
||||
.B CMP
|
||||
\- the name of a pixel comparison tool (e.g. ./pixcmp or cmp)
|
||||
.br
|
||||
\&
|
||||
.B ELP
|
||||
\- the name of an elapsed time tool (e.g. ../sh/elapsed.sh)
|
||||
.br
|
||||
\&
|
||||
.B TIMEFRAME
|
||||
\- minimum number of seconds each ray-trace frame should take
|
||||
.br
|
||||
\&
|
||||
.B MAXTIME
|
||||
\- maximum number of seconds to spend on any test
|
||||
.br
|
||||
\&
|
||||
.B DEVIATION
|
||||
\- minimum sufficient % deviation from the average
|
||||
.br
|
||||
\&
|
||||
.B AVERAGE
|
||||
\- how many frames to average together
|
||||
.br
|
||||
\&
|
||||
.B VERBOSE
|
||||
\- turn on extra debug output (set to yes)
|
||||
.br
|
||||
\&
|
||||
.B QUIET
|
||||
\- turn off all output (set to yes)
|
||||
.PP
|
||||
The \fITIMEFRAME\fR, \fIMAXTIME\fR, \fIDEVIATION\fR, and \fIAVERAGE\fR options control how the
|
||||
benchmark will proceed including how long it should take. Each
|
||||
individual benchmark run will consume at least a minimum \fITIMEFRAME\fR of
|
||||
wallclock time so that the results can stabilize. After consuming at
|
||||
least the minimum \fITIMEFRAME\fR, additional frames may be computed until
|
||||
the standard deviation from the last \fIAVERAGE\fR count of frames is below
|
||||
the specified \fIDEVIATION\fR. When a test is run and it completes in less
|
||||
than \fITIMEFRAME\fR, the raytrace is restarted using double the number of
|
||||
rays from the previous run. If the machine is fast enough, the
|
||||
benchmark may accelerate the number or rays being fired. These
|
||||
additional rays are hypersampled but without any jitter, so it is
|
||||
effectively performing a multiplier amount of work over the initial
|
||||
frame.
|
||||
.PP
|
||||
There are various \fBcommand\fRs that may be give to the BRL-CAD
|
||||
benchmark that cause it to peform various actions such as invoking the
|
||||
computation tests or filesystem clean-up:
|
||||
.PP
|
||||
\&
|
||||
.B clean
|
||||
\- remove the test-specific pix and log files
|
||||
.br
|
||||
\&
|
||||
.B clobber
|
||||
\- same as clean, also benchmark.log files and user is prompted
|
||||
.br
|
||||
\&
|
||||
.B help
|
||||
\- displays a brief usage statement
|
||||
.br
|
||||
\&
|
||||
.B instructions
|
||||
\- displays more detailed usage instructions
|
||||
.br
|
||||
\&
|
||||
.B quiet
|
||||
\- quell printing output (still logs)
|
||||
.br
|
||||
\&
|
||||
.B verbose
|
||||
\- remove the test-specific pix and log files
|
||||
.br
|
||||
\&
|
||||
.B clean
|
||||
\- remove the test-specific pix and log files
|
||||
.br
|
||||
\&
|
||||
.B run
|
||||
\- initiate the benchmark analysis
|
||||
.br
|
||||
.PP
|
||||
When the benchmark completes, output should be saved to several log
|
||||
files including a 'summary' file containing tabulated results, a
|
||||
'\*benchmark.log' file containing the output from a given run, and
|
||||
multiple log files for each test frame. Use the \fIclean\fR and
|
||||
\fIclobber\fR commands during execution to remove the files generated
|
||||
during the benchmark.
|
||||
.PP
|
||||
The \fIclean\fR command removes the test pix and log files. The
|
||||
\fIclobber\fR command removes those same files as well as any
|
||||
*benchmark.log files encountered, and prompting the user beforehand.
|
||||
The generated tabular \fIsummary\fR file will not be removed
|
||||
automatically regardless of invocation command. The \fIsummary\fR
|
||||
file must always be manually deleted.
|
||||
.SH "REPORTING RESULTS"
|
||||
.PP
|
||||
Plese send your BRL-CAD Benchmark results to the developers along with
|
||||
detailed system information to <devs@brlcad.org>. Include at least:
|
||||
.PP
|
||||
0) Compiler name and version (e.g. gcc --version)
|
||||
1) CPU configuration (e.g. cat /proc/cpuinfo or hinv or sysctl -a)
|
||||
2) Cache (data and/or instruction) details for L1/L2/L3 and system
|
||||
(e.g. cat /proc/cpuinfo or hinv or sysctl -a)
|
||||
3) All generated log files (i.e. *.log* after benchmark completes)
|
||||
4) Anything else you think might be relevant to performance
|
||||
.SH EXAMPLES
|
||||
.PP
|
||||
.B benchmark run
|
||||
.br
|
||||
default run of the suite, taking approximately 10 minutes
|
||||
.PP
|
||||
.B benchmark run TIMEFRAME=1
|
||||
.br
|
||||
quick test run for testing functionality and performance ballpark
|
||||
.PP
|
||||
.B benchmark run DEVIATION=1 TIMEFRAME=60 MAXTIME=600
|
||||
.br
|
||||
excessive analysis, attempt to stabilize within 1 percent deviation
|
||||
with each frame taking at least 60 seconds but no more than 10 minutes
|
||||
per test (the entire analysis will probably take 30 to 60 minutes)
|
||||
.B benchmark run QUIET=1 -P1
|
||||
.br
|
||||
perform a benchmark analysis only using one CPU and only logging
|
||||
results to a file
|
||||
.PP
|
||||
.B benchmark clean
|
||||
.br
|
||||
delete all of the log and pix image files generated during a
|
||||
benchmark analysis, leaving only the summary file and any
|
||||
*benchmark.log files
|
||||
.SH "SEE ALSO"
|
||||
brlcad(1), rt(1), pix-fb(1), librt(3), pix(5).
|
||||
.SH AUTHOR
|
||||
Christopher Sean Morrison
|
||||
.br
|
||||
Michael John Muuss
|
||||
.br
|
||||
Susan Muuss
|
||||
.SH COPYRIGHT
|
||||
This software is Copyright (c) 1988-2011 United States Government as
|
||||
represented by the U.S. Army Research Laboratory. All rights reserved.
|
||||
.SH "BUG REPORTS"
|
||||
Reports of bugs or problems should be submitted via electronic
|
||||
mail to <devs@brlcad.org>.
|
||||
@@ -1,953 +0,0 @@
|
||||
/* B E N C H M A R K . C
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2011-2026 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.
|
||||
*/
|
||||
/** @file benchmark.c
|
||||
*
|
||||
* This is the BRL-CAD Benchmark.
|
||||
*
|
||||
* The benchmark suite will test the performance of a system by
|
||||
* iteratively rendering several well-known datasets into 512x512
|
||||
* images where performance metrics are documented and fairly well
|
||||
* understood. The local machine's performance is compared to the
|
||||
* base system (called VGR) and a numeric "VGR" multiplier of
|
||||
* performance is computed. This number is a simplified metric from
|
||||
* which one may qualitatively compare cpu and cache performance,
|
||||
* versions of BRL-CAD, and different compiler characteristics.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
/* TODO - fall back on https://github.com/sandsmark/winuname for Windows? */
|
||||
#ifdef HAVE_SYS_UTSNAME_H
|
||||
# include <sys/utsname.h>
|
||||
#endif
|
||||
|
||||
#include "bio.h"
|
||||
|
||||
#include "bu.h"
|
||||
|
||||
|
||||
/* TODO: !!! probably will need variants of these */
|
||||
int bu_exec(const char *program, void *data, struct bu_vls *out, struct bu_vls *err) {if (!program || !out || !err || !data) return 1; return 0;}
|
||||
int bu_grep(const char *pattern, const char *input, int(*callback)(const char *line, void *data), void *data) {if (!pattern || !input || !data) return 1; if (!callback) bu_log("TODO: need default callback!!!\n"); return 0;}
|
||||
int bu_file_glob(const char *pattern, char **paths) {if (!pattern || !paths) return 1; return 0;}
|
||||
const char *format_elapsed(double elapsed) {if (elapsed > 0) return "0 1 2"; return "-0 -1 -2";}
|
||||
int perf(const struct bu_vls *vp, const char *items, const char *args[]) {if (!vp || !items || !args) return -1; return 0;}
|
||||
double calculate_vgr(const struct bu_vls *summary) {if (!summary) return -0.0; return 0.0;}
|
||||
extern int bench(const char *cmd);
|
||||
|
||||
|
||||
/**
|
||||
* this routine writes the provided argument(s) to a log file as well
|
||||
* as echoing them to stdout if we're not in quiet mode.
|
||||
*/
|
||||
static void
|
||||
record(const char *fmt, ...)
|
||||
{
|
||||
struct bu_vls str = BU_VLS_INIT_ZERO;
|
||||
va_list ap;
|
||||
|
||||
const char *LOGFILE = getenv("LOGFILE");
|
||||
const char *QUIET = getenv("QUIET");
|
||||
|
||||
if (!fmt) {
|
||||
return;
|
||||
}
|
||||
|
||||
va_start(ap, fmt);
|
||||
bu_vls_vprintf(&str, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
bu_vls_free(&str);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
display(const char *fmt, ...)
|
||||
{
|
||||
struct bu_vls str = BU_VLS_INIT_ZERO;
|
||||
va_list ap;
|
||||
|
||||
if (!fmt) {
|
||||
return;
|
||||
}
|
||||
|
||||
va_start(ap, fmt);
|
||||
bu_vls_vprintf(&str, fmt, ap);
|
||||
va_end(ap);
|
||||
bu_log("%s", bu_vls_cstr(&str));
|
||||
|
||||
bu_vls_free(&str);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
sink(const char *fmt, ...)
|
||||
{
|
||||
if (!fmt) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************
|
||||
* search for resources *
|
||||
************************/
|
||||
typedef enum {
|
||||
executable=0x1,
|
||||
file=0x2,
|
||||
directory=0x4,
|
||||
script=0x8
|
||||
} look_for_type_t;
|
||||
|
||||
#define TYPE2STR(_t) \
|
||||
((_t) == executable) ? "executable" : \
|
||||
((_t) == file) ? "file" : \
|
||||
((_t) == directory) ? "directory" : \
|
||||
((_t) == script) ? "script" : \
|
||||
"unknown"
|
||||
|
||||
static void
|
||||
look_for(void (*verbose)(const char *, ...), look_for_type_t type, const char *label, const char *var, const char*paths[])
|
||||
{
|
||||
char *val;
|
||||
|
||||
/* utility function to search for a certain filesystem object in a
|
||||
* list of paths.
|
||||
*/
|
||||
|
||||
if (!var || !paths) {
|
||||
return;
|
||||
}
|
||||
if (!verbose) {
|
||||
verbose = sink;
|
||||
}
|
||||
|
||||
verbose("Looking for %s\n", label);
|
||||
|
||||
/* get the value of the variable */
|
||||
val = getenv(var);
|
||||
|
||||
if (val && (strlen(val) > 0)) {
|
||||
if (label) {
|
||||
verbose("...using %s from %s variable setting\n", val, var);
|
||||
}
|
||||
} else {
|
||||
while (paths && *paths) {
|
||||
int failed=0;
|
||||
|
||||
switch (type) {
|
||||
default:
|
||||
case directory:
|
||||
/* should work without read bit */
|
||||
if (!bu_file_directory(*paths)) {
|
||||
failed=1;
|
||||
}
|
||||
/* fall through */
|
||||
case executable:
|
||||
case script:
|
||||
if (!bu_file_executable(*paths)) {
|
||||
failed=1;
|
||||
}
|
||||
break;
|
||||
case file:
|
||||
if (!bu_file_exists(*paths, NULL)) {
|
||||
failed=1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (!failed) {
|
||||
verbose("...found %s %s\n", TYPE2STR(type), *paths);
|
||||
bu_setenv(var, *paths, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
paths++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
set_if_unset(void (*echo)(const char *, ...), void (*verbose)(const char *, ...), const char *var, const char *val)
|
||||
{
|
||||
if (!var || !val) {
|
||||
return;
|
||||
}
|
||||
|
||||
const char *setval = getenv(var);
|
||||
|
||||
if (!echo) {
|
||||
echo = sink;
|
||||
}
|
||||
|
||||
if (!verbose) {
|
||||
verbose = sink;
|
||||
}
|
||||
|
||||
if (!setval || (strlen(setval) == 0)) {
|
||||
verbose("%s=\"%s\"\n", var, val);
|
||||
bu_setenv(var, val, 1);
|
||||
}
|
||||
|
||||
setval = getenv(var);
|
||||
echo("Using [%s] for %s\n", setval ? setval : "", var);
|
||||
}
|
||||
|
||||
|
||||
/* callback to bu_grep() */
|
||||
static int
|
||||
stashline(const char *line, void *data)
|
||||
{
|
||||
struct bu_vls *vls = (struct bu_vls *)data;
|
||||
|
||||
BU_CK_VLS(vls);
|
||||
|
||||
bu_vls_printf(vls, "%s\n", line);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int ac, char *av[])
|
||||
{
|
||||
int arg;
|
||||
struct bu_vls rtargs = BU_VLS_INIT_ZERO;
|
||||
struct bu_vls str = BU_VLS_INIT_ZERO;
|
||||
|
||||
const char *RT = NULL;
|
||||
const char *DB = NULL;
|
||||
const char *PIX = NULL;
|
||||
const char *LOG = NULL;
|
||||
const char *CMP = NULL;
|
||||
const char *ELP = NULL;
|
||||
|
||||
char root[MAXPATHLEN] = {0};
|
||||
char db[MAXPATHLEN] = {0};
|
||||
char pix[MAXPATHLEN] = {0};
|
||||
char thisp[MAXPATHLEN] = {0};
|
||||
char *argv[MAXPATHLEN] = {NULL};
|
||||
struct bu_vls vp = BU_VLS_INIT_ZERO;
|
||||
|
||||
long MAXTIME = 0;
|
||||
long TIMEFRAME = 0;
|
||||
|
||||
int64_t start = 0;
|
||||
int ret = 0;
|
||||
|
||||
void (*verbose_echo)(const char *, ...) = sink;
|
||||
void (*echo)(const char *, ...) = record;
|
||||
|
||||
bu_setprogname(av[0]);
|
||||
|
||||
/* process the argument list for commands */
|
||||
for (arg=1; arg<ac; arg++) {
|
||||
if (BU_STR_EQUAL(av[arg], "clean")) {
|
||||
bu_setenv("CLEAN", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "clobber")) {
|
||||
bu_setenv("CLEAN", "1", 1);
|
||||
bu_setenv("CLOBBER", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "h")) {
|
||||
bu_setenv("HELP", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "help")) {
|
||||
bu_setenv("HELP", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (bu_strncasecmp(av[arg], "instruct", 8)) {
|
||||
bu_setenv("INSTRUCTIONS", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "start")) {
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "quiet")) {
|
||||
bu_setenv("QUIET", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "verbose")) {
|
||||
bu_setenv("VERBOSE", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "run")) {
|
||||
bu_setenv("RUN", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (strchr(av[arg], '=')) {
|
||||
/* TODO: !!! make sure this still works */
|
||||
char *var = bu_strdup(av[arg]);
|
||||
char *val = strtok(var, "=");
|
||||
if (var && val) {
|
||||
bu_setenv(var, val, 1);
|
||||
}
|
||||
bu_free(var, "strdup av[arg]");
|
||||
continue;
|
||||
}
|
||||
bu_log("WARNING: Passing unknown option [%s] to RT\n", av[arg]);
|
||||
bu_vls_printf(&rtargs, " %s", av[arg]);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* handle help before main processing
|
||||
***/
|
||||
if (bu_str_true(getenv("HELP"))) {
|
||||
bu_log("Usage: %s [command(s)] [OPTION=value] [RT_OPTIONS]\n", av[0]);
|
||||
bu_log("\n");
|
||||
bu_log("Available commands:\n");
|
||||
bu_log(" clean\n");
|
||||
bu_log(" clobber\n");
|
||||
bu_log(" help (this is what you are reading right now)\n");
|
||||
bu_log(" instructions\n");
|
||||
bu_log(" quiet\n");
|
||||
bu_log(" verbose\n");
|
||||
bu_log(" run (this is probably what you want)\n");
|
||||
bu_log("\n");
|
||||
bu_log("Available options:\n");
|
||||
bu_log(" RT=/path/to/rt_binary (e.g., rt)\n");
|
||||
bu_log(" DB=/path/to/reference/geometry (e.g. ../db)\n");
|
||||
bu_log(" PIX=/path/to/reference/images (e.g., ../pix)\n");
|
||||
bu_log(" LOG=/path/to/reference/logs (e.g., ../pix)\n");
|
||||
bu_log(" CMP=/path/to/pixcmp_tool (e.g., pixcmp)\n");
|
||||
bu_log(" ELP=/path/to/time_tool (e.g., elapsed.sh)\n");
|
||||
bu_log(" TIMEFRAME=#seconds (default 32)\n");
|
||||
bu_log(" MAXTIME=#seconds (default 300)\n");
|
||||
bu_log(" DEVIATION=%%deviation (default 3)\n");
|
||||
bu_log(" AVERAGE=#frames (default 3)\n");
|
||||
bu_log("\n");
|
||||
bu_log("Available RT options:\n");
|
||||
bu_log(" -P# (e.g., -P1 to force single CPU)\n");
|
||||
bu_log(" See the 'rt' manpage for additional options\n");
|
||||
bu_log("\n");
|
||||
bu_log("The BRL-CAD Benchmark tests the overall performance of a system\n");
|
||||
bu_log("compared to a stable well-known baseline. The Benchmark calculates a\n");
|
||||
bu_log("figure-of-merit for this system that may be directly compared to other\n");
|
||||
bu_log("Benchmark runs on other system configurations.\n");
|
||||
bu_log("\n");
|
||||
bu_log("BRL-CAD is a powerful cross-platform open source solid modeling system.\n");
|
||||
bu_log("For more information about BRL-CAD, see http://brlcad.org\n");
|
||||
bu_log("\n");
|
||||
bu_log("Run '%s instructions' or see the manpage for additional information.\n", av[0]);
|
||||
bu_exit(1, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* handle instructions before main processing
|
||||
***/
|
||||
if (bu_str_true(getenv("INSTRUCTIONS"))) {
|
||||
bu_log("\n");
|
||||
bu_log("This program runs the BRL-CAD Benchmark. The benchmark suite will\n");
|
||||
bu_log("test the performance of a system by iteratively rendering several\n");
|
||||
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("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");
|
||||
bu_log("\n");
|
||||
bu_log("The suite is intended to be run from a source distribution of BRL-CAD\n");
|
||||
bu_log("after the package has been compiled either directly or via a make\n");
|
||||
bu_log("build system target. There are, however, several environment\n");
|
||||
bu_log("variables that will modify how the BRL-CAD benchmark behaves so that\n");
|
||||
bu_log("it may be run in a stand-alone environment:\n");
|
||||
bu_log("\n");
|
||||
bu_log(" RT - the rt binary (e.g. ../src/rt/rt or /usr/brlcad/bin/rt)\n");
|
||||
bu_log(" DB - the directory containing the reference geometry (e.g. ../db)\n");
|
||||
bu_log(" PIX - the directory containing the reference images (e.g. ../pix)\n");
|
||||
bu_log(" LOG - the directory containing the reference logs (e.g. ../pix)\n");
|
||||
bu_log(" CMP - the name of a pixcmp tool (e.g. ./pixcmp or cmp)\n");
|
||||
bu_log(" ELP - the name of an elapsed time tool (e.g. ../sh/elapsed.sh)\n");
|
||||
bu_log(" TIMEFRAME - the minimum number of seconds each trace needs to take\n");
|
||||
bu_log(" MAXTIME - the maximum number of seconds to spend on any test\n");
|
||||
bu_log(" DEVIATION - the minimum sufficient %% deviation from the average\n");
|
||||
bu_log(" AVERAGE - how many frames to average together\n");
|
||||
bu_log(" VERBOSE - turn on extra debug output for testing/development\n");
|
||||
bu_log(" QUIET - turn off all printing output (writes results to summary)\n");
|
||||
bu_log(" INSTRUCTIONS - display detailed instructions\n");
|
||||
bu_log(" RUN - start a benchmark analysis\n");
|
||||
bu_log("\n");
|
||||
bu_log("The TIMEFRAME, MAXTIME, DEVIATION, and AVERAGE options control how the\n");
|
||||
bu_log("benchmark will proceed including how long it should take. Each\n");
|
||||
bu_log("individual benchmark run will consume at least a minimum TIMEFRAME of\n");
|
||||
bu_log("wallclock time so that the results can stabilize. After consuming at\n");
|
||||
bu_log("least the minimum TIMEFRAME, additional frames may be computed until\n");
|
||||
bu_log("the standard deviation from the last AVERAGE count of frames is below\n");
|
||||
bu_log("the specified DEVIATION. When a test is run and it completes in less\n");
|
||||
bu_log("than TIMEFRAME, the raytrace is restarted using double the number of\n");
|
||||
bu_log("rays from the previous run. If the machine is fast enough, the\n");
|
||||
bu_log("benchmark may accelerate the number or rays being fired. These\n");
|
||||
bu_log("additional rays are hypersampled but without any jitter, so it's\n");
|
||||
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("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");
|
||||
bu_log(" 1) All generated log files (i.e. *.log* after benchmark completes)\n");
|
||||
bu_log(" 2) Anything else you think might be relevant to performance\n");
|
||||
bu_log("\n");
|
||||
bu_log("The manual page has even more information and specific usage examples.\n");
|
||||
bu_log("Run 'brlman benchmark'.\n");
|
||||
bu_log("\n");
|
||||
bu_exit(0, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* handle clean/clobber before main processing
|
||||
***/
|
||||
if (bu_str_true(getenv("CLEAN"))) {
|
||||
size_t i;
|
||||
size_t cnt;
|
||||
size_t num;
|
||||
char cwd[MAXPATHLEN] = {0};
|
||||
const char *tests[] = {"moss", "world", "star", "bldg391", "m35", "sphflake", NULL};
|
||||
char **paths = NULL;
|
||||
int printed = 0;
|
||||
|
||||
bu_log("\n");
|
||||
if (bu_str_true(getenv("CLOBBER"))) {
|
||||
bu_log("About to wipe out all benchmark images and log files in %s\n", bu_getcwd(cwd, MAXPATHLEN));
|
||||
bu_log("Send SIGINT (type ^C) within 5 seconds to abort\n");
|
||||
sleep(5);
|
||||
} else {
|
||||
bu_log("Deleting most benchmark images and log files in %s\n", bu_getcwd(cwd, MAXPATHLEN));
|
||||
bu_log("Running '%s clobber' will remove run logs.\n", av[0]);
|
||||
}
|
||||
bu_log("\n");
|
||||
|
||||
for (i=0; tests[i]; i++) {
|
||||
struct bu_vls pattern_str = BU_VLS_INIT_ZERO;
|
||||
char *pattern[5] = {NULL, NULL, NULL, NULL, NULL};
|
||||
size_t j;
|
||||
|
||||
/* rm -f $i.log $i.pix $i-[0-9]*.log $i-[0-9]*.pix */
|
||||
bu_vls_printf(&pattern_str, "%s.log %s.pix %s-[0-9]*.log %s-[0-9]*.pix", tests[i], tests[i], tests[i], tests[i]);
|
||||
bu_log("rm -f %s\n", bu_vls_cstr(&pattern_str));
|
||||
|
||||
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]);
|
||||
num--;
|
||||
}
|
||||
bu_argv_free(cnt, paths);
|
||||
paths = NULL;
|
||||
j--;
|
||||
}
|
||||
bu_vls_free(&pattern_str);
|
||||
}
|
||||
|
||||
if (bu_str_true(getenv("CLOBBER"))) {
|
||||
/* NEVER automatically delete the summary file, but go
|
||||
* ahead with the rest.
|
||||
*/
|
||||
|
||||
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]);
|
||||
}
|
||||
num--;
|
||||
}
|
||||
bu_argv_free(cnt, paths);
|
||||
paths = NULL;
|
||||
}
|
||||
|
||||
if (bu_file_exists("summary", NULL)) {
|
||||
if (!printed) {
|
||||
bu_log("\nThe following files must be removed manually:\n");
|
||||
printed=1;
|
||||
}
|
||||
bu_log("summary ");
|
||||
}
|
||||
num = bu_file_glob("benchmark-[0-9]*-run.log", paths);
|
||||
cnt = num;
|
||||
while (num > 0) {
|
||||
if (!printed) {
|
||||
bu_log("\nThe following files must be removed manually:\n");
|
||||
printed=1;
|
||||
}
|
||||
if (paths)
|
||||
bu_log("%s ", paths[num-1]);
|
||||
num--;
|
||||
}
|
||||
bu_argv_free(cnt, paths);
|
||||
paths = NULL;
|
||||
|
||||
if (printed) {
|
||||
bu_log("\n");
|
||||
}
|
||||
|
||||
if (bu_str_true(getenv("CLOBBER"))) {
|
||||
bu_log("\nBenchmark clobber complete.\n");
|
||||
} else {
|
||||
bu_log("\nBenchmark clean complete.\n");
|
||||
}
|
||||
bu_exit(0, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* B E G I N
|
||||
***/
|
||||
|
||||
if (bu_str_false(getenv("RUN"))) {
|
||||
bu_exit(1, "Type '%s help' for usage.\n", av[0]);
|
||||
}
|
||||
|
||||
/* where to write results */
|
||||
{
|
||||
int fd;
|
||||
const char *logfile;
|
||||
bu_vls_printf(&str, "run-%d-benchmark.log", bu_pid());
|
||||
logfile = bu_vls_addr(&str);
|
||||
bu_setenv("LOGFILE", logfile, 1);
|
||||
fd = open(logfile, O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR);
|
||||
if (fd < 0 || !bu_file_writable(logfile)) {
|
||||
if (!BU_STR_EQUAL(logfile, "/dev/null")) {
|
||||
bu_log("ERROR: Unable to log to %s\n", logfile);
|
||||
}
|
||||
/* FIXME: not valid logfile on windows, use 'nul' */
|
||||
bu_setenv("LOGFILE", "/dev/null", 1);
|
||||
}
|
||||
}
|
||||
|
||||
if (bu_str_true(getenv("QUIET"))) {
|
||||
if (bu_str_true(getenv("VERBOSE"))) {
|
||||
bu_log("Verbose output quelled by quiet option. Further output disabled.\n");
|
||||
}
|
||||
} else {
|
||||
if (bu_str_true(getenv("VERBOSE"))) {
|
||||
verbose_echo=display;
|
||||
bu_log("Verbose output enabled\n");
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
struct bu_vls v = BU_VLS_INIT_ZERO;
|
||||
char rfc2822[1024] = {0};
|
||||
const char *logfile = getenv("LOGFILE");
|
||||
#ifdef HAVE_SYS_UTSNAME_H
|
||||
struct utsname n;
|
||||
time_t t = time(NULL);
|
||||
strftime(rfc2822, sizeof(rfc2822), "%a, %d %b %Y %H:%M:%S %Z", localtime(&t));
|
||||
|
||||
if (uname(&n) == 0) {
|
||||
bu_vls_printf(&v, "%s %s %s %s %s", n.sysname, n.nodename, n.release, n.version, n.machine);
|
||||
} else {
|
||||
bu_vls_strcat(&v, "unknown");
|
||||
}
|
||||
#endif
|
||||
|
||||
echo("B R L - C A D B E N C H M A R K\n");
|
||||
echo("=================================\n");
|
||||
echo("Running %s on %s\n", av[0], rfc2822);
|
||||
echo("Logging output to %s\n", logfile ? logfile : "disabled");
|
||||
echo("%s\n\n", bu_vls_addr(&v));
|
||||
}
|
||||
|
||||
|
||||
bu_dir(root, MAXPATHLEN, BU_DIR_BIN, NULL);
|
||||
bu_dir(db, MAXPATHLEN, BU_DIR_DATA, "db", NULL);
|
||||
bu_dir(pix, MAXPATHLEN, BU_DIR_DATA, "pix" , NULL);
|
||||
bu_dir(thisp, MAXPATHLEN, BU_DIR_CURR, NULL);
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s/rt "
|
||||
"%s/rt "
|
||||
"./rt",
|
||||
root, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, executable, "the BRL-CAD raytracer", "RT", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s/moss.g "
|
||||
"%s/db/moss.g "
|
||||
"%s/../db/moss.g "
|
||||
"./db/moss.g "
|
||||
"./moss.g",
|
||||
db, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, file, "a benchmark geometry directory", "DB", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
if (getenv("DB") && !bu_file_directory(getenv("DB"))) {
|
||||
bu_setenv("DB", bu_path_dirname(getenv("DB")), 1);
|
||||
}
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s/moss.pix "
|
||||
"%s/pix/moss.pix "
|
||||
"%s/../pix/moss.pix "
|
||||
"%s/../../pix/moss.pix "
|
||||
"%s/../../../pix/moss.pix "
|
||||
"./pix/moss.pix "
|
||||
"./moss.pix",
|
||||
pix, thisp, thisp, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, file, "a benchmark reference image directory", "PIX", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
if (getenv("PIX") && !bu_file_directory(getenv("PIX"))) {
|
||||
bu_setenv("PIX", bu_path_dirname(getenv("PIX")), 1);
|
||||
}
|
||||
|
||||
const char *pix_env = getenv("PIX");
|
||||
bu_vls_printf(&vp,
|
||||
"%s "
|
||||
"%s "
|
||||
"%s/pix "
|
||||
"%s/../pix "
|
||||
"%s/../../pix "
|
||||
"%s/../../../pix "
|
||||
"./pix",
|
||||
pix_env ? pix_env : "", pix, thisp, thisp, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, directory, "a benchmark reference log directory", "LOG", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s/pixcmp "
|
||||
"%s/pixcmp "
|
||||
"%s/bench/pixcmp "
|
||||
"%s/../bench/pixcmp "
|
||||
"./pixcmp",
|
||||
root, thisp, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, executable, "a pixel comparison utility", "CMP", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
|
||||
/* FIXME: elapsed is no more */
|
||||
bu_vls_printf(&vp,
|
||||
"%s/elapsed.sh "
|
||||
"%s/elapsed.sh "
|
||||
"%s/sh/elapsed.sh "
|
||||
"%s/../sh/elapsed.sh "
|
||||
"%s/../../sh/elapsed.sh "
|
||||
"%s/../../../sh/elapsed.sh "
|
||||
"./elapsed.sh",
|
||||
root, thisp, thisp, thisp, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, script, "a time elapsed utility", "ELP", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
|
||||
/*********************
|
||||
* output parameters *
|
||||
*********************/
|
||||
|
||||
/* sanity check, output all the final settings together */
|
||||
RT = getenv("RT");
|
||||
if (RT && strlen(RT) > 0) {
|
||||
echo("Using [%s] for RT\n", RT);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD raytracer\n");
|
||||
}
|
||||
|
||||
DB = getenv("DB");
|
||||
if (DB && strlen(DB) > 0) {
|
||||
echo("Using [%s] for DB\n", DB);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD database directory\n");
|
||||
}
|
||||
|
||||
PIX = getenv("PIX");
|
||||
if (PIX && strlen(PIX) > 0) {
|
||||
echo("Using [%s] for PIX\n", PIX);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD reference images\n");
|
||||
}
|
||||
|
||||
LOG = getenv("LOG");
|
||||
if (LOG && strlen(LOG) > 0) {
|
||||
echo("Using [%s] for LOG\n", LOG);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD reference logs\n");
|
||||
}
|
||||
|
||||
CMP = getenv("CMP");
|
||||
if (CMP && strlen(CMP) > 0) {
|
||||
echo("Using [%s] for CMP\n", CMP);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD pixel comparison utility\n");
|
||||
}
|
||||
|
||||
ELP = getenv("ELP");
|
||||
if (ELP && strlen(ELP) > 0) {
|
||||
echo("Using [%s] for ELP\n", ELP);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD time elapsed script\n");
|
||||
}
|
||||
|
||||
/* determine the minimum time requirement in seconds for a single test run */
|
||||
set_if_unset(echo, verbose_echo, "TIMEFRAME", "32");
|
||||
|
||||
/* 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;
|
||||
if (MAXTIME < TIMEFRAME) {
|
||||
bu_exit(1, "ERROR: MAXTIME must be greater or equal to TIMEFRAME\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* maximum deviation percentage */
|
||||
set_if_unset(echo, verbose_echo, "DEVIATION", "3");
|
||||
|
||||
/* maximum number of iterations to average */
|
||||
set_if_unset(echo, verbose_echo, "AVERAGE", "3");
|
||||
|
||||
/* end of settings, separate the output */
|
||||
echo("\n");
|
||||
|
||||
|
||||
/**************************
|
||||
* output run-time status *
|
||||
**************************/
|
||||
|
||||
/* determine raytracer version */
|
||||
echo("RT reports the following version information:\n");
|
||||
{
|
||||
struct bu_vls rtout = BU_VLS_INIT_ZERO;
|
||||
struct bu_vls grep1 = BU_VLS_INIT_ZERO;
|
||||
struct bu_vls grep2 = BU_VLS_INIT_ZERO;
|
||||
|
||||
RT = getenv("RT");
|
||||
|
||||
bu_exec(RT, NULL, &rtout, &rtout);
|
||||
bu_grep("BRL-CAD", bu_vls_cstr(&rtout), stashline, (void *)&grep1);
|
||||
bu_grep("Release", bu_vls_cstr(&grep1), stashline, (void *)&grep2);
|
||||
if (bu_vls_strlen(&grep2) > 0) {
|
||||
echo("%s\n", bu_vls_addr(&grep2));
|
||||
} else {
|
||||
echo("Unknown\n\n");
|
||||
}
|
||||
|
||||
bu_vls_free(&grep2);
|
||||
bu_vls_free(&grep1);
|
||||
bu_vls_free(&rtout);
|
||||
}
|
||||
|
||||
/* let the user know about how long this might take */
|
||||
{
|
||||
struct bu_vls elapsed = BU_VLS_INIT_ZERO;
|
||||
double mintime = 6.0 * TIMEFRAME;
|
||||
double maxtime = 6.0 * MAXTIME;
|
||||
double estimate = 3.0 * mintime;
|
||||
|
||||
if (mintime < 1.0)
|
||||
mintime = 0; /* zero is okay */
|
||||
bu_vls_sprintf(&elapsed, "%s", format_elapsed(mintime));
|
||||
echo("Minimum run time is %s\n", bu_vls_cstr(&elapsed));
|
||||
|
||||
if (maxtime < 1.0)
|
||||
maxtime = 1.0; /* zero would be misleading */
|
||||
bu_vls_sprintf(&elapsed, "%s", format_elapsed(maxtime));
|
||||
echo("Maximum run time is %s\n", bu_vls_cstr(&elapsed));
|
||||
|
||||
if (estimate > maxtime)
|
||||
estimate = maxtime;
|
||||
|
||||
echo("Estimated time is %s\n", format_elapsed(estimate));
|
||||
}
|
||||
|
||||
/************************
|
||||
* Run the actual tests *
|
||||
************************/
|
||||
|
||||
start = bu_gettime();
|
||||
echo("Running the BRL-CAD Benchmark tests... please wait ...\n\n");
|
||||
|
||||
ret += bench("moss");
|
||||
ret += bench("world");
|
||||
ret += bench("star");
|
||||
ret += bench("bldg391");
|
||||
ret += bench("m35");
|
||||
ret += bench("sphflake");
|
||||
|
||||
echo("\n... Done.\n");
|
||||
echo("Total testing time elapsed: %.2lfs\n", format_elapsed(bu_gettime() - start));
|
||||
|
||||
if (ret != 0) {
|
||||
echo("\n");
|
||||
echo("THE BENCHMARK ANALYSIS DID NOT COMPLETE SUCCESSFULLY.\n");
|
||||
echo("\n");
|
||||
echo("A benchmark failure means this is not a viable install of BRL-CAD. This may be\n");
|
||||
echo("a new bug or (more likely) is a compilation configuration error. Ensure your\n");
|
||||
echo("compiler has strict aliasing disabled, compilation is optimized, and you have\n");
|
||||
echo("installed BRL-CAD (some platforms require this). If you still get a failure,\n");
|
||||
echo("please report your configuration information to benchmark@brlcad.org\n");
|
||||
echo("\n");
|
||||
echo("Output was saved to %s from %s\n", LOG, bu_dir(NULL, 0, BU_DIR_CURR, NULL));
|
||||
echo("Run '%s clean' to remove generated pix files.\n", av[0]);
|
||||
echo("Benchmark testing failed.\n");
|
||||
return 2;
|
||||
}
|
||||
|
||||
/******************************
|
||||
* compute and output results *
|
||||
******************************/
|
||||
{
|
||||
struct bu_vls performance = BU_VLS_INIT_ZERO;
|
||||
ret = perf(&performance, /*...!!!...*/"moss world star bldg391 m35 sphflake", (const char **)argv);
|
||||
|
||||
if (ret == 0) {
|
||||
/* !!! write performance to summary */
|
||||
}
|
||||
|
||||
echo("\n");
|
||||
echo("The following files have been generated and/or modified:\n");
|
||||
echo(" *.log ..... final log files for each individual raytrace test\n");
|
||||
echo(" *.pix ..... final pix image files for each individual raytrace test\n");
|
||||
echo(" *.log.* ... log files for previous frames and raytrace tests\n");
|
||||
echo(" *.pix.* ... pix image files for previous frames and raytrace tests\n");
|
||||
echo(" summary ... performance results summary, 2 lines per run\n");
|
||||
echo("\n");
|
||||
echo("Run '%s clean' to remove generated pix files.\n", av[0]);
|
||||
echo("\n");
|
||||
|
||||
echo("Summary:\n");
|
||||
echo("%s\n", bu_vls_cstr(&performance));
|
||||
|
||||
{
|
||||
double vgr = calculate_vgr(&performance);
|
||||
|
||||
if (vgr > 0.0) {
|
||||
echo("\n");
|
||||
echo("#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n");
|
||||
echo("Benchmark results indicate an approximate VGR performance metric of %ld\n", (long int)vgr);
|
||||
echo("Logarithmic VGR metric is %.2lf (natural logarithm is %.2lf)\n", log10(vgr), log(vgr));
|
||||
echo("#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n");
|
||||
echo("\n");
|
||||
echo("These numbers seem to indicate that this machine is approximately %ld times", (long int)vgr);
|
||||
echo("faster than the reference machine being used for comparison, a VAX 11/780\n");
|
||||
echo("running 4.3 BSD named VGR. These results are in fact approximately %.2lf", log10(vgr));
|
||||
echo("orders of magnitude faster than the reference.\n");
|
||||
echo("\n");
|
||||
|
||||
echo("Here are some other approximated VGR results for perspective:\n");
|
||||
echo(" 120 on a 200MHz R5000 running IRIX 6.5\n");
|
||||
echo(" 250 on a 500 MHz Pentium III running RedHat 7.1\n");
|
||||
echo(" 550 on a dual 450 MHz UltraSPARC II running SunOS 5.8\n");
|
||||
echo(" 1000 on a dual 500 MHz G4 PowerPC running Mac OS X 10.2\n");
|
||||
echo(" 1500 on a dual 1.66 GHz Athlon MP 2000+ running RedHat 7.3\n");
|
||||
echo(" 52000 on a 4x4 CPU 2.93 GHz Xeon running RHEL Server 5.4\n");
|
||||
echo(" 65000 on a 512 CPU 400 MHz R12000 Running IRIX 6.5\n");
|
||||
echo("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
/* TODO: !!! determine if this build is optimized or not */
|
||||
/* TODO: !!! determine if this build has run-time debugging */
|
||||
/* TODO: !!! determine if this build has compile-time debugging */
|
||||
}
|
||||
|
||||
/* if this was a valid benchmark run, encourage submission of results. */
|
||||
echo("You are encouraged to submit your benchmark results and system\n");
|
||||
echo("configuration information to benchmark@brlcad.org\n");
|
||||
echo(" ~~~~~~~~~~~~~~~~~~~~\n");
|
||||
|
||||
/* include information about the operating system and hardware in the log */
|
||||
echo("Including additional kernel and hardware information in the log.\n\n");
|
||||
|
||||
/* TODO: !!! print out system information via sysctl/prtdiag/prtconf/hinv/etc */
|
||||
bu_vls_free(&rtargs);
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s/../share/brlcad/*.*.*/doc/benchmark.tr "
|
||||
"%s/share/brlcad/*.*.*/doc/benchmark.tr "
|
||||
"%s/share/brlcad/doc/benchmark.tr "
|
||||
"%s/share/doc/benchmark.tr "
|
||||
"%s/doc/benchmark.tr "
|
||||
"%s/../doc/benchmark.tr "
|
||||
"./benchmark.tr",
|
||||
thisp, thisp, thisp, thisp, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
|
||||
look_for(NULL, file, "BENCHMARK_TR", "benchmark", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
|
||||
/* TODO: look for benchmark document here? */
|
||||
|
||||
echo("Output was saved to %s from %s\n", LOG, bu_dir(NULL, 0, BU_DIR_CURR, NULL));
|
||||
echo("Benchmark testing complete.\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* tab-width: 8
|
||||
* mode: C
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "stroustrup"
|
||||
* End:
|
||||
* ex: shiftwidth=4 tabstop=8
|
||||
*/
|
||||
@@ -1,96 +0,0 @@
|
||||
/* C L E A N . C
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2011-2026 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.
|
||||
*/
|
||||
/** @file clean.c
|
||||
*
|
||||
* utility functions to clean output files
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#include "bu/file.h"
|
||||
#include "bu/str.h"
|
||||
#include "bu/vls.h"
|
||||
|
||||
|
||||
/* TODO: !!! needed */
|
||||
//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);
|
||||
|
||||
|
||||
/**
|
||||
* conditionally removes or saves any .pix or .log files output.
|
||||
*/
|
||||
void
|
||||
clean_obstacles(const char *base_filename, int id)
|
||||
{
|
||||
struct bu_vls vp = BU_VLS_INIT_ZERO;
|
||||
struct bu_vls vpid = BU_VLS_INIT_ZERO;
|
||||
|
||||
if (BU_STR_EMPTY(base_filename))
|
||||
return;
|
||||
|
||||
/* look for an image file */
|
||||
bu_vls_printf(&vp, "%s.pix", base_filename);
|
||||
if (bu_file_exists(bu_vls_cstr(&vp), NULL)) {
|
||||
bu_vls_printf(&vpid, "%s-%d.pix", base_filename, 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));
|
||||
}
|
||||
|
||||
/* look for a log file */
|
||||
bu_vls_printf(&vp, "%s.log", base_filename);
|
||||
if (bu_file_exists(bu_vls_cstr(&vp), NULL)) {
|
||||
bu_vls_printf(&vpid, "%s-%d.log", base_filename, 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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* tab-width: 8
|
||||
* mode: C
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "stroustrup"
|
||||
* End:
|
||||
* ex: shiftwidth=4 tabstop=8
|
||||
*/
|
||||
@@ -1,96 +0,0 @@
|
||||
/* C O M P U T E . C
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2011-2026 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.
|
||||
*/
|
||||
/** @file compute.c
|
||||
*
|
||||
* run and computation functions
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
/**
|
||||
* average [..numbers..]
|
||||
*
|
||||
* computes the integer average for a set of given numbers
|
||||
*/
|
||||
double
|
||||
average(int ac, double av[])
|
||||
{
|
||||
double total = 0.0;
|
||||
|
||||
if (ac < 1)
|
||||
return -0.0;
|
||||
|
||||
while (ac-- > 0) {
|
||||
total += av[ac];
|
||||
}
|
||||
return total / ac;
|
||||
}
|
||||
|
||||
|
||||
double
|
||||
variance(int ac, double av[])
|
||||
{
|
||||
double avg;
|
||||
double err = 0.0;
|
||||
double num = ac;
|
||||
|
||||
if (ac < 1)
|
||||
return -0.0;
|
||||
else if (ac == 1)
|
||||
return 0.0;
|
||||
|
||||
avg = average(ac, av);
|
||||
|
||||
/* compute variance numerator for the population */
|
||||
while (ac-- > 0) {
|
||||
err += (av[ac] - avg) * (av[ac] - avg);
|
||||
}
|
||||
|
||||
/* return the sample variance */
|
||||
return err / (num - 1);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* tab-width: 8
|
||||
* mode: C
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "stroustrup"
|
||||
* End:
|
||||
* ex: shiftwidth=4 tabstop=8
|
||||
*/
|
||||
Executable
+198
@@ -0,0 +1,198 @@
|
||||
#!/bin/sh
|
||||
# L G T . S H
|
||||
# BRL-CAD
|
||||
#
|
||||
# Copyright (c) 2004-2011 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
|
||||
@@ -0,0 +1,99 @@
|
||||
.TH PIXCMP 1 BRL-CAD
|
||||
.\" P I X C M P . 1
|
||||
.\" BRL-CAD
|
||||
.\"
|
||||
.\" Copyright (c) 2005-2011 United States Government as represented by
|
||||
.\" the U.S. Army Research Laboratory.
|
||||
.\"
|
||||
.\" Redistribution and use in source (Docbook format) and 'compiled'
|
||||
.\" forms (PDF, PostScript, HTML, RTF, etc), with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\"
|
||||
.\" 1. Redistributions of source code (Docbook format) must retain the
|
||||
.\" above copyright notice, this list of conditions and the following
|
||||
.\" disclaimer.
|
||||
.\"
|
||||
.\" 2. Redistributions in compiled form (transformed to other DTDs,
|
||||
.\" converted to PDF, PostScript, HTML, RTF, and other formats) 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 documentation without specific prior
|
||||
.\" written permission.
|
||||
.\"
|
||||
.\" THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\".\".\"
|
||||
.SH NAME
|
||||
pixcmp \- compare two pix image files pixel by pixel
|
||||
.SH SYNOPSIS
|
||||
.B pixcmp
|
||||
.RB [\fIOPTIONS\fR]
|
||||
\fIFILE1\fR [\fIFILE2\fR [\fISKIP1\fR [\fISKIP2\fR]]]
|
||||
.SH DESCRIPTION
|
||||
.I pixcmp
|
||||
is a program to compare two BRL-CAD pix image files pixel by pixel. The following \fIOPTIONS\fR are available:
|
||||
.TP
|
||||
\fB\-l\fR
|
||||
Output pixel numbers, counting from 1, and values for all pixels that differ.
|
||||
.TP
|
||||
\fB\-b\fR
|
||||
Use bytes instead of pixels for both processing and output. With this option, the \fB-i\fR SKIP values should be specified as bytes instead of pixels.
|
||||
.TP
|
||||
\fB\-i\fR \fISKIP\fR
|
||||
Skip the first SKIP pixels of input (for FILE1 and FILE2).
|
||||
.TP
|
||||
\fB\-i\fR \fISKIP1\fR:\fISKIP2\fR
|
||||
Skip the first SKIP1 pixels of FILE1 and the first SKIP2 pixels of FILE2.
|
||||
.TP
|
||||
\fB\-s\fR
|
||||
Silent output. Only return an exit status.
|
||||
.PP
|
||||
SKIP1 and SKIP2 are the number of pixels to skip in each file.
|
||||
.PP
|
||||
If FILE is \`\fB\-\fR\' or missing,
|
||||
.I pixcmp
|
||||
reads from the standard input.
|
||||
.SH RETURN VALUES
|
||||
.PP
|
||||
The
|
||||
.I pixcmp
|
||||
utility returns \fB0\fR if there are no differences, \fB1\fR if there are only off-by-one differences, \fB2\fR if there are off-by-many errors, \fB126\fR if there are file processing problems, and \fB127\fR if there are argument processing or usage errors.
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
\fBpixcmp -l file1 file2\fR
|
||||
.br
|
||||
The two files are compared pixel by pixel with each difference printed instead of just the summary.
|
||||
.TP
|
||||
\fBpixdiff file1.pix file2.pix | pixcmp - file3.pix\fR
|
||||
.br
|
||||
The
|
||||
.I pixdiff
|
||||
tool compares the pixels in file1.pix with those in file2.pix and then outputs a resulting \`diff\' image which is then processed by
|
||||
.I pixcmp
|
||||
as input and compared against file3.pix, reporting on the differences.
|
||||
.SH SEE ALSO
|
||||
brlcad(1), pixdiff(1), pix(5), bw(5)
|
||||
.SH AUTHOR
|
||||
Christopher Sean Morrison
|
||||
.br
|
||||
Charles M. Kennedy
|
||||
.br
|
||||
Michael John Muuss
|
||||
.SH "BUG REPORTS"
|
||||
Reports of bugs or problems should be submitted via electronic
|
||||
mail to <devs@brlcad.org>.
|
||||
+122
-305
@@ -1,7 +1,7 @@
|
||||
/* P I X C M P . C
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2004-2026 United States Government as represented by
|
||||
* Copyright (c) 2004-2011 United States Government as represented by
|
||||
* the U.S. Army Research Laboratory.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -31,85 +31,52 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#ifdef HAVE_SYS_STAT_H
|
||||
# include <sys/stat.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#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 "bu.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include "bu/app.h"
|
||||
#include "bu/getopt.h"
|
||||
#include "bu/log.h"
|
||||
#include "bu/file.h"
|
||||
#include "bu/str.h"
|
||||
|
||||
/* exit codes for argument processing errors */
|
||||
#define OPTS_ERROR 127
|
||||
#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, long *skip1, long *skip2)
|
||||
{
|
||||
const char *endptr = arg;
|
||||
long val;
|
||||
|
||||
if ((arg == NULL) || ((skip1 == NULL) && (skip2 == NULL))) {
|
||||
/* nothing to do */
|
||||
return;
|
||||
@@ -121,28 +88,24 @@ 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) {
|
||||
if (skip1) {
|
||||
*skip1 = *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,114 +113,43 @@ 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;
|
||||
} 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;
|
||||
} else {
|
||||
/* at least this */
|
||||
result = OFF_BY_ONE;
|
||||
|
||||
/* but maybe more */
|
||||
if (r1 != r2) {
|
||||
if ((r1 > r2 ? r1 - r2 : r2 - r1) > 1) {
|
||||
result = OFF_BY_MANY;
|
||||
}
|
||||
}
|
||||
if (g1 != g2) {
|
||||
if ((g1 > g2 ? g1 - g2 : g2 - g1) > 1) {
|
||||
result = OFF_BY_MANY;
|
||||
}
|
||||
}
|
||||
if (b1 != b2) {
|
||||
if ((b1 > b2 ? b1 - b2 : b2 - b1) > 1) {
|
||||
result = OFF_BY_MANY;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (result == OFF_BY_ONE) {
|
||||
(*off1)++;
|
||||
} else if (result == OFF_BY_MANY) {
|
||||
(*offmany)++;
|
||||
} else if (result == MATCHING) {
|
||||
(*matching)++;
|
||||
} else {
|
||||
(*missing)++;
|
||||
}
|
||||
|
||||
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));
|
||||
|
||||
size_t matching = 0;
|
||||
size_t off1 = 0;
|
||||
size_t offmany = 0;
|
||||
size_t missing = 0;
|
||||
long matching = 0;
|
||||
long off1 = 0;
|
||||
long offmany = 0;
|
||||
|
||||
int c;
|
||||
int list_diff = 0;
|
||||
int list_same = 0;
|
||||
int list_pixel_values = 0;
|
||||
int print_bytes = 0;
|
||||
int quiet = 0;
|
||||
int silent = 0;
|
||||
long f1_skip = 0;
|
||||
long f2_skip = 0;
|
||||
|
||||
size_t bytes = 0;
|
||||
size_t f1_skip = 0;
|
||||
size_t f2_skip = 0;
|
||||
size_t stop_after = 0;
|
||||
|
||||
bu_setprogname(argv[0]);
|
||||
long int bytes = 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);
|
||||
}
|
||||
}
|
||||
@@ -267,17 +159,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);
|
||||
}
|
||||
|
||||
@@ -289,25 +181,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;
|
||||
@@ -315,7 +192,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) {
|
||||
@@ -323,165 +199,101 @@ main(int argc, char *argv[])
|
||||
exit(FILE_ERROR);
|
||||
}
|
||||
|
||||
setmode(fileno(stdin), O_BINARY);
|
||||
/* we're writing out ascii */
|
||||
/* setmode(fileno(stdout), O_BINARY); */
|
||||
|
||||
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 (!print_bytes) {
|
||||
f1_skip *= 3;
|
||||
f2_skip *= 3;
|
||||
}
|
||||
|
||||
errno = 0;
|
||||
if (fstat(fileno(f1), &sf1)) {
|
||||
bu_log("Warning - f1 fstat failed: %s\n", strerror(errno));
|
||||
}
|
||||
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 %ld %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 %ld %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: %8ld matching, %8ld off by 1, %8ld off by many\n",
|
||||
print_bytes?"bytes":"pixels",
|
||||
matching, off1, offmany);
|
||||
}
|
||||
|
||||
/* check for errors */
|
||||
@@ -490,16 +302,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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
# Exercise pixcmp's pixel tolerance and exit-status contract with small,
|
||||
# deliberately readable byte streams.
|
||||
|
||||
if(NOT PIXCMP OR NOT TEST_DIR)
|
||||
message(FATAL_ERROR "PIXCMP and TEST_DIR are required")
|
||||
endif()
|
||||
|
||||
function(check_pixcmp name input1 input2 expected_status expected_summary)
|
||||
set(file1 "${TEST_DIR}/pixcmp_${name}_1.pix")
|
||||
set(file2 "${TEST_DIR}/pixcmp_${name}_2.pix")
|
||||
|
||||
file(WRITE "${file1}" "${input1}")
|
||||
file(WRITE "${file2}" "${input2}")
|
||||
|
||||
execute_process(
|
||||
COMMAND "${PIXCMP}" ${ARGN} "${file1}" "${file2}"
|
||||
OUTPUT_VARIABLE output
|
||||
ERROR_VARIABLE errors
|
||||
RESULT_VARIABLE status
|
||||
)
|
||||
|
||||
file(REMOVE "${file1}" "${file2}")
|
||||
|
||||
if(NOT "${status}" STREQUAL "${expected_status}")
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"${name}: pixcmp returned ${status}, expected ${expected_status}\nstdout: ${output}\nstderr: ${errors}"
|
||||
)
|
||||
endif()
|
||||
|
||||
string(REGEX REPLACE "[ \t\r\n]+" " " normalized_output "${output}")
|
||||
string(STRIP "${normalized_output}" normalized_output)
|
||||
string(FIND "${normalized_output}" "${expected_summary}" summary_position)
|
||||
if(summary_position EQUAL -1)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"${name}: expected summary '${expected_summary}'\nactual stdout: ${output}\nstderr: ${errors}"
|
||||
)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
set(exact_pixel "pixcmp pixels: 1 matching, 0 off by 1, 0 off by many")
|
||||
set(tolerated_pixel "pixcmp pixels: 0 matching, 1 off by 1, 0 off by many")
|
||||
set(rejected_pixel "pixcmp pixels: 0 matching, 0 off by 1, 1 off by many")
|
||||
|
||||
check_pixcmp(exact "ABC" "ABC" 0 "${exact_pixel}")
|
||||
check_pixcmp(one_channel_within_tolerance "ABC" "BBC" 1 "${tolerated_pixel}")
|
||||
check_pixcmp(two_channels_within_tolerance "ABC" "BCC" 1 "${tolerated_pixel}")
|
||||
check_pixcmp(three_channels_within_tolerance "ABC" "@CB" 1 "${tolerated_pixel}")
|
||||
|
||||
# Keep the tolerated channel first in two cases to catch short-circuiting that
|
||||
# would fail to inspect a later channel outside the tolerance.
|
||||
check_pixcmp(red_outside_tolerance "ABC" "CCD" 2 "${rejected_pixel}")
|
||||
check_pixcmp(green_outside_tolerance "ABC" "BDD" 2 "${rejected_pixel}")
|
||||
check_pixcmp(blue_outside_tolerance "ABC" "BCE" 2 "${rejected_pixel}")
|
||||
|
||||
check_pixcmp(
|
||||
missing_pixel
|
||||
"ABC"
|
||||
"ABCDEF"
|
||||
2
|
||||
"pixcmp pixels: 1 matching, 0 off by 1, 0 off by many, 1 missing"
|
||||
)
|
||||
|
||||
check_pixcmp(
|
||||
byte_within_tolerance
|
||||
"A"
|
||||
"B"
|
||||
1
|
||||
"pixcmp bytes: 0 matching, 1 off by 1, 0 off by many"
|
||||
-b
|
||||
)
|
||||
check_pixcmp(
|
||||
byte_outside_tolerance
|
||||
"A"
|
||||
"C"
|
||||
2
|
||||
"pixcmp bytes: 0 matching, 0 off by 1, 1 off by many"
|
||||
-b
|
||||
)
|
||||
@@ -1,33 +0,0 @@
|
||||
set(
|
||||
BENCHMARK_PIX
|
||||
bldg391.pix
|
||||
m35.pix
|
||||
moss.pix
|
||||
sphflake.pix
|
||||
star.pix
|
||||
world.pix
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
cmakefiles(${BENCHMARK_PIX})
|
||||
cmakefiles(${PIX_LOG})
|
||||
cmakefiles(CMakeLists.txt)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
-114
@@ -1,114 +0,0 @@
|
||||
/* R U N . C
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2011-2026 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.
|
||||
*/
|
||||
/** @file run.c
|
||||
*
|
||||
* run functions
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "bu.h"
|
||||
|
||||
|
||||
/* TODO: !!! obviously */
|
||||
struct bu_vls bu_argv_to_string(int ac, const char *av[]) {struct bu_vls v = BU_VLS_INIT_ZERO; if (ac) {bu_vls_printf(&v, "%s", av[0]);} return v;}
|
||||
int (*echo)(const char *, ...) = &bu_log;
|
||||
extern int bu_exec(const char *program, void *data, struct bu_vls *out, struct bu_vls *err);
|
||||
|
||||
|
||||
/**
|
||||
* run file_prefix geometry hypersample [..rt args..]
|
||||
* runs a single benchmark test assuming the following are preset:
|
||||
*
|
||||
* RT := path/name of the raytracer to use
|
||||
* DB := path to the geometry file
|
||||
*
|
||||
* it is assumed that stdin will be the view/frame input
|
||||
*/
|
||||
int
|
||||
run(int ac, char *av[])
|
||||
{
|
||||
int retval;
|
||||
const char *run_geomname = av[0];
|
||||
const char *run_geometry = av[1];
|
||||
long int hypersample = strtod(av[2], NULL);
|
||||
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);
|
||||
}
|
||||
|
||||
/* pipe(stdin_for_bu_exec); */
|
||||
retval = bu_exec("program", NULL, NULL, NULL);
|
||||
echo("DEBUG: Running %s returned %d\n", av[0], retval);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* runs a series of benchmark tests assuming the following are preset:
|
||||
*
|
||||
* TIMEFRAME := maximum amount of wallclock time to spend per test
|
||||
*
|
||||
* is is assumed that stdin will be the view/frame input
|
||||
*/
|
||||
int
|
||||
bench(const char *test_name)
|
||||
{
|
||||
if (!test_name)
|
||||
return -1;
|
||||
|
||||
/* FIXME: !!! lots missing here */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* tab-width: 8
|
||||
* mode: C
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "stroustrup"
|
||||
* End:
|
||||
* ex: shiftwidth=4 tabstop=8
|
||||
*/
|
||||
+176
-305
@@ -2,7 +2,7 @@
|
||||
# R U N . S H
|
||||
# BRL-CAD
|
||||
#
|
||||
# Copyright (c) 2004-2026 United States Government as represented by
|
||||
# Copyright (c) 2004-2011 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
@@ -51,9 +51,9 @@
|
||||
export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
|
||||
|
||||
# save the precious args
|
||||
ARGS="$@"
|
||||
NAME_OF_THIS="`basename \"$0\"`"
|
||||
PATH_TO_THIS="`dirname \"$0\"`"
|
||||
ARGS="$*"
|
||||
NAME_OF_THIS=`basename $0`
|
||||
PATH_TO_THIS=`dirname $0`
|
||||
THIS="$PATH_TO_THIS/$NAME_OF_THIS"
|
||||
|
||||
# sanity check
|
||||
@@ -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 #
|
||||
@@ -170,59 +159,66 @@ booleanize ( ) {
|
||||
}
|
||||
|
||||
|
||||
# any unrecognized args are assumed to be RT args (e.g., -P4)
|
||||
RTARGS=""
|
||||
|
||||
# process the argument list for commands
|
||||
while test $# -gt 0 ; do
|
||||
|
||||
arg="$1"
|
||||
shift
|
||||
|
||||
NEWARGS=""
|
||||
for arg in $ARGS ; do
|
||||
case "x$arg" in
|
||||
x*[cC][lL][eE][aA][nN])
|
||||
CLEAN=1
|
||||
shift
|
||||
;;
|
||||
x*[cC][lL][oO][bB][bB][eE][rR])
|
||||
CLEAN=1
|
||||
CLOBBER=1
|
||||
shift
|
||||
;;
|
||||
x*[hH])
|
||||
HELP=1
|
||||
shift
|
||||
;;
|
||||
x*[hH][eE][lL][pP])
|
||||
HELP=1
|
||||
shift
|
||||
;;
|
||||
x*[iI][nN][sS][tT][rR][uU][cC][tT]*)
|
||||
INSTRUCTIONS=1
|
||||
shift
|
||||
;;
|
||||
x*[sS][tT][aA][rR][tT])
|
||||
shift
|
||||
;;
|
||||
x*[qQ][uU][iI][eE][tT])
|
||||
QUIET=1
|
||||
shift
|
||||
;;
|
||||
x*[vV][eE][rR][bB][oO][sS][eE])
|
||||
VERBOSE=1
|
||||
shift
|
||||
;;
|
||||
x*[rR][uU][nN])
|
||||
RUN=1
|
||||
shift
|
||||
;;
|
||||
x*=*)
|
||||
VAR=`echo $arg | sed 's/=.*//g'`
|
||||
if test ! "x$VAR" = "x" ; then
|
||||
VAL=`echo $arg | sed 's/.*=//g'`
|
||||
CMD="$VAR=\"$VAL\""
|
||||
CMD="$VAR=$VAL"
|
||||
eval $CMD
|
||||
export $VAR
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
x*)
|
||||
echo "WARNING: Passing unknown option [$arg] to RT"
|
||||
RTARGS="$RTARGS $arg"
|
||||
echo "WARNING: Passing unknown option [$1] to RT"
|
||||
NEWARGS="$NEWARGS $arg"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# reload post-shifting
|
||||
ARGS="$NEWARGS"
|
||||
|
||||
# validate and clean up options (all default to 0)
|
||||
booleanize CLOBBER HELP INSTRUCTIONS QUIET VERBOSE RUN
|
||||
|
||||
@@ -245,14 +241,14 @@ if test "x$HELP" = "x1" ; then
|
||||
echo "Available options:"
|
||||
echo " RT=/path/to/rt_binary (e.g., rt)"
|
||||
echo " DB=/path/to/reference/geometry (e.g. ../db)"
|
||||
echo " PIX=/path/to/reference/images (e.g., ./ref)"
|
||||
echo " LOG=/path/to/reference/logs (e.g., ./ref)"
|
||||
echo " PIX=/path/to/reference/images (e.g., ../pix)"
|
||||
echo " LOG=/path/to/reference/logs (e.g., ../pix)"
|
||||
echo " CMP=/path/to/pixcmp_tool (e.g., pixcmp)"
|
||||
echo " ELP=/path/to/time_tool (e.g., elapsed.sh)"
|
||||
echo " TIMEFRAME=#seconds (default 32)"
|
||||
echo " MAXTIME=#seconds (default 300)"
|
||||
echo " DEVIATION=%deviation (default 2)"
|
||||
echo " AVERAGE=#frames (default 5)"
|
||||
echo " DEVIATION=%deviation (default 3)"
|
||||
echo " AVERAGE=#frames (default 3)"
|
||||
echo ""
|
||||
echo "Available RT options:"
|
||||
echo " -P# (e.g., -P1 to force single CPU)"
|
||||
@@ -282,7 +278,7 @@ test the performance of a system by iteratively rendering several
|
||||
well-known datasets into 512x512 images where performance metrics are
|
||||
documented and fairly well understood. The local machine's
|
||||
performance is compared to the base system (called VGR) and a numeric
|
||||
"VGR" multiplier of performance is computed. This number is a
|
||||
"VGR" mulitplier of performance is computed. This number is a
|
||||
simplified metric from which one may qualitatively compare cpu and
|
||||
cache performance, versions of BRL-CAD, and different compiler
|
||||
characteristics.
|
||||
@@ -295,8 +291,8 @@ it may be run in a stand-alone environment:
|
||||
|
||||
RT - the rt binary (e.g. ../src/rt/rt or /usr/brlcad/bin/rt)
|
||||
DB - the directory containing the reference geometry (e.g. ../db)
|
||||
PIX - the directory containing the reference images (e.g. ./ref)
|
||||
LOG - the directory containing the reference logs (e.g. ./ref)
|
||||
PIX - the directory containing the reference images (e.g. ../pix)
|
||||
LOG - the directory containing the reference logs (e.g. ../pix)
|
||||
CMP - the name of a pixcmp tool (e.g. ./pixcmp or cmp)
|
||||
ELP - the name of an elapsed time tool (e.g. ../sh/elapsed.sh)
|
||||
TIMEFRAME - the minimum number of seconds each trace needs to take
|
||||
@@ -322,7 +318,7 @@ additional rays are hypersampled but without any jitter, so it's
|
||||
effectively performing a multiplier amount of work over the initial
|
||||
frame.
|
||||
|
||||
Please send your BRL-CAD Benchmark results to the developers along with
|
||||
Plese send your BRL-CAD Benchmark results to the developers along with
|
||||
detailed system information to <devs@brlcad.org>. Include at least:
|
||||
|
||||
0) Compiler name and version (e.g. gcc --version)
|
||||
@@ -354,19 +350,19 @@ if test "x$CLEAN" = "x1" ; then
|
||||
$ECHO
|
||||
|
||||
for i in moss world star bldg391 m35 sphflake ; do
|
||||
$ECHO rm -f $i.log $i.pix $i-[0-9]*.log $i-[0-9]*.pix
|
||||
rm -f $i.log $i.pix $i-[0-9]*.log $i-[0-9]*.pix
|
||||
$ECHO rm -f $i.log $i.pix $i.log.[0-9]* $i.pix.[0-9]*
|
||||
rm -f $i.log $i.pix $i.log.[0-9]* $i.pix.[0-9]*
|
||||
done
|
||||
if test "x$CLOBBER" = "x1" ; then
|
||||
# NEVER automatically delete the summary file, but go ahead with the rest
|
||||
for i in run-[0-9]*-benchmark.log ; do
|
||||
for i in benchmark-[0-9]*-run.log ; do
|
||||
$ECHO rm -f $i
|
||||
rm -f $i
|
||||
done
|
||||
fi
|
||||
|
||||
printed=no
|
||||
for i in summary run-[0-9]*-benchmark.log ; do
|
||||
for i in summary benchmark-[0-9]*-run.log ; do
|
||||
if test -f "$i" ; then
|
||||
if test "x$printed" = "xno" ; then
|
||||
$ECHO
|
||||
@@ -402,14 +398,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 +422,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
|
||||
|
||||
@@ -443,13 +431,13 @@ $ECHO
|
||||
########################
|
||||
look_for ( ) {
|
||||
|
||||
|
||||
# utility function to search for a certain filesystem object in a
|
||||
# list of paths.
|
||||
|
||||
look_for_type="$1" ; shift
|
||||
look_for_label="$1" ; shift
|
||||
look_for_var="$1" ; shift
|
||||
look_for_dirs="$*"
|
||||
|
||||
if test "x$look_for_label" != "x" ; then
|
||||
$VERBOSE_ECHO "Looking for $look_for_label"
|
||||
@@ -457,11 +445,11 @@ look_for ( ) {
|
||||
|
||||
# get the value of the variable
|
||||
look_for_var_var="echo \"\$$look_for_var\""
|
||||
look_for_var_val="`eval \"${look_for_var_var}\"`"
|
||||
look_for_var_val="`eval ${look_for_var_var}`"
|
||||
|
||||
if test "x${look_for_var_val}" = "x" ; then
|
||||
for look_for_dir in "$@" ; do
|
||||
shift
|
||||
for look_for_dir in $look_for_dirs ; do
|
||||
|
||||
opts="-r"
|
||||
case "x$look_for_type" in
|
||||
xfile)
|
||||
@@ -472,10 +460,10 @@ look_for ( ) {
|
||||
opts="-d -x"
|
||||
;;
|
||||
xexe*)
|
||||
opts="$opts -f -x"
|
||||
opts="$opts -f -r -x"
|
||||
;;
|
||||
xscr*)
|
||||
opts="$opts -f -x"
|
||||
opts="$opts -f -r -x"
|
||||
;;
|
||||
esac
|
||||
look_for_failed=no
|
||||
@@ -503,61 +491,63 @@ look_for ( ) {
|
||||
}
|
||||
|
||||
look_for executable "the BRL-CAD raytracer" RT \
|
||||
"${PATH_TO_THIS}/rt" \
|
||||
"${PATH_TO_THIS}/../bin/rt" \
|
||||
"${PATH_TO_THIS}/../src/rt/rt" \
|
||||
"${PATH_TO_THIS}/src/rt/rt" \
|
||||
${PATH_TO_THIS}/rt \
|
||||
${PATH_TO_THIS}/../bin/rt \
|
||||
${PATH_TO_THIS}/../src/rt/rt \
|
||||
${PATH_TO_THIS}/src/rt/rt \
|
||||
./rt \
|
||||
../brlcadInstall/bin/rt.exe \
|
||||
../src/rt/rt
|
||||
|
||||
look_for file "a benchmark geometry directory" DB \
|
||||
"${PATH_TO_THIS}/../share/brlcad/*.*.*/db/moss.g" \
|
||||
"${PATH_TO_THIS}/share/brlcad/*.*.*/db/moss.g" \
|
||||
"${PATH_TO_THIS}/../share/brlcad/db/moss.g" \
|
||||
"${PATH_TO_THIS}/share/brlcad/db/moss.g" \
|
||||
"${PATH_TO_THIS}/../share/db/moss.g" \
|
||||
"${PATH_TO_THIS}/share/db/moss.g" \
|
||||
"${PATH_TO_THIS}/../db/moss.g" \
|
||||
"${PATH_TO_THIS}/db/moss.g" \
|
||||
${PATH_TO_THIS}/../share/brlcad/*.*.*/db/moss.g \
|
||||
${PATH_TO_THIS}/share/brlcad/*.*.*/db/moss.g \
|
||||
${PATH_TO_THIS}/../share/brlcad/db/moss.g \
|
||||
${PATH_TO_THIS}/share/brlcad/db/moss.g \
|
||||
${PATH_TO_THIS}/../share/db/moss.g \
|
||||
${PATH_TO_THIS}/share/db/moss.g \
|
||||
${PATH_TO_THIS}/../db/moss.g \
|
||||
${PATH_TO_THIS}/db/moss.g \
|
||||
./db/moss.g \
|
||||
../brlcadInstall/share/brlcad/*.*.*/db/moss.g \
|
||||
../db/moss.g
|
||||
DB="`echo $DB | sed 's,/moss.g$,,'`"
|
||||
DB=`echo $DB | sed 's,/moss.g$,,'`
|
||||
|
||||
look_for directory "a benchmark reference image directory" PIX \
|
||||
"${PATH_TO_THIS}/../share/brlcad/*.*.*/pix" \
|
||||
"${PATH_TO_THIS}/share/brlcad/*.*.*/pix" \
|
||||
"${PATH_TO_THIS}/../share/brlcad/pix" \
|
||||
"${PATH_TO_THIS}/share/brlcad/pix" \
|
||||
"${PATH_TO_THIS}/../share/pix" \
|
||||
"${PATH_TO_THIS}/share/pix" \
|
||||
"${PATH_TO_THIS}/ref" \
|
||||
./ref
|
||||
${PATH_TO_THIS}/../share/brlcad/*.*.*/pix \
|
||||
${PATH_TO_THIS}/share/brlcad/*.*.*/pix \
|
||||
${PATH_TO_THIS}/../share/brlcad/pix \
|
||||
${PATH_TO_THIS}/share/brlcad/pix \
|
||||
${PATH_TO_THIS}/../share/pix \
|
||||
${PATH_TO_THIS}/share/pix \
|
||||
${PATH_TO_THIS}/../pix \
|
||||
${PATH_TO_THIS}/pix \
|
||||
./pix
|
||||
|
||||
look_for directory "a benchmark reference log directory" LOG \
|
||||
"$PIX" \
|
||||
"${PATH_TO_THIS}/../share/brlcad/*.*.*/pix" \
|
||||
"${PATH_TO_THIS}/share/brlcad/*.*.*/pix" \
|
||||
"${PATH_TO_THIS}/../share/brlcad/pix" \
|
||||
"${PATH_TO_THIS}/share/brlcad/pix" \
|
||||
"${PATH_TO_THIS}/../share/pix" \
|
||||
"${PATH_TO_THIS}/share/pix" \
|
||||
"${PATH_TO_THIS}/ref" \
|
||||
./ref
|
||||
$PIX \
|
||||
${PATH_TO_THIS}/../share/brlcad/*.*.*/pix \
|
||||
${PATH_TO_THIS}/share/brlcad/*.*.*/pix \
|
||||
${PATH_TO_THIS}/../share/brlcad/pix \
|
||||
${PATH_TO_THIS}/share/brlcad/pix \
|
||||
${PATH_TO_THIS}/../share/pix \
|
||||
${PATH_TO_THIS}/share/pix \
|
||||
${PATH_TO_THIS}/../pix \
|
||||
${PATH_TO_THIS}/pix \
|
||||
./pix
|
||||
|
||||
look_for executable "a pixel comparison utility" CMP \
|
||||
"${PATH_TO_THIS}/pixcmp" \
|
||||
"${PATH_TO_THIS}/../bin/pixcmp" \
|
||||
"${PATH_TO_THIS}/../bench/pixcmp" \
|
||||
${PATH_TO_THIS}/pixcmp \
|
||||
${PATH_TO_THIS}/../bin/pixcmp \
|
||||
${PATH_TO_THIS}/../bench/pixcmp \
|
||||
../brlcadInstall/bin/pixcmp.exe \
|
||||
./pixcmp
|
||||
|
||||
look_for script "a time elapsed utility" ELP \
|
||||
"${PATH_TO_THIS}/elapsed.sh" \
|
||||
"${PATH_TO_THIS}/../bin/elapsed.sh" \
|
||||
"${PATH_TO_THIS}/sh/elapsed.sh" \
|
||||
"${PATH_TO_THIS}/../sh/elapsed.sh" \
|
||||
${PATH_TO_THIS}/elapsed.sh \
|
||||
${PATH_TO_THIS}/../bin/elapsed.sh \
|
||||
${PATH_TO_THIS}/sh/elapsed.sh \
|
||||
${PATH_TO_THIS}/../sh/elapsed.sh \
|
||||
./elapsed.sh
|
||||
|
||||
|
||||
@@ -603,41 +593,33 @@ 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
|
||||
$RT -s1 -F/dev/debug ${DB}/moss.g LIGHT > /dev/null 2>&1
|
||||
ret=$?
|
||||
if test ! "x${ret}" = "x0" ; then
|
||||
$ECHO
|
||||
$ECHO "Running \"$RT\":"
|
||||
"$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
|
||||
$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`
|
||||
$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
|
||||
fi
|
||||
|
||||
|
||||
# utility function to set a variable if it's not already set to something
|
||||
@@ -670,10 +652,10 @@ if test $MAXTIME -lt $TIMEFRAME ; then
|
||||
fi
|
||||
|
||||
# maximum deviation percentage
|
||||
set_if_unset DEVIATION 2
|
||||
set_if_unset DEVIATION 3
|
||||
|
||||
# maximum number of iterations to average
|
||||
set_if_unset AVERAGE 5
|
||||
set_if_unset AVERAGE 3
|
||||
|
||||
# end of settings, separate the output
|
||||
$ECHO
|
||||
@@ -685,7 +667,7 @@ $ECHO
|
||||
|
||||
# determine raytracer version
|
||||
$ECHO "RT reports the following version information:"
|
||||
versions="`$RT 2>&1 | grep BRL-CAD | grep Release`"
|
||||
versions="`$RT 2>&1 | grep BRL-CAD`"
|
||||
if test "x$versions" = "x" ; then
|
||||
$ECHO "Unknown"
|
||||
else
|
||||
@@ -693,32 +675,20 @@ else
|
||||
fi
|
||||
$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
|
||||
mintime="`expr 6 \* $TIMEFRAME`"
|
||||
if test $mintime -lt 1 ; then
|
||||
mintime=0 # zero is okay
|
||||
fi
|
||||
$ECHO "Minimum run time is `\"$ELP\" $mintime`"
|
||||
maxtime="`expr 6 \* $MAXTIME`"
|
||||
if test $maxtime -lt 1 ; then
|
||||
maxtime=1 # zero would be misleading
|
||||
fi
|
||||
$ECHO "Maximum run time is `\"$ELP\" $maxtime`"
|
||||
estimate="`expr 3 \* $mintime`"
|
||||
if test $estimate -lt 1 ; then
|
||||
estimate=1 # zero would be misleading
|
||||
fi
|
||||
if test "x`expr 1 - 1 2>/dev/null`" = "x0" ; then
|
||||
mintime="`expr $TIMEFRAME \* 6`"
|
||||
$ECHO "Minimum run time is `$ELP $mintime`"
|
||||
maxtime="`expr $MAXTIME \* 6`"
|
||||
$ECHO "Maximum run time is `$ELP $maxtime`"
|
||||
estimate="`expr $mintime \* 3`"
|
||||
if test $estimate -gt $maxtime ; then
|
||||
estimate="$maxtime"
|
||||
fi
|
||||
$ECHO "Estimated time is `eval \\\"$ELP\\\" $estimate`"
|
||||
$ECHO "Estimated time is `$ELP $estimate`"
|
||||
$ECHO
|
||||
else
|
||||
$ECHO "WARNING: expr is unavailable, unable to compute statistics"
|
||||
$ECHO " (output of 1 - 1 was [$zero])"
|
||||
$ECHO
|
||||
fi
|
||||
|
||||
@@ -745,14 +715,14 @@ run ( ) {
|
||||
|
||||
$VERBOSE_ECHO "DEBUG: Running $RT -B -M -s512 -H${run_hypersample} -J0 ${run_args} -o ${run_geomname}.pix ${DB}/${run_geomname}.g ${run_geometry}"
|
||||
|
||||
eval \"$RT\" -B -M -s512 -H${run_hypersample} -J0 ${run_args} \
|
||||
$RT -B -M -s512 -H${run_hypersample} -J0 ${run_args} \
|
||||
-o ${run_geomname}.pix \
|
||||
\"${DB}/${run_geomname}.g\" ${run_geometry} 1>&2 <<EOF
|
||||
${DB}/${run_geomname}.g ${run_geometry} 1>&2 <<EOF
|
||||
$run_view
|
||||
EOF
|
||||
run_retval=$?
|
||||
$VERBOSE_ECHO "DEBUG: Running $RT returned $run_retval"
|
||||
return $run_retval
|
||||
retval=$?
|
||||
$VERBOSE_ECHO "DEBUG: Running $RT returned $retval"
|
||||
return $retval
|
||||
}
|
||||
|
||||
|
||||
@@ -885,13 +855,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 +871,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
|
||||
@@ -919,43 +889,6 @@ sqrt ( ) {
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# clean_obstacles base_filename
|
||||
# conditionally removes or saves backup of any .pix or .log files
|
||||
# output during bench.
|
||||
#
|
||||
clean_obstacles ( ) {
|
||||
base="$1" ; shift
|
||||
|
||||
if test "x$base" = "x" ; then
|
||||
$ECHO "ERROR: argument mismatch, cleaner is missing base name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# look for an image file
|
||||
if test -f ${base}.pix ; then
|
||||
if test -f ${base}-$$.pix ; then
|
||||
# backup already exists, just delete obstacle
|
||||
rm -f ${base}.pix
|
||||
else
|
||||
# no backup exists yet, so keep it
|
||||
mv -f ${base}.pix ${base}-$$.pix
|
||||
fi
|
||||
fi
|
||||
|
||||
# look for a log file
|
||||
if test -f ${base}.log ; then
|
||||
if test -f ${base}-$$.log ; then
|
||||
# backup already exists, just delete obstacle
|
||||
rm -f ${base}.log
|
||||
else
|
||||
# no backup exists yet, so keep it
|
||||
mv -f ${base}.log ${base}-$$.log
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# bench test_name geometry [..rt args..]
|
||||
# runs a series of benchmark tests assuming the following are preset:
|
||||
@@ -986,22 +919,16 @@ bench ( ) {
|
||||
bench_frame=0
|
||||
bench_rtfms=""
|
||||
bench_percent=100
|
||||
bench_retval=0
|
||||
bench_start_time="`date '+%H %M %S'`"
|
||||
bench_overall_elapsed=-1
|
||||
bench_overall_elapsed=0
|
||||
|
||||
# clear out before we begin, only saving backup on first encounter
|
||||
clean_obstacles "$bench_testname"
|
||||
|
||||
# use -lt since -le makes causes a "floor(elapsed)" comparison and too many iterations
|
||||
while test $bench_overall_elapsed -lt $MAXTIME ; do
|
||||
|
||||
bench_elapsed=-1
|
||||
# use -lt since -le makes causes a "floor(elapsed)" comparison and too many iterations
|
||||
bench_elapsed=0
|
||||
while test $bench_elapsed -lt $TIMEFRAME ; do
|
||||
|
||||
# clear out any previous run, only saving backup on first encounter
|
||||
clean_obstacles "$bench_testname"
|
||||
if test -f ${bench_testname}.pix; then mv -f ${bench_testname}.pix ${bench_testname}.pix.$$; fi
|
||||
if test -f ${bench_testname}.log; then mv -f ${bench_testname}.log ${bench_testname}.log.$$; fi
|
||||
|
||||
bench_frame_start_time="`date '+%H %M %S'`"
|
||||
|
||||
@@ -1010,22 +937,13 @@ $bench_view
|
||||
start $bench_frame;
|
||||
end;
|
||||
EOF
|
||||
bench_raytrace_retval=$?
|
||||
if test $bench_raytrace_retval != 0 ; then
|
||||
bench_retval=$bench_raytrace_retval
|
||||
fi
|
||||
retval=$?
|
||||
|
||||
if test $bench_frame -ne 0 ; then
|
||||
if test -f ${bench_testname}.pix.$bench_frame ; then
|
||||
mv -f ${bench_testname}.pix.$bench_frame ${bench_testname}.pix
|
||||
else
|
||||
$ECHO "WARNING: ${bench_testname}.pix.$bench_frame does not exist"
|
||||
fi
|
||||
fi
|
||||
if test -f ${bench_testname}.pix.$bench_frame ; then mv -f ${bench_testname}.pix.$bench_frame ${bench_testname}.pix ; fi
|
||||
|
||||
# compute how long we took, rounding up to at least one
|
||||
# second to prevent division by zero.
|
||||
bench_elapsed="`eval \\\"$ELP\\\" --seconds $bench_frame_start_time`"
|
||||
bench_elapsed="`$ELP --seconds $bench_frame_start_time`"
|
||||
if test "x$bench_elapsed" = "x" ; then
|
||||
bench_elapsed=1
|
||||
fi
|
||||
@@ -1044,27 +962,19 @@ EOF
|
||||
|
||||
# increase the number of rays exponentially if we are
|
||||
# considerably faster than the TIMEFRAME required.
|
||||
if test `expr $bench_elapsed \* 128` -lt ${TIMEFRAME} ; then
|
||||
# 128x increase, skip six frames
|
||||
bench_hypersample="`expr $bench_hypersample \* 128 + 127`"
|
||||
bench_frame="`expr $bench_frame + 7`"
|
||||
elif test `expr $bench_elapsed \* 64` -lt ${TIMEFRAME} ; then
|
||||
# 64x increase, skip five frames
|
||||
bench_hypersample="`expr $bench_hypersample \* 64 + 63`"
|
||||
bench_frame="`expr $bench_frame + 6`"
|
||||
elif test `expr $bench_elapsed \* 32` -lt ${TIMEFRAME} ; then
|
||||
if test `expr $bench_elapsed \* 32` -le ${TIMEFRAME} ; then
|
||||
# 32x increase, skip four frames
|
||||
bench_hypersample="`expr $bench_hypersample \* 32 + 31`"
|
||||
bench_frame="`expr $bench_frame + 5`"
|
||||
elif test `expr $bench_elapsed \* 16` -lt ${TIMEFRAME} ; then
|
||||
elif test `expr $bench_elapsed \* 16` -le ${TIMEFRAME} ; then
|
||||
# 16x increase, skip three frames
|
||||
bench_hypersample="`expr $bench_hypersample \* 16 + 15`"
|
||||
bench_frame="`expr $bench_frame + 4`"
|
||||
elif test `expr $bench_elapsed \* 8` -lt ${TIMEFRAME} ; then
|
||||
elif test `expr $bench_elapsed \* 8` -le ${TIMEFRAME} ; then
|
||||
# 8x increase, skip two frames
|
||||
bench_hypersample="`expr $bench_hypersample \* 8 + 7`"
|
||||
bench_frame="`expr $bench_frame + 3`"
|
||||
elif test `expr $bench_elapsed \* 4` -lt ${TIMEFRAME} ; then
|
||||
elif test `expr $bench_elapsed \* 4` -le ${TIMEFRAME} ; then
|
||||
# 4x increase, skip a frame
|
||||
bench_hypersample="`expr $bench_hypersample \* 4 + 3`"
|
||||
bench_frame="`expr $bench_frame + 2`"
|
||||
@@ -1087,13 +997,13 @@ EOF
|
||||
fi
|
||||
|
||||
# did we fail?
|
||||
if test $bench_raytrace_retval != 0 ; then
|
||||
if test $retval != 0 ; then
|
||||
$ECHO "RAYTRACE ERROR"
|
||||
break
|
||||
fi
|
||||
|
||||
# see if we need to break out early
|
||||
bench_overall_elapsed="`eval \\\"$ELP\\\" --seconds $bench_start_time`"
|
||||
bench_overall_elapsed="`$ELP --seconds $bench_start_time`"
|
||||
if test $bench_overall_elapsed -ge $MAXTIME ; then
|
||||
break;
|
||||
fi
|
||||
@@ -1131,55 +1041,33 @@ EOF
|
||||
break
|
||||
fi
|
||||
|
||||
bench_overall_elapsed="`eval \\\"$ELP\\\" --seconds $bench_start_time`"
|
||||
bench_overall_elapsed="`$ELP --seconds $bench_start_time`"
|
||||
|
||||
# undo the hypersample increase back one step
|
||||
bench_hypersample="`expr \( \( $bench_hypersample + 1 \) / 2 \) - 1`"
|
||||
done
|
||||
|
||||
# clear out any profile output files
|
||||
if test -f gmon.out ; then
|
||||
mv -f gmon.out gmon.${bench_testname}.out
|
||||
fi
|
||||
|
||||
# the last run should be a relatively stable representative of the performance
|
||||
|
||||
if ! test -f "${PIX}/${bench_testname}.pix" ; then
|
||||
$ECHO "ERROR: reference image ${PIX}/${bench_testname}.pix not found"
|
||||
fi
|
||||
if ! test -f "${bench_testname}.pix" ; then
|
||||
$ECHO "ERROR: computed image ${bench_testname}.pix disappeared?!"
|
||||
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`"
|
||||
bench_cmp_retval=$?
|
||||
|
||||
pixels_result="`echo \\\"$cmp_result\\\" | grep pixels`"
|
||||
if test "x$pixels_result" = "x" ; then
|
||||
$ECHO "$cmp_result"
|
||||
else
|
||||
$ECHO "$pixels_result"
|
||||
fi
|
||||
|
||||
if test $bench_cmp_retval = 0 ; then
|
||||
if test -f gmon.out; then mv -f gmon.out gmon.${bench_testname}.out; fi
|
||||
${CMP} ${PIX}/${bench_testname}.pix ${bench_testname}.pix
|
||||
ret=$?
|
||||
if test $ret = 0 ; then
|
||||
# perfect match
|
||||
$ECHO ${bench_testname}.pix: answers are RIGHT
|
||||
elif test $bench_cmp_retval = 1 ; then
|
||||
elif test $ret = 1 ; then
|
||||
# off by one, acceptable
|
||||
$ECHO ${bench_testname}.pix: answers are RIGHT
|
||||
elif test $bench_cmp_retval = 2 ; then
|
||||
elif test $ret = 2 ; then
|
||||
# off by many, unacceptable
|
||||
$ECHO ${bench_testname}.pix: WRONG WRONG WRONG WRONG WRONG WRONG
|
||||
bench_retval=$bench_cmp_retval
|
||||
else
|
||||
# some other failure
|
||||
$ECHO ${bench_testname}.pix: BENCHMARK COMPARISON FAILURE
|
||||
bench_retval=$bench_cmp_retval
|
||||
fi
|
||||
|
||||
$VERBOSE_ECHO "DEBUG: Done benchmark testing on $bench_testname"
|
||||
return $bench_retval
|
||||
return $retval
|
||||
}
|
||||
|
||||
|
||||
@@ -1214,8 +1102,8 @@ perf ( ) {
|
||||
perf_ref_files=""
|
||||
perf_cur_files=""
|
||||
for perf_test in $perf_tests ; do
|
||||
perf_ref_log="${LOG}/${perf_test}.log"
|
||||
perf_cur_log="${perf_test}.log"
|
||||
perf_ref_log=${LOG}/${perf_test}.log
|
||||
perf_cur_log=${perf_test}.log
|
||||
for perf_log in "$perf_cur_log" "$perf_ref_log" ; do
|
||||
if test ! "x$perf_log" = "x" ; then
|
||||
if test ! -f "$perf_log" ; then
|
||||
@@ -1223,18 +1111,18 @@ perf ( ) {
|
||||
fi
|
||||
fi
|
||||
done
|
||||
perf_ref_files="$perf_ref_files \"$perf_ref_log\""
|
||||
perf_ref_files="$perf_ref_files $perf_ref_log"
|
||||
perf_cur_files="$perf_cur_files $perf_cur_log"
|
||||
done
|
||||
|
||||
# extract the RTFM values from the log files, use TR to convert
|
||||
# newlines to tabs. the trailing tab is significant in case there
|
||||
# newlines to tabs. the trailing tab is signficant in case there
|
||||
# are not enough results.
|
||||
#
|
||||
# FIXME: should really iterate one file at a time so we don't
|
||||
# just zero-pad at the end
|
||||
perf_VGRREF="`eval grep RTFM $perf_ref_files | sed -n -e 's/^.*= *//' -e 's/ rays.*//p' | tr '\012' '\011' `"
|
||||
perf_CURVALS="`eval grep RTFM $perf_cur_files | sed -n -e 's/^.*= *//' -e 's/ rays.*//p' | tr '\012' '\011' `"
|
||||
perf_VGRREF=`grep RTFM $perf_ref_files | sed -n -e 's/^.*= *//' -e 's/ rays.*//p' | tr '\012' '\011' `
|
||||
perf_CURVALS=`grep RTFM $perf_cur_files | sed -n -e 's/^.*= *//' -e 's/ rays.*//p' | tr '\012' '\011' `
|
||||
|
||||
# if there were no reference values, we cannot compute timings
|
||||
if test "x$perf_VGRREF" = "x" ; then
|
||||
@@ -1249,7 +1137,7 @@ perf ( ) {
|
||||
|
||||
# Trick: Force args $1 through $6 to the numbers in $perf_CURVALS
|
||||
# This should be "set -- $perf_CURVALS", but 4.2BSD /bin/sh can't
|
||||
# handle it, and perf_CURVALS are all positive (i.e., no leading
|
||||
# handle it, and perf_CURVALS are all positive (ie, no leading
|
||||
# dashes), so this is safe.
|
||||
|
||||
set $perf_CURVALS
|
||||
@@ -1262,13 +1150,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
|
||||
@@ -1327,9 +1215,9 @@ perf ( ) {
|
||||
start="`date '+%H %M %S'`"
|
||||
$ECHO "Running the BRL-CAD Benchmark tests... please wait ..."
|
||||
$ECHO
|
||||
benchmark_retval=0
|
||||
ret=0
|
||||
|
||||
bench moss all.g $RTARGS << EOF
|
||||
bench moss all.g $ARGS << EOF
|
||||
viewsize 1.572026215e+02;
|
||||
eye_pt 6.379990387e+01 3.271768951e+01 3.366661453e+01;
|
||||
viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
@@ -1337,9 +1225,9 @@ viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
7.424039245e-01 5.198368430e-01 4.226182699e-01 0.000000000e+00
|
||||
0.000000000e+00 0.000000000e+00 0.000000000e+00 1.000000000e+00 ;
|
||||
EOF
|
||||
benchmark_retval=`expr $benchmark_retval + $?`
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
bench world all.g $RTARGS << EOF
|
||||
bench world all.g $ARGS << EOF
|
||||
viewsize 1.572026215e+02;
|
||||
eye_pt 6.379990387e+01 3.271768951e+01 3.366661453e+01;
|
||||
viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
@@ -1347,9 +1235,9 @@ viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
7.424039245e-01 5.198368430e-01 4.226182699e-01 0.000000000e+00
|
||||
0.000000000e+00 0.000000000e+00 0.000000000e+00 1.000000000e+00 ;
|
||||
EOF
|
||||
benchmark_retval=`expr $benchmark_retval + $?`
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
bench star all $RTARGS << EOF
|
||||
bench star all $ARGS << EOF
|
||||
viewsize 2.500000000e+05;
|
||||
eye_pt 2.102677960e+05 8.455500000e+04 2.934714650e+04;
|
||||
viewrot -6.733560560e-01 6.130643360e-01 4.132114880e-01 0.000000000e+00
|
||||
@@ -1357,9 +1245,9 @@ viewrot -6.733560560e-01 6.130643360e-01 4.132114880e-01 0.000000000e+00
|
||||
4.896120540e-01 7.885590550e-01 -3.720948210e-01 0.000000000e+00
|
||||
0.000000000e+00 0.000000000e+00 0.000000000e+00 1.000000000e+00 ;
|
||||
EOF
|
||||
benchmark_retval=`expr $benchmark_retval + $?`
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
bench bldg391 all.g $RTARGS << EOF
|
||||
bench bldg391 all.g $ARGS << EOF
|
||||
viewsize 1.800000000e+03;
|
||||
eye_pt 6.345012207e+02 8.633251343e+02 8.310771484e+02;
|
||||
viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
@@ -1367,9 +1255,9 @@ viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
7.424039245e-01 5.198368430e-01 4.226182699e-01 0.000000000e+00
|
||||
0.000000000e+00 0.000000000e+00 0.000000000e+00 1.000000000e+00;
|
||||
EOF
|
||||
benchmark_retval=`expr $benchmark_retval + $?`
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
bench m35 all.g $RTARGS <<EOF
|
||||
bench m35 all.g $ARGS <<EOF
|
||||
viewsize 6.787387985e+03;
|
||||
eye_pt 3.974533127e+03 1.503320754e+03 2.874633221e+03;
|
||||
viewrot -5.527838919e-01 8.332423558e-01 1.171090926e-02 0.000000000e+00
|
||||
@@ -1377,28 +1265,28 @@ viewrot -5.527838919e-01 8.332423558e-01 1.171090926e-02 0.000000000e+00
|
||||
6.800964482e-01 4.429747496e-01 5.841593895e-01 0.000000000e+00
|
||||
0.000000000e+00 0.000000000e+00 0.000000000e+00 1.000000000e+00 ;
|
||||
EOF
|
||||
benchmark_retval=`expr $benchmark_retval + $?`
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
bench sphflake scene.r $RTARGS <<EOF
|
||||
bench sphflake scene.r $ARGS <<EOF
|
||||
viewsize 2.556283261452611e+04;
|
||||
orientation 4.406810841785839e-01 4.005093234738861e-01 5.226451688385938e-01 6.101102288499644e-01;
|
||||
eye_pt 2.418500583758302e+04 -3.328563644344796e+03 8.489926952850350e+03;
|
||||
EOF
|
||||
benchmark_retval=`expr $benchmark_retval + $?`
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
$ECHO
|
||||
$ECHO "... Done."
|
||||
$ECHO
|
||||
$ECHO "Total testing time elapsed: `eval \\\"$ELP\\\" $start`"
|
||||
$ECHO "Total testing time elapsed: `$ELP $start`"
|
||||
|
||||
# see if we fail
|
||||
if test ! "x$benchmark_retval" = "x0" ; then
|
||||
if test ! "x$ret" = "x0" ; then
|
||||
$ECHO
|
||||
$ECHO "THE BENCHMARK ANALYSIS DID NOT COMPLETE SUCCESSFULLY."
|
||||
$ECHO "THE BENCHARK ANALYSIS DID NOT COMPLETE SUCCESSFULLY."
|
||||
$ECHO
|
||||
$ECHO "A benchmark failure means this is not a viable install of BRL-CAD. This may be"
|
||||
$ECHO "a new bug or (more likely) is a compilation configuration error. Ensure your"
|
||||
$ECHO "compiler has strict aliasing disabled, compilation is optimized, and you have"
|
||||
$ECHO "compiler has strict aliasing disabled, compilation is unoptimized, and you have"
|
||||
$ECHO "installed BRL-CAD (some platforms require this). If you still get a failure,"
|
||||
$ECHO "please report your configuration information to benchmark@brlcad.org"
|
||||
$ECHO
|
||||
@@ -1413,8 +1301,8 @@ fi
|
||||
# compute and output results #
|
||||
##############################
|
||||
|
||||
performance="`perf 'moss world star bldg391 m35 sphflake' $RTARGS 2>&1`"
|
||||
|
||||
performance="`perf 'moss world star bldg391 m35 sphflake' $ARGS`"
|
||||
if test $? = 0 ; then
|
||||
cat >> summary <<EOF
|
||||
$performance
|
||||
@@ -1529,8 +1417,8 @@ else
|
||||
$ECHO
|
||||
blankit=no
|
||||
|
||||
# BSD+
|
||||
look_for executable "a sysctl command" SYSCTL_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/sysctl/g'`
|
||||
# BSD
|
||||
look_for executable "a sysctl command" SYSCTL_CMD `echo "$PATH" | tr ":" "\n" | sed 's/$/\/sysctl/g'`
|
||||
if test ! "x$SYSCTL_CMD" = "x" ; then
|
||||
$ECHO "Collecting system state information (via $SYSCTL_CMD)"
|
||||
preQUIET="$QUIET"
|
||||
@@ -1545,7 +1433,7 @@ else
|
||||
fi
|
||||
|
||||
# Solaris
|
||||
look_for executable "a prtdiag command" PRTDIAG_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/prtdiag/g'`
|
||||
look_for executable "a prtdiag command" PRTDIAG_CMD `echo "$PATH" | tr ":" "\n" | sed 's/$/\/prtdiag/g'`
|
||||
if test ! "x$PRTDIAG_CMD" = "x" ; then
|
||||
$ECHO "Collecting system diagnostics information (via $PRTDIAG_CMD)"
|
||||
preQUIET="$QUIET"
|
||||
@@ -1558,7 +1446,7 @@ else
|
||||
fi
|
||||
|
||||
# AIX
|
||||
look_for executable "a prtconf command" PRTCONF_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/prtconf/g'`
|
||||
look_for executable "a prtconf command" PRTCONF_CMD `echo "$PATH" | tr ":" "\n" | sed 's/$/\/prtconf/g'`
|
||||
if test ! "x$PRTCONF_CMD" = "x" ; then
|
||||
$ECHO "Collecting system configuration information (via $PRTCONF_CMD)"
|
||||
preQUIET="$QUIET"
|
||||
@@ -1571,7 +1459,7 @@ else
|
||||
fi
|
||||
|
||||
# SGI
|
||||
look_for executable "an hinv command" HINV_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/hinv/g'`
|
||||
look_for executable "an hinv command" HINV_CMD `echo "$PATH" | tr ":" "\n" | sed 's/$/\/hinv/g'`
|
||||
if test ! "x$HINV_CMD" = "x" ; then
|
||||
$ECHO "Collecting system configuration information (via $HINV_CMD)"
|
||||
preQUIET="$QUIET"
|
||||
@@ -1596,19 +1484,6 @@ else
|
||||
blankit=yes
|
||||
fi
|
||||
|
||||
# Linux+
|
||||
look_for executable "an lscpu command" LSCPU_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/lscpu/g'`
|
||||
if test ! "x$LSCPU_CMD" = "x" ; then
|
||||
$ECHO "Collecting system CPU information (via $LSCPU_CMD)"
|
||||
preQUIET="$QUIET"
|
||||
QUIET=1
|
||||
$ECHO "==============================================================================="
|
||||
$ECHO "`$LSCPU_CMD 2>&1`"
|
||||
$ECHO
|
||||
QUIET="$preQUIET"
|
||||
blankit=yes
|
||||
fi
|
||||
|
||||
if test "x$blankit" = "xyes" ; then
|
||||
$ECHO
|
||||
fi
|
||||
@@ -1616,12 +1491,12 @@ fi
|
||||
|
||||
# tell about the benchmark document
|
||||
look_for file "" BENCHMARK_TR \
|
||||
"${PATH_TO_THIS}/../share/brlcad/*.*.*/doc/benchmark.tr" \
|
||||
"${PATH_TO_THIS}/share/brlcad/*.*.*/doc/benchmark.tr" \
|
||||
"${PATH_TO_THIS}/share/brlcad/doc/benchmark.tr" \
|
||||
"${PATH_TO_THIS}/share/doc/benchmark.tr" \
|
||||
"${PATH_TO_THIS}/doc/benchmark.tr" \
|
||||
"${PATH_TO_THIS}/../doc/benchmark.tr" \
|
||||
${PATH_TO_THIS}/../share/brlcad/*.*.*/doc/benchmark.tr \
|
||||
${PATH_TO_THIS}/share/brlcad/*.*.*/doc/benchmark.tr \
|
||||
${PATH_TO_THIS}/share/brlcad/doc/benchmark.tr \
|
||||
${PATH_TO_THIS}/share/doc/benchmark.tr \
|
||||
${PATH_TO_THIS}/doc/benchmark.tr \
|
||||
${PATH_TO_THIS}/../doc/benchmark.tr \
|
||||
./benchmark.tr
|
||||
|
||||
$ECHO "Read the benchmark.tr document for more details on the BRL-CAD Benchmark."
|
||||
@@ -1633,10 +1508,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
@@ -2,7 +2,7 @@
|
||||
# T R Y . S H
|
||||
# BRL-CAD
|
||||
#
|
||||
# Copyright (c) 2004-2026 United States Government as represented by
|
||||
# Copyright (c) 2004-2011 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
@@ -2,7 +2,7 @@
|
||||
# V I E W D I F F . S H
|
||||
# BRL-CAD
|
||||
#
|
||||
# Copyright (c) 2004-2026 United States Government as represented by
|
||||
# Copyright (c) 2004-2011 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
|
||||
+4558
File diff suppressed because it is too large
Load Diff
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/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-ENABLE_ALL_LOCAL_LIBS=ON";
|
||||
shift;;
|
||||
--enable-debug) options="$options -DCMAKE_BUILD_TYPE=Debug";
|
||||
shift;;
|
||||
--disable-docs) options="$options -DBRLCAD-BUILD_EXTRADOCS=OFF";
|
||||
shift;;
|
||||
--disable-opengl) options="$options -DBRLCAD-ENABLE_OPENGL=OFF";
|
||||
shift;;
|
||||
--disable-strict) options="$options -DBRLCAD-ENABLE_STRICT=OFF";
|
||||
shift;;
|
||||
--disable-warnings) options="$options -DBRLCAD-ENABLE_WARNINGS=OFF";
|
||||
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
|
||||
Binary file not shown.
+52
-349
@@ -1,357 +1,60 @@
|
||||
function(G_TARGET in_model folder)
|
||||
# Initialize
|
||||
set(MODEL_TYPE "UNKNOWN")
|
||||
set(CONV_SUCCESS_CODES 0)
|
||||
|
||||
# Regardless of what we decide, let CMake know about the file
|
||||
cmakefiles(${CMAKE_CURRENT_SOURCE_DIR}/${in_model})
|
||||
|
||||
# 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}")
|
||||
endif("${in_model}" MATCHES ".${mt}$")
|
||||
endif("${MODEL_TYPE}" STREQUAL "UNKNOWN")
|
||||
endforeach(mt ${model_types})
|
||||
if("${MODEL_TYPE}" STREQUAL "UNKNOWN")
|
||||
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(CONV_OUTPUT_PATH "${CMAKE_BINARY_DIR}/${output_file}")
|
||||
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}")
|
||||
|
||||
# Rhino 3DM file
|
||||
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
|
||||
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: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
|
||||
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
|
||||
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)
|
||||
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"
|
||||
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"
|
||||
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}\"")
|
||||
# step-g uses status 1 for useful, deliberately published partial output.
|
||||
# Installed sample databases should retain that geometry; statuses 2 and
|
||||
# above, or a missing output file, remain build failures.
|
||||
set(CONV_SUCCESS_CODES "0;1")
|
||||
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"
|
||||
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(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
install(FILES ${CMAKE_BINARY_DIR}/${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)
|
||||
|
||||
function(PIX_TARGET in_image folder)
|
||||
if(NOT TARGET png-pix)
|
||||
return()
|
||||
endif(NOT TARGET png-pix)
|
||||
|
||||
cmakefiles(${CMAKE_CURRENT_SOURCE_DIR}/${in_image})
|
||||
get_filename_component(in_image_root "${in_image}" NAME_WE)
|
||||
string(REPLACE "${CMAKE_SOURCE_DIR}/" "" rel_dir "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
set(output_file ${DATA_DIR}/${rel_dir}/${in_image_root}.pix)
|
||||
set(output_path "${CMAKE_BINARY_DIR}/${output_file}")
|
||||
set(conversion_file "${CMAKE_CURRENT_BINARY_DIR}/${in_image_root}_pix.cmake")
|
||||
|
||||
set(PIX_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/${in_image}")
|
||||
set(PIX_OUTPUT "${output_path}")
|
||||
set(PIX_LABEL "${in_image_root}.pix")
|
||||
|
||||
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${DATA_DIR}/${rel_dir}")
|
||||
configure_file("${CMAKE_SOURCE_DIR}/db/to_pix.cmake.in" "${conversion_file}" @ONLY)
|
||||
distclean("${conversion_file}")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${output_path}
|
||||
COMMAND ${CMAKE_COMMAND} -E remove "${output_path}"
|
||||
COMMAND ${CMAKE_COMMAND} -DEXEC=$<TARGET_FILE:png-pix> -P "${conversion_file}"
|
||||
DEPENDS png-pix "${PIX_INPUT}"
|
||||
)
|
||||
add_custom_target(${in_image_root}.pix ALL DEPENDS ${output_path})
|
||||
set_target_properties(${in_image_root}.pix PROPERTIES FOLDER "${folder}")
|
||||
|
||||
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
install(FILES ${output_path} DESTINATION ${DATA_DIR}/${rel_dir})
|
||||
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
|
||||
distclean("${output_path}")
|
||||
endfunction(PIX_TARGET in_image folder)
|
||||
|
||||
set(
|
||||
G_BENCHMARK_MODELS
|
||||
bldg391.asc
|
||||
m35.asc
|
||||
moss.asc
|
||||
sphflake.asc
|
||||
star.asc
|
||||
SET(G_BENCHMARK_MODELS
|
||||
bldg391.asc
|
||||
m35.asc
|
||||
moss.asc
|
||||
sphflake.asc
|
||||
star.asc
|
||||
world.asc
|
||||
)
|
||||
|
||||
set(
|
||||
G_SAMPLE_MODELS
|
||||
aet.asc
|
||||
arb8_showcase.asc
|
||||
annual_gift_man.asc
|
||||
axis.asc
|
||||
bearing.asc
|
||||
bicycle_wheel.asc
|
||||
boolean-ops.asc
|
||||
castle.asc
|
||||
cornell.asc
|
||||
cornell-kunigami.asc
|
||||
cray.asc
|
||||
crod.asc
|
||||
cube.asc
|
||||
demo.asc
|
||||
die.asc
|
||||
earth.asc
|
||||
gaia.asc
|
||||
galileo.asc
|
||||
goliath.asc
|
||||
havoc.asc
|
||||
kman.asc
|
||||
ktank.asc
|
||||
lgt-test.asc
|
||||
operators.asc
|
||||
photo_holder.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
|
||||
SET(G_SAMPLE_MODELS
|
||||
${G_BENCHMARK_MODELS}
|
||||
axis.asc
|
||||
boolean-ops.asc
|
||||
castle.asc
|
||||
cornell.asc
|
||||
cray.asc
|
||||
crod.asc
|
||||
cube.asc
|
||||
demo.asc
|
||||
galileo.asc
|
||||
goliath.asc
|
||||
havoc.asc
|
||||
kman.asc
|
||||
ktank.asc
|
||||
lgt-test.asc
|
||||
operators.asc
|
||||
pic.asc
|
||||
pinewood.asc
|
||||
prim.asc
|
||||
tank_car.asc
|
||||
terra.asc
|
||||
toyjeep.asc
|
||||
truck.asc
|
||||
wave.asc
|
||||
woodsman.asc
|
||||
xmp.asc
|
||||
)
|
||||
add_subdirectory(chess)
|
||||
add_subdirectory(comgeom)
|
||||
add_subdirectory(nist)
|
||||
add_subdirectory(faa)
|
||||
|
||||
pix_target(earth.png "BRL-CAD Geometry Models/Sample")
|
||||
FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${DATA_DIR}/db)
|
||||
FOREACH(g_model ${G_SAMPLE_MODELS})
|
||||
STRING(REGEX REPLACE "([0-9a-z]*).asc" "\\1" g_model_root "${g_model}")
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${g_model_root}.g
|
||||
COMMAND asc2g ${CMAKE_CURRENT_SOURCE_DIR}/${g_model} ${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${g_model_root}.g
|
||||
DEPENDS asc2g ${CMAKE_CURRENT_SOURCE_DIR}/${g_model}
|
||||
)
|
||||
ADD_CUSTOM_TARGET(${g_model_root}.g ALL DEPENDS ${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${g_model_root}.g)
|
||||
IF(BRLCAD-INSTALL_EXAMPLE_GEOMETRY)
|
||||
INSTALL(FILES ${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${g_model_root}.g DESTINATION ${${CMAKE_PROJECT_NAME}_INSTALL_DATA_DIR}/db)
|
||||
ENDIF(BRLCAD-INSTALL_EXAMPLE_GEOMETRY)
|
||||
SET(BUILT_MODELS "${BUILT_MODELS};${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${g_model_root}.g")
|
||||
ENDFOREACH(g_model ${G_SAMPLE_MODELS})
|
||||
CMAKEFILES(${G_SAMPLE_MODELS})
|
||||
|
||||
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
brlcad_adddata(earth.png db)
|
||||
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${BUILT_MODELS}")
|
||||
|
||||
foreach(g_input ${G_BENCHMARK_MODELS})
|
||||
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")
|
||||
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(SH_EXEC)
|
||||
if(TARGET mged OR TARGET gcv)
|
||||
set(conversion_g_files)
|
||||
set(conversion_g_files_fp)
|
||||
set(conversion_deps_list)
|
||||
|
||||
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)
|
||||
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})
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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(SH_EXEC)
|
||||
|
||||
cmakefiles(
|
||||
${G_BENCHMARK_MODELS}
|
||||
${G_SAMPLE_MODELS}
|
||||
1647260.dsp
|
||||
CMakeLists.txt
|
||||
aet.rt
|
||||
cornell.rt
|
||||
cube.rt
|
||||
db.php
|
||||
ebm_logo.bw
|
||||
earth.png
|
||||
include/ctype.inc
|
||||
include/debug.inc
|
||||
terra.bin
|
||||
to_g.cmake.in
|
||||
to_pix.cmake.in
|
||||
traffic_light.rt
|
||||
vol_data.bw
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
IF(BRLCAD-INSTALL_EXAMPLE_GEOMETRY)
|
||||
BRLCAD_ADDFILE(terra.dsp db)
|
||||
ENDIF(BRLCAD-INSTALL_EXAMPLE_GEOMETRY)
|
||||
CMAKEFILES(db.php include)
|
||||
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
|
||||
SUBDIRS = include
|
||||
|
||||
A2G=$(top_builddir)/src/conv/asc2g
|
||||
G2A=$(top_builddir)/src/conv/g2asc
|
||||
|
||||
|
||||
# gmake seems to prefix the source .asc with the appropriate srcdir
|
||||
# automagically... the library path is set for Tcl/Tk since libtool
|
||||
# won't do it for us for non libtool libs. make them all depend on a
|
||||
# single file so that asc2g runs at least once to completion so the
|
||||
# wrapper script doesn't fail when compiling in parallel.
|
||||
.asc.g: operators.asc2g
|
||||
@i=0 ; while [ ! -f lockfile ] && [ $$i -lt 10 ] ; do sleep 1 ; i=`expr $$i + 1` ; done
|
||||
@echo $(A2G) $< $@ ; \
|
||||
LD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_builddir)/src/other/tk/unix:$$LD_LIBRARY_PATH \
|
||||
DYLD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_buildir)/src/other/tk/unix:$$DYLD_LIBRARY_PATH \
|
||||
$(A2G) `if test -e $< ; then echo $< ; else echo $(top_srcdir)/db/$< ; fi` $@
|
||||
|
||||
# cause asc2g to kick off so that it compiles lt-asc2g and avoids
|
||||
# parallel build failures. use a simple file locking mechanism.
|
||||
operators.asc2g: operators.asc $(top_builddir)/src/conv/asc2g
|
||||
@rm -f lockfile
|
||||
@if test -x $(A2G) ; then \
|
||||
echo $(A2G) operators.asc $@ ; \
|
||||
LD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_builddir)/src/other/tk/unix:$$LD_LIBRARY_PATH \
|
||||
DYLD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_buildir)/src/other/tk/unix:$$DYLD_LIBRARY_PATH \
|
||||
$(A2G) `if test -e operators.asc ; then echo operators.asc ; else echo $(top_srcdir)/db/operators.asc ; fi` $@ ; \
|
||||
else \
|
||||
echo "ls -lad $(A2G)" ; \
|
||||
echo "`ls -lad $(A2G)`" ; \
|
||||
echo "$(A2G) does not exist" ; \
|
||||
fi
|
||||
@touch lockfile
|
||||
|
||||
BENCHMARK_MODELS = \
|
||||
bldg391.asc \
|
||||
m35.asc \
|
||||
moss.asc \
|
||||
sphflake.asc \
|
||||
star.asc \
|
||||
world.asc
|
||||
|
||||
MODELS = \
|
||||
$(BENCHMARK_MODELS) \
|
||||
axis.asc \
|
||||
boolean-ops.asc \
|
||||
castle.asc \
|
||||
cornell.asc \
|
||||
cray.asc \
|
||||
crod.asc \
|
||||
cube.asc \
|
||||
demo.asc \
|
||||
galileo.asc \
|
||||
goliath.asc \
|
||||
havoc.asc \
|
||||
kman.asc \
|
||||
ktank.asc \
|
||||
lgt-test.asc \
|
||||
operators.asc \
|
||||
pic.asc \
|
||||
pinewood.asc \
|
||||
prim.asc \
|
||||
tank_car.asc \
|
||||
terra.asc \
|
||||
toyjeep.asc \
|
||||
truck.asc \
|
||||
wave.asc \
|
||||
woodsman.asc \
|
||||
xmp.asc
|
||||
|
||||
EXTRA_DIST = \
|
||||
${MODELS} \
|
||||
db.php \
|
||||
terra.dsp
|
||||
|
||||
dbdir = $(BRLCAD_DATA)/db
|
||||
|
||||
if INSTALL_MODELS
|
||||
BUILT_SOURCES = \
|
||||
operators.asc2g \
|
||||
${MODELS:asc=g}
|
||||
db_DATA = \
|
||||
$(BUILT_SOURCES) \
|
||||
terra.dsp
|
||||
|
||||
else !INSTALL_MODELS
|
||||
BUILT_SOURCES = \
|
||||
operators.asc2g \
|
||||
${BENCHMARK_MODELS:asc=g}
|
||||
db_DATA = $(BUILT_SOURCES)
|
||||
|
||||
endif
|
||||
# end INSTALL_MODELS
|
||||
|
||||
|
||||
MOSTLYCLEANFILES = \
|
||||
${BUILT_SOURCES} \
|
||||
lockfile
|
||||
|
||||
DEPS=src/conv
|
||||
|
||||
include $(top_srcdir)/misc/Makefile.defs
|
||||
-68
@@ -1,68 +0,0 @@
|
||||
title {Untitled BRL-CAD Database}
|
||||
units mm
|
||||
put {xyzringtrc.s} tgc V {0.31168735027313232421875 0.31356084346771240234375 0.2343517243862152099609375} H {-0.02296111360192298889160156 -0.02476786263287067413330078 0.03948847576975822448730469} A {-0.003937630914151668548583984 -0.02411045134067535400390625 -0.01741208322346210479736328} B {0.02662250958383083343505859 -0.01068659685552120208740234 0.008777192793786525726318359} C {-3.937628207495436072349548E-05 -0.0002411044843029230833053589 -0.0001741207961458712816238403} D {0.0002662249607965350151062012 -0.0001068659257725812494754791 8.77717902767471969127655E-05}
|
||||
put {viewdirtrc.s} tgc V {0.08660250157117843627929688 0.08660250157117843627929688 0.08660250157117843627929688} H {-0.07794228941202163696289062 -0.07794228941202163696289062 -0.07794228941202163696289062} A {0 0.02828427031636238098144531 -0.02828427031636238098144531} B {0.03265986219048500061035156 -0.01632993109524250030517578 -0.01632993109524250030517578} C {0 0.000212132028536871075630188 -0.000212132028536871075630188} D {0.0002449489838909357786178589 -0.0001224744919454678893089294 -0.0001224744919454678893089294}
|
||||
put {twistpanel.r} comb region yes tree {l twistpanel.c}
|
||||
attr set {twistpanel.r} {color} {232/198/232} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
|
||||
put {xyzringcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {l ringxyztor.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut4.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l viewdirrcc.s}} {l xyzcutrcc.s}} {l xyzringtrc.s}}
|
||||
put {viewdirrcc.s} tgc V {0.779421329498291015625 0.779421329498291015625 0.779421329498291015625} H {-0.6928203105926513671875 -0.6928203105926513671875 -0.6928203105926513671875} A {0 0.007071067579090595245361328 -0.007071067579090595245361328} B {0.008164965547621250152587891 -0.004082482773810625076293945 -0.004082482773810625076293945} C {0 0.007071067579090595245361328 -0.007071067579090595245361328} D {0.008164965547621250152587891 -0.004082482773810625076293945 -0.004082482773810625076293945}
|
||||
put {twistpanel.c} comb region no tree {- {- {- {l twistrcc.s} {l twisttor.s}} {l twisttrc.s}} {l viewdirrcc.s}}
|
||||
put {ringxytor.s} tor V {0 0 0} H {0 0 1} r_a 0.5 r_h 0.009999999776482582092285156
|
||||
put {twistring.r} comb region yes tree {l twistring.c}
|
||||
attr set {twistring.r} {color} {232/198/232} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
|
||||
put {xyringtrc.s} tgc V {0.3913685381412506103515625 0.3006020486354827880859375 -0.0009004921885207295417785645} H {-0.03143119439482688903808594 0.04401883110404014587402344 -0.0006720747915096580982208252} A {0.02089671231806278228759766 0.01464617997407913208007812 -0.01800444535911083221435547} B {-0.01446941774338483810424805 -0.01072130445390939712524414 -0.02551533468067646026611328} C {0.0002089670742861926555633545 0.0001464617671445012092590332 -0.0001800443860702216625213623} D {-0.0001446941751055419445037842 -0.0001072130180546082556247711 -0.0002551533398218452930450439}
|
||||
put {xyzcutrcc.s} arb8 V1 {0.285196959972381591796875 0.223926544189453125 0.2792418301105499267578125} V2 {0.3270788453519344329833984 0.2655878327786922454833984 0.2198253460228443145751953} V3 {0.3691307827830314636230469 0.3075636327266693115234375 0.2788994473521597683429718} V4 {0.3272488489747047424316406 0.2659022919833660125732422 0.3383159413933753967285156} V5 {0.2260562554001808166503906 0.2832767628133296966552734 0.2791691728780278936028481} V6 {0.2679381202906370162963867 0.3249380290508270263671875 0.2197526805102825164794922} V7 {0.3099901042878627777099609 0.366913974285125732421875 0.2788267984578851610422134} V8 {0.2681080885231494903564453 0.3252525255084037780761719 0.3382433503866195678710938}
|
||||
put {xyringcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {l ringxytor.s} {l cut0.s}} {l cut1.s}} {l cut3.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l ringxyztor.s}} {l xycutrcc.s}} {l xyringtrc.s}}
|
||||
put {testdisks.c} comb region no tree {u {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {- {- {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut3.s}} {l cut0.s}}}
|
||||
put {twistring.c} comb region no tree {u {- {- {l twisttor.s} {l twistcut.s}} {l twisttrc.s}} {l twisttrc.s}}
|
||||
put {halfplane.s} half N {0 0 1} d -0.536277353763580322265625
|
||||
put {halfplane.r} comb region yes tree {l halfplane.s}
|
||||
attr set {halfplane.r} {color} {255/255/255} {shader} {stack {{phong {sp 0.05 di 0.95}} }} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
|
||||
put {twisttor.s} tor V {0.449999988079071044921875 0.449999988079071044921875 0.449999988079071044921875} H {-0.577350269189625731058868 -0.577350269189625731058868 -0.577350269189625731058868} r_a 0.1500000016475442066177237 r_h 0.01000000030444709100962974
|
||||
put {twistcut.s} part V {0.3950000000000000177635684 0.3850000000000000088817842 0.5649999999999999467092948} H {0.0003640000000000000114804 -0.0003699999999999999946917462 -0.0005000000000000000104083409} r_v 0.02800000000000000058286709 r_h 0.02800000000000000058286709
|
||||
put {twisttrc.s} tgc V {0.37255561351776123046875 0.40711653232574462890625 0.57051956653594970703125} H {0.03641721233725547790527344 -0.03706122934818267822265625 -0.0005011741304770112037658691} A {0.01779515855014324188232422 0.01750466972589492797851562 -0.001385415205731987953186035} B {0.001156966434791684150695801 0.0007993413601070642471313477 0.02496042102575302124023438} C {0.0001779512967914342880249023 0.0001750463998178020119667053 -1.385413543175673112273216E-05} D {1.156978123617591336369514E-05 7.993325198185630142688751E-06 0.0002496042288839817047119141}
|
||||
put {xyzpanel.r} comb region yes tree {l xyzcut.c}
|
||||
attr set {xyzpanel.r} {color} {205/253/172} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1003} {material_id} {1} {los} {100}
|
||||
put {twistrcc.s} tgc V {0.4472982883453369140625 0.4472982883453369140625 0.4472982883453369140625} H {0.005773502867668867111206055 0.005773502867668867111206055 0.005773502867668867111206055} A {0 -0.1060660183429718017578125 0.1060660183429718017578125} B {0.1224744841456413269042969 -0.06123724207282066345214844 -0.06123724207282066345214844} C {0 -0.1060660183429718017578125 0.1060660183429718017578125} D {0.1224744841456413269042969 -0.06123724207282066345214844 -0.06123724207282066345214844}
|
||||
put {xycutrcc.s} arb8 V1 {0.4098457992076873779296875 0.330240428447723388671875 -0.03679068386554718017578125} V2 {0.3675903864204883575439453 0.3863152638077735900878906 -0.03679068386160150305741467} V3 {0.3675903864204883575439453 0.3863152638077735900878906 0.03342260420322418212890625} V4 {0.4098457992100617008901509 0.3302404284445723536833839 0.03342260420322418212890625} V5 {0.3537709638476371765136719 0.2879850156605243682861328 -0.03679068386554718017578125} V6 {0.3115155547857284545898438 0.3440598426386713981628418 -0.03679068386160150305741467} V7 {0.3115155547857284545898438 0.3440598426386713981628418 0.03342260420322418212890625} V8 {0.3537709638476371765136719 0.2879850156605243682861328 0.03342260420322418212890625}
|
||||
put {cutdisks.c} comb region no tree {- {- {- {- {- {l disks.c} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut3.s}} {l cut4.s}}
|
||||
put {twistcut.s.backu} ell V {0.3945335447788238525390625 0.383843958377838134765625 0.5655720233917236328125} A {0.03095294535160064697265625 -0.0002858481311704963445663452 -0.0002035317302215844392776489} B {0.0002871743054129183292388916 0.03095294535160064697265625 0.0002016565413214266300201416} C {0.0002016565558733418583869934 -0.0002035317156696692109107971 0.03095364384353160858154297}
|
||||
put {xyzring.r} comb region yes tree {u {l xyzringcut.c} {l xyzringtrc.s}}
|
||||
attr set {xyzring.r} {color} {230/253/215} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1005} {material_id} {1} {los} {100}
|
||||
put {viewdir.r} comb region yes tree {l viewdir.c}
|
||||
attr set {viewdir.r} {color} {253/227/198} {shader} {phong {tr .1 ri 1.5 sh 2}} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
|
||||
put {xypanel.r} comb region yes tree {l xycut.c}
|
||||
attr set {xypanel.r} {color} {178/221/243} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
|
||||
put {diagram.r} comb region no tree {u {u {u {l arrows.r} {l twistpanel.r}} {u {l twistring.r} {l xypanel.r}}} {u {u {l xyring.r} {l xyzpanel.r}} {u {l xyzring.r} {l viewdir.r}}}}
|
||||
put {viewdir.c} comb region no tree {u {l viewdirrcc.s} {- {- {- {l viewdirtrc.s} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}}}
|
||||
put {arrows.r} comb region yes tree {l coordinates.c}
|
||||
attr set {arrows.r} {color} {217/217/254} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
|
||||
put {xyring.r} comb region yes tree {u {l xyringcut.c} {l xyringtrc.s}}
|
||||
attr set {xyring.r} {color} {206/230/242} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1004} {material_id} {1} {los} {100}
|
||||
put {ground.s} ell V {0 0 -10000.08984375} A {10000 0 0} B {0 6.12303176911188629105709E-13 10000} C {0 -10000 6.12303176911188629105709E-13}
|
||||
put {xyzcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut4.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l viewdirtrc.s}} {l viewdirrcc.s}} {l ringxyztor.s}} {l xyzringtrc.s}}
|
||||
put {ground.r} comb region yes tree {l ground.c}
|
||||
attr set {ground.r} {color} {255/255/255} {shader} {stack {{checker {b {192 192 192} s 8192.0}} {phong {sp 0.8 sh 4 em .5}} }} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
|
||||
put {xyzrcc.s} tgc V {0.005014000460505485534667969 -0.004998999647796154022216797 7.123547086408665851564592E-19} H {-0.009999999776482582092285156 0.009999999776482582092285156 0} A {-0.356000006198883056640625 -0.356000006198883056640625 0} B {0 0 0.5} C {-0.356000006198883056640625 -0.356000006198883056640625 0} D {0 0 0.5}
|
||||
put {ground.c} comb region no tree {l ground.s}
|
||||
put {disks2.c} comb region no tree {u {- {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l xyrcc.s}} {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}}}
|
||||
put {light.s} ell V {-98.451141357421875 103.03456878662109375 200.0417633056640625} A {14 0 0} B {0 14 0} C {0 0 14}
|
||||
put {light.r} comb region yes tree {l light.s}
|
||||
attr set {light.r} {color} {255/255/255} {shader} {light {a 270 d {1 0 0} s 16 v 0}} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
|
||||
put {xyrcc.s} tgc V {0 0 -0.004999999888241291046142578} H {0 0 0.009999999776482582092285156} A {0 -0.5 0} B {0.5 0 0} C {0 -0.5 0} D {0.5 0 0}
|
||||
put {xycut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut3.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l xyzrcc.s}} {l ringxytor.s}} {l viewdirtrc.s}} {l xyringtrc.s}} {l viewdirrcc.s}}
|
||||
put {disks.c} comb region no tree {u {- {l xyzrcc.s} {l xyrcc.s}} {l xyrcc.s}}
|
||||
put {rings.c} comb region no tree {u {l ringxytor.s} {l ringxyztor.s}}
|
||||
put {ztec.s} tgc V {0 0 1} H {0 0 0.1000000014901161193847656} A {0.02999999932944774627685547 0 0} B {0 0.02999999932944774627685547 0} C {0.0003000000142492353916168213 0 0} D {0 0.0003000000142492353916168213 0}
|
||||
put {ytec.s} tgc V {0 1 0} H {0 0.1000000014901161193847656 0} A {0.02999999932944774627685547 0 0} B {0 0 0.02999999932944774627685547} C {0.0003000000142492353916168213 0 0} D {0 0 0.0003000000142492353916168213}
|
||||
put {xtec.s} tgc V {1 0 0} H {0.1000000014901161193847656 0 0} A {0 0.02999999932944774627685547 0} B {0 0 0.02999999932944774627685547} C {0 0.0003000000142492353916168213 0} D {0 0 0.0003000000142492353916168213}
|
||||
put {zrcc.s} tgc V {0 0 0} H {0 0 1} A {0 -0.009999999776482582092285156 0} B {0.009999999776482582092285156 0 0} C {0 -0.009999999776482582092285156 0} D {0.009999999776482582092285156 0 0}
|
||||
put {yrcc.s} tgc V {0 0 0} H {0 1 0} A {0 0 0.009999999776482582092285156} B {0.009999999776482582092285156 0 0} C {0 0 0.009999999776482582092285156} D {0.009999999776482582092285156 0 0}
|
||||
put {xrcc.s} tgc V {0 0 0} H {1 0 0} A {0 0 -0.009999999776482582092285156} B {0 0.009999999776482582092285156 0} C {0 0 -0.009999999776482582092285156} D {0 0.009999999776482582092285156 0}
|
||||
put {cut4.s} arb8 V1 {1 1 1} V2 {1 -1 1} V3 {-1 -1 1} V4 {-1 1 1} V5 {-1 -1 -1} V6 {-1 -1 -1} V7 {-1 -1 -1} V8 {-1 -1 -1}
|
||||
put {cut3.s} arb8 V1 {1.010072231292724609375 1.0000178813934326171875 1.010089874267578125} V2 {1.010072231292724831419605 1.0000178813934326171875 -1.0000002384185791015625} V3 {-1.0000178813934326171875 -1.010072231292724609375 -1.0000002384185791015625} V4 {-1.0000178813934326171875 -1.010072231292724609375 1.01008987426757901317842} V5 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V6 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V7 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V8 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625}
|
||||
put {cut2.s} arb8 V1 {1 -1 -1.0051000118255615234375} V2 {1 1 -1.0051000118255615234375} V3 {1 1 -0.0051000118255615234375} V4 {1 -1 -0.0051000118255615234375} V5 {-1 -1 -1.0051000118255615234375} V6 {-1 1 -1.0051000118255615234375} V7 {-1 1 -0.0051000118255615234375} V8 {-1 -1 -0.0051000118255615234375}
|
||||
put {cut1.s} arb8 V1 {0 -1 -1} V2 {0 1 -1} V3 {0 1 1} V4 {0 -1 1} V5 {-1 -1 -1} V6 {-1 1 -1} V7 {-1 1 1} V8 {-1 -1 1}
|
||||
put {cut0.s} arb8 V1 {1 -1 -1} V2 {1 0 -1} V3 {1 0 1} V4 {1 -1 1} V5 {-1 -1 -1} V6 {-1 0 -1} V7 {-1 0 1} V8 {-1 -1 1}
|
||||
put {coordinates.c} comb region no tree {u {u {u {u {u {- {- {l xrcc.s} {l yrcc.s}} {l zrcc.s}} {- {- {l yrcc.s} {l xrcc.s}} {l zrcc.s}}} {- {- {l zrcc.s} {l xrcc.s}} {l yrcc.s}}} {l xtec.s}} {l ytec.s}} {l ztec.s}}
|
||||
put {ringxyztor.s} tor V {0 0 0} H {-0.7071067811865475727373109 0.7071067811865475727373109 0} r_a 0.4999999914428644998132256 r_h 0.009999999670806607177109271
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/bin/sh
|
||||
rt -M -p50 -W \
|
||||
$*\
|
||||
aet.g\
|
||||
'diagram.r' \
|
||||
<<EOF
|
||||
viewsize 3.58095758486442e+00;
|
||||
orientation 4.58468551319667e-01 5.46381543126676e-01 5.36927647047512e-01 4.50535790606452e-01;
|
||||
eye_pt 2.16300884070308e+00 6.60866025843505e-01 3.68751836397137e-01;
|
||||
start 0; clean;
|
||||
end;
|
||||
|
||||
EOF
|
||||
@@ -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}
|
||||
@@ -1,205 +0,0 @@
|
||||
title {ARB8 Unit Test Showcase}
|
||||
units mm
|
||||
attr set {_GLOBAL}
|
||||
|
||||
put {SpanningUnitCube} arb8 V1 {-1 -1 -1} V2 {1 -1 -1} V3 {1 1 -1} V4 {-1 1 -1} V5 {-1 -1 1} V6 {1 -1 1} V7 {1 1 1} V8 {-1 1 1}
|
||||
put {SpanningUnitCube.r} comb region yes tree {l SpanningUnitCube}
|
||||
attr set {SpanningUnitCube.r} {region} {R} {region_id} {8400} {material_id} {1} {los} {100} {rgb} {250/245/180} {oshader} {plastic}
|
||||
|
||||
put {UnitCube_Q1} arb8 V1 {0 0 0} V2 {1 0 0} V3 {1 1 0} V4 {0 1 0} V5 {0 0 1} V6 {1 0 1} V7 {1 1 1} V8 {0 1 1}
|
||||
put {UnitCube_Q1.r} comb region yes tree {l UnitCube_Q1}
|
||||
attr set {UnitCube_Q1.r} {region} {R} {region_id} {8401} {material_id} {1} {los} {100} {rgb} {255/106/106} {oshader} {plastic}
|
||||
|
||||
put {UnitCube_Q2} arb8 V1 {-1 0 0} V2 {0 0 0} V3 {0 1 0} V4 {-1 1 0} V5 {-1 0 1} V6 {0 0 1} V7 {0 1 1} V8 {-1 1 1}
|
||||
put {UnitCube_Q2.r} comb region yes tree {l UnitCube_Q2}
|
||||
attr set {UnitCube_Q2.r} {region} {R} {region_id} {8402} {material_id} {1} {los} {100} {rgb} {255/170/92} {oshader} {plastic}
|
||||
|
||||
put {UnitCube_Q3} arb8 V1 {-1 -1 0} V2 {0 -1 0} V3 {0 0 0} V4 {-1 0 0} V5 {-1 -1 1} V6 {0 -1 1} V7 {0 0 1} V8 {-1 0 1}
|
||||
put {UnitCube_Q3.r} comb region yes tree {l UnitCube_Q3}
|
||||
attr set {UnitCube_Q3.r} {region} {R} {region_id} {8403} {material_id} {1} {los} {100} {rgb} {255/224/102} {oshader} {plastic}
|
||||
|
||||
put {UnitCube_Q4} arb8 V1 {0 -1 0} V2 {1 -1 0} V3 {1 0 0} V4 {0 0 0} V5 {0 -1 1} V6 {1 -1 1} V7 {1 0 1} V8 {0 0 1}
|
||||
put {UnitCube_Q4.r} comb region yes tree {l UnitCube_Q4}
|
||||
attr set {UnitCube_Q4.r} {region} {R} {region_id} {8404} {material_id} {1} {los} {100} {rgb} {191/224/64} {oshader} {plastic}
|
||||
|
||||
put {UnitCube_Q5} arb8 V1 {0 0 -1} V2 {1 0 -1} V3 {1 1 -1} V4 {0 1 -1} V5 {0 0 0} V6 {1 0 0} V7 {1 1 0} V8 {0 1 0}
|
||||
put {UnitCube_Q5.r} comb region yes tree {l UnitCube_Q5}
|
||||
attr set {UnitCube_Q5.r} {region} {R} {region_id} {8405} {material_id} {1} {los} {100} {rgb} {105/206/107} {oshader} {plastic}
|
||||
|
||||
put {UnitCube_Q6} arb8 V1 {-1 0 -1} V2 {0 0 -1} V3 {0 1 -1} V4 {-1 1 -1} V5 {-1 0 0} V6 {0 0 0} V7 {0 1 0} V8 {-1 1 0}
|
||||
put {UnitCube_Q6.r} comb region yes tree {l UnitCube_Q6}
|
||||
attr set {UnitCube_Q6.r} {region} {R} {region_id} {8406} {material_id} {1} {los} {100} {rgb} {82/197/194} {oshader} {plastic}
|
||||
|
||||
put {UnitCube_Q7} arb8 V1 {-1 -1 -1} V2 {0 -1 -1} V3 {0 0 -1} V4 {-1 0 -1} V5 {-1 -1 0} V6 {0 -1 0} V7 {0 0 0} V8 {-1 0 0}
|
||||
put {UnitCube_Q7.r} comb region yes tree {l UnitCube_Q7}
|
||||
attr set {UnitCube_Q7.r} {region} {R} {region_id} {8407} {material_id} {1} {los} {100} {rgb} {92/146/255} {oshader} {plastic}
|
||||
|
||||
put {UnitCube_Q8} arb8 V1 {0 -1 -1} V2 {1 -1 -1} V3 {1 0 -1} V4 {0 0 -1} V5 {0 -1 0} V6 {1 -1 0} V7 {1 0 0} V8 {0 0 0}
|
||||
put {UnitCube_Q8.r} comb region yes tree {l UnitCube_Q8}
|
||||
attr set {UnitCube_Q8.r} {region} {R} {region_id} {8408} {material_id} {1} {los} {100} {rgb} {165/122/255} {oshader} {plastic}
|
||||
|
||||
put {Elongated_X1} arb8 V1 {-1 0 0} V2 {1 0 0} V3 {1 1 0} V4 {-1 1 0} V5 {-1 0 1} V6 {1 0 1} V7 {1 1 1} V8 {-1 1 1}
|
||||
put {Elongated_X1.r} comb region yes tree {l Elongated_X1}
|
||||
attr set {Elongated_X1.r} {region} {R} {region_id} {8409} {material_id} {1} {los} {100} {rgb} {255/120/120} {oshader} {plastic}
|
||||
|
||||
put {Elongated_X2} arb8 V1 {-1 -1 0} V2 {1 -1 0} V3 {1 0 0} V4 {-1 0 0} V5 {-1 -1 1} V6 {1 -1 1} V7 {1 0 1} V8 {-1 0 1}
|
||||
put {Elongated_X2.r} comb region yes tree {l Elongated_X2}
|
||||
attr set {Elongated_X2.r} {region} {R} {region_id} {8410} {material_id} {1} {los} {100} {rgb} {214/72/72} {oshader} {plastic}
|
||||
|
||||
put {Elongated_Y1} arb8 V1 {0 -1 0} V2 {1 -1 0} V3 {1 1 0} V4 {0 1 0} V5 {0 -1 1} V6 {1 -1 1} V7 {1 1 1} V8 {0 1 1}
|
||||
put {Elongated_Y1.r} comb region yes tree {l Elongated_Y1}
|
||||
attr set {Elongated_Y1.r} {region} {R} {region_id} {8411} {material_id} {1} {los} {100} {rgb} {255/191/94} {oshader} {plastic}
|
||||
|
||||
put {Elongated_Y2} arb8 V1 {-1 -1 0} V2 {0 -1 0} V3 {0 1 0} V4 {-1 1 0} V5 {-1 -1 1} V6 {0 -1 1} V7 {0 1 1} V8 {-1 1 1}
|
||||
put {Elongated_Y2.r} comb region yes tree {l Elongated_Y2}
|
||||
attr set {Elongated_Y2.r} {region} {R} {region_id} {8412} {material_id} {1} {los} {100} {rgb} {214/150/60} {oshader} {plastic}
|
||||
|
||||
put {Elongated_Z1} arb8 V1 {0 0 -1} V2 {1 0 -1} V3 {1 1 -1} V4 {0 1 -1} V5 {0 0 1} V6 {1 0 1} V7 {1 1 1} V8 {0 1 1}
|
||||
put {Elongated_Z1.r} comb region yes tree {l Elongated_Z1}
|
||||
attr set {Elongated_Z1.r} {region} {R} {region_id} {8413} {material_id} {1} {los} {100} {rgb} {114/210/255} {oshader} {plastic}
|
||||
|
||||
put {Elongated_Z2} arb8 V1 {-1 0 -1} V2 {0 0 -1} V3 {0 1 -1} V4 {-1 1 -1} V5 {-1 0 1} V6 {0 0 1} V7 {0 1 1} V8 {-1 1 1}
|
||||
put {Elongated_Z2.r} comb region yes tree {l Elongated_Z2}
|
||||
attr set {Elongated_Z2.r} {region} {R} {region_id} {8414} {material_id} {1} {los} {100} {rgb} {63/152/214} {oshader} {plastic}
|
||||
|
||||
put {ReverseUnitCube} arb8 V1 {0 0 0} V2 {0 1 0} V3 {1 1 0} V4 {1 0 0} V5 {0 0 1} V6 {0 1 1} V7 {1 1 1} V8 {1 0 1}
|
||||
put {ReverseUnitCube.r} comb region yes tree {l ReverseUnitCube}
|
||||
attr set {ReverseUnitCube.r} {region} {R} {region_id} {8415} {material_id} {1} {los} {100} {rgb} {230/230/230} {oshader} {plastic}
|
||||
|
||||
put {TopSlanted} arb8 V1 {0 0 0} V2 {1 0 0} V3 {1 1 0} V4 {0 1 0} V5 {0.2 0.2 1} V6 {1.2 0.2 1} V7 {1.2 1.2 1} V8 {0.2 1.2 1}
|
||||
put {TopSlanted.r} comb region yes tree {l TopSlanted}
|
||||
attr set {TopSlanted.r} {region} {R} {region_id} {8416} {material_id} {1} {los} {100} {rgb} {255/164/132} {oshader} {plastic}
|
||||
|
||||
put {UnevenSlanted} arb8 V1 {0 0 0} V2 {1 0 0} V3 {1 1 0} V4 {0 1 0} V5 {0.1 0.3 1} V6 {1.1 0.3 1} V7 {1.3 1.3 1} V8 {0.1 1.3 1}
|
||||
put {UnevenSlanted.r} comb region yes tree {l UnevenSlanted}
|
||||
attr set {UnevenSlanted.r} {region} {R} {region_id} {8417} {material_id} {1} {los} {100} {rgb} {255/132/178} {oshader} {plastic}
|
||||
|
||||
put {OppositeSlanted} arb8 V1 {0 0 0} V2 {1 0 0} V3 {1 1 0} V4 {0 1 0} V5 {-0.2 0.2 1} V6 {0.8 0.2 1} V7 {0.8 1.2 1} V8 {-0.2 1.2 1}
|
||||
put {OppositeSlanted.r} comb region yes tree {l OppositeSlanted}
|
||||
attr set {OppositeSlanted.r} {region} {R} {region_id} {8418} {material_id} {1} {los} {100} {rgb} {210/132/255} {oshader} {plastic}
|
||||
|
||||
put {PlanarARB6} arb8 V1 {0 0 0} V2 {1 0 0} V3 {1 1 0} V4 {0.5 0.5 0} V5 {0 0 1} V6 {1 0 1} V7 {1 1 1} V8 {0.5 0.5 1}
|
||||
put {PlanarARB6.r} comb region yes tree {l PlanarARB6}
|
||||
attr set {PlanarARB6.r} {region} {R} {region_id} {8419} {material_id} {1} {los} {100} {rgb} {165/152/255} {oshader} {plastic}
|
||||
|
||||
put {ConcavePlanar} arb8 V1 {0 0 0} V2 {1 0 0} V3 {1 1 0} V4 {0.6 0.4 0} V5 {0 0 1} V6 {1 0 1} V7 {1 1 1} V8 {0.6 0.4 1}
|
||||
put {ConcavePlanar.r} comb region yes tree {l ConcavePlanar}
|
||||
attr set {ConcavePlanar.r} {region} {R} {region_id} {8420} {material_id} {1} {los} {100} {rgb} {124/219/168} {oshader} {plastic}
|
||||
|
||||
put {MoreConcavePlanar} arb8 V1 {0 0 0} V2 {1 0 0} V3 {0.3 0.3 0} V4 {0 1 0} V5 {0 0 1} V6 {1 0 1} V7 {0.3 0.3 1} V8 {0 1 1}
|
||||
put {MoreConcavePlanar.r} comb region yes tree {l MoreConcavePlanar}
|
||||
attr set {MoreConcavePlanar.r} {region} {R} {region_id} {8421} {material_id} {1} {los} {100} {rgb} {61/184/132} {oshader} {plastic}
|
||||
|
||||
put {TwistedCubeNonPlanar} arb8 V1 {0 0 0} V2 {1 0 0} V3 {1 1 0} V4 {0 1 0} V5 {-0.183 0.317 1} V6 {0.683 -0.183 1} V7 {1.183 0.683 1} V8 {0.317 1.183 1}
|
||||
put {TwistedCubeNonPlanar.r} comb region yes tree {l TwistedCubeNonPlanar}
|
||||
attr set {TwistedCubeNonPlanar.r} {region} {R} {region_id} {8422} {material_id} {1} {los} {100} {rgb} {120/233/255} {oshader} {plastic}
|
||||
|
||||
put {LongConvexPlanar} arb8 V1 {4281 -119 1531} V2 {4281 78 1531} V3 {3322 78 1475} V4 {3322 -119 1475} V5 {4275 -119 1629} V6 {4275 78 1649} V7 {3315 78 1593} V8 {3315 -119 1573}
|
||||
put {LongConvexPlanar.r} comb region yes tree {l LongConvexPlanar}
|
||||
attr set {LongConvexPlanar.r} {region} {R} {region_id} {8423} {material_id} {1} {los} {100} {rgb} {255/216/128} {oshader} {plastic}
|
||||
|
||||
put {TaperedConvexPlanar} arb8 V1 {122.749 2.4 40.725} V2 {122.749 -7.4 40.725} V3 {122.611 -5 43.244} V4 {122.611 0 43.244} V5 {105.434 2.4 39.708} V6 {105.434 -7.4 39.708} V7 {105.295 -5 42.228} V8 {105.295 0 42.228}
|
||||
put {TaperedConvexPlanar.r} comb region yes tree {l TaperedConvexPlanar}
|
||||
attr set {TaperedConvexPlanar.r} {region} {R} {region_id} {8424} {material_id} {1} {los} {100} {rgb} {255/172/104} {oshader} {plastic}
|
||||
|
||||
put {BigConcavePlanar} arb8 V1 {500 -500 -500} V2 {500 500 -500} V3 {500 -169.922 -304.688} V4 {500 -500 500} V5 {400 -500 -500} V6 {400 500 -500} V7 {400 -169.922 -304.688} V8 {400 -500 500}
|
||||
put {BigConcavePlanar.r} comb region yes tree {l BigConcavePlanar}
|
||||
attr set {BigConcavePlanar.r} {region} {R} {region_id} {8425} {material_id} {1} {los} {100} {rgb} {255/115/87} {oshader} {plastic}
|
||||
|
||||
put {WarpedNonPlanar} arb8 V1 {0 0 0} V2 {1 0 0.1} V3 {1.1 1 0} V4 {0 1.1 -0.1} V5 {0.1 0 1} V6 {1 0.1 1.1} V7 {1.1 1.1 0.9} V8 {0 1 1}
|
||||
put {WarpedNonPlanar.r} comb region yes tree {l WarpedNonPlanar}
|
||||
attr set {WarpedNonPlanar.r} {region} {R} {region_id} {8426} {material_id} {1} {los} {100} {rgb} {255/99/156} {oshader} {plastic}
|
||||
|
||||
put {TwistedTopNonPlanar} arb8 V1 {0 0 0} V2 {1 0 -0.1} V3 {1.1 1.1 0} V4 {0 1.2 0.1} V5 {0.2 0 0.9} V6 {1 0.1 1.2} V7 {1.2 1.2 0.8} V8 {0 1 1}
|
||||
put {TwistedTopNonPlanar.r} comb region yes tree {l TwistedTopNonPlanar}
|
||||
attr set {TwistedTopNonPlanar.r} {region} {R} {region_id} {8427} {material_id} {1} {los} {100} {rgb} {216/118/255} {oshader} {plastic}
|
||||
|
||||
put {ComplexNonPlanar} arb8 V1 {0 0 0} V2 {0.8 0 0.1} V3 {1.1 0.9 0.2} V4 {0.1 1.1 -0.2} V5 {0.2 -0.2 0.8} V6 {1 0 1.1} V7 {1.1 0.9 0.9} V8 {0 1 0.9}
|
||||
put {ComplexNonPlanar.r} comb region yes tree {l ComplexNonPlanar}
|
||||
attr set {ComplexNonPlanar.r} {region} {R} {region_id} {8428} {material_id} {1} {los} {100} {rgb} {139/132/255} {oshader} {plastic}
|
||||
|
||||
put {ConcaveNonPlanar} arb8 V1 {0 0 0} V2 {1 0 0} V3 {1 1 0} V4 {0 1 0} V5 {0 0 1} V6 {0.4 0.4 1} V7 {1 1 1} V8 {0 1 1}
|
||||
put {ConcaveNonPlanar.r} comb region yes tree {l ConcaveNonPlanar}
|
||||
attr set {ConcaveNonPlanar.r} {region} {R} {region_id} {8429} {material_id} {1} {los} {100} {rgb} {110/207/255} {oshader} {plastic}
|
||||
|
||||
put {MoreConcaveNonPlanar} arb8 V1 {0 0 0} V2 {1 0 -0.05} V3 {1 1 0.03} V4 {0.7 0.3 0.32} V5 {0 0 1} V6 {1 0 1.1} V7 {1 1 0.92} V8 {0.7 0.3 0.7}
|
||||
put {MoreConcaveNonPlanar.r} comb region yes tree {l MoreConcaveNonPlanar}
|
||||
attr set {MoreConcaveNonPlanar.r} {region} {R} {region_id} {8430} {material_id} {1} {los} {100} {rgb} {89/188/197} {oshader} {plastic}
|
||||
|
||||
put {MostConcaveNonPlanar} arb8 V1 {0.2 0 0} V2 {1 0.3 0.1} V3 {1.1 1 -0.25} V4 {0.4 0.6 0} V5 {0 0.2 1} V6 {0.9 0 1.25} V7 {1 0.8 0.6} V8 {0.4 0.3 0.8}
|
||||
put {MostConcaveNonPlanar.r} comb region yes tree {l MostConcaveNonPlanar}
|
||||
attr set {MostConcaveNonPlanar.r} {region} {R} {region_id} {8431} {material_id} {1} {los} {100} {rgb} {71/226/179} {oshader} {plastic}
|
||||
|
||||
put {LargeSaddlePlanar} arb8 V1 {1000 -1000 -1000} V2 {1000 1000 -900} V3 {1000 1000 1100} V4 {1000 -1000 1000} V5 {-1000 -1000 -900} V6 {-1000 1000 -1000} V7 {-1000 1000 1000} V8 {-1000 -1000 1100}
|
||||
put {LargeSaddlePlanar.r} comb region yes tree {l LargeSaddlePlanar}
|
||||
attr set {LargeSaddlePlanar.r} {region} {R} {region_id} {8432} {material_id} {1} {los} {100} {rgb} {198/242/117} {oshader} {plastic}
|
||||
|
||||
put {groundplane} arb8 V1 {-1100 -800 -190} V2 {1100 -800 -190} V3 {1100 800 -190} V4 {-1100 800 -190} V5 {-1100 -800 -170} V6 {1100 -800 -170} V7 {1100 800 -170} V8 {-1100 800 -170}
|
||||
put {groundplane.r} comb region yes tree {l groundplane}
|
||||
attr set {groundplane.r} {region} {R} {region_id} {8433} {material_id} {1} {los} {100} {rgb} {240/240/240} {oshader} {stack {{checker {b {190 190 190} s 20}} {plastic {di .85 sp .15}}}}
|
||||
|
||||
put {lightpanel} arb8 V1 {-260 -160 1640} V2 {260 -160 1640} V3 {260 160 1640} V4 {-260 160 1640} V5 {-260 -160 1660} V6 {260 -160 1660} V7 {260 160 1660} V8 {-260 160 1660}
|
||||
put {light.r} comb region yes tree {l lightpanel}
|
||||
attr set {light.r} {region} {R} {region_id} {8434} {material_id} {1} {los} {100} {rgb} {255/255/245} {oshader} {light {s 32 v 0}} {shader} {light {s 32 v 0}}
|
||||
|
||||
put {SpanningUnitCube.place} comb region no tree {l SpanningUnitCube.r {49.4183462128 -6.50277282681 33.3997156149 -520 16.0569940398 56.3810489085 -12.7808554638 340 -30 19.4651295794 48.177886322 20 0 0 0 1}}
|
||||
put {UnitCube_Q1.place} comb region no tree {l UnitCube_Q1.r {95.3783673293 -58.1118549187 43.8859814008 -372.171276719 66.7846517861 98.6327164348 -14.5395163089 396.483654405 -29.030627472 35.9805442786 110.736728785 16.1566772042 0 0 0 1}}
|
||||
put {UnitCube_Q2.place} comb region no tree {l UnitCube_Q2.r {-95.3783673293 -58.1118549187 43.8859814008 -748.981217092 66.7846517861 -98.6327164348 14.5395163089 547.361506317 29.030627472 35.9805442786 110.736728785 16.1566772042 0 0 0 1}}
|
||||
put {UnitCube_Q3.place} comb region no tree {l UnitCube_Q3.r {-95.3783673293 72.8090108537 1.34721346343 -720.363255156 -66.7846517861 -88.341657059 46.2121403301 107.408195052 29.030627472 35.9805442786 110.736728785 52.1372214828 0 0 0 1}}
|
||||
put {UnitCube_Q4.place} comb region no tree {l UnitCube_Q4.r {95.3783673293 72.8090108537 1.34721346343 -343.553314783 -66.7846517861 88.341657059 -46.2121403301 308.746644227 -29.030627472 35.9805442786 110.736728785 52.1372214828 0 0 0 1}}
|
||||
put {UnitCube_Q5.place} comb region no tree {l UnitCube_Q5.r {39.8232820043 -110.312342921 -25.402622104 -418.792147629 109.413568075 30.603715996 38.6274991197 505.434410305 -29.030627472 -35.9805442786 110.736728785 52.8739502678 0 0 0 1}}
|
||||
put {UnitCube_Q6.place} comb region no tree {l UnitCube_Q6.r {-39.8232820043 -110.312342921 -25.402622104 -576.121413559 109.413568075 -30.603715996 -38.6274991197 606.824195257 29.030627472 -35.9805442786 110.736728785 52.8739502678 0 0 0 1}}
|
||||
put {UnitCube_Q7.place} comb region no tree {l UnitCube_Q7.r {-39.8232820043 104.175846754 44.2888153308 -544.343942924 -109.413568075 -47.4636006473 13.2618903102 52.063058013 29.030627472 -35.9805442786 110.736728785 16.8934059891 0 0 0 1}}
|
||||
put {UnitCube_Q8.place} comb region no tree {l UnitCube_Q8.r {39.8232820043 104.175846754 44.2888153308 -387.014676995 -109.413568075 47.4636006473 -13.2618903102 195.678336425 -29.030627472 -35.9805442786 110.736728785 16.8934059891 0 0 0 1}}
|
||||
|
||||
put {Elongated_X1.place} comb region no tree {l Elongated_X1.r {52.9768555715 8.7044814766 26.7896393402 702.252939592 0 57.0633909777 -18.5410196625 320.738814342 -28.1682937672 16.3707486802 50.3839837041 6.62263380786 0 0 0 1}}
|
||||
put {Elongated_X2.place} comb region no tree {l Elongated_X2.r {-53.927642778 8.12784805209 -25.0149441426 336.571396097 0 -57.0633909777 -18.5410196625 320.738814342 -26.3022688073 -16.664558085 51.2882360724 -53.9763970787 0 0 0 1}}
|
||||
put {Elongated_Y1.place} comb region no tree {l Elongated_Y1.r {24.8029823249 -45.5382654557 30.1840760513 592.506470812 53.190167245 27.696794106 -1.92190132524 487.570947797 -12.4747014491 27.5527489651 51.8191841717 -29.6722413613 0 0 0 1}}
|
||||
put {Elongated_Y2.place} comb region no tree {l Elongated_Y2.r {-24.8029823249 50.4884080186 -20.8742119261 418.035614801 -53.190167245 -17.0811791223 21.8869693709 129.256350935 12.4747014491 27.5527489651 51.8191841717 10.3277586387 0 0 0 1}}
|
||||
put {Elongated_Z1.place} comb region no tree {l Elongated_Z1.r {-28.1907786236 -48.449629644 21.3989109057 458.320204134 48.827860881 -14.3810251633 31.7651714468 495.981662898 -20.5212085995 32.3391326817 46.1850678792 29.0910379589 0 0 0 1}}
|
||||
put {Elongated_Z2.place} comb region no tree {l Elongated_Z2.r {28.5316954889 37.2470428028 37.3978629734 615.642326343 -49.4183462128 33.7844747485 4.0541735977 125.193508762 -18.5410196625 -32.7302164431 46.7435933735 -7.9054016097 0 0 0 1}}
|
||||
|
||||
put {ReverseUnitCube.place} comb region no tree {l ReverseUnitCube.r {103.433991196 -60.555851917 5.86500332073 -784.3715713 48.2320622081 88.6693278124 64.8954426786 -345.89841635 -37.082039325 -53.5792786803 100.767967408 14.9466752985 0 0 0 1}}
|
||||
put {TopSlanted.place} comb region no tree {l TopSlanted.r {96.3287340793 15.3039561576 -22.0581938655 -655.950517209 -20.4753045059 95.0207291039 -23.4909119866 -277.981798765 17.3648177667 27.1449805028 94.6657970834 -64.0387775034 0 0 0 1}}
|
||||
put {UnevenSlanted.place} comb region no tree {l UnevenSlanted.r {88.2050542109 -14.8789457562 22.785860616 -499.054900804 21.9919900071 84.4965683945 -29.9565078782 -299.239309022 -16.0290625539 34.053736387 84.2859552411 -35.8590156121 0 0 0 1}}
|
||||
put {OppositeSlanted.place} comb region no tree {l OppositeSlanted.r {82.3639103546 42.0405555876 -38.0628159361 -319.138489526 -47.5528258148 87.7679736664 -5.95915728267 -275.660075233 30.9016994375 23.0081395245 92.2806073208 -60.3058671501 0 0 0 1}}
|
||||
put {PlanarARB6.place} comb region no tree {l PlanarARB6.r {115.594480895 8.17480470115 31.1622937968 -837.465789697 20.3824258028 71.3324119214 -94.3199010171 -433.697468354 -24.9494028981 96.1501928109 67.3250898065 -79.2629398596 0 0 0 1}}
|
||||
put {ConcavePlanar.place} comb region no tree {l ConcavePlanar.r {107.244094838 -4.19493374266 53.6759411037 -678.362551099 -34.8457187174 85.7908832775 76.3262748569 -498.635719709 -41.0424171991 -83.7993250412 75.4532511765 6.69424553188 0 0 0 1}}
|
||||
put {MoreConcavePlanar.place} comb region no tree {l MoreConcavePlanar.r {98.2385703033 -68.8300310449 3.40736424785 -456.407951753 52.2343743832 70.4997088106 -81.8618420903 -455.436120552 44.9527912099 68.4997655761 87.6757017563 -114.564129271 0 0 0 1}}
|
||||
put {TwistedCubeNonPlanar.place} comb region no tree {l TwistedCubeNonPlanar.r {58.6764988003 -36.5971430924 54.1750992397 -318.127227474 52.8325568251 69.4213241451 -10.3259123031 -490.963984334 -38.5099104061 39.4785086222 68.3787827407 -18.6736904784 0 0 0 1}}
|
||||
|
||||
put {WarpedNonPlanar.place} comb region no tree {l WarpedNonPlanar.r {85.9669900169 48.3491658661 16.4934771193 257.879375705 -34.7329185229 78.9947205011 -50.5317573791 -244.078112398 -37.4606593416 37.7119648521 84.7024598739 -20.4894479677 0 0 0 1}}
|
||||
put {TwistedTopNonPlanar.place} comb region no tree {l TwistedTopNonPlanar.r {83.4930920481 -37.5301552898 11.8785977012 485.889009209 27.1285501058 75.0409121486 46.407039684 -331.825549179 -28.5246456346 -38.4845294501 78.9049785729 30.8077668357 0 0 0 1}}
|
||||
put {ComplexNonPlanar.place} comb region no tree {l ComplexNonPlanar.r {68.2221969569 -62.1661301805 -1.34690754179 691.058658649 49.5663274432 55.5767314233 -54.5446254664 -272.725927774 37.5449208993 39.589256647 74.4565627193 -51.9703252094 0 0 0 1}}
|
||||
put {ConcaveNonPlanar.place} comb region no tree {l ConcaveNonPlanar.r {99.563920506 36.7265877365 56.0194920247 243.844999866 -52.9390755862 104.63063394 25.4928365894 -473.592197472 -41.0424171991 -45.8648906522 103.014231036 -8.05346159232 0 0 0 1}}
|
||||
put {MoreConcaveNonPlanar.place} comb region no tree {l MoreConcaveNonPlanar.r {91.7377293852 -5.0835848262 49.4652906758 450.703650116 19.4994563335 99.1649372544 -25.9722011215 -480.696791205 -45.7430761867 32.0771132385 88.131144304 -21.4358692855 0 0 0 1}}
|
||||
put {MostConcaveNonPlanar.place} comb region no tree {l MostConcaveNonPlanar.r {58.9095344445 52.9796505277 11.0825710686 635.568645257 -49.4309686252 45.9860647701 42.9169102771 -452.26445478 22.0509884654 -38.4504678375 66.5981638694 5.79810832812 0 0 0 1}}
|
||||
|
||||
put {LongConvexPlanar.place} comb region no tree {l LongConvexPlanar.r {0.115561944047 0.0319553637337 0.0324930028006 -639.003248908 -0.0245634494865 0.1182771118 -0.0289597166373 280.951739329 -0.0383872042702 0.0205154324115 0.116348798857 4.47834436767 0 0 0 1}}
|
||||
put {TaperedConvexPlanar.place} comb region no tree {l TaperedConvexPlanar.r {5.7378157661 -3.26643327706 1.91741052485 -591.929831404 2.55464017008 5.90709171549 2.41840036102 -236.823025558 -2.7964018087 -1.30585617557 6.14357028226 90.775965566 0 0 0 1}}
|
||||
put {BigConcavePlanar.place} comb region no tree {l BigConcavePlanar.r {0.0998972458041 0.0482115762187 -0.0457841042204 -194.953760612 -0.0576757017563 0.103947290059 -0.0163851858765 -114.04593421 0.033076482698 0.0356455440104 0.109705703974 -4.88441721412 0 0 0 1}}
|
||||
put {LargeSaddlePlanar.place} comb region no tree {l LargeSaddlePlanar.r {0.0470204253358 -0.0323394992732 0.0029227573361 149.853862133 0.0293816227061 0.0445634112955 0.0203992338904 -141.019961695 -0.01382410832 -0.0152828427629 0.0532976065944 41.3351196703 0 0 0 1}}
|
||||
|
||||
put {arb8_quadrants.c} comb region no tree {u {u {u {u {u {u {u {u {l SpanningUnitCube.place} {l UnitCube_Q1.place}} {l UnitCube_Q2.place}} {l UnitCube_Q3.place}} {l UnitCube_Q4.place}} {l UnitCube_Q5.place}} {l UnitCube_Q6.place}} {l UnitCube_Q7.place}} {l UnitCube_Q8.place}}
|
||||
attr set {arb8_quadrants.c} {inherit} {1}
|
||||
|
||||
put {arb8_axes.c} comb region no tree {u {u {u {u {u {l Elongated_X1.place} {l Elongated_X2.place}} {l Elongated_Y1.place}} {l Elongated_Y2.place}} {l Elongated_Z1.place}} {l Elongated_Z2.place}}
|
||||
attr set {arb8_axes.c} {inherit} {1}
|
||||
|
||||
put {arb8_planar.c} comb region no tree {u {u {u {u {u {u {u {l ReverseUnitCube.place} {l TopSlanted.place}} {l UnevenSlanted.place}} {l OppositeSlanted.place}} {l PlanarARB6.place}} {l ConcavePlanar.place}} {l MoreConcavePlanar.place}} {l TwistedCubeNonPlanar.place}}
|
||||
attr set {arb8_planar.c} {inherit} {1}
|
||||
|
||||
put {arb8_nonplanar.c} comb region no tree {u {u {u {u {u {l WarpedNonPlanar.place} {l TwistedTopNonPlanar.place}} {l ComplexNonPlanar.place}} {l ConcaveNonPlanar.place}} {l MoreConcaveNonPlanar.place}} {l MostConcaveNonPlanar.place}}
|
||||
attr set {arb8_nonplanar.c} {inherit} {1}
|
||||
|
||||
put {arb8_large_planars.c} comb region no tree {u {u {u {l LongConvexPlanar.place} {l TaperedConvexPlanar.place}} {l BigConcavePlanar.place}} {l LargeSaddlePlanar.place}}
|
||||
attr set {arb8_large_planars.c} {inherit} {1}
|
||||
|
||||
put {arb8_small_gallery.c} comb region no tree {u {u {u {l arb8_quadrants.c} {l arb8_axes.c}} {l arb8_planar.c}} {l arb8_nonplanar.c}}
|
||||
attr set {arb8_small_gallery.c} {inherit} {1}
|
||||
|
||||
put {arb8_large_gallery.c} comb region no tree {l arb8_large_planars.c}
|
||||
attr set {arb8_large_gallery.c} {inherit} {1}
|
||||
|
||||
put {arb8_showcase} comb region no tree {u {u {u {l arb8_small_gallery.c} {l arb8_large_gallery.c}} {l groundplane.r}} {l light.r}}
|
||||
attr set {arb8_showcase} {inherit} {1}
|
||||
@@ -1,43 +0,0 @@
|
||||
title {Single Row 7-ball Deep Groove 608Z Ball Bearing, 8mm ID x 22mm OD x 7mm}
|
||||
units mm
|
||||
put {ballgroove.s} tor V {0 0 0} H {0 1 0} r_a 7.5 r_h 2
|
||||
put {innerringrightround.s} tor V {0 3.399999999999999911182158 0} H {0 1 0} r_a 4.099999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {outerringmainin.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 9.599999999999999644728632} B {9.599999999999999644728632 0 0} C {0 0 9.599999999999999644728632} D {9.599999999999999644728632 0 0}
|
||||
put {outerringmaincenter.s} tgc V {0 -3.399999999999999911182158 0} H {0 6.799999999999999822364316 0} A {0 0 11} B {11 0 0} C {0 0 11} D {11 0 0}
|
||||
put {innerring2.s} tgc V {0 -3.399999999999999911182158 0} H {0 6.799999999999999822364316 0} A {0 0 5.400000000000000355271368} B {5.400000000000000355271368 0 0} C {0 0 5.400000000000000355271368} D {5.400000000000000355271368 0 0}
|
||||
put {innerring2leftround.s} tor V {0 -3.399999999999999911182158 0} H {0 1 0} r_a 5.299999999999999822364316 r_h 0.1000000000000000055511151
|
||||
put {outerringmaininrightround.s} tor V {0 3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 9.599999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {outerringinner2.s} tgc V {0 -2.200000000000000177635684 0} H {0 4.400000000000000355271368 0} A {0 0 9.5} B {9.5 0 0} C {0 0 9.5} D {9.5 0 0}
|
||||
put {outerringmainleftround.s} tor V {0 -3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 10.90000000000000035527137 r_h 0.1000000000000000055511151
|
||||
put {outerring.r} comb region yes tree {u {u {u {u {u {u {u {u {u {- {- {l outerringmaincenter.s} {l outerringmainfullcut.s}} {l ballgroove.s}} {- {- {l outerringmainout.s} {l outerringmainin.s}} {l ballgroove.s}}} {- {- {l outerringinner.s} {l outerringinnercut.s}} {l ballgroove.s}}} {- {- {l outerringinner2.s} {l outerringinnercut2.s}} {l ballgroove.s}}} {l outerringmainleftround.s}} {l outerringmainrightround.s}} {l outerringmaininleftround.s}} {l outerringmaininrightround.s}} {l outerringinnerrightround.s}} {l outerringinnerleftround.s}}
|
||||
attr set {outerring.r} {region} {R} {region_id} {1010} {material_id} {1} {los} {100}
|
||||
put {innerring.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 5.299999999999999822364316} B {5.299999999999999822364316 0 0} C {0 0 5.299999999999999822364316} D {5.299999999999999822364316 0 0}
|
||||
put {innerring.r} comb region yes tree {u {u {u {u {u {u {u {u {- {- {l innneroutercenter.s} {l ballgroove.s}} {l shaftcut1.s}} {- {- {l innerring.s} {l ballgroove.s}} {l shaftcut2.s}}} {- {- {l innerring2.s} {l ballgroove.s}} {l shaftcut1.s}}} {- {l innerlefttrc.s} {l shaftcut1.s}}} {- {l innerrighttrc.s} {l shaftcut1.s}}} {l innerring2leftround.s}} {l innerring2rightround.s}} {l innerringleftround.s}} {l innerringrightround.s}}
|
||||
attr set {innerring.r} {region} {R} {region_id} {1004} {material_id} {1} {los} {100}
|
||||
put {shaftcut2.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 4.099999999999999644728632} B {4.099999999999999644728632 0 0} C {0 0 4.099999999999999644728632} D {4.099999999999999644728632 0 0}
|
||||
put {shaftcut1.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 4} B {4 0 0} C {0 0 4} D {4 0 0}
|
||||
put {outerringinner.s} tgc V {0 -2.299999999999999822364316 0} H {0 4.599999999999999644728632 0} A {0 0 9.5} B {9.5 0 0} C {0 0 9.5} D {9.5 0 0}
|
||||
put {innerringleftround.s} tor V {0 -3.399999999999999911182158 0} H {0 1 0} r_a 4.099999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {outerringinnercut2.s} tgc V {0 -2.299999999999999822364316 0} H {0 4.599999999999999644728632 0} A {0 0 9} B {9 0 0} C {0 0 9} D {9 0 0}
|
||||
put {outerringinnerrightround.s} tor V {0 2.200000000000000177635684 0} H {0 0.9999999999999998889776975 0} r_a 9.099999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {innerrighttrc.s} tgc V {0 2.5 0} H {0 0.2000000000000000111022302 0} A {0 0 6.200000000000000177635684} B {6.200000000000000177635684 0 0} C {0 0 5.400000000000000355271368} D {5.400000000000000355271368 0 0}
|
||||
put {outerringmaininleftround.s} tor V {0 -3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 9.599999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {outerringinnercut.s} tgc V {0 -2.299999999999999822364316 0} H {0 4.599999999999999644728632 0} A {0 0 9.099999999999999644728632} B {9.099999999999999644728632 0 0} C {0 0 9.099999999999999644728632} D {9.099999999999999644728632 0 0}
|
||||
put {innneroutercenter.s} tgc V {0 -2.5 0} H {0 5 0} A {0 0 6.200000000000000177635684} B {6.200000000000000177635684 0 0} C {0 0 6.200000000000000177635684} D {6.200000000000000177635684 0 0}
|
||||
put {bearing} comb region no tree {u {u {l outerring.r} {l innerring.r}} {l balls.r}}
|
||||
attr set {bearing} {shader} {glass}
|
||||
put {balls.r} comb region yes tree {u {u {u {l ball101} {l ball201}} {u {l ball301} {l ball401}}} {u {u {l ball501} {l ball601}} {l ball701}}}
|
||||
attr set {balls.r} {region} {R} {region_id} {1011} {material_id} {1} {los} {100}
|
||||
put {innerlefttrc.s} tgc V {0 -2.5 0} H {0 -0.2000000000000000111022302 0} A {0 0 -6.200000000000000177635684} B {6.200000000000000177635684 0 0} C {0 0 -5.400000000000000355271368} D {5.400000000000000355271368 0 0}
|
||||
put {ball701} ell V {1.836909530733565887317127E-15 0 -7.5} A {2 0 4.898425415289509032845672E-16} B {0 2 0} C {-4.898425415289509032845672E-16 0 2}
|
||||
put {ball601} ell V {5.57358619108045960643949 0 -5.018479547691433673151096} A {1.338261212717715586961731 0 1.486289650954789154368996} B {0 2 0} C {-1.486289650954789154368996 0 1.338261212717715586961731}
|
||||
put {ball501} ell V {7.386058147591560540945466 0 1.302361332501977386755243} A {-0.3472963553338606623732687 0 1.969615506024416040631309} B {0 2 0} C {-1.969615506024416040631309 0 -0.3472963553338606623732687}
|
||||
put {ball401} ell V {3.521036720894181293317615 0 6.622106946441951969006823} A {-1.765895185717853754781004 0 0.9389431255717817226269517} B {0 2 0} C {-0.9389431255717817226269517 0 -1.765895185717853754781004}
|
||||
put {ball301} ell V {-3.050524823068503366130244 0 6.851590932319505888870026} A {-1.827090915285201511153446 0 -0.8134732861516008606272976} B {0 2 0} C {0.8134732861516008606272976 0 -1.827090915285201511153446}
|
||||
put {ball201} ell V {-7.277217947069973824625322 0 1.814414216997508377815507} A {-0.4838437911993355711182119 0 -1.940591452551992945885218} B {0 2 0} C {1.940591452551992945885218 0 -0.4838437911993355711182119}
|
||||
put {ball101} ell V {-5.910080652050415217502177 0 -4.617461064942436799185543} A {1.231322950651316583403627 0 -1.576021507213444028394633} B {0 2 0} C {1.576021507213444028394633 0 1.231322950651316583403627}
|
||||
put {outerringmainfullcut.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 9.5} B {9.5 0 0} C {0 0 9.5} D {9.5 0 0}
|
||||
put {outerringmainout.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 10.90000000000000035527137} B {10.90000000000000035527137 0 0} C {0 0 10.90000000000000035527137} D {10.90000000000000035527137 0 0}
|
||||
put {innerring2rightround.s} tor V {0 3.399999999999999911182158 0} H {0 1 0} r_a 5.299999999999999822364316 r_h 0.1000000000000000055511151
|
||||
put {outerringinnerleftround.s} tor V {0 -2.200000000000000177635684 0} H {0 0.9999999999999998889776975 0} r_a 9.099999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {outerringmainrightround.s} tor V {0 3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 10.90000000000000035527137 r_h 0.1000000000000000055511151
|
||||
@@ -1,350 +0,0 @@
|
||||
title {Small bicycle wheel by lbutler}
|
||||
units in
|
||||
put {rcastooth.s28_1_1_29} comb region no tree {l rcastooth.s {1 0 0 53.4214 0 1 0 -37.1824 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s18_1_1_19} comb region no tree {l rcastooth.s {1 0 0 34.6765 0 1 0 -25.1939 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s27_1_1_28} comb region no tree {l rcastooth.s {1 0 0 44.8431 0 1 0 -47.175 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s17_1_1_18} comb region no tree {l rcastooth.s {1 0 0 25.1939 0 1 0 -34.6765 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s26_1_1_27} comb region no tree {l rcastooth.s {1 0 0 55.6095 0 1 0 -13.1797 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s16_1_1_17} comb region no tree {l rcastooth.s {1 0 0 34.0469 0 1 0 -13.1898 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s25_1_1_26} comb region no tree {l rcastooth.s {1 0 0 51.0711 0 1 0 -25.6489 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s15_1_1_16} comb region no tree {l rcastooth.s {1 0 0 26.9831 0 1 0 -24.5983 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s24_1_1_25} comb region no tree {l rcastooth.s {1 0 0 43.7794 0 1 0 -36.7353 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s29_1_1_30} comb region no tree {l rcastooth.s {1 0 0 59.8127 0 1 0 -25.6676 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_18} comb region no tree {l rhspkh2 {1 0 0 1.18e-05 0 1 0 -7.67456 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s14_1_1_15} comb region no tree {l rcastooth.s {1 0 0 29.8752 0 1 0 -13.3013 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s23_1_1_24} comb region no tree {l rcastooth.s {1 0 0 34.1276 0 1 0 -45.8413 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_17} comb region no tree {l rhspkh2 {1 0 0 -2.62489 0 1 0 -14.8863 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s19_1_1_20} comb region no tree {l rcastooth.s {1 0 0 40.7647 0 1 0 -13.2452 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_16} comb region no tree {l rhspkh2 {1 0 0 -7.55799 0 1 0 -20.7653 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_15} comb region no tree {l rhspkh2 {1 0 0 -14.2043 0 1 0 -24.6026 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s13_1_1_14} comb region no tree {l rcastooth.s {1 0 0 21.8822 0 1 0 -24.3027 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s22_1_1_23} comb region no tree {l rcastooth.s {1 0 0 47.3876 0 1 0 -13.2774 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_14} comb region no tree {l rhspkh2 {1 0 0 -21.7623 0 1 0 -25.9353 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_13} comb region no tree {l rhspkh2 {1 0 0 -29.3202 0 1 0 -24.6026 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s12_1_1_13} comb region no tree {l rcastooth.s {1 0 0 25.5268 0 1 0 -13.3975 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s21_1_1_22} comb region no tree {l rcastooth.s {1 0 0 42.0481 0 1 0 -25.57 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s30_1_1_31} comb region no tree {l rcastooth.s {1 0 0 63.7552 0 1 0 -13.102 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_12} comb region no tree {l rhspkh2 {1 0 0 -35.9666 0 1 0 -20.7654 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_11} comb region no tree {l rhspkh2 {1 0 0 -40.8997 0 1 0 -14.8863 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s11_1_1_12} comb region no tree {l rcastooth.s {1 0 0 16.3767 0 1 0 -23.7258 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s20_1_1_21} comb region no tree {l rcastooth.s {1 0 0 33.5901 0 1 0 -35.9663 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_10} comb region no tree {l rhspkh2 {1 0 0 -43.5246 0 1 0 -7.67456 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s10_1_1_11} comb region no tree {l rcastooth.s {1 0 0 20.8336 0 1 0 -13.389 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_9} comb region no tree {l rhspkh2 {1 0 0 -43.5246 0 1 0 4e-07 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_8} comb region no tree {l rhspkh2 {1 0 0 -40.8997 0 1 0 7.21172 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_7} comb region no tree {l rhspkh2 {1 0 0 -35.9666 0 1 0 13.0907 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_6} comb region no tree {l rhspkh2 {1 0 0 -29.3202 0 1 0 16.928 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_5} comb region no tree {l rhspkh2 {1 0 0 -21.7623 0 1 0 18.2607 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_4} comb region no tree {l rhspkh2 {1 0 0 -14.2043 0 1 0 16.928 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_3} comb region no tree {l rhspkh2 {1 0 0 -7.55799 0 1 0 13.0908 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_2} comb region no tree {l rhspkh2 {1 0 0 -2.62489 0 1 0 7.21172 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh2_1_1_1} comb region no tree {l rhspkh2 {1 0 0 1.18e-05 0 1 0 4e-07 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_18} comb region no tree {l rhspkh {1 0 0 -1.3327 0 1 0 -7.55796 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_17} comb region no tree {l rhspkh {1 0 0 -5.1699 0 1 0 -14.2043 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_16} comb region no tree {l rhspkh {1 0 0 -11.049 0 1 0 -19.1374 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_15} comb region no tree {l rhspkh {1 0 0 -18.2607 0 1 0 -21.7623 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_14} comb region no tree {l rhspkh {1 0 0 -25.9353 0 1 0 -21.7623 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_13} comb region no tree {l rhspkh {1 0 0 -33.147 0 1 0 -19.1374 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_12} comb region no tree {l rhspkh {1 0 0 -39.0261 0 1 0 -14.2043 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_11} comb region no tree {l rhspkh {1 0 0 -42.8633 0 1 0 -7.55796 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_10} comb region no tree {l rhspkh {1 0 0 -44.196 0 1 0 -4.57038e-12 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s9_1_1_10} comb region no tree {l rcastooth.s {1 0 0 18.4941 0 1 0 -13.4368 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s} tgc V {0 0 -0.3755760995733843365940174} H {0 0 2.57364612783325474865137} A {0 -4.762499999999999289457264 0} B {4.762499999999999289457264 0 0} C {0 -4.762499999999999289457264 0} D {4.762499999999999289457264 0 0}
|
||||
put {rcassette.r} comb region yes tree {u {u {u {u {l rcas11t.c1} {l rcas12t.c1}} {u {l rcas14t.c1} {l rcas16t.c1}}} {u {u {l rcas18t.c1} {l rcas21t.c1}} {u {l rcas24t.c1} {l rcas28t.c1}}}} {u {l rcas32t.c1} {l rcas.s2}}}
|
||||
attr set {rcassette.r} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
|
||||
put {rhspkh_1_1_9} comb region no tree {l rhspkh {1 0 0 -42.8633 0 1 0 7.55796 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_8} comb region no tree {l rhspkh {1 0 0 -39.0261 0 1 0 14.2043 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_7} comb region no tree {l rhspkh {1 0 0 -33.147 0 1 0 19.1374 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_6} comb region no tree {l rhspkh {1 0 0 -25.9353 0 1 0 21.7623 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_5} comb region no tree {l rhspkh {1 0 0 -18.2607 0 1 0 21.7623 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_4} comb region no tree {l rhspkh {1 0 0 -11.049 0 1 0 19.1374 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_3} comb region no tree {l rhspkh {1 0 0 -5.1699 0 1 0 14.2043 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_2} comb region no tree {l rhspkh {1 0 0 -1.3327 0 1 0 7.55796 0 0 1 0 0 0 0 1}}
|
||||
put {rhspkh_1_1_1} comb region no tree {l rhspkh}
|
||||
put {rcastooth.s8_1_1_9} comb region no tree {l rcastooth.s {1 0 0 7.06413 0 1 0 -21.7412 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s7_1_1_8} comb region no tree {l rcastooth.s {1 0 0 -7.06413 0 1 0 -21.7412 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s6_1_1_7} comb region no tree {l rcastooth.s {1 0 0 -18.4941 0 1 0 -13.4368 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s5_1_1_6} comb region no tree {l rcastooth.s {1 0 0 -22.86 0 1 0 -4.72798e-12 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s4_1_1_5} comb region no tree {l rcastooth.s {1 0 0 -18.4941 0 1 0 13.4368 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s3_1_1_4} comb region no tree {l rcastooth.s {1 0 0 -7.06413 0 1 0 21.7412 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s2_1_1_3} comb region no tree {l rcastooth.s {1 0 0 7.06413 0 1 0 21.7412 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s1_1_1_2} comb region no tree {l rcastooth.s {1 0 0 18.4941 0 1 0 13.4368 0 0 1 0 0 0 0 1}}
|
||||
put {rcas28t.s1-1} comb region no tree {u {u {u {u {u {l rcastooth.s_1_1_8} {l rcastooth.s1_1__7}} {u {l rcastooth.s2_1__7} {l rcastooth.s3_1__7}}} {u {u {l rcastooth.s4_1__7} {l rcastooth.s5_1__7}} {u {l rcastooth.s6_1__7} {l rcastooth.s7_1__7}}}} {u {u {u {l rcastooth.s8_1__7} {l rcastooth.s9_1__7}} {u {l rcastooth.s10_1_6} {l rcastooth.s11_1_5}}} {u {u {l rcastooth.s12_1_5} {l rcastooth.s13_1_4}} {u {l rcastooth.s14_1_4} {l rcastooth.s15_1_3}}}}} {u {u {u {u {l rcastooth.s16_1_3} {l rcastooth.s17_1_2}} {u {l rcastooth.s18_1_2} {l rcastooth.s19_1_2}}} {u {u {l rcastooth.s20_1_1} {l rcastooth.s21_1_1}} {u {l rcastooth.s22_1_1} {l rcastooth.s23_1_1_24}}}} {u {u {l rcastooth.s24_1_1_25} {l rcastooth.s25_1_1_26}} {l rcastooth.s26_1_1_27}}}}
|
||||
put {rcas18t.s1-1} comb region no tree {u {u {u {u {u {l rcastooth.s_1_1_5} {l rcastooth.s1_1__4}} {u {l rcastooth.s2_1__4} {l rcastooth.s3_1__4}}} {u {u {l rcastooth.s4_1__4} {l rcastooth.s5_1__4}} {u {l rcastooth.s6_1__4} {l rcastooth.s7_1__4}}}} {u {u {u {l rcastooth.s8_1__4} {l rcastooth.s9_1__4}} {u {l rcastooth.s10_1_3} {l rcastooth.s11_1_2}}} {u {u {l rcastooth.s12_1_2} {l rcastooth.s13_1_1}} {u {l rcastooth.s14_1_1} {l rcastooth.s15_1_1_16}}}}} {l rcastooth.s16_1_1_17}}
|
||||
put {rcas16t.s1-1} comb region no tree {u {u {u {u {l rcastooth.s_1_1_4} {l rcastooth.s1_1__3}} {u {l rcastooth.s2_1__3} {l rcastooth.s3_1__3}}} {u {u {l rcastooth.s4_1__3} {l rcastooth.s5_1__3}} {u {l rcastooth.s6_1__3} {l rcastooth.s7_1__3}}}} {u {u {u {l rcastooth.s8_1__3} {l rcastooth.s9_1__3}} {u {l rcastooth.s10_1_2} {l rcastooth.s11_1_1}}} {u {u {l rcastooth.s12_1_1} {l rcastooth.s13_1_1_14}} {l rcastooth.s14_1_1_15}}}}
|
||||
put {rcas24t.s1-1} comb region no tree {u {u {u {u {u {l rcastooth.s_1_1_7} {l rcastooth.s1_1__6}} {u {l rcastooth.s2_1__6} {l rcastooth.s3_1__6}}} {u {u {l rcastooth.s4_1__6} {l rcastooth.s5_1__6}} {u {l rcastooth.s6_1__6} {l rcastooth.s7_1__6}}}} {u {u {u {l rcastooth.s8_1__6} {l rcastooth.s9_1__6}} {u {l rcastooth.s10_1_5} {l rcastooth.s11_1_4}}} {u {u {l rcastooth.s12_1_4} {l rcastooth.s13_1_3}} {u {l rcastooth.s14_1_3} {l rcastooth.s15_1_2}}}}} {u {u {u {l rcastooth.s16_1_2} {l rcastooth.s17_1_1}} {u {l rcastooth.s18_1_1} {l rcastooth.s19_1_1}}} {u {u {l rcastooth.s20_1_1_21} {l rcastooth.s21_1_1_22}} {l rcastooth.s22_1_1_23}}}}
|
||||
put {rcas14t.s1-1} comb region no tree {u {u {u {u {l rcastooth.s_1_1_3} {l rcastooth.s1_1__2}} {u {l rcastooth.s2_1__2} {l rcastooth.s3_1__2}}} {u {u {l rcastooth.s4_1__2} {l rcastooth.s5_1__2}} {u {l rcastooth.s6_1__2} {l rcastooth.s7_1__2}}}} {u {u {u {l rcastooth.s8_1__2} {l rcastooth.s9_1__2}} {u {l rcastooth.s10_1_1} {l rcastooth.s11_1_1_12}}} {l rcastooth.s12_1_1_13}}}
|
||||
put {rcas32t.s1-1} comb region no tree {u {u {u {u {u {l rcastooth.s_1_1_9} {l rcastooth.s1_1__8}} {u {l rcastooth.s2_1__8} {l rcastooth.s3_1__8}}} {u {u {l rcastooth.s4_1__8} {l rcastooth.s5_1__8}} {u {l rcastooth.s6_1__8} {l rcastooth.s7_1__8}}}} {u {u {u {l rcastooth.s8_1__8} {l rcastooth.s9_1__8}} {u {l rcastooth.s10_1_7} {l rcastooth.s11_1_6}}} {u {u {l rcastooth.s12_1_6} {l rcastooth.s13_1_5}} {u {l rcastooth.s14_1_5} {l rcastooth.s15_1_4}}}}} {u {u {u {u {l rcastooth.s16_1_4} {l rcastooth.s17_1_3}} {u {l rcastooth.s18_1_3} {l rcastooth.s19_1_3}}} {u {u {l rcastooth.s20_1_2} {l rcastooth.s21_1_2}} {u {l rcastooth.s22_1_2} {l rcastooth.s23_1_1}}}} {u {u {u {l rcastooth.s24_1_1} {l rcastooth.s25_1_1}} {u {l rcastooth.s26_1_1} {l rcastooth.s27_1_1_28}}} {u {u {l rcastooth.s28_1_1_29} {l rcastooth.s29_1_1_30}} {l rcastooth.s30_1_1_31}}}}}
|
||||
put {rcas12t.s1-1} comb region no tree {u {u {u {u {l rcastooth.s_1_1_2} {l rcastooth.s1_1__1}} {u {l rcastooth.s2_1__1} {l rcastooth.s3_1__1}}} {u {u {l rcastooth.s4_1__1} {l rcastooth.s5_1__1}} {u {l rcastooth.s6_1__1} {l rcastooth.s7_1__1}}}} {u {u {l rcastooth.s8_1__1} {l rcastooth.s9_1__1}} {l rcastooth.s10_1_1_11}}}
|
||||
put {rcas21t.s1-1} comb region no tree {u {u {u {u {u {l rcastooth.s_1_1_6} {l rcastooth.s1_1__5}} {u {l rcastooth.s2_1__5} {l rcastooth.s3_1__5}}} {u {u {l rcastooth.s4_1__5} {l rcastooth.s5_1__5}} {u {l rcastooth.s6_1__5} {l rcastooth.s7_1__5}}}} {u {u {u {l rcastooth.s8_1__5} {l rcastooth.s9_1__5}} {u {l rcastooth.s10_1_4} {l rcastooth.s11_1_3}}} {u {u {l rcastooth.s12_1_3} {l rcastooth.s13_1_2}} {u {l rcastooth.s14_1_2} {l rcastooth.s15_1_1}}}}} {u {u {l rcastooth.s16_1_1} {l rcastooth.s17_1_1_18}} {u {l rcastooth.s18_1_1_19} {l rcastooth.s19_1_1_20}}}}
|
||||
put {rcas11t.s1-1} comb region no tree {u {u {u {u {l rcastooth.s_1_1_1} {l rcastooth.s1_1_1_2}} {u {l rcastooth.s2_1_1_3} {l rcastooth.s3_1_1_4}}} {u {u {l rcastooth.s4_1_1_5} {l rcastooth.s5_1_1_6}} {u {l rcastooth.s6_1_1_7} {l rcastooth.s7_1_1_8}}}} {u {l rcastooth.s8_1_1_9} {l rcastooth.s9_1_1_10}}}
|
||||
put {rcastooth.s9_1__8} comb region no tree {l rcastooth.s {1 0 0 -16.3143 0 1 0 63.0097 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s8_1__8} comb region no tree {l rcastooth.s {1 0 0 -3.29663 0 1 0 65.004 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s9_1__7} comb region no tree {l rcastooth.s {1 0 0 -28.575 0 1 0 49.4934 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s7_1__8} comb region no tree {l rcastooth.s {1 0 0 9.85606 0 1 0 64.3369 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s8_1__7} comb region no tree {l rcastooth.s {1 0 0 -16.3908 0 1 0 54.7491 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s9_1__6} comb region no tree {l rcastooth.s {1 0 0 -38.1747 0 1 0 31.0574 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s6_1__8} comb region no tree {l rcastooth.s {1 0 0 22.6052 0 1 0 61.0359 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s7_1__7} comb region no tree {l rcastooth.s {1 0 0 -3.32298 0 1 0 57.0533 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s8_1__6} comb region no tree {l rcastooth.s {1 0 0 -28.3799 0 1 0 40.2051 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s5_1__8} comb region no tree {l rcastooth.s {1 0 0 34.4289 0 1 0 55.2361 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s9_1__5} comb region no tree {l rcastooth.s {1 0 0 -40.7647 0 1 0 13.2452 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s6_1__7} comb region no tree {l rcastooth.s {1 0 0 9.92399 0 1 0 56.2818 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s7_1__6} comb region no tree {l rcastooth.s {1 0 0 -16.4803 0 1 0 46.371 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s4_1__8} comb region no tree {l rcastooth.s {1 0 0 44.8431 0 1 0 47.175 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s8_1__5} comb region no tree {l rcastooth.s {1 0 0 -34.6765 0 1 0 25.1939 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s5_1__7} comb region no tree {l rcastooth.s {1 0 0 22.636 0 1 0 52.4761 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s9_1__4} comb region no tree {l rcastooth.s {1 0 0 -35.8908 0 1 0 -6.70915 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s6_1__6} comb region no tree {l rcastooth.s {1 0 0 -3.35838 0 1 0 49.0978 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s3_1__8} comb region no tree {l rcastooth.s {1 0 0 53.4214 0 1 0 37.1824 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s7_1__5} comb region no tree {l rcastooth.s {1 0 0 -25.1939 0 1 0 34.6765 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s4_1__7} comb region no tree {l rcastooth.s {1 0 0 34.1276 0 1 0 45.8413 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s8_1__4} comb region no tree {l rcastooth.s {1 0 0 -35.8908 0 1 0 6.70915 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s5_1__6} comb region no tree {l rcastooth.s {1 0 0 10.0126 0 1 0 48.1832 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s2_1__8} comb region no tree {l rcastooth.s {1 0 0 59.8127 0 1 0 25.6676 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s9_1__3} comb region no tree {l rcastooth.s {1 0 0 -26.4569 0 1 0 -19.222 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s6_1__5} comb region no tree {l rcastooth.s {1 0 0 -13.2452 0 1 0 40.7647 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s3_1__7} comb region no tree {l rcastooth.s {1 0 0 43.7794 0 1 0 36.7353 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s7_1__4} comb region no tree {l rcastooth.s {1 0 0 -31.0436 0 1 0 19.2214 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s4_1__6} comb region no tree {l rcastooth.s {1 0 0 22.641 0 1 0 43.6951 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s1_1__8} comb region no tree {l rcastooth.s {1 0 0 63.7552 0 1 0 13.102 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s8_1__3} comb region no tree {l rcastooth.s {1 0 0 -31.9879 0 1 0 -6.79923 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s5_1__5} comb region no tree {l rcastooth.s {1 0 0 -2.18745e-10 0 1 0 42.8625 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s2_1__7} comb region no tree {l rcastooth.s {1 0 0 51.0711 0 1 0 25.6489 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s9_1__2} comb region no tree {l rcastooth.s {1 0 0 -10.2229 0 1 0 -26.9556 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s6_1__4} comb region no tree {l rcastooth.s {1 0 0 -22.0037 0 1 0 29.1376 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s3_1__6} comb region no tree {l rcastooth.s {1 0 0 33.5901 0 1 0 35.9663 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s7_1__3} comb region no tree {l rcastooth.s {1 0 0 -31.9879 0 1 0 6.79923 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s4_1__5} comb region no tree {l rcastooth.s {1 0 0 13.2452 0 1 0 40.7647 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s1_1__7} comb region no tree {l rcastooth.s {1 0 0 55.6095 0 1 0 13.1797 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s8_1__2} comb region no tree {l rcastooth.s {1 0 0 -21.5788 0 1 0 -19.1172 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s5_1__4} comb region no tree {l rcastooth.s {1 0 0 -9.99212 0 1 0 35.1187 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s2_1__6} comb region no tree {l rcastooth.s {1 0 0 42.0481 0 1 0 25.57 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s9_1__1} comb region no tree {l rcastooth.s {1 0 0 10.2878 0 1 0 -22.527 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s6_1__3} comb region no tree {l rcastooth.s {1 0 0 -26.4569 0 1 0 19.222 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s3_1__5} comb region no tree {l rcastooth.s {1 0 0 25.1939 0 1 0 34.6765 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s7_1__2} comb region no tree {l rcastooth.s {1 0 0 -27.9913 0 1 0 -6.89923 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s4_1__4} comb region no tree {l rcastooth.s {1 0 0 3.36895 0 1 0 36.3567 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s1_1__6} comb region no tree {l rcastooth.s {1 0 0 47.3876 0 1 0 13.2774 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s8_1__1} comb region no tree {l rcastooth.s {1 0 0 -3.52443 0 1 0 -24.5129 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s5_1__3} comb region no tree {l rcastooth.s {1 0 0 -16.3513 0 1 0 28.3212 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s2_1__5} comb region no tree {l rcastooth.s {1 0 0 34.6765 0 1 0 25.1939 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s6_1__2} comb region no tree {l rcastooth.s {1 0 0 -27.9913 0 1 0 6.89923 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s3_1__4} comb region no tree {l rcastooth.s {1 0 0 16.275 0 1 0 32.6846 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s7_1__1} comb region no tree {l rcastooth.s {1 0 0 -16.2176 0 1 0 -18.7161 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s4_1__3} comb region no tree {l rcastooth.s {1 0 0 -3.41834 0 1 0 32.5234 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s1_1__5} comb region no tree {l rcastooth.s {1 0 0 40.7647 0 1 0 13.2452 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s5_1__2} comb region no tree {l rcastooth.s {1 0 0 -21.5788 0 1 0 19.1172 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s2_1__4} comb region no tree {l rcastooth.s {1 0 0 26.9831 0 1 0 24.5983 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s6_1__1} comb region no tree {l rcastooth.s {1 0 0 -23.7618 0 1 0 -6.97711 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s3_1__3} comb region no tree {l rcastooth.s {1 0 0 10.1056 0 1 0 31.1019 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s4_1__2} comb region no tree {l rcastooth.s {1 0 0 -10.2229 0 1 0 26.9556 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s1_1__4} comb region no tree {l rcastooth.s {1 0 0 34.0469 0 1 0 13.1898 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s5_1__1} comb region no tree {l rcastooth.s {1 0 0 -23.7618 0 1 0 6.97711 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s2_1__3} comb region no tree {l rcastooth.s {1 0 0 21.8822 0 1 0 24.3027 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s_1_1_9} comb region no tree {l rcastooth.s {1 0 0 65.0875 0 1 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s3_1__2} comb region no tree {l rcastooth.s {1 0 0 3.47495 0 1 0 28.6188 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s4_1__1} comb region no tree {l rcastooth.s {1 0 0 -16.2176 0 1 0 18.7161 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s1_1__3} comb region no tree {l rcastooth.s {1 0 0 29.8752 0 1 0 13.3013 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s2_1__2} comb region no tree {l rcastooth.s {1 0 0 16.3767 0 1 0 23.7258 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s_1_1_8} comb region no tree {l rcastooth.s {1 0 0 57.15 0 1 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s3_1__1} comb region no tree {l rcastooth.s {1 0 0 -3.52443 0 1 0 24.5129 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s1_1__2} comb region no tree {l rcastooth.s {1 0 0 25.5268 0 1 0 13.3975 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s2_1__1} comb region no tree {l rcastooth.s {1 0 0 10.2878 0 1 0 22.527 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s_1_1_7} comb region no tree {l rcastooth.s {1 0 0 49.2125 0 1 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s1_1__1} comb region no tree {l rcastooth.s {1 0 0 20.8336 0 1 0 13.389 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s_1_1_6} comb region no tree {l rcastooth.s {1 0 0 42.8625 0 1 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s_1_1_5} comb region no tree {l rcastooth.s {1 0 0 36.5125 0 1 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s_1_1_4} comb region no tree {l rcastooth.s {1 0 0 32.7025 0 1 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s_1_1_3} comb region no tree {l rcastooth.s {1 0 0 28.829 0 1 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s_1_1_2} comb region no tree {l rcastooth.s {1 0 0 24.765 0 1 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s_1_1_1} comb region no tree {l rcastooth.s {1 0 0 22.86 0 1 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcas28t.s1} tgc V {0 0 0} H {0 0 1.651000000000000023092639} A {0 -57.14999999999999857891453 0} B {57.14999999999999857891453 0 0} C {0 -57.14999999999999857891453 0} D {57.14999999999999857891453 0 0}
|
||||
put {rcas18t.s1} tgc V {0 0 0} H {0 0 1.651000000000000023092639} A {0 -36.51249999999999573674359 0} B {36.51249999999999573674359 0 0} C {0 -36.51249999999999573674359 0} D {36.51249999999999573674359 0 0}
|
||||
put {spkl_1_1_9} comb region no tree {l spkl {0.766044 0.642788 0 0 -0.642788 0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkk_1_1_9} comb region no tree {l spkk {0.766044 0.642788 0 0 -0.642788 0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcas16t.s1} tgc V {0 0 0} H {0 0 1.651000000000000023092639} A {0 -32.70250000000000056843419 0} B {32.70250000000000056843419 0 0} C {0 -32.70250000000000056843419 0} D {32.70250000000000056843419 0 0}
|
||||
put {spkj_1_1_9} comb region no tree {l spkj {0.766044 0.642788 0 0 -0.642788 0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkl_1_1_8} comb region no tree {l spkl {0.173648 0.984808 0 0 -0.984808 0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spki_1_1_9} comb region no tree {l spki {0.766044 0.642788 0 0 -0.642788 0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcas24t.s1} tgc V {0 0 0} H {0 0 1.651000000000000023092639} A {0 -49.21249999999999857891453 0} B {49.21249999999999857891453 0 0} C {0 -49.21249999999999857891453 0} D {49.21249999999999857891453 0 0}
|
||||
put {spkk_1_1_8} comb region no tree {l spkk {0.173648 0.984808 0 0 -0.984808 0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkj_1_1_8} comb region no tree {l spkj {0.173648 0.984808 0 0 -0.984808 0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcas14t.s1} tgc V {0 0 0} H {0 0 1.651000000000000023092639} A {0 -28.82899999999999707256393 0} B {28.82899999999999707256393 0 0} C {0 -28.82899999999999707256393 0} D {28.82899999999999707256393 0 0}
|
||||
put {spkl_1_1_7} comb region no tree {l spkl {-0.5 0.866025 0 0 -0.866025 -0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcas32t.s1} tgc V {0 0 0} H {0 0 1.651000000000000023092639} A {0 -65.08749999999999147348717 0} B {65.08749999999999147348717 0 0} C {0 -65.08749999999999147348717 0} D {65.08749999999999147348717 0 0}
|
||||
put {spki_1_1_8} comb region no tree {l spki {0.173648 0.984808 0 0 -0.984808 0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkk_1_1_7} comb region no tree {l spkk {-0.5 0.866025 0 0 -0.866025 -0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkj_1_1_7} comb region no tree {l spkj {-0.5 0.866025 0 0 -0.866025 -0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkl_1_1_6} comb region no tree {l spkl {-0.939693 0.34202 0 0 -0.34202 -0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcas12t.s1} tgc V {0 0 0} H {0 0 1.651000000000000023092639} A {0 -24.76499999999999701572051 0} B {24.76499999999999701572051 0 0} C {0 -24.76499999999999701572051 0} D {24.76499999999999701572051 0 0}
|
||||
put {rcas21t.s1} tgc V {0 0 0} H {0 0 1.651000000000000023092639} A {0 -42.86249999999999715782906 0} B {42.86249999999999715782906 0 0} C {0 -42.86249999999999715782906 0} D {42.86249999999999715782906 0 0}
|
||||
put {spki_1_1_7} comb region no tree {l spki {-0.5 0.866025 0 0 -0.866025 -0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkk_1_1_6} comb region no tree {l spkk {-0.939693 0.34202 0 0 -0.34202 -0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcas11t.s1} tgc V {0 0 0} H {0 0 1.651000000000000023092639} A {0 -22.85999999999999943156581 0} B {22.85999999999999943156581 0 0} C {0 -22.85999999999999943156581 0} D {22.85999999999999943156581 0 0}
|
||||
put {spkj_1_1_6} comb region no tree {l spkj {-0.939693 0.34202 0 0 -0.34202 -0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkl_1_1_5} comb region no tree {l spkl {-0.939693 -0.34202 0 0 0.34202 -0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spki_1_1_6} comb region no tree {l spki {-0.939693 0.34202 0 0 -0.34202 -0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkk_1_1_5} comb region no tree {l spkk {-0.939693 -0.34202 0 0 0.34202 -0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkj_1_1_5} comb region no tree {l spkj {-0.939693 -0.34202 0 0 0.34202 -0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkl_1_1_4} comb region no tree {l spkl {-0.5 -0.866025 0 0 0.866025 -0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spki_1_1_5} comb region no tree {l spki {-0.939693 -0.34202 0 0 0.34202 -0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkk_1_1_4} comb region no tree {l spkk {-0.5 -0.866025 0 0 0.866025 -0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkj_1_1_4} comb region no tree {l spkj {-0.5 -0.866025 0 0 0.866025 -0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkl_1_1_3} comb region no tree {l spkl {0.173648 -0.984808 0 0 0.984808 0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spki_1_1_4} comb region no tree {l spki {-0.5 -0.866025 0 0 0.866025 -0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkk_1_1_3} comb region no tree {l spkk {0.173648 -0.984808 0 0 0.984808 0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkj_1_1_3} comb region no tree {l spkj {0.173648 -0.984808 0 0 0.984808 0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkl_1_1_2} comb region no tree {l spkl {0.766044 -0.642788 0 0 0.642788 0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spki_1_1_3} comb region no tree {l spki {0.173648 -0.984808 0 0 0.984808 0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkk_1_1_2} comb region no tree {l spkk {0.766044 -0.642788 0 0 0.642788 0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkj_1_1_2} comb region no tree {l spkj {0.766044 -0.642788 0 0 0.642788 0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s19_1_3} comb region no tree {l rcastooth.s {1 0 0 -49.3857 0 1 0 -42.3962 0 0 1 0 0 0 0 1}}
|
||||
put {spkl_1_1_1} comb region no tree {l spkl}
|
||||
put {spki_1_1_2} comb region no tree {l spki {0.766044 -0.642788 0 0 0.642788 0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {spkk_1_1_1} comb region no tree {l spkk}
|
||||
put {spkj_1_1_1} comb region no tree {l spkj}
|
||||
put {spki_1_1_1} comb region no tree {l spki}
|
||||
put {rcastooth.s18_1_3} comb region no tree {l rcastooth.s {1 0 0 -56.909 0 1 0 -31.5871 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s19_1_2} comb region no tree {l rcastooth.s {1 0 0 -16.3908 0 1 0 -54.7491 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s16_1_4} comb region no tree {l rcastooth.s {1 0 0 -64.7536 0 1 0 -6.58479 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s17_1_3} comb region no tree {l rcastooth.s {1 0 0 -62.1025 0 1 0 -19.4848 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s18_1_2} comb region no tree {l rcastooth.s {1 0 0 -28.575 0 1 0 -49.4934 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s14_1_5} comb region no tree {l rcastooth.s {1 0 0 -62.1025 0 1 0 19.4848 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s19_1_1} comb region no tree {l rcastooth.s {1 0 0 22.641 0 1 0 -43.6951 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s15_1_4} comb region no tree {l rcastooth.s {1 0 0 -64.7536 0 1 0 6.58479 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s16_1_3} comb region no tree {l rcastooth.s {1 0 0 -47.7481 0 1 0 -31.4044 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s12_1_6} comb region no tree {l rcastooth.s {1 0 0 -49.3857 0 1 0 42.3962 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s17_1_2} comb region no tree {l rcastooth.s {1 0 0 -39.2187 0 1 0 -41.5694 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s13_1_5} comb region no tree {l rcastooth.s {1 0 0 -56.909 0 1 0 31.5871 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s18_1_1} comb region no tree {l rcastooth.s {1 0 0 10.0126 0 1 0 -48.1832 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s14_1_4} comb region no tree {l rcastooth.s {1 0 0 -56.7636 0 1 0 -6.63471 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s10_1_7} comb region no tree {l rcastooth.s {1 0 0 -28.6642 0 1 0 58.4359 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s1sh} tgc V {177.7999999999999829469743 0 11.81099999999999994315658} H {38.09999999999999431565811 0 0} A {0 0 -2.285999999999999587885213} B {0 2.285999999999999587885213 0} C {0 0 -2.285999999999999587885213} D {0 2.285999999999999587885213 0}
|
||||
put {rcastooth.s15_1_3} comb region no tree {l rcastooth.s {1 0 0 -53.7034 0 1 0 -19.5465 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s11_1_6} comb region no tree {l rcastooth.s {1 0 0 -39.8404 0 1 0 51.4696 0 0 1 0 0 0 0 1}}
|
||||
put {rcas28t.c1} comb region no tree {- {l rcas28t.s1 {1 0 0 0 0 1 0 0 0 0 1 31.892875 0 0 0 1}} {l rcas28t.s1-1 {1 0 0 0 0 1 0 0 0 0 1 31.892875 0 0 0 1}}}
|
||||
put {rcastooth.s16_1_2} comb region no tree {l rcastooth.s {1 0 0 -16.4803 0 1 0 -46.371 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s12_1_5} comb region no tree {l rcastooth.s {1 0 0 -53.7034 0 1 0 19.5465 0 0 1 0 0 0 0 1}}
|
||||
put {rcas18t.c1} comb region no tree {- {l rcas18t.s1 {1 0 0 0 0 1 0 0 0 0 1 18.2245 0 0 0 1}} {l rcas18t.s1-1 {1 0 0 0 0 1 0 0 0 0 1 18.2245 0 0 0 1}}}
|
||||
put {rcastooth.s17_1_1} comb region no tree {l rcastooth.s {1 0 0 -3.35838 0 1 0 -49.0978 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s26_1_1} comb region no tree {l rcastooth.s {1 0 0 34.4289 0 1 0 -55.2361 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s13_1_4} comb region no tree {l rcastooth.s {1 0 0 -56.7636 0 1 0 6.63471 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s14_1_3} comb region no tree {l rcastooth.s {1 0 0 -38.1747 0 1 0 -31.0574 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s10_1_6} comb region no tree {l rcastooth.s {1 0 0 -39.2187 0 1 0 41.5694 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s15_1_2} comb region no tree {l rcastooth.s {1 0 0 -28.3799 0 1 0 -40.2051 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s11_1_5} comb region no tree {l rcastooth.s {1 0 0 -47.7481 0 1 0 31.4044 0 0 1 0 0 0 0 1}}
|
||||
put {rcas16t.c1} comb region no tree {- {l rcas16t.s1 {1 0 0 0 0 1 0 0 0 0 1 13.668375 0 0 0 1}} {l rcas16t.s1-1 {1 0 0 0 0 1 0 0 0 0 1 13.668375 0 0 0 1}}}
|
||||
put {rcastooth.s16_1_1} comb region no tree {l rcastooth.s {1 0 0 13.2452 0 1 0 -40.7647 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s25_1_1} comb region no tree {l rcastooth.s {1 0 0 22.6052 0 1 0 -61.0359 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s12_1_4} comb region no tree {l rcastooth.s {1 0 0 -48.7541 0 1 0 -6.7011 0 0 1 0 0 0 0 1}}
|
||||
put {rcas24t.c1} comb region no tree {- {l rcas24t.s1 {1 0 0 0 0 1 0 0 0 0 1 27.33675 0 0 0 1}} {l rcas24t.s1-1 {1 0 0 0 0 1 0 0 0 0 1 27.33675 0 0 0 1}}}
|
||||
put {rcastooth.s13_1_3} comb region no tree {l rcastooth.s {1 0 0 -45.1383 0 1 0 -19.6063 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s14_1_2} comb region no tree {l rcastooth.s {1 0 0 -13.2452 0 1 0 -40.7647 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s10_1_5} comb region no tree {l rcastooth.s {1 0 0 -45.1383 0 1 0 19.6063 0 0 1 0 0 0 0 1}}
|
||||
put {rcas14t.c1} comb region no tree {- {l rcas14t.s1 {1 0 0 0 0 1 0 0 0 0 1 9.11225 0 0 0 1}} {l rcas14t.s1-1 {1 0 0 0 0 1 0 0 0 0 1 9.11225 0 0 0 1}}}
|
||||
put {rcas32t.c1} comb region no tree {- {l rcas32t.s1 {1 0 0 0 0 1 0 0 0 0 1 36.449 0 0 0 1}} {l rcas32t.s1-1 {1 0 0 0 0 1 0 0 0 0 1 36.449 0 0 0 1}}}
|
||||
put {rcastooth.s15_1_1} comb region no tree {l rcastooth.s {1 0 0 2.2761e-10 0 1 0 -42.8625 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s24_1_1} comb region no tree {l rcastooth.s {1 0 0 9.85606 0 1 0 -64.3369 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s11_1_4} comb region no tree {l rcastooth.s {1 0 0 -48.7541 0 1 0 6.7011 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s12_1_3} comb region no tree {l rcastooth.s {1 0 0 -34.6765 0 1 0 -25.1939 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s13_1_2} comb region no tree {l rcastooth.s {1 0 0 -25.1939 0 1 0 -34.6765 0 0 1 0 0 0 0 1}}
|
||||
put {rcas12t.c1} comb region no tree {- {l rcas12t.s1 {1 0 0 0 0 1 0 0 0 0 1 4.556125 0 0 0 1}} {l rcas12t.s1-1 {1 0 0 0 0 1 0 0 0 0 1 4.556125 0 0 0 1}}}
|
||||
put {rcastooth.s22_1_2} comb region no tree {l rcastooth.s {1 0 0 -16.3143 0 1 0 -63.0097 0 0 1 0 0 0 0 1}}
|
||||
put {rcas21t.c1} comb region no tree {- {l rcas21t.s1 {1 0 0 0 0 1 0 0 0 0 1 22.780625 0 0 0 1}} {l rcas21t.s1-1 {1 0 0 0 0 1 0 0 0 0 1 22.780625 0 0 0 1}}}
|
||||
put {rcastooth.s14_1_1} comb region no tree {l rcastooth.s {1 0 0 16.275 0 1 0 -32.6846 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s23_1_1} comb region no tree {l rcastooth.s {1 0 0 -3.29663 0 1 0 -65.004 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s10_1_4} comb region no tree {l rcastooth.s {1 0 0 -42.8625 0 1 0 -8.86496e-12 0 0 1 0 0 0 0 1}}
|
||||
put {rcas11t.c1} comb region no tree {- {l rcas11t.s1} {l rcas11t.s1-1}}
|
||||
put {rcastooth.s11_1_3} comb region no tree {l rcastooth.s {1 0 0 -40.7647 0 1 0 -13.2452 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s12_1_2} comb region no tree {l rcastooth.s {1 0 0 -9.99212 0 1 0 -35.1187 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s21_1_2} comb region no tree {l rcastooth.s {1 0 0 -28.6642 0 1 0 -58.4359 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s13_1_1} comb region no tree {l rcastooth.s {1 0 0 3.36895 0 1 0 -36.3567 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s22_1_1} comb region no tree {l rcastooth.s {1 0 0 22.636 0 1 0 -52.4761 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s10_1_3} comb region no tree {l rcastooth.s {1 0 0 -31.0436 0 1 0 -19.2214 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s11_1_2} comb region no tree {l rcastooth.s {1 0 0 -22.0037 0 1 0 -29.1376 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s20_1_2} comb region no tree {l rcastooth.s {1 0 0 -39.8404 0 1 0 -51.4696 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s12_1_1} comb region no tree {l rcastooth.s {1 0 0 10.1056 0 1 0 -31.1019 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s21_1_1} comb region no tree {l rcastooth.s {1 0 0 9.92399 0 1 0 -56.2818 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s10_1_2} comb region no tree {l rcastooth.s {1 0 0 -16.3512 0 1 0 -28.3212 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s11_1_1} comb region no tree {l rcastooth.s {1 0 0 -3.41834 0 1 0 -32.5234 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s20_1_1} comb region no tree {l rcastooth.s {1 0 0 -3.32298 0 1 0 -57.0533 0 0 1 0 0 0 0 1}}
|
||||
put {rcastooth.s10_1_1} comb region no tree {l rcastooth.s {1 0 0 3.47495 0 1 0 -28.6188 0 0 1 0 0 0 0 1}}
|
||||
put {rtire.s1-1} eto V {0 0 11.81099999999999994315658} N {0 0 25.39999999999999857891453} C {15.87499999999999822364316 0 0} r 222.25 r_d 14.28749999999999964472863
|
||||
put {spokes.r} comb region yes tree {u {u {l spoke_A} {l spoke_b}} {u {l spoke_c} {l spoke_d}}}
|
||||
attr set {spokes.r} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
|
||||
put {rrim.s29sh_1_1_29} comb region no tree {l rrim.s1sh {0.173648 0.984808 0 0 -0.984808 0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s19sh_1_1_19} comb region no tree {l rrim.s1sh {-1 -9.79318e-12 0 0 9.79318e-12 -1 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s28sh_1_1_28} comb region no tree {l rrim.s1sh {-1.46898e-11 1 0 0 -1 -1.46898e-11 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s18sh_1_1_18} comb region no tree {l rrim.s1sh {-0.984808 -0.173648 0 0 0.173648 -0.984808 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s27sh_1_1_27} comb region no tree {l rrim.s1sh {-0.173648 0.984808 0 0 -0.984808 -0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s36sh_1_1_36} comb region no tree {l rrim.s1sh {0.984808 0.173648 0 0 -0.173648 0.984808 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s17sh_1_1_17} comb region no tree {l rrim.s1sh {-0.939693 -0.34202 0 0 0.34202 -0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s26sh_1_1_26} comb region no tree {l rrim.s1sh {-0.34202 0.939693 0 0 -0.939693 -0.34202 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s35sh_1_1_35} comb region no tree {l rrim.s1sh {0.939693 0.34202 0 0 -0.34202 0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s16sh_1_1_16} comb region no tree {l rrim.s1sh {-0.866025 -0.5 0 0 0.5 -0.866025 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s25sh_1_1_25} comb region no tree {l rrim.s1sh {-0.5 0.866025 0 0 -0.866025 -0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s34sh_1_1_34} comb region no tree {l rrim.s1sh {0.866025 0.5 0 0 -0.5 0.866025 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s15sh_1_1_15} comb region no tree {l rrim.s1sh {-0.766044 -0.642788 0 0 0.642788 -0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s24sh_1_1_24} comb region no tree {l rrim.s1sh {-0.642788 0.766044 0 0 -0.766044 -0.642788 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s33sh_1_1_33} comb region no tree {l rrim.s1sh {0.766044 0.642788 0 0 -0.642788 0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s14sh_1_1_14} comb region no tree {l rrim.s1sh {-0.642788 -0.766044 0 0 0.766044 -0.642788 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s23sh_1_1_23} comb region no tree {l rrim.s1sh {-0.766044 0.642788 0 0 -0.642788 -0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s32sh_1_1_32} comb region no tree {l rrim.s1sh {0.642788 0.766044 0 0 -0.766044 0.642788 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s13sh_1_1_13} comb region no tree {l rrim.s1sh {-0.5 -0.866025 0 0 0.866025 -0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s22sh_1_1_22} comb region no tree {l rrim.s1sh {-0.866025 0.5 0 0 -0.5 -0.866025 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s31sh_1_1_31} comb region no tree {l rrim.s1sh {0.5 0.866025 0 0 -0.866025 0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s12sh_1_1_12} comb region no tree {l rrim.s1sh {-0.34202 -0.939693 0 0 0.939693 -0.34202 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s21sh_1_1_21} comb region no tree {l rrim.s1sh {-0.939693 0.34202 0 0 -0.34202 -0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s30sh_1_1_30} comb region no tree {l rrim.s1sh {0.34202 0.939693 0 0 -0.939693 0.34202 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s11sh_1_1_11} comb region no tree {l rrim.s1sh {-0.173648 -0.984808 0 0 0.984808 -0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s20sh_1_1_20} comb region no tree {l rrim.s1sh {-0.984808 0.173648 0 0 -0.173648 -0.984808 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s10sh_1_1_10} comb region no tree {l rrim.s1sh {4.89659e-12 -1 0 0 1 4.89659e-12 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s1-4} comb region no tree {- {l rrii} {l rri}}
|
||||
put {rrim.s1-3} comb region no tree {u {u {u {u {u {u {l rrim.s1sh_1_1_1} {l rrim.s2sh_1_1_2}} {u {l rrim.s3sh_1_1_3} {l rrim.s4sh_1_1_4}}} {u {u {l rrim.s5sh_1_1_5} {l rrim.s6sh_1_1_6}} {u {l rrim.s7sh_1_1_7} {l rrim.s8sh_1_1_8}}}} {u {u {u {l rrim.s9sh_1_1_9} {l rrim.s10sh_1_1_10}} {u {l rrim.s11sh_1_1_11} {l rrim.s12sh_1_1_12}}} {u {u {l rrim.s13sh_1_1_13} {l rrim.s14sh_1_1_14}} {u {l rrim.s15sh_1_1_15} {l rrim.s16sh_1_1_16}}}}} {u {u {u {u {l rrim.s17sh_1_1_17} {l rrim.s18sh_1_1_18}} {u {l rrim.s19sh_1_1_19} {l rrim.s20sh_1_1_20}}} {u {u {l rrim.s21sh_1_1_21} {l rrim.s22sh_1_1_22}} {u {l rrim.s23sh_1_1_23} {l rrim.s24sh_1_1_24}}}} {u {u {u {l rrim.s25sh_1_1_25} {l rrim.s26sh_1_1_26}} {u {l rrim.s27sh_1_1_27} {l rrim.s28sh_1_1_28}}} {u {u {l rrim.s29sh_1_1_29} {l rrim.s30sh_1_1_30}} {u {l rrim.s31sh_1_1_31} {l rrim.s32sh_1_1_32}}}}}} {u {u {l rrim.s33sh_1_1_33} {l rrim.s34sh_1_1_34}} {u {l rrim.s35sh_1_1_35} {l rrim.s36sh_1_1_36}}}}
|
||||
put {rrim.s1-2} tgc V {0 0 25.19983160980545022766819} H {0 0 -13.38883160980544850815477} A {0 197.3801853527571950053243 0} B {197.3801853527571950053243 0 0} C {0 192.8812499999999943156581 0} D {192.8812499999999943156581 0 0}
|
||||
put {rrim.s1-1} tgc V {0 0 -1.453479018435659853025754} H {0 0 14.75836748475629534027576} A {0 -197.3384002078076662201056 0} B {197.3384002078076662201056 0 0} C {0 -192.3792713486825789459544 0} D {192.3792713486825789459544 0 0}
|
||||
put {rhub.s5-1} comb region no tree {u {u {u {u {u {l rhspkh_1_1_1} {l rhspkh_1_1_2}} {u {l rhspkh_1_1_3} {l rhspkh_1_1_4}}} {u {u {l rhspkh_1_1_5} {l rhspkh_1_1_6}} {u {l rhspkh_1_1_7} {l rhspkh_1_1_8}}}} {u {u {u {l rhspkh_1_1_9} {l rhspkh_1_1_10}} {u {l rhspkh_1_1_11} {l rhspkh_1_1_12}}} {u {u {l rhspkh_1_1_13} {l rhspkh_1_1_14}} {u {l rhspkh_1_1_15} {l rhspkh_1_1_16}}}}} {u {l rhspkh_1_1_17} {l rhspkh_1_1_18}}}
|
||||
put {rhub.s3-1} comb region no tree {u {u {u {u {u {l rhspkh2_1_1_1} {l rhspkh2_1_1_2}} {u {l rhspkh2_1_1_3} {l rhspkh2_1_1_4}}} {u {u {l rhspkh2_1_1_5} {l rhspkh2_1_1_6}} {u {l rhspkh2_1_1_7} {l rhspkh2_1_1_8}}}} {u {u {u {l rhspkh2_1_1_9} {l rhspkh2_1_1_10}} {u {l rhspkh2_1_1_11} {l rhspkh2_1_1_12}}} {u {u {l rhspkh2_1_1_13} {l rhspkh2_1_1_14}} {u {l rhspkh2_1_1_15} {l rhspkh2_1_1_16}}}}} {u {l rhspkh2_1_1_17} {l rhspkh2_1_1_18}}}
|
||||
put {rhub.s1-1} tgc V {0 0 -1.587500000000000133226763} H {0 0 149.2249999999999943156581} A {0 -2.540000000000000035527137 0} B {2.540000000000000035527137 0 0} C {0 -2.540000000000000035527137 0} D {2.540000000000000035527137 0 0}
|
||||
put {rrimi.s2} tgc V {0 0 1.016000000000000014210855} H {0 0 21.59000000000000341060513} A {0 -208.5339999999999633928383 0} B {208.5339999999999633928383 0 0} C {0 -208.5339999999999633928383 0} D {208.5339999999999633928383 0 0}
|
||||
put {rtire.s1} eto V {0 0 11.81099999999999994315658} N {0 0 25.39999999999999857891453} C {17.46249999999999857891453 0 0} r 222.25 r_d 15.875
|
||||
put {rrimi.s1} tgc V {0 0 2.032000000000000028421709} H {0 0 19.55799999999999982946974} A {0 -211.1374999999999602096068 0} B {211.1374999999999602096068 0 0} C {0 -211.1374999999999602096068 0} D {211.1374999999999602096068 0 0}
|
||||
put {rtire.r1} comb region yes tree {- {- {l rtire.s1 {1 0 0 0 0 1 0 0 0 0 1 61.214 0 0 0 1}} {l rrim.s1 {1 0 0 0 0 1 0 0 0 0 1 61.214 0 0 0 1}}} {l rtire.s1-1 {1 0 0 0 0 1 0 0 0 0 1 61.214 0 0 0 1}}}
|
||||
attr set {rtire.r1} {color} {33/33/33} {shader} {stack {{fbmbump {o 4 s 5 a 30}} {plastic {}}}} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
|
||||
put {spoke_d} comb region no tree {u {u {u {u {l spkj_1_1_1} {l spkj_1_1_2}} {u {l spkj_1_1_3} {l spkj_1_1_4}}} {u {u {l spkj_1_1_5} {l spkj_1_1_6}} {u {l spkj_1_1_7} {l spkj_1_1_8}}}} {l spkj_1_1_9}}
|
||||
put {spoke_c} comb region no tree {u {u {u {u {l spki_1_1_1} {l spki_1_1_2}} {u {l spki_1_1_3} {l spki_1_1_4}}} {u {u {l spki_1_1_5} {l spki_1_1_6}} {u {l spki_1_1_7} {l spki_1_1_8}}}} {l spki_1_1_9}}
|
||||
put {spoke_b} comb region no tree {u {u {u {u {l spkl_1_1_1} {l spkl_1_1_2}} {u {l spkl_1_1_3} {l spkl_1_1_4}}} {u {u {l spkl_1_1_5} {l spkl_1_1_6}} {u {l spkl_1_1_7} {l spkl_1_1_8}}}} {l spkl_1_1_9}}
|
||||
put {spoke_A} comb region no tree {u {u {u {u {l spkk_1_1_1} {l spkk_1_1_2}} {u {l spkk_1_1_3} {l spkk_1_1_4}}} {u {u {l spkk_1_1_5} {l spkk_1_1_6}} {u {l spkk_1_1_7} {l spkk_1_1_8}}}} {l spkk_1_1_9}}
|
||||
put {rhspkh2} tgc V {21.7622817260637724245953 3.83727743008382748968188 35.05199999999999249666871} H {0 0 3.809999999999999609201495} A {0.2756664820462519926991263 -1.563382307906880042125408 0} B {1.563382307906880042125408 0.2756664820462519926991263 0} C {0.2756664820462519926991263 -1.563382307906880042125408 0} D {1.563382307906880042125408 0.2756664820462519926991263 0}
|
||||
put {rrim.s1} tgc V {0 0 0} H {0 0 23.62199999999999988631316} A {0 -209.5499999999999829469743 0} B {209.5499999999999829469743 0 0} C {0 -209.5499999999999829469743 0} D {209.5499999999999829469743 0 0}
|
||||
put {rhub.s5} tgc V {0 0 91.5669999999999930651029} H {0 0 3.174999999999999822364316} A {0 -26.86049999999999826627572 0} B {26.8605000000000018189894 0 0} C {0 -26.86049999999999826627572 0} D {26.8605000000000018189894 0 0}
|
||||
put {rrim.r1} comb region yes tree {- {- {- {- {l rrim.s1 {1 0 0 0 0 1 0 0 0 0 1 61.214 0 0 0 1}} {l rrim.s1-1 {1 0 0 0 0 1 0 0 0 0 1 61.214 0 0 0 1}}} {l rrim.s1-2 {1 0 0 0 0 1 0 0 0 0 1 61.214 0 0 0 1}}} {l rrim.s1-3 {1 0 0 0 0 1 0 0 0 0 1 61.214 0 0 0 1}}} {l rrim.s1-4 {1 0 0 0 0 1 0 0 0 0 1 61.214 0 0 0 1}}}
|
||||
attr set {rrim.r1} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
|
||||
put {rhub.s4} tgc V {0 0 38.73499999999999232613845} H {0 0 52.83200000000000073896445} A {0 -15.04950000000000009947598 0} B {15.04950000000000009947598 0 0} C {0 -15.04950000000000009947598 0} D {15.04950000000000009947598 0 0}
|
||||
put {rhub.s3} tgc V {0 0 35.5599999999999951683094} H {0 0 3.174999999999999822364316} A {0 -26.86049999999999826627572 0} B {26.8605000000000018189894 0 0} C {0 -26.86049999999999826627572 0} D {26.8605000000000018189894 0 0}
|
||||
put {rhub.s2} tgc V {0 0 12.69999999999999928945726} H {0 0 22.85999999999999943156581} A {0 -6.349999999999999644728632 0} B {6.349999999999999644728632 0 0} C {0 -11.42999999999999971578291 0} D {11.42999999999999971578291 0 0}
|
||||
put {rcas.s2} tgc V {0 0 0} H {0 0 38.09999999999999431565811} A {0 -17.7799999999999975841547 0} B {17.7799999999999975841547 0 0} C {0 -17.7799999999999975841547 0} D {17.7799999999999975841547 0 0}
|
||||
put {rhub.s1} tgc V {0 0 0} H {0 0 146.0499999999999829469743} A {0 -4.889499999999999957367436 0} B {4.889499999999999957367436 0 0} C {0 -4.889499999999999957367436 0} D {4.889499999999999957367436 0 0}
|
||||
put {rhub.r1} comb region yes tree {u {u {u {u {- {l rhub.s1} {l rhub.s1-1}} {l rhub.s2}} {- {l rhub.s3} {l rhub.s3-1}}} {l rhub.s4}} {- {l rhub.s5} {l rhub.s5-1}}}
|
||||
attr set {rhub.r1} {color} {35/35/35} {shader} {plastic} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
|
||||
put {rhspkh} tgc V {22.09799999999999897681846 0 91.43999999999999772626325} H {0 0 3.809999999999999609201495} A {0 -1.587499999999999911182158 0} B {1.587499999999999911182158 0 0} C {0 -1.587499999999999911182158 0} D {1.587499999999999911182158 0 0}
|
||||
put {rwheel} comb region no tree {u {u {u {l rcassette.r {1 0 0 0 0 -1 0 0 0 0 -1 139.7 0 0 0 1}} {l rhub.r1}} {u {l rrim.r1} {l rtire.r1}}} {l spokes.r}}
|
||||
put {rri.s3} tor V {0 0 23.62199999999999988631316} H {0 0 0.9999999999999998889776975} r_a 196.8499999999999943156581 r_h 6.349999999999999644728632
|
||||
put {rri.s2} tor V {0 0 0} H {0 0 0.9999999999999998889776975} r_a 196.8499999999999943156581 r_h 6.349999999999999644728632
|
||||
put {rri.s1} tgc V {0 0 5.080000000000000071054274} H {0 0 13.97000000000000063948846} A {0 -196.8499999999999658939487 0} B {196.8499999999999943156581 0 0} C {0 -196.8499999999999658939487 0} D {196.8499999999999943156581 0 0}
|
||||
put {rrim.s9sh_1_1_9} comb region no tree {l rrim.s1sh {0.173648 -0.984808 0 0 0.984808 0.173648 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s8sh_1_1_8} comb region no tree {l rrim.s1sh {0.34202 -0.939693 0 0 0.939693 0.34202 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s7sh_1_1_7} comb region no tree {l rrim.s1sh {0.5 -0.866025 0 0 0.866025 0.5 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s6sh_1_1_6} comb region no tree {l rrim.s1sh {0.642788 -0.766044 0 0 0.766044 0.642788 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s5sh_1_1_5} comb region no tree {l rrim.s1sh {0.766044 -0.642788 0 0 0.642788 0.766044 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s4sh_1_1_4} comb region no tree {l rrim.s1sh {0.866025 -0.5 0 0 0.5 0.866025 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s3sh_1_1_3} comb region no tree {l rrim.s1sh {0.939693 -0.34202 0 0 0.34202 0.939693 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s2sh_1_1_2} comb region no tree {l rrim.s1sh {0.984808 -0.173648 0 0 0.173648 0.984808 0 0 0 0 1 0 0 0 0 1}}
|
||||
put {rrim.s1sh_1_1_1} comb region no tree {l rrim.s1sh}
|
||||
put {spkl} pipe V0 { 20.76709480285642683838887 7.551670837402355118683772 90.65737819671632280460472 } O0 1.337557689563829255163796 I0 -0 R0 1.778000000000000024868996 V1 { 20.77675991058347904072434 7.551670837402345348721155 91.2437280654907425514466 } O1 3.550397189753127680234002 I1 -0 R1 1.778000000000000024868996 V2 { 20.76548395156863691113358 7.551670837402342684185896 92.05237541198734163572226 } O2 1.778000000000000024868996 I2 -0 R2 1.778000000000000024868996 V3 { 20.76709480285642328567519 7.551670837402365776824809 97.27797698974610796085472 } O3 1.778000000000000024868996 I3 -0 R3 1.778000000000000024868996 V4 { 96.65107727050778407829057 -168.714120483398488659077 72.89613189697269035605132 } O4 1.778000000000000024868996 I4 -0 R4 1.778000000000000024868996
|
||||
put {spkk} pipe V0 { 22.11288281250000409272616 0.01288681030274606807706217 95.60269165039063921085472 } O0 1.785138282554655120293319 I0 -0 R0 6.598046874999998756550212 V1 { 22.11288281250000409272616 0.01288681030274606807706217 95.03567199707032386868377 } O1 4.070271197360822768018807 I1 -0 R1 6.598046874999998756550212 V2 { 22.11288281250001475086719 0.01288681030274606807706217 93.65678329467775142802566 } O2 1.778000000000000024868996 I2 -0 R2 6.598046874999998756550212 V3 { 22.10339501953125207478479 0.08911623464794377058595387 90.33015632036135400539933 } O3 1.778000000000000024868996 I3 -0 R3 2.496955272208652765186798 V4 { 33.55725402832030823674359 192.3227569580077442878974 73.30678124999998601651896 } O4 1.778000000000000024868996 I4 -0 R4 6.598046874999998756550212
|
||||
put {spkj} pipe V0 { 19.1582472419363760707256 10.97847094045843441278976 39.25328368547360469165142 } O0 1.074875597385660741522884 I0 -0 R0 1.778000000000000024868996 V1 { 19.15824724193638672886664 10.97847094045843441278976 38.81835383775631953540142 } O1 3.552089230759687854543927 I1 -0 R1 1.778000000000000024868996 V2 { 19.15824724193635120172985 10.97847094045843441278976 38.33187674882810114240783 } O2 1.778000000000000024868996 I2 -0 R2 1.778000000000000024868996 V3 { 19.15824724193635830715721 10.97847094045843441278976 32.88719939592282770490783 } O3 1.778000000000000024868996 I3 -0 R3 1.778000000000000024868996 V4 { 124.1515304565429431704615 -148.5849227905274005934189 73.63529357316897971941216 } O4 1.778000000000000024868996 I4 -0 R4 1.778000000000000024868996
|
||||
put {spki} pipe V0 { 21.85159059520787394603758 3.839178032743594037867751 34.56892814042966932674972 } O0 1.778000000000000024868996 I0 -0 R0 1.778000000000000024868996 V1 { 21.85159059520787749875126 3.839178032743594037867751 34.81377753618162529392066 } O1 3.311175825425637153642811 I1 -0 R1 1.778000000000000024868996 V2 { 21.85159059520787749875126 3.839178032743594037867751 35.07151374223631279392066 } O2 1.777999999999999802824391 I2 -0 R2 1.778000000000000024868996 V3 { 21.85159059520787394603758 3.848843140470644463846384 39.34188050630491062520377 } O3 1.777999999999999802824391 I3 -0 R3 1.778000000000000024868996 V4 { 0 192.9928710937499261035555 72.84086766820408342937299 } O4 1.777999999999999802824391 I4 -0 R4 1.778000000000000024868996
|
||||
put {rrii} comb region no tree {u {l rrimi.s1} {l rrimi.s2}}
|
||||
put {rri} comb region no tree {u {u {l rri.s1} {l rri.s2}} {l rri.s3}}
|
||||
@@ -1,26 +0,0 @@
|
||||
set(
|
||||
CHESS_PARTS
|
||||
bishop.asc
|
||||
chessboard.asc
|
||||
king.asc
|
||||
knight.asc
|
||||
pawn.asc
|
||||
queen.asc
|
||||
rook.asc
|
||||
)
|
||||
|
||||
foreach(piece ${CHESS_PARTS})
|
||||
g_target(${piece} "BRL-CAD Geometry Models/Sample/Chess")
|
||||
endforeach(piece ${CHESS_PARTS})
|
||||
|
||||
cmakefiles(
|
||||
${CHESS_PARTS}
|
||||
CMakeLists.txt
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -1,27 +0,0 @@
|
||||
title {Bishop by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 7.634087276719064618646371 r_d 1.673109642593672896637713
|
||||
put {head_fill.s} tgc V {0 0 58.80223912679091569088996} H {0 0 22.65963591768163354345234} A {5.387125525462328923254063 0 0} B {0 5.387125525462328923254063 0} C {5.200376920059111007788033 0 0} D {0 5.200376920059111007788033 0}
|
||||
put {head_bulb.c} comb region no tree {u {u {u {l head_tip.s} {l headeto1.s}} {u {l headeto2.s} {l headeto3.s}}} {u {l headtor.s} {l head_fill.s}}}
|
||||
put {head_tip.s} ell V {0 0 87.04042899999969051805238} A {4.122892005997910835901621 0 0} B {0 4.122892005997910835901621 0} C {0 0 1.842941974166217855568561}
|
||||
put {headeto3.s} eto V {4.688718984760804335454747E-15 0 59.13440800000000763247954} N {-7.947115565380555332745523E-18 0 -0.06489312323286719474957351} C {-4.236592184243099801221888 2.53851689495714083477651 -2.794683321910145679112247} r 6.747558139033351665148075 r_d 2.154325975943817361724086
|
||||
put {headeto2.s} eto V {0 0 69.75203000000003328295861} N {1.448859083826348923311558E-17 0 0.05915416121754862865955715} C {3.216284115722051861752107 0.07864296900740583295963404 7.027901354553716117834483} r 5.71636407530149437405953 r_d 5.245951427846474501848206
|
||||
put {headeto1.s} eto V {0 0 78.93410500000000240561349} N {-6.702751448643837023482541E-18 0 -0.05473211911638976162608472} C {-4.89647969165551177894713 -1.380861880325698898275277 -7.149314636959307023289512} r 5.669699999999999739941359 r_d 2.770284953476933154092876
|
||||
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 8.61686192136895989790446 r_h 0.9710977822416242410952236
|
||||
put {bodycut.s} tor V {0 0 44.99824699999995658572516} H {6.12323399573676603586882E-17 0 1} r_a 84.47809976324354863663757 r_h 78.38786126059979153524182
|
||||
put {headtor.s} tor V {0 0 61.97812700000005747824616} H {3.061616997868383634231992E-16 0 1} r_a 8.239894264539179502548905 r_h 0.9722303169289367996697138
|
||||
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
|
||||
put {headcut.s} rpc V {12.21216100000001958392204 7.476746999999903664502199 83.68170200000177771926246} H {-23.87939453125 2.601874869850522123907568E-16 1.438855652391413561129983E-15} B {-6.645126338810317127466624E-16 -8.09669190546901518246159 -9.5641987525274494430505} r 1.903339211850920698054779
|
||||
put {bishop.r} comb region yes tree {l bishop.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
|
||||
attr set {bishop.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
|
||||
put {bishop.c} comb region no tree {u {u {l head.c} {l body.c}} {l bottom.c}}
|
||||
put {scene.g} comb region no tree {u {l bishop.r} {l tile.r}}
|
||||
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 56.83007219556699851636949} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {oshader} {plastic {sh 1}} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body.c} comb region no tree {u {- {l body.s} {l bodycut.s}} {l bodytor.s}}
|
||||
put {head.c} comb region no tree {- {l head_bulb.c} {l headcut.s}}
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
@@ -1,83 +0,0 @@
|
||||
title {Chessboard by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {board_cuts.c} comb region no tree {u {u {l boardcut1.s} {l boardcut2.s}} {u {l boardcut3.s} {l boardcut4.s}}}
|
||||
put {tiles_dark.r} comb region yes tree {l tiles_dark.c}
|
||||
attr set {tiles_dark.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 sp 0.8 di 0.2}} {region_id} {1000} {material_id} {1} {los} {100} {color} {75/45/47}
|
||||
put {wood_plane.s} arb8 V1 {313.5 -313.5 -15} V2 {313.5 313.5 -15} V3 {313.5 313.5 5} V4 {313.5 -313.5 5} V5 {-313.5 -313.5 -15} V6 {-313.5 313.5 -15} V7 {-313.5 313.5 5} V8 {-313.5 -313.5 5}
|
||||
put {tiles_dark.c} comb region no tree {u {u {u {u {u {l a1.s} {l c1.s}} {u {l e1.s} {l g1.s}}} {u {u {l b2.s} {l d2.s}} {u {l f2.s} {l h2.s}}}} {u {u {u {l a3.s} {l c3.s}} {u {l e3.s} {l g3.s}}} {u {u {l b4.s} {l d4.s}} {u {l f4.s} {l h4.s}}}}} {u {u {u {u {l a5.s} {l c5.s}} {u {l e5.s} {l g5.s}}} {u {u {l b6.s} {l d6.s}} {u {l f6.s} {l h6.s}}}} {u {u {u {l a7.s} {l c7.s}} {u {l e7.s} {l g7.s}}} {u {u {l b8.s} {l d8.s}} {u {l f8.s} {l h8.s}}}}}}
|
||||
put {boardcut4.s} tgc V {-313.5 -313.5 5} H {-3.839267715326952574428091E-14 627 3.839267715326952574428091E-14} A {3.749399456654646756500121E-32 -6.123233995736770226692379E-16 10} B {42.75 2.617682533177467341666965E-15 0} C {3.74939945665464456697127E-32 -6.123233995736766282387853E-16 10} D {42.75 2.617682533177467341666965E-15 0}
|
||||
put {boardcut3.s} tgc V {313.5 -313.5 5} H {-627 0 3.839267715326952574428091E-14} A {6.123233995736770226692379E-16 0 10} B {0 42.75 0} C {6.123233995736766282387853E-16 0 10} D {0 42.75 0}
|
||||
put {boardcut2.s} tgc V {313.5 -313.5 5} H {-3.839267715326952574428091E-14 627 3.839267715326952574428091E-14} A {3.749399456654646756500121E-32 -6.123233995736770226692379E-16 10} B {42.75 2.617682533177467341666965E-15 0} C {3.74939945665464456697127E-32 -6.123233995736766282387853E-16 10} D {42.75 2.617682533177467341666965E-15 0}
|
||||
put {boardcut1.s} tgc V {313.5 313.5 5} H {-627 0 3.839267715326952574428091E-14} A {6.123233995736770226692379E-16 0 10} B {0 42.75 0} C {6.123233995736766282387853E-16 0 10} D {0 42.75 0}
|
||||
put {border.r} comb region yes tree {- {- {l wood_plane.s} {l tiles.c}} {l board_cuts.c}}
|
||||
attr set {border.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 sp 0.8 di 0.2}} {region_id} {1002} {material_id} {1} {los} {100} {color} {245/227/174}
|
||||
put {tiles.c} comb region no tree {u {l tiles_light.r} {l tiles_dark.r}}
|
||||
put {board.g} comb region no tree {u {l tiles.c} {l border.r}}
|
||||
put {tiles_light.r} comb region yes tree {l tiles_light.c}
|
||||
attr set {tiles_light.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 sp 0.8 di 0.2}} {region_id} {1001} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {h8.s} arb8 V1 {228 171 0} V2 {228 228 0} V3 {228 228 5} V4 {228 171 5} V5 {171 171 0} V6 {171 228 0} V7 {171 228 5} V8 {171 171 5}
|
||||
put {g8.s} arb8 V1 {171 171 0} V2 {171 228 0} V3 {171 228 5} V4 {171 171 5} V5 {114 171 0} V6 {114 228 0} V7 {114 228 5} V8 {114 171 5}
|
||||
put {f8.s} arb8 V1 {114 171 0} V2 {114 228 0} V3 {114 228 5} V4 {114 171 5} V5 {57 171 0} V6 {57 228 0} V7 {57 228 5} V8 {57 171 5}
|
||||
put {h7.s} arb8 V1 {228 114 0} V2 {228 171 0} V3 {228 171 5} V4 {228 114 5} V5 {171 114 0} V6 {171 171 0} V7 {171 171 5} V8 {171 114 5}
|
||||
put {e8.s} arb8 V1 {57 171 0} V2 {57 228 0} V3 {57 228 5} V4 {57 171 5} V5 {0 171 0} V6 {0 228 0} V7 {0 228 5} V8 {0 171 5}
|
||||
put {g7.s} arb8 V1 {171 114 0} V2 {171 171 0} V3 {171 171 5} V4 {171 114 5} V5 {114 114 0} V6 {114 171 0} V7 {114 171 5} V8 {114 114 5}
|
||||
put {d8.s} arb8 V1 {0 171 0} V2 {0 228 0} V3 {0 228 5} V4 {0 171 5} V5 {-57 171 0} V6 {-57 228 0} V7 {-57 228 5} V8 {-57 171 5}
|
||||
put {f7.s} arb8 V1 {114 114 0} V2 {114 171 0} V3 {114 171 5} V4 {114 114 5} V5 {57 114 0} V6 {57 171 0} V7 {57 171 5} V8 {57 114 5}
|
||||
put {h6.s} arb8 V1 {228 57 0} V2 {228 114 0} V3 {228 114 5} V4 {228 57 5} V5 {171 57 0} V6 {171 114 0} V7 {171 114 5} V8 {171 57 5}
|
||||
put {c8.s} arb8 V1 {-57 171 0} V2 {-57 228 0} V3 {-57 228 5} V4 {-57 171 5} V5 {-114 171 0} V6 {-114 228 0} V7 {-114 228 5} V8 {-114 171 5}
|
||||
put {e7.s} arb8 V1 {57 114 0} V2 {57 171 0} V3 {57 171 5} V4 {57 114 5} V5 {0 114 0} V6 {0 171 0} V7 {0 171 5} V8 {0 114 5}
|
||||
put {g6.s} arb8 V1 {171 57 0} V2 {171 114 0} V3 {171 114 5} V4 {171 57 5} V5 {114 57 0} V6 {114 114 0} V7 {114 114 5} V8 {114 57 5}
|
||||
put {b8.s} arb8 V1 {-114 171 0} V2 {-114 228 0} V3 {-114 228 5} V4 {-114 171 5} V5 {-171 171 0} V6 {-171 228 0} V7 {-171 228 5} V8 {-171 171 5}
|
||||
put {d7.s} arb8 V1 {0 114 0} V2 {0 171 0} V3 {0 171 5} V4 {0 114 5} V5 {-57 114 0} V6 {-57 171 0} V7 {-57 171 5} V8 {-57 114 5}
|
||||
put {f6.s} arb8 V1 {114 57 0} V2 {114 114 0} V3 {114 114 5} V4 {114 57 5} V5 {57 57 0} V6 {57 114 0} V7 {57 114 5} V8 {57 57 5}
|
||||
put {h5.s} arb8 V1 {228 0 0} V2 {228 57 0} V3 {228 57 5} V4 {228 0 5} V5 {171 0 0} V6 {171 57 0} V7 {171 57 5} V8 {171 0 5}
|
||||
put {a8.s} arb8 V1 {-171 171 0} V2 {-171 228 0} V3 {-171 228 5} V4 {-171 171 5} V5 {-228 171 0} V6 {-228 228 0} V7 {-228 228 5} V8 {-228 171 5}
|
||||
put {c7.s} arb8 V1 {-57 114 0} V2 {-57 171 0} V3 {-57 171 5} V4 {-57 114 5} V5 {-114 114 0} V6 {-114 171 0} V7 {-114 171 5} V8 {-114 114 5}
|
||||
put {e6.s} arb8 V1 {57 57 0} V2 {57 114 0} V3 {57 114 5} V4 {57 57 5} V5 {0 57 0} V6 {0 114 0} V7 {0 114 5} V8 {0 57 5}
|
||||
put {g5.s} arb8 V1 {171 0 0} V2 {171 57 0} V3 {171 57 5} V4 {171 0 5} V5 {114 0 0} V6 {114 57 0} V7 {114 57 5} V8 {114 0 5}
|
||||
put {b7.s} arb8 V1 {-114 114 0} V2 {-114 171 0} V3 {-114 171 5} V4 {-114 114 5} V5 {-171 114 0} V6 {-171 171 0} V7 {-171 171 5} V8 {-171 114 5}
|
||||
put {d6.s} arb8 V1 {0 57 0} V2 {0 114 0} V3 {0 114 5} V4 {0 57 5} V5 {-57 57 0} V6 {-57 114 0} V7 {-57 114 5} V8 {-57 57 5}
|
||||
put {f5.s} arb8 V1 {114 0 0} V2 {114 57 0} V3 {114 57 5} V4 {114 0 5} V5 {57 0 0} V6 {57 57 0} V7 {57 57 5} V8 {57 0 5}
|
||||
put {h4.s} arb8 V1 {228 -57 0} V2 {228 0 0} V3 {228 0 5} V4 {228 -57 5} V5 {171 -57 0} V6 {171 0 0} V7 {171 0 5} V8 {171 -57 5}
|
||||
put {a7.s} arb8 V1 {-171 114 0} V2 {-171 171 0} V3 {-171 171 5} V4 {-171 114 5} V5 {-228 114 0} V6 {-228 171 0} V7 {-228 171 5} V8 {-228 114 5}
|
||||
put {c6.s} arb8 V1 {-57 57 0} V2 {-57 114 0} V3 {-57 114 5} V4 {-57 57 5} V5 {-114 57 0} V6 {-114 114 0} V7 {-114 114 5} V8 {-114 57 5}
|
||||
put {e5.s} arb8 V1 {57 0 0} V2 {57 57 0} V3 {57 57 5} V4 {57 0 5} V5 {0 0 0} V6 {0 57 0} V7 {0 57 5} V8 {0 0 5}
|
||||
put {g4.s} arb8 V1 {171 -57 0} V2 {171 0 0} V3 {171 0 5} V4 {171 -57 5} V5 {114 -57 0} V6 {114 0 0} V7 {114 0 5} V8 {114 -57 5}
|
||||
put {b6.s} arb8 V1 {-114 57 0} V2 {-114 114 0} V3 {-114 114 5} V4 {-114 57 5} V5 {-171 57 0} V6 {-171 114 0} V7 {-171 114 5} V8 {-171 57 5}
|
||||
put {d5.s} arb8 V1 {0 0 0} V2 {0 57 0} V3 {0 57 5} V4 {0 0 5} V5 {-57 0 0} V6 {-57 57 0} V7 {-57 57 5} V8 {-57 0 5}
|
||||
put {f4.s} arb8 V1 {114 -57 0} V2 {114 0 0} V3 {114 0 5} V4 {114 -57 5} V5 {57 -57 0} V6 {57 0 0} V7 {57 0 5} V8 {57 -57 5}
|
||||
put {h3.s} arb8 V1 {228 -114 0} V2 {228 -57 0} V3 {228 -57 5} V4 {228 -114 5} V5 {171 -114 0} V6 {171 -57 0} V7 {171 -57 5} V8 {171 -114 5}
|
||||
put {a6.s} arb8 V1 {-171 57 0} V2 {-171 114 0} V3 {-171 114 5} V4 {-171 57 5} V5 {-228 57 0} V6 {-228 114 0} V7 {-228 114 5} V8 {-228 57 5}
|
||||
put {c5.s} arb8 V1 {-57 0 0} V2 {-57 57 0} V3 {-57 57 5} V4 {-57 0 5} V5 {-114 0 0} V6 {-114 57 0} V7 {-114 57 5} V8 {-114 0 5}
|
||||
put {e4.s} arb8 V1 {57 -57 0} V2 {57 0 0} V3 {57 0 5} V4 {57 -57 5} V5 {0 -57 0} V6 {0 0 0} V7 {0 0 5} V8 {0 -57 5}
|
||||
put {g3.s} arb8 V1 {171 -114 0} V2 {171 -57 0} V3 {171 -57 5} V4 {171 -114 5} V5 {114 -114 0} V6 {114 -57 0} V7 {114 -57 5} V8 {114 -114 5}
|
||||
put {b5.s} arb8 V1 {-114 0 0} V2 {-114 57 0} V3 {-114 57 5} V4 {-114 0 5} V5 {-171 0 0} V6 {-171 57 0} V7 {-171 57 5} V8 {-171 0 5}
|
||||
put {d4.s} arb8 V1 {0 -57 0} V2 {0 0 0} V3 {0 0 5} V4 {0 -57 5} V5 {-57 -57 0} V6 {-57 0 0} V7 {-57 0 5} V8 {-57 -57 5}
|
||||
put {f3.s} arb8 V1 {114 -114 0} V2 {114 -57 0} V3 {114 -57 5} V4 {114 -114 5} V5 {57 -114 0} V6 {57 -57 0} V7 {57 -57 5} V8 {57 -114 5}
|
||||
put {h2.s} arb8 V1 {228 -171 0} V2 {228 -114 0} V3 {228 -114 5} V4 {228 -171 5} V5 {171 -171 0} V6 {171 -114 0} V7 {171 -114 5} V8 {171 -171 5}
|
||||
put {a5.s} arb8 V1 {-171 0 0} V2 {-171 57 0} V3 {-171 57 5} V4 {-171 0 5} V5 {-228 0 0} V6 {-228 57 0} V7 {-228 57 5} V8 {-228 0 5}
|
||||
put {c4.s} arb8 V1 {-57 -57 0} V2 {-57 0 0} V3 {-57 0 5} V4 {-57 -57 5} V5 {-114 -57 0} V6 {-114 0 0} V7 {-114 0 5} V8 {-114 -57 5}
|
||||
put {e3.s} arb8 V1 {57 -114 0} V2 {57 -57 0} V3 {57 -57 5} V4 {57 -114 5} V5 {0 -114 0} V6 {0 -57 0} V7 {0 -57 5} V8 {0 -114 5}
|
||||
put {g2.s} arb8 V1 {171 -171 0} V2 {171 -114 0} V3 {171 -114 5} V4 {171 -171 5} V5 {114 -171 0} V6 {114 -114 0} V7 {114 -114 5} V8 {114 -171 5}
|
||||
put {b4.s} arb8 V1 {-114 -57 0} V2 {-114 0 0} V3 {-114 0 5} V4 {-114 -57 5} V5 {-171 -57 0} V6 {-171 0 0} V7 {-171 0 5} V8 {-171 -57 5}
|
||||
put {d3.s} arb8 V1 {0 -114 0} V2 {0 -57 0} V3 {0 -57 5} V4 {0 -114 5} V5 {-57 -114 0} V6 {-57 -57 0} V7 {-57 -57 5} V8 {-57 -114 5}
|
||||
put {f2.s} arb8 V1 {114 -171 0} V2 {114 -114 0} V3 {114 -114 5} V4 {114 -171 5} V5 {57 -171 0} V6 {57 -114 0} V7 {57 -114 5} V8 {57 -171 5}
|
||||
put {h1.s} arb8 V1 {228 -228 0} V2 {228 -171 0} V3 {228 -171 5} V4 {228 -228 5} V5 {171 -228 0} V6 {171 -171 0} V7 {171 -171 5} V8 {171 -228 5}
|
||||
put {a4.s} arb8 V1 {-171 -57 0} V2 {-171 0 0} V3 {-171 0 5} V4 {-171 -57 5} V5 {-228 -57 0} V6 {-228 0 0} V7 {-228 0 5} V8 {-228 -57 5}
|
||||
put {c3.s} arb8 V1 {-57 -114 0} V2 {-57 -57 0} V3 {-57 -57 5} V4 {-57 -114 5} V5 {-114 -114 0} V6 {-114 -57 0} V7 {-114 -57 5} V8 {-114 -114 5}
|
||||
put {e2.s} arb8 V1 {57 -171 0} V2 {57 -114 0} V3 {57 -114 5} V4 {57 -171 5} V5 {0 -171 0} V6 {0 -114 0} V7 {0 -114 5} V8 {0 -171 5}
|
||||
put {g1.s} arb8 V1 {171 -228 0} V2 {171 -171 0} V3 {171 -171 5} V4 {171 -228 5} V5 {114 -228 0} V6 {114 -171 0} V7 {114 -171 5} V8 {114 -228 5}
|
||||
put {b3.s} arb8 V1 {-114 -114 0} V2 {-114 -57 0} V3 {-114 -57 5} V4 {-114 -114 5} V5 {-171 -114 0} V6 {-171 -57 0} V7 {-171 -57 5} V8 {-171 -114 5}
|
||||
put {d2.s} arb8 V1 {0 -171 0} V2 {0 -114 0} V3 {0 -114 5} V4 {0 -171 5} V5 {-57 -171 0} V6 {-57 -114 0} V7 {-57 -114 5} V8 {-57 -171 5}
|
||||
put {f1.s} arb8 V1 {114 -228 0} V2 {114 -171 0} V3 {114 -171 5} V4 {114 -228 5} V5 {57 -228 0} V6 {57 -171 0} V7 {57 -171 5} V8 {57 -228 5}
|
||||
put {a3.s} arb8 V1 {-171 -114 0} V2 {-171 -57 0} V3 {-171 -57 5} V4 {-171 -114 5} V5 {-228 -114 0} V6 {-228 -57 0} V7 {-228 -57 5} V8 {-228 -114 5}
|
||||
put {c2.s} arb8 V1 {-57 -171 0} V2 {-57 -114 0} V3 {-57 -114 5} V4 {-57 -171 5} V5 {-114 -171 0} V6 {-114 -114 0} V7 {-114 -114 5} V8 {-114 -171 5}
|
||||
put {e1.s} arb8 V1 {57 -228 0} V2 {57 -171 0} V3 {57 -171 5} V4 {57 -228 5} V5 {0 -228 0} V6 {0 -171 0} V7 {0 -171 5} V8 {0 -228 5}
|
||||
put {b2.s} arb8 V1 {-114 -171 0} V2 {-114 -114 0} V3 {-114 -114 5} V4 {-114 -171 5} V5 {-171 -171 0} V6 {-171 -114 0} V7 {-171 -114 5} V8 {-171 -171 5}
|
||||
put {d1.s} arb8 V1 {0 -228 0} V2 {0 -171 0} V3 {0 -171 5} V4 {0 -228 5} V5 {-57 -228 0} V6 {-57 -171 0} V7 {-57 -171 5} V8 {-57 -228 5}
|
||||
put {a2.s} arb8 V1 {-171 -171 0} V2 {-171 -114 0} V3 {-171 -114 5} V4 {-171 -171 5} V5 {-228 -171 0} V6 {-228 -114 0} V7 {-228 -114 5} V8 {-228 -171 5}
|
||||
put {c1.s} arb8 V1 {-57 -228 0} V2 {-57 -171 0} V3 {-57 -171 5} V4 {-57 -228 5} V5 {-114 -228 0} V6 {-114 -171 0} V7 {-114 -171 5} V8 {-114 -228 5}
|
||||
put {b1.s} arb8 V1 {-114 -228 0} V2 {-114 -171 0} V3 {-114 -171 5} V4 {-114 -228 5} V5 {-171 -228 0} V6 {-171 -171 0} V7 {-171 -171 5} V8 {-171 -228 5}
|
||||
put {a1.s} arb8 V1 {-171 -228 0} V2 {-171 -171 0} V3 {-171 -171 5} V4 {-171 -228 5} V5 {-228 -228 0} V6 {-228 -171 0} V7 {-228 -171 5} V8 {-228 -228 5}
|
||||
put {tiles_light.c} comb region no tree {u {u {u {u {u {l b1.s} {l d1.s}} {u {l f1.s} {l h1.s}}} {u {u {l a2.s} {l c2.s}} {u {l e2.s} {l g2.s}}}} {u {u {u {l b3.s} {l d3.s}} {u {l f3.s} {l h3.s}}} {u {u {l a4.s} {l c4.s}} {u {l e4.s} {l g4.s}}}}} {u {u {u {u {l b5.s} {l d5.s}} {u {l f5.s} {l h5.s}}} {u {u {l a6.s} {l c6.s}} {u {l e6.s} {l g6.s}}}} {u {u {u {l b7.s} {l d7.s}} {u {l f7.s} {l h7.s}}} {u {u {l a8.s} {l c8.s}} {u {l e8.s} {l g8.s}}}}}}
|
||||
put {b} comb region no tree {l board.g}
|
||||
@@ -1,35 +0,0 @@
|
||||
title {King by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 8.344052226122400384156208 r_d 1.673109642593672896637713
|
||||
put {crossbase.s} arb8 V1 {-1.399999999999999911182158 -2.100000000000000088817842 98.5} V2 {-1.399999999999999911182158 2.100000000000000088817842 98.5} V3 {1.399999999999999911182158 2.100000000000000088817842 98.5} V4 {1.399999999999999911182158 -2.100000000000000088817842 98.5} V5 {-1.399999999999999911182158 -3 94} V6 {-1.399999999999999911182158 3 94} V7 {1.399999999999999911182158 3 94} V8 {1.399999999999999911182158 -3 94}
|
||||
put {crossrpp2.s} arb8 V1 {1.399999999999999911182158 -5.5 97.84354270490985072683543} V2 {1.399999999999999911182158 5.5 97.84354270490985072683543} V3 {1.399999999999999911182158 5.5 102.5708639999999007841325} V4 {1.399999999999999911182158 -5.5 102.5708639999999007841325} V5 {-1.399999999999999911182158 -5.5 97.84354270490985072683543} V6 {-1.399999999999999911182158 5.5 97.84354270490985072683543} V7 {-1.399999999999999911182158 5.5 102.5708639999999007841325} V8 {-1.399999999999999911182158 -5.5 102.5708639999999007841325}
|
||||
put {crossrpp1.s} arb8 V1 {1.399999999999999911182158 -2 93.79999999999999715782906} V2 {1.399999999999999911182158 2 93.79999999999999715782906} V3 {1.399999999999999911182158 2 104.7999999999999971578291} V4 {1.399999999999999911182158 -2 104.7999999999999971578291} V5 {-1.399999999999999911182158 -2 93.79999999999999715782906} V6 {-1.399999999999999911182158 2 93.79999999999999715782906} V7 {-1.399999999999999911182158 2 104.7999999999999971578291} V8 {-1.399999999999999911182158 -2 104.7999999999999971578291}
|
||||
put {crowncut1.s} eto V {0 0 81.72700899999993850997271} N {0 0 0.6853489141366997383642001} C {7.936978064717960634766314 0.7583105325216803471732874 14.21238543732845016620558} r 19.09763828673395735791019 r_d 8.357084880198749843316364
|
||||
put {crossrcc2.s} tgc V {0 0 90.50940899999976352319209} H {0 0 3.460360060764851031223088} A {5.74552092081112419919009 0 0} B {0 5.74552092081112419919009 0} C {5.74552092081112419919009 0 0} D {0 5.74552092081112419919009 0}
|
||||
put {crosscap1.s} arb8 V1 {1.399999999999999911182158 -2 104.7999999999999971578291} V2 {1.399999999999999911182158 2 104.7999999999999971578291} V3 {-1.399999999999999911182158 2 104.7999999999999971578291} V4 {-1.399999999999999911182158 -2 104.7999999999999971578291} V5 {1.399999999999999911182158 0 106.7999999999999971578291} V6 {1.399999999999999911182158 0 106.7999999999999971578291} V7 {-1.399999999999999911182158 0 106.7999999999999971578291} V8 {-1.399999999999999911182158 0 106.7999999999999971578291}
|
||||
put {crossrcc1.s} tgc V {0 0 92.2746839999997803261067} H {0 0 2.791740440327786565433144} A {4.517371551035873622481631 0 0} B {0 4.517371551035873622481631 0} C {4.517371551035873622481631 0 0} D {0 4.517371551035873622481631 0}
|
||||
put {crowntop.s} ell V {0 0 89.56678299999987302726367} A {14.0447366829880344596404 0 0} B {0 14.44069976610209771195059 0} C {0 0 3.638257540532901401775234}
|
||||
put {crownrcc.s} tgc V {0 0 74.52245129853007199471904} H {0 0 15.07198012589280011752635} A {14.92710113237911251360401 0 0} B {0 14.92710113237911251360401 0} C {14.92710113237911251360401 0 0} D {0 14.92710113237911251360401 0}
|
||||
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 9.461224391138355116481762 r_h 0.9710977822416242410952236
|
||||
put {bodyjut.s} ell V {0 0 63.05140500000015180148694} A {13.30005660511547738167337 0 0} B {0 13.30005660511547738167337 0} C {0 0 3.569547284150617283415841}
|
||||
put {bodycut.s} tor V {0 0 52.17296999999997808572516} H {6.12323399573676603586882E-17 0 1} r_a 107.7000000000000028421709 r_h 101.8122462061219977158544
|
||||
put {necktor.s} tor V {0 0 75.48642500000005384208634} H {3.061616997868383634231992E-16 0 1} r_a 8.239894264539179502548905 r_h 0.9722303169289367996697138
|
||||
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
|
||||
put {necketo.s} eto V {4.688718984760806702037463E-15 0 73.78394899999960898639983} N {-6.414480946927261832397496E-18 0 -0.05237821183539019542774184} C {-3.419547585807252154666003 2.04895324878489937248105 -2.255716904279041923331306} r 6.983691090436433768218194 r_d 1.738855162288100331124951
|
||||
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
|
||||
put {cross.c} comb region no tree {u {u {u {l crossbase.s} {l crosscap1.s}} {u {l crossrpp1.s} {l crossrpp2.s}}} {u {l crossrcc1.s} {l crossrcc2.s}}}
|
||||
put {crown.c} comb region no tree {u {- {l crownrcc.s} {l crowncut1.s}} {- {l crowntop.s} {l crownrcc.s}}}
|
||||
attr set {crown.c} {inherit} {1}
|
||||
put {scene.g} comb region no tree {u {l king.r} {l tile.r}}
|
||||
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 69.67849364592308347710059} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {king.r} comb region yes tree {l king.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
|
||||
attr set {king.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body.c} comb region no tree {u {u {- {l body.s} {l bodycut.s}} {l bodytor.s}} {l bodyjut.s}}
|
||||
put {king.c} comb region no tree {u {u {u {l cross.c} {l neck.c}} {u {l crown.c} {l body.c}}} {l bottom.c}}
|
||||
put {neck.c} comb region no tree {u {u {l necketo.s} {l necktor.s}} {l neck_filler.s}}
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
put {neck_filler.s} tgc V {0 0 72.44353981907315187527274} H {0 0 8.98374965637291111875129} A {7.656920043513968821002891 0 0} B {0 7.656920043513968821002891 0} C {7.142477262139500737703202 0 0} D {0 7.142477262139500737703202 0}
|
||||
@@ -1,37 +0,0 @@
|
||||
title {Knight by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {nosebridge.s} tgc V {9.352709000000004380126484 -3.525789999999890511617195 80.78344850000023313896236} H {-19.14158212483127030623109 -1.101398557933205700619376E-15 -4.008762911514063843746032E-16} A {3.673940397442060361078391E-16 -5.638155724715451455608672 -2.052120859954011056203171} B {0 -1.636701665453711651565527 4.496800868217849078689596} C {3.673940397442060361078391E-16 -5.638155724715451455608672 -2.052120859954010612113962} D {0 -1.636701665453711651565527 4.496800868217849078689596}
|
||||
put {bottomtor2.s} tor V {0 0 9.596580000000059840203903} H {6.12323399573676603586882E-17 0 1} r_a 13.70450855072022378067231 r_h 3.825815710827906279689614
|
||||
put {bottomtor1.s} tor V {0 0 28.10273999999994032350514} H {6.12323399573676603586882E-17 0 1} r_a 12.58196306773280248592073 r_h 1.732851834446541783307794
|
||||
put {bodysidecutleft.s} tgc V {53.6557214677912170941454 -33.67507614822139316856919 95.69336050000360671674571} H {-20.22449106457484546695014 143.9047313715058749039599 6.169122640972837335375385E-15} A {41.33529643904953587707496 5.809297064214792527536702 -2.55302085840457415599758} B {-6.045441934467547184794967 -0.8496314556149066055112939 -99.81347984218669466827123} C {41.33529643904953587707496 5.809297064214792527536702 -2.55302085840457415599758} D {-6.045441934467546296616547 -0.8496314556149064944889915 -99.81347984218669466827123}
|
||||
put {headsidecutleft.s} tgc V {22.4313670000000300319698 -28.39713199999998138878254 66.36153450000099951466837} H {6.936023102199139422907592 58.60216329849748717606417 21.47832101088326695048636} A {20.34482858059398324712674 -2.407969144867709410107182 0} B {0.8235739520514423483987798 6.958341187070909761303028 -19.25132668795071921863382} C {20.34482858059398324712674 -2.407969144867709410107182 0} D {0.8235739520514423483987798 6.958341187070909761303028 -19.25132668795071921863382}
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 12.40790665756528099450406 r_d 1.673109642593672896637713
|
||||
put {bodyrcc2.s} tgc V {1.17739012233862844939333E-14 11.10387200000011453937532 69.77637950000288924456981} H {0 -6.924928138629929286196329 19.02608369223165496464389} A {13.69742765710896037489874 0 0} B {0 12.87137169313410289817057 4.684796170477387278197057} C {13.69742765710896037489874 0 0} D {0 12.87137169313410289817057 4.684796170477387278197057}
|
||||
put {bodycut.s} tor V {0 0 44.16302899999998743396645} H {6.12323399573676603586882E-17 0 1} r_a 107.6761975244730109579905 r_h 97.57911721751440836669644
|
||||
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 12.99673099698723177652937 r_d 4.265499428605880716247611
|
||||
put {bodyrcc.s} tgc V {1.177390122338628764937692E-14 -5.261487999999998166344994 23.35826750000251195160672} H {0 28.82813499219855302158066 49.9317944939421209937791} A {18.70346099816892859735162 0 0} B {0 16.19767236310574887170333 -9.351730499084462522318972} C {18.70346099816892859735162 0 0} D {0 16.19767236310574887170333 -9.351730499084462522318972}
|
||||
put {headrcc.s} tgc V {2.364945229490083123615446E-14 -22.43134200000001854391485 70.83590250000071364411269} H {0 21.66504172617712953297087 7.885430312463741486794788} A {8.668888204531146612907833 0 0} B {0 2.96493438618794336036899 -8.146090276215920411573279} C {8.668888204531146612907833 0 0} D {0 2.96493438618794336036899 -8.146090276215920411573279}
|
||||
put {bodybottomsph.s} ell V {0 0 60.84612300000016915646484} A {33.54831727294207155409822 0 0} B {0 33.54831727294207155409822 0} C {0 0 33.54831727294207155409822}
|
||||
put {toptor.s} tor V {-1.290968171125081238436545E-14 26.0108720000002442418463 8.970701999999491249582206} H {1 0 0} r_a 65.14638440000000230156729 r_h 16.28659610000000057539182
|
||||
put {earcut.s} tgc V {6.942508314766508912183652E-14 -13.66162200000000304100922 85.5714520000014005063349} H {0 30.34242292565693688288775 11.04373878045554668858586} A {5 0 0} B {0 2.052120859954011500292381 -5.638155724715449679251833} C {5 0 0} D {0 2.052120859954011500292381 -5.638155724715449679251833}
|
||||
put {knight.r} comb region yes tree {l knight.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
|
||||
attr set {knight.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {bottom.c} comb region no tree {u {u {u {l bottometo.s} {l bottomtor1.s}} {u {l bottomtor2.s} {l baseeto.s}}} {l base_filler.s}}
|
||||
put {bodyfrontcutright.s} tgc V {-13.74871600000018645459932 -33.1595789999997947461452 63.90854050000422859056926} H {-41.4843562340515603636959 49.43913057838897628926134 -5.652944372718708048669131E-15} A {-20.4576653316778021007849 -17.16601943455906820190648 -3.9911764866229089143701} B {4.529143121461073562272759 3.800402322767091778388249 -39.56063453447669076012971} C {-20.4576653316778021007849 -17.16601943455906820190648 -3.9911764866229089143701} D {4.529143121461073562272759 3.800402322767091778388249 -39.56063453447669076012971}
|
||||
put {eararb.s} arb8 V1 {-26.90565549999994132690517 -0.4176225000000420295442893 84.91516750000046442892199} V2 {-26.90565549999994132690517 7.334443121211129401615381 86.28206582524249768084701} V3 {26.30018901632412564595143 7.334443121211129401615381 86.28206582524249768084701} V4 {26.30018901632412564595143 -0.4176225000000420295442893 84.91516750000046442892199} V5 {-26.90565549999994132690517 2.091511985363494030565334 93.35068228383262578518043} V6 {-26.90565549999994132690517 2.091511985363494030565334 93.35068228383262578518043} V7 {26.300189016324097224242 2.091511985363494030565334 93.35068228383262578518043} V8 {26.300189016324097224242 2.091511985363494030565334 93.35068228383262578518043}
|
||||
put {knight.c} comb region no tree {u {u {l head.c} {l body.c}} {u {l base.c} {l bottom.c}}}
|
||||
put {mouth.s} arb8 V1 {-14.69511850000539787686193 -22.33384350000072160469244 67.49057449999915547778073} V2 {-14.69511850000507457991716 -22.33384350000071805197877 65.1856549462537060435352} V3 {14.5501529284419532928041 -22.33384350000074292097452 65.18565494625448764054454} V4 {14.55015292844173302455602 -22.3338435000007464736882 67.49057449999935442974675} V5 {-14.69511850000531438809048 -12.88574518707542360118623 69.9097041027158496717675} V6 {-14.69511850000531438809048 -12.88574518707542360118623 69.9097041027158496717675} V7 {14.55015292844241514558234 -12.88574518707783234106046 69.90970410271543755698076} V8 {14.55015292844241514558234 -12.88574518707783234106046 69.90970410271543755698076}
|
||||
put {bodyfrontcut.s} tgc V {-30.07391999999968135171002 -30.49249499999977786046657 57.49796150000538830227015} H {64.53820143527930497384659 5.398293464965921771651639E-15 1.446468374443825363721499E-15} A {1.653406732298293568477734E-15 -23.38457478442728287859609 13.50109054667402830318679} B {2.449293598294706907385594E-15 -20 -34.64101615137754208717524} C {1.653406732298293568477734E-15 -23.38457478442728287859609 13.50109054667402830318679} D {2.449293598294706907385594E-15 -20 -34.64101615137754208717524}
|
||||
put {scene.g} comb region no tree {u {l knight.r} {l tile.r}}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {base.s} tgc V {0 0 5.912562917080187219198706} H {0 0 23.32946212598685420402944} A {20.43520228184366160917307 0 0} B {0 20.43520228184366160917307 0} C {20.43520228184366160917307 0 0} D {0 20.43520228184366160917307 0}
|
||||
put {body.c} comb region no tree {u {- {- {- {- {- {n {n {l bodyrcc.s} {l bodybottomsph.s}} {l bodysidesph.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l bodyfrontcutleft.s}} {l bodyfrontcutright.s}} {l bodyfrontcut.s}} {- {- {- {- {- {- {- {- {n {n {l bodyrcc2.s} {l bodysidesph.s}} {l toptor.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l bodyfrontcutleft.s}} {l bodyfrontcutright.s}} {l bodyfrontcut.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l bodyfrontcut.s}}}
|
||||
put {base.c} comb region no tree {u {u {u {u {l bottomtor1.s} {l bottomtor1.s}} {- {- {l base.s} {l bodycut.s}} {l bottomtor1.s}}} {l bottomtor1.s}} {l bottomtor1.s}}
|
||||
put {head.c} comb region no tree {u {u {- {- {- {- {- {n {l headrcc.s} {l toptor.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l headsidecutleft.s}} {l headsidecutright.s}} {l mouth.s}} {- {- {- {- {l nosebridge.s} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l headsidecutleft.s}} {l headsidecutright.s}}} {- {- {- {- {- {l eararb.s} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l headsidecutleft.s}} {l headsidecutright.s}} {l earcut.s}}}
|
||||
put {bodyfrontcutleft.s} tgc V {13.74871600000018645459932 -33.1595789999997947461452 63.90854050000422859056926} H {41.48435623405157457455061 49.43913057838896918383398 -5.65294437271870647094732E-15} A {20.45766533167779854807122 -17.16601943455906820190648 -3.99117648662290935845931} B {-4.529143121461062904131722 3.800402322767092222477459 -39.56063453447669076012971} C {20.45766533167779854807122 -17.16601943455906820190648 -3.99117648662290935845931} D {-4.529143121461062904131722 3.800402322767092222477459 -39.56063453447669076012971}
|
||||
put {bodysidecutright.s} tgc V {-53.6557214677912170941454 -33.67507614822139316856919 95.69336050000360671674571} H {20.22449106457484901966382 143.9047313715058749039599 6.169122640972837335375385E-15} A {-41.33529643904954298250232 5.809297064214777428503567 -2.553020858404567494659432} B {6.045441934467558731114423 -0.8496314556149066055112939 -99.81347984218669466827123} C {-41.33529643904954298250232 5.809297064214777428503567 -2.553020858404567494659432} D {6.045441934467559619292842 -0.8496314556149064944889915 -99.81347984218669466827123}
|
||||
put {headsidecutright.s} tgc V {-22.4313670000000300319698 -28.39713199999998138878254 66.36153450000099951466837} H {-6.936023102199119882982359 58.60216329849748717606417 21.47832101088326695048636} A {-20.34482858059398324712674 -2.407969144867712074642441 0} B {-0.8235739520514422373764774 6.958341187070909761303028 -19.2513266879507227713475} C {-20.34482858059398324712674 -2.407969144867712074642441 0} D {-0.8235739520514422373764774 6.958341187070909761303028 -19.2513266879507227713475}
|
||||
put {bodysidesph.s} ell V {1.591615728102624416351318E-12 -17.12677000000023497250368 59.51325500000131540900838} A {40 0 0} B {0 40 0} C {0 0 57.67733156681060791015625}
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
@@ -1,51 +0,0 @@
|
||||
title {Pawn by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {crowninset.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {16.89118510350817103926602 0 0} B {0 16.89118510350817103926602 0} C {16.89118510350817103926602 0 0} D {0 16.89118510350817103926602 0}
|
||||
put {crowninner.s} tgc V {0 0 4} H {0 0 6} A {10.16165733953459060501245 0 0} B {0 10.16165733953459060501245 0} C {11.34243115837037585436065 0 0} D {0 11.34243115837037585436065 0}
|
||||
put {crowninsetsolid.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {12.45527182860042714196425 0 0} B {0 12.45527182860042714196425 0} C {12.45527182860042714196425 0 0} D {0 12.45527182860042714196425 0}
|
||||
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 9.486078136436923102792207 r_h 3.825815710827906279689614
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.05994492135330928977987597} C {2.846080192311732925958268 1.705338238468419920224051 1.877427068825471501156699} r 5.027862554501921543703702 r_d 1.662595872768639404526425
|
||||
put {1_bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 10.44723380101833853927928 r_h 0.9710977822416242410952236
|
||||
put {1_bodycut.s} tor V {0 0 41} H {6.12323399573676603586882E-17 0 1} r_a 86.63076947877770805916953 r_h 78.38786126059979153524182
|
||||
put {1_bodyeto.s} eto V {-0.2528320000000000011830537 0 53} N {0 0 0.03930267507158188844407221} C {11.02968444236560330296015 0 11.02968444236560330296015} r 16.28367943394245997978942 r_d 4.327199580192768735287245
|
||||
put {1_baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
|
||||
put {1_bodytop.c} comb region no tree {- {l bodytop.s} {l 1_bodyeto.s}}
|
||||
put {crowncut3.s} arb8 V1 {-13.99038105676657828269072 5.767949192431094829203175 4} V2 {11.9903810567665729536202 -9.232050807568883854514752 4.000000000000001776356839} V3 {11.9903810567665729536202 -9.232050807568883854514752 10.00000000000000355271368} V4 {-13.99038105676657828269072 5.767949192431094829203175 10} V5 {-11.99038105676654808462445 9.232050807568848327377964 4} V6 {13.99038105676657472997704 -5.767949192431118810020507 4.000000000000001776356839} V7 {13.99038105676657472997704 -5.767949192431118810020507 10.00000000000000355271368} V8 {-11.99038105676654808462445 9.232050807568848327377964 10}
|
||||
put {crowncut2.s} arb8 V1 {-11.99038105676656940090652 -9.232050807568908723510503 3.999999999999998223643161} V2 {13.99038105676658183540439 5.767949192431108151879471 3.99999999999999866773237} V3 {13.99038105676658538811807 5.767949192431077065634781 10.00000000000000355271368} V4 {-11.99038105676654453191077 -9.232050807568926487078897 10} V5 {-13.99038105676658716447491 -5.767949192431157889870974 3.99999999999999866773237} V6 {11.99038105676657472997704 9.232050807568862538232679 3.99999999999999911182158} V7 {11.990381056766564071836 9.232050807568855432805321 10.00000000000000355271368} V8 {-13.99038105676657472997704 -5.767949192431152560800456 10}
|
||||
put {crowncut1.s} arb8 V1 {1.999999999999999777955395 -14.99999999999999822364316 4} V2 {1.999999999999999777955395 14.99999999999999822364316 4} V3 {1.999999999999999777955395 14.99999999999999822364316 10} V4 {1.999999999999999777955395 -14.99999999999999822364316 10} V5 {-1.999999999999999777955395 -14.99999999999999822364316 4} V6 {-1.999999999999999777955395 14.99999999999999822364316 4} V7 {-1.999999999999999777955395 14.99999999999999822364316 10} V8 {-1.999999999999999777955395 -14.99999999999999822364316 10}
|
||||
put {crownrcc.s} tgc V {0 0 -2.292185375575158445826673} H {0 0 12.29218537557515844582667} A {14.16165733953459238136929 0 0} B {0 14.16165733953459238136929 0} C {14.16165733953459238136929 0 0} D {0 14.16165733953459238136929 0}
|
||||
put {1_bottom.c} comb region no tree {u {u {l 1_bottometo.s} {l 1_bottomtor.s}} {u {l 1_baseeto.s} {l 1_base_filler.s}}}
|
||||
put {bodyjut.s} tgc V {0 0 42} H {0 0 2.264716425774114583191476} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {bodytor.s} tor V {0 0 25.00000000000000355271368} H {6.12323399573676603586882E-17 0 1} r_a 6.146768722816724483948292 r_h 0.8241116028491989320414746
|
||||
put {bodytop.s} tgc V {0 0 45.57436401080622090375982} H {0 0 10.23282399021384136972301} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {bodycut.s} tor V {0 0 37.96582364986083035773845} H {6.12323399573676603586882E-17 0 1} r_a 67.81451175298326461415854 r_h 63.43019393270687800168162
|
||||
put {bodyeto.s} eto V {-0.2528320000000000011830537 0 53} N {0 0 0.03930267507158188844407221} C {11.02968444236560330296015 0 11.02968444236560330296015} r 16.28367943394245997978942 r_d 4.327199580192768735287245
|
||||
put {baseeto.s} eto V {0 0 4.281399000000007504240784} N {-4.792704526346514451144025E-18 0 -0.03913540238445389202182056} C {8.160812227361974535710942 -1.196165406603733272206114 -3.847323061096424634541791} r 9.284537665853610732824563 r_d 3.736676917349199378293179
|
||||
put {necketo.s} eto V {0 0 40.72638399999996039468897} N {-3.291837815534646033062117E-18 0 -0.02687989563869803977258499} C {4.168219486530275297297976 -0.6109538876782616423355421 -1.965060156692675530365477} r 5.706605353654313539379928 r_d 2.566512146398107763189955
|
||||
put {bodytop.c} comb region no tree {u {l head.s} {l necketo.s}}
|
||||
put {1_scene.g} comb region no tree {u {l rook.r {1 0 0 -58 0 1 0 0 0 0 1 0 0 0 0 1}} {l 1_tile.r {1 0 0 -58 0 1 0 0 0 0 1 0 0 0 0 1}}}
|
||||
put {1_base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
|
||||
put {1_body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 49.90908570176724623479458} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {1_tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {1_tile.r} comb region yes tree {l 1_tile.s}
|
||||
attr set {1_tile.r} {region} {R} {color} {255/255/255} {los} {100} {material_id} {1} {region_id} {1000} {shader} {plastic {re 0.5 sh 1}}
|
||||
put {1_body.c} comb region no tree {u {u {- {l 1_body.s} {l 1_bodycut.s}} {l 1_bodytor.s}} {l bodyjut.s}}
|
||||
put {crown.c} comb region no tree {u {- {- {- {- {- {l crownrcc.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}} {l crowninner.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut1.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut2.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut3.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowninset.s}} {l crowninsetsolid.s}}
|
||||
put {scene.g} comb region no tree {u {l pawn.r} {l tile.r}}
|
||||
put {body.s} tgc V {0 0 -0.6898679999999998146975599} H {0 0 42.85638383046779154028627} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {pawn.r} comb region yes tree {l pawn.c {1 0 0 0 0 1 0 0 0 0 1 0.991685000000004 0 0 0 1}}
|
||||
attr set {pawn.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {rook.r} comb region yes tree {l rook.c {1 0 0 0 0 1 0 0 0 0 1 1.090422 0 0 0 1}}
|
||||
attr set {rook.r} {region} {R} {color} {255/255/217} {los} {100} {material_id} {1} {region_id} {1000} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {oshader} {plastic {sh 1}} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body.c} comb region no tree {u {- {l body.s} {l bodycut.s}} {l bodytor.s}}
|
||||
put {pawn.c} comb region no tree {u {u {l top.c} {l body.c}} {u {l bottom.c} {l bodytop.c}}}
|
||||
put {rook.c} comb region no tree {u {u {l crown.c} {l 1_body.c}} {u {l 1_bottom.c} {l 1_bodytop.c}}}
|
||||
put {head.s} ell V {0 0 52.26777799999997853319655} A {10.18854239405582262634198 0 0} B {0 10.18854239405582262634198 0} C {0 0 10.18854239405582262634198}
|
||||
put {top.c} comb region no tree {u {l head.s} {l necketo.s}}
|
||||
put {1_bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
|
||||
put {1_bottometo.s} eto V {0 0 20} N {0 0 0.07140720069529053748436098} C {3.390289200472452524337541 2.031421963671408370544214 2.236416504815224470803514} r 9.036682630367613100474955 r_d 1.980506679827312765951319
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {14.57675099872487578522851 0 0} B {0 14.57675099872487578522851 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
@@ -1,44 +0,0 @@
|
||||
title {Queen by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {crown_fill.s} tgc V {0 0 85.4996148325125346900677} H {0 0 3.961725628291488110477303} A {13.92497241322581302824801 0 0} B {0 13.92497241322581302824801 0} C {10.3643310870127276501762 0 0} D {0 10.3643310870127276501762 0}
|
||||
put {crown_main.c} comb region no tree {u {u {- {- {l crownrcc.s} {l crowncut1.s}} {l crowncut2.s}} {- {- {l crown_fill.s} {l crowncut2.s}} {l crownrcc.s}}} {- {- {- {l crowneto1.s} {l crownrcc.s}} {l crowncut2.s}} {l crown_fill.s}}}
|
||||
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 7.93389995193779462567818 r_d 1.673109642593672896637713
|
||||
put {head_fill.s} tgc V {0 0 67.65223912679090290112072} H {0 0 22.65963591768163354345234} A {5.387125525462328923254063 0 0} B {0 5.387125525462328923254063 0} C {5.200376920059111007788033 0 0} D {0 5.200376920059111007788033 0}
|
||||
put {crowncut2.s} tgc V {0 0 86.89911600000084490602603} H {0 0 6.858375356511876574927555} A {9.438877285833902064382528 0 0} B {0 9.438877285833902064382528 0} C {15.49844917074207906182437 0 0} D {0 15.49844917074207906182437 0}
|
||||
put {crowncut1.s} eto V {0 0 77.72700899999993850997271} N {0 0 0.6853489141366997383642001} C {7.936978064717960634766314 0.7583105325216803471732874 14.21238543732845016620558} r 19.09763828673395735791019 r_d 8.357084880198749843316364
|
||||
put {crowneto1.s} eto V {1.577721810442023610823457E-30 0 87.39109400000032223942981} N {-1.573547818886363209483057E-17 0 -0.04282997677321952190165888} C {-1.665828485074095866025345 -1.27132480626570165682665 -1.898428097677101966667124} r 12.13000000000000078159701 r_d 1.123246664863733368378007
|
||||
put {crownell8.s} ell V {-13.73660800000212844906855 2.220446049250313080847263E-14 87.68836799997369269021874} A {0 -2.442952198710223399302777 1.005777905178345307186806E-16} B {3.658968546871206317661063 0 3.323573023963026340510396} C {-0.7091037075487675034324297 0 0.7806623003868651267112}
|
||||
put {crownell7.s} ell V {-9.713248667302867289663482 9.713248667302899264086591 87.68836799997369269021874} A {-1.727428065822585123711974 -1.727428065822585123711974 1.005777905178345307186806E-16} B {2.587281471640917818177741 -2.587281471640917818177741 3.323573023963026340510396} C {-0.5014120401722559350332631 0.5014120401722559350332631 0.7806623003868651267112}
|
||||
put {crownell6.s} ell V {2.220446049250313080847263E-14 13.73660800000212844906855 87.68836799997369269021874} A {-2.442952198710223399302777 0 1.005777905178345307186806E-16} B {0 -3.658968546871206317661063 3.323573023963026340510396} C {0 0.7091037075487675034324297 0.7806623003868651267112}
|
||||
put {crownell5.s} ell V {9.713248667302899264086591 9.713248667302867289663482 87.68836799997369269021874} A {-1.727428065822585123711974 1.727428065822585123711974 1.005777905178345307186806E-16} B {-2.587281471640917818177741 -2.587281471640917818177741 3.323573023963026340510396} C {0.5014120401722559350332631 0.5014120401722559350332631 0.7806623003868651267112}
|
||||
put {crownell4.s} ell V {13.73660800000212844906855 -2.220446049250313080847263E-14 87.68836799997369269021874} A {0 2.442952198710223399302777 1.005777905178345307186806E-16} B {-3.658968546871206317661063 0 3.323573023963026340510396} C {0.7091037075487675034324297 0 0.7806623003868651267112}
|
||||
put {crownell3.s} ell V {9.713248667302867289663482 -9.713248667302899264086591 87.68836799997369269021874} A {1.727428065822584901667369 1.727428065822584901667369 1.005777905178345307186806E-16} B {-2.587281471640917818177741 2.587281471640917818177741 3.323573023963026340510396} C {0.5014120401722559350332631 -0.5014120401722559350332631 0.7806623003868651267112}
|
||||
put {crownell2.s} ell V {-2.220446049250313080847263E-14 -13.73660800000212844906855 87.68836799997369269021874} A {2.442952198710222955213567 0 1.005777905178345307186806E-16} B {0 3.658968546871206317661063 3.323573023963026340510396} C {0 -0.7091037075487675034324297 0.7806623003868651267112}
|
||||
put {crownell1.s} ell V {-9.713248667302899264086591 -9.713248667302867289663482 87.68836799997369269021874} A {1.727428065822584679622764 -1.727428065822584679622764 1.005777905178345307186806E-16} B {2.587281471640917818177741 2.587281471640917818177741 3.323573023963026340510396} C {-0.5014120401722559350332631 -0.5014120401722559350332631 0.7806623003868651267112}
|
||||
put {crownrcc.s} tgc V {0 0 70.52245129853007199471904} H {0 0 15.07198012589280011752635} A {14.92710113237911251360401 0 0} B {0 14.92710113237911251360401 0} C {14.92710113237911251360401 0 0} D {0 14.92710113237911251360401 0}
|
||||
put {head_tip.s} ell V {0 0 94.91151499999973850663082} A {3.119016812725599496758377 0 0} B {0 3.119016812725599496758377 0} C {0 0 1.345488882629591875783603}
|
||||
put {crownell.c} comb region no tree {u {u {u {l crownell1.s} {l crownell2.s}} {u {l crownell3.s} {l crownell4.s}}} {u {u {l crownell5.s} {l crownell6.s}} {u {l crownell7.s} {l crownell8.s}}}}
|
||||
put {headeto1.s} eto V {0 0 89.57779000000000735326466} N {-5.519803738384860362821316E-18 0 -0.04507261801711288928817822} C {-4.376792271273803436315575 -1.09418866449798435347418 -4.1289869793813673837235} r 4.82069915201276888438997 r_d 2.281365997196153738713065
|
||||
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 9.140689709069368618088447 r_h 0.9710977822416242410952236
|
||||
put {bodyjut.s} ell V {0 0 57.95812100000001976241037} A {13.30005660511547738167337 0 0} B {0 13.30005660511547738167337 0} C {0 0 3.569547284150617283415841}
|
||||
put {bodycut.s} tor V {0 0 46.43319499999997646000338} H {6.12323399573676603586882E-17 0 1} r_a 84.47809976324354863663757 r_h 78.38786126059979153524182
|
||||
put {necktor.s} tor V {0 0 70.41021300000004146113497} H {3.061616997868383634231992E-16 0 1} r_a 8.239894264539179502548905 r_h 0.9722303169289367996697138
|
||||
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
|
||||
put {necketo.s} eto V {4.688718984760804335454747E-15 0 67.98440800000000194813765} N {-7.947115565380555332745523E-18 0 -0.06489312323286719474957351} C {-4.236592184243099801221888 2.53851689495714083477651 -2.794683321910145679112247} r 6.747558139033351665148075 r_d 2.154325975943817361724086
|
||||
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
|
||||
put {queen.r} comb region yes tree {l queen.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
|
||||
attr set {queen.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {crown.c} comb region no tree {- {l crown_main.c} {l crownell.c}}
|
||||
attr set {crown.c} {inherit} {1}
|
||||
put {queen.c} comb region no tree {u {u {u {l head.c} {l neck.c}} {u {l crown.c} {l body.c}}} {l bottom.c}}
|
||||
put {scene.g} comb region no tree {u {l queen.r} {l tile.r}}
|
||||
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 59.45235824170033822611003} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body.c} comb region no tree {u {u {- {l body.s} {l bodycut.s}} {l bodytor.s}} {l bodyjut.s}}
|
||||
put {neck.c} comb region no tree {u {u {l necketo.s} {l necktor.s}} {l neck_filler.s}}
|
||||
put {head.c} comb region no tree {u {u {l head_tip.s} {l headeto1.s}} {l head_fill.s}}
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
put {neck_filler.s} tgc V {5.044847376139677212870351E-16 0.11939600000000516466514 64.39600271525775099235034} H {0 0 13.56002315446382588959295} A {7.491481711620123995487575 0 0} B {0 7.491481711620123995487575 0} C {7.491481711620123995487575 0 0} D {0 7.491481711620123995487575 0}
|
||||
@@ -1,30 +0,0 @@
|
||||
title {Rook by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {crowninset.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {16.89118510350817103926602 0 0} B {0 16.89118510350817103926602 0} C {16.89118510350817103926602 0 0} D {0 16.89118510350817103926602 0}
|
||||
put {crowninner.s} tgc V {0 0 4} H {0 0 6} A {10.16165733953459060501245 0 0} B {0 10.16165733953459060501245 0} C {11.34243115837037585436065 0 0} D {0 11.34243115837037585436065 0}
|
||||
put {crowninsetsolid.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {12.45527182860042714196425 0 0} B {0 12.45527182860042714196425 0} C {12.45527182860042714196425 0 0} D {0 12.45527182860042714196425 0}
|
||||
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.07140720069529053748436098} C {3.390289200472452524337541 2.031421963671408370544214 2.236416504815224470803514} r 9.036682630367613100474955 r_d 1.980506679827312765951319
|
||||
put {crowncut3.s} arb8 V1 {-13.99038105676657828269072 5.767949192431094829203175 4} V2 {11.9903810567665729536202 -9.232050807568883854514752 4.000000000000001776356839} V3 {11.9903810567665729536202 -9.232050807568883854514752 10.00000000000000355271368} V4 {-13.99038105676657828269072 5.767949192431094829203175 10} V5 {-11.99038105676654808462445 9.232050807568848327377964 4} V6 {13.99038105676657472997704 -5.767949192431118810020507 4.000000000000001776356839} V7 {13.99038105676657472997704 -5.767949192431118810020507 10.00000000000000355271368} V8 {-11.99038105676654808462445 9.232050807568848327377964 10}
|
||||
put {crowncut2.s} arb8 V1 {-11.99038105676656940090652 -9.232050807568908723510503 3.999999999999998223643161} V2 {13.99038105676658183540439 5.767949192431108151879471 3.99999999999999866773237} V3 {13.99038105676658538811807 5.767949192431077065634781 10.00000000000000355271368} V4 {-11.99038105676654453191077 -9.232050807568926487078897 10} V5 {-13.99038105676658716447491 -5.767949192431157889870974 3.99999999999999866773237} V6 {11.99038105676657472997704 9.232050807568862538232679 3.99999999999999911182158} V7 {11.990381056766564071836 9.232050807568855432805321 10.00000000000000355271368} V8 {-13.99038105676657472997704 -5.767949192431152560800456 10}
|
||||
put {crowncut1.s} arb8 V1 {1.999999999999999777955395 -14.99999999999999822364316 4} V2 {1.999999999999999777955395 14.99999999999999822364316 4} V3 {1.999999999999999777955395 14.99999999999999822364316 10} V4 {1.999999999999999777955395 -14.99999999999999822364316 10} V5 {-1.999999999999999777955395 -14.99999999999999822364316 4} V6 {-1.999999999999999777955395 14.99999999999999822364316 4} V7 {-1.999999999999999777955395 14.99999999999999822364316 10} V8 {-1.999999999999999777955395 -14.99999999999999822364316 10}
|
||||
put {crownrcc.s} tgc V {0 0 -2.292185375575158445826673} H {0 0 12.29218537557515844582667} A {14.16165733953459238136929 0 0} B {0 14.16165733953459238136929 0} C {14.16165733953459238136929 0 0} D {0 14.16165733953459238136929 0}
|
||||
put {bodyjut.s} tgc V {0 0 42} H {0 0 2.264716425774114583191476} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 10.44723380101833853927928 r_h 0.9710977822416242410952236
|
||||
put {bodytop.s} tgc V {0 0 45.57436401080622090375982} H {0 0 10.23282399021384136972301} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {bodycut.s} tor V {0 0 41} H {6.12323399573676603586882E-17 0 1} r_a 86.63076947877770805916953 r_h 78.38786126059979153524182
|
||||
put {bodyeto.s} eto V {-0.2528320000000000011830537 0 53} N {0 0 0.03930267507158188844407221} C {11.02968444236560330296015 0 11.02968444236560330296015} r 16.28367943394245997978942 r_d 4.327199580192768735287245
|
||||
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
|
||||
put {bodytop.c} comb region no tree {- {l bodytop.s} {l bodyeto.s}}
|
||||
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
|
||||
put {crown.c} comb region no tree {u {- {- {- {- {- {l crownrcc.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}} {l crowninner.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut1.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut2.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut3.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowninset.s}} {l crowninsetsolid.s}}
|
||||
put {scene.g} comb region no tree {u {l rook.r} {l tile.r}}
|
||||
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 49.90908570176724623479458} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {rook.r} comb region yes tree {l rook.c {1 0 0 0 0 1 0 0 0 0 1 1.090422 0 0 0 1}}
|
||||
attr set {rook.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {oshader} {plastic {sh 1}} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body.c} comb region no tree {u {u {- {l body.s} {l bodycut.s}} {l bodytor.s}} {l bodyjut.s}}
|
||||
put {rook.c} comb region no tree {u {u {l crown.c} {l body.c}} {u {l bottom.c} {l bodytop.c}}}
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1,19 +0,0 @@
|
||||
set(COMGEOM_V5_MODELS ADA073408.comgeom)
|
||||
|
||||
foreach(comgeom_input ${COMGEOM_V5_MODELS})
|
||||
g_target(${comgeom_input} "BRL-CAD Geometry Models/Sample")
|
||||
endforeach(comgeom_input ${COMGEOM_V5_MODELS})
|
||||
|
||||
cmakefiles(
|
||||
${COMGEOM_V5_MODELS}
|
||||
CMakeLists.txt
|
||||
README_ADA073408
|
||||
ADA073408_inputs.tar.gz
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -1,17 +0,0 @@
|
||||
Model ADA073408.comgeom is a transcription of the model documented in
|
||||
the 1979 public release report:
|
||||
|
||||
A Combinatorial Geometry Computer Description of the MEP-021A Generator Set
|
||||
http://www.dtic.mil/docs/citations/ADA073408
|
||||
|
||||
A series of Google GCI tasks worked to transcribe the ASCII COMGEOM
|
||||
description from the original report to text, and post-processed it
|
||||
into a form that the comgeom-g importer can handle:
|
||||
|
||||
http://www.google-melange.com/gci/task/view/google/gci2013/5597236545191936
|
||||
http://www.google-melange.com/gci/task/view/google/gci2014/5293529710460928
|
||||
http://www.google-melange.com/gci/task/view/google/gci2014/5792678377684992
|
||||
|
||||
The file ADA073408_inputs.tar.gz contains the original transcribed
|
||||
files and the script used to create the comgeom file.
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
title {Parts of: Untitled v4 BRL-CAD Database}
|
||||
units mm
|
||||
put {ceiling2.s} arb8 V1 {213 548.7000122069999861196266 227} V2 {343 548.7000122069999861196266 227} V3 {343 548.9013314395830320790992 227} V4 {213 548.9013314395830320790992 227} V5 {213 548.7000122069999861196266 332} V6 {343 548.7000122069999861196266 332} V7 {343 548.9013314395830320790992 332} V8 {213 548.9013314395830320790992 332}
|
||||
put {floor.s} arb8 V1 {0 -10 0} V2 {556 -10 0} V3 {556 0 0} V4 {0 0 0} V5 {0 -10 559.2000122069999861196266} V6 {556 -10 559.2000122069999861196266} V7 {556 0 559.2000122069999861196266} V8 {0 0 559.2000122069999861196266}
|
||||
put {floor.r} comb region yes tree {l floor.s}
|
||||
attr set {floor.r} {region} {R} {shader} {osl {shadername red}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/0/0}
|
||||
put {light.s} arb8 V1 {213 548.7999877930000138803734 227} V2 {343 548.7999877930000138803734 227} V3 {343 548.8999877944901299997582 227} V4 {213 548.8999877944901299997582 227} V5 {213 548.7999877930000138803734 332} V6 {343 548.7999877930000138803734 332} V7 {343 548.8999877944901299997582 332} V8 {213 548.8999877944901299997582 332}
|
||||
put {light.r} comb region yes tree {l light.s}
|
||||
attr set {light.r} {region} {R} {shader} {osl {shadername emitter#power#float#75.0}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {right_wall.s} arb8 V1 {-10 -10 0} V2 {0 -10 0} V3 {0 558.7999877930000138803734 0} V4 {-10 558.7999877930000138803734 0} V5 {-10 -10 569.2000122069999861196266} V6 {0 -10 569.2000122069999861196266} V7 {0 558.7999877930000138803734 569.2000122069999861196266} V8 {-10 558.7999877930000138803734 569.2000122069999861196266}
|
||||
put {right_wall.r} comb region yes tree {l right_wall.s}
|
||||
attr set {right_wall.r} {region} {R} {shader} {osl {shadername blue}} {region_id} {1003} {material_id} {1} {los} {100} {color} {0/0/255}
|
||||
put {short_box.s} arb8 V1 {130 0 65} V2 {82 0 225} V3 {240 0 272} V4 {290 0 114} V5 {130 165 65} V6 {82 165 225} V7 {240 165 272} V8 {290 165 114}
|
||||
put {short_box.r} comb region yes tree {l short_box.s}
|
||||
attr set {short_box.r} {region} {R} {shader} {osl {shadername gen_color#layername#c1#base#color#1.0#0.0#1.0, shadername gen_color#layername#c2#base#color#0.0#1.0#0.0, shadername checker#layername#chk#K#float#4.0, join c1#Cout#chk#Cw join c2#Cout#chk#Cb}} {region_id} {1006} {material_id} {1} {los} {100} {color} {255/255/0}
|
||||
put {left_wall.s} arb8 V1 {556 -10 0} V2 {566 -10 0} V3 {566 558.7999877930000138803734 0} V4 {556 558.7999877930000138803734 0} V5 {556 -10 569.2000122069999861196266} V6 {566 -10 569.2000122069999861196266} V7 {566 558.7999877930000138803734 569.2000122069999861196266} V8 {556 558.7999877930000138803734 569.2000122069999861196266}
|
||||
put {left_wall.r} comb region yes tree {l left_wall.s}
|
||||
attr set {left_wall.r} {region} {R} {shader} {osl {shadername blue}} {region_id} {1004} {material_id} {1} {los} {100} {color} {0/0/255}
|
||||
put {all.g} comb region no tree {u {u {u {l light.r} {l back_wall.r}} {u {l tall_box.r} {l floor.r}}} {u {u {l right_wall.r} {l left_wall.r}} {u {l short_box.r} {l ceiling.r}}}}
|
||||
put {tall_box.s} arb8 V1 {423 330 247} V2 {265 330 296} V3 {314 330 456} V4 {472 330 406} V5 {423 0 247} V6 {265 0 296} V7 {314 0 456} V8 {472 0 406}
|
||||
put {back_wall.s} arb8 V1 {0 -10 559.2000122069999861196266} V2 {556 -10 559.2000122069999861196266} V3 {556 558.7999877930000138803734 559.2000122069999861196266} V4 {0 558.7999877930000138803734 559.2000122069999861196266} V5 {0 -10 569.2000122069999861196266} V6 {556 -10 569.2000122069999861196266} V7 {556 558.7999877930000138803734 569.2000122069999861196266} V8 {0 558.7999877930000138803734 569.2000122069999861196266}
|
||||
put {tall_box.r} comb region yes tree {l tall_box.s}
|
||||
attr set {tall_box.r} {region} {R} {shader} {osl {shadername mirror}} {region_id} {1007} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {back_wall.r} comb region yes tree {l back_wall.s}
|
||||
attr set {back_wall.r} {region} {R} {shader} {osl {shadername blue}} {region_id} {1002} {material_id} {1} {los} {100} {color} {0/0/255}
|
||||
put {ceiling.s} arb8 V1 {0 548.7999877930000138803734 0} V2 {556 548.7999877930000138803734 0} V3 {556 558.7999877930000138803734 0} V4 {0 558.7999877930000138803734 0} V5 {0 548.7999877930000138803734 559.2000122069999861196266} V6 {556 548.7999877930000138803734 559.2000122069999861196266} V7 {556 558.7999877930000138803734 559.2000122069999861196266} V8 {0 558.7999877930000138803734 559.2000122069999861196266}
|
||||
put {ceiling.r} comb region yes tree {- {l ceiling.s} {l ceiling2.s}}
|
||||
attr set {ceiling.r} {region} {R} {shader} {osl {shadername blue}} {region_id} {1001} {material_id} {1} {los} {100} {color} {0/0/255}
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Example render script that sets up a prototypical view for the
|
||||
# Cornell box. Alas, rt view scripts loaded into MGED only restore
|
||||
# orientation and not view positioning so an extra repositioning step
|
||||
# is required.
|
||||
###
|
||||
|
||||
echo "************************ NOTICE ******************************"
|
||||
echo "To restore the originally intended view in MGED, run loadview"
|
||||
echo "on this script followed by: view center 278 -150 2500"
|
||||
echo "************************ NOTICE ******************************"
|
||||
|
||||
rt -M -p55 \
|
||||
$*\
|
||||
cornell.g\
|
||||
'all.g' \
|
||||
<<EOF
|
||||
viewsize 6.000000000000000e+03;
|
||||
orientation 0.000000000000000e+00 9.961946980917455e-01 8.715574274765824e-02 0.000000000000000e+00;
|
||||
eye_pt 2.780000000000000e+02 3.709445330007912e+02 -4.544232590366239e+02;
|
||||
start 0; clean;
|
||||
end;
|
||||
|
||||
EOF
|
||||
@@ -2,7 +2,7 @@
|
||||
/* D B . P H P
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2004-2026 United States Government as represented by
|
||||
* Copyright (c) 2004-2011 United States Government as represented by
|
||||
* the U.S. Army Research Laboratory.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@@ -275,14 +275,12 @@ if ($physicalFile) {
|
||||
|
||||
debug("END http request");
|
||||
|
||||
?>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
tab-width: 8
|
||||
mode: php
|
||||
c-basic-offset: 4
|
||||
indent-tabs-mode: t
|
||||
End:
|
||||
ex: shiftwidth=4 tabstop=8
|
||||
-->
|
||||
# Local Variables: ***
|
||||
# mode: C ***
|
||||
# tab-width: 8 ***
|
||||
# c-basic-offset: 2 ***
|
||||
# indent-tabs-mode: t ***
|
||||
# End: ***
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
?>
|
||||
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
title {A Die by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {body_outer.r} comb region yes tree {l body_outer.c}
|
||||
attr set {body_outer.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 ri 1.4 sh 12}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body_inner.r} comb region yes tree {l body_inner.c}
|
||||
attr set {body_inner.r} {oshader} {plastic} {region} {R} {shader} {plastic {sp 0.9 di 0.1}} {region_id} {1001} {material_id} {1} {los} {100} {color} {0/0/0}
|
||||
put {body_outer.c} comb region no tree {- {- {n {l body_rpp.s} {l body_sphere.s}} {l dots.c}} {l body_inner.c}}
|
||||
put {body_inner.c} comb region no tree {- {n {l body_rpp_inner.s} {l body_sphere_inner.s}} {l dots.c}}
|
||||
put {cube_edges.c} comb region no tree {u {u {l cube_rcc1.s} {l cube_rcc2.s}} {l cube_rcc3.s}}
|
||||
put {cube_rcc3.s} tgc V {8 10 8} H {0 -20 0} A {0 0 -2} B {2 0 0} C {0 0 -2} D {2 0 0}
|
||||
put {cube_rcc2.s} tgc V {8 8 10} H {0 0 -20} A {0 2 0} B {2 0 0} C {0 2 0} D {2 0 0}
|
||||
put {cube_rcc1.s} tgc V {10 8 8} H {-20 0 0} A {0 0 2} B {0 2 0} C {0 0 2} D {0 2 0}
|
||||
put {body_rpp_inner.s} arb8 V1 {9.900000000000000355271368 -9.900000000000000355271368 -9.900000000000000355271368} V2 {9.900000000000000355271368 9.899999999999986144416653 -9.900000000000000355271368} V3 {9.900000000000000355271368 9.899999999999986144416653 9.900000000000000355271368} V4 {9.900000000000000355271368 -9.900000000000000355271368 9.900000000000000355271368} V5 {-9.899999999999922195570434 -9.900000000000000355271368 -9.900000000000000355271368} V6 {-9.899999999999922195570434 9.899999999999986144416653 -9.900000000000000355271368} V7 {-9.899999999999922195570434 9.899999999999986144416653 9.900000000000000355271368} V8 {-9.899999999999922195570434 -9.900000000000000355271368 9.900000000000000355271368}
|
||||
put {body_rpp.s} arb8 V1 {10 -10 -10} V2 {10 9.999999999999985789145285 -10} V3 {10 9.999999999999985789145285 10} V4 {10 -10 10} V5 {-9.999999999999921840299066 -10 -10} V6 {-9.999999999999921840299066 9.999999999999985789145285 -10} V7 {-9.999999999999921840299066 9.999999999999985789145285 10} V8 {-9.999999999999921840299066 -10 10}
|
||||
put {body_sphere_inner.s} ell V {0 0 0} A {13.4143020316096475141876 0 0} B {0 13.4143020316096475141876 0} C {0 0 13.4143020316096475141876}
|
||||
put {dots6.c} comb region no tree {u {u {u {l sph61.s} {l sph62.s}} {u {l sph63.s} {l sph64.s}}} {u {l sph65.s} {l sph66.s}}}
|
||||
put {dots5.c} comb region no tree {u {u {u {l sph51.s} {l sph52.s}} {u {l sph53.s} {l sph54.s}}} {l sph55.s}}
|
||||
put {dots4.c} comb region no tree {u {u {l sph41.s} {l sph42.s}} {u {l sph43.s} {l sph44.s}}}
|
||||
put {dots3.c} comb region no tree {u {u {l sph31.s} {l sph32.s}} {l sph33.s}}
|
||||
put {dots2.c} comb region no tree {u {l sph21.s} {l sph22.s}}
|
||||
put {dots1.c} comb region no tree {l sph11.s}
|
||||
put {sph66.s} ell V {5.5 -12 -3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph65.s} ell V {-5.5 -12 -3.49999999999999955591079} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph55.s} ell V {12 4.5 4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph64.s} ell V {-5.5 -12 3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph54.s} ell V {12 -4.5 4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph63.s} ell V {5.5 -12 3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph44.s} ell V {-3.5 -3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph53.s} ell V {12 -4.5 -4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph62.s} ell V {0 -12 -3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph43.s} ell V {-3.5 3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph52.s} ell V {12 4.5 -4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph61.s} ell V {0 -12 3.50000000000000044408921} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph33.s} ell V {-4.5 -4.5 -12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph42.s} ell V {3.5 -3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph51.s} ell V {12 0 0} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph32.s} ell V {0 0 -12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph41.s} ell V {3.5 3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph22.s} ell V {-11.99999999999999822364316 3.49999999999999911182158 3.49999999999999911182158} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph31.s} ell V {4.5 4.5 -12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph21.s} ell V {-11.99999999999998934185896 -3.50000000000000088817842 -3.50000000000000088817842} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph11.s} ell V {0 12.5 0} A {2.211859722021807250769143 1.981446994437259911947535 1.852442813782255726096082} B {-1.916905671313780867848209 2.832975207637170811381111 -0.7414338272552269959447813} C {-1.919153255314234307604693 -0.5460030047066275482592346 2.875540210372395932836298}
|
||||
put {dots.c} comb region no tree {u {u {u {l dots1.c} {l dots2.c}} {u {l dots3.c} {l dots4.c}}} {u {l dots5.c} {l dots6.c}}}
|
||||
put {die.g} comb region no tree {u {l body_outer.r} {l body_inner.r}}
|
||||
put {body_sphere.s} ell V {0 0 0} A {13.51430203160964715891623 0 0} B {0 13.51430203160964715891623 0} C {0 0 13.51430203160964715891623}
|
||||
@@ -1,39 +0,0 @@
|
||||
title {Earth Model v1.1 by starseeker}
|
||||
units km
|
||||
put {mesosphere.s} ell V {0 0 0} A {6468100000 0 0} B {0 6468100000 0} C {0 0 6446800000}
|
||||
put {mesosphere.c} comb region no tree {- {l mesosphere.s} {l stratosphere.s}}
|
||||
attr set {mesosphere.c} {shader} {glass {tr 0.85}}
|
||||
put {atmosphere.c} comb region no tree {u {u {- {l mesosphere.c} {l slice-earth-2.s}} {- {l stratosphere.c} {l slice-earth-2.s}}} {- {l troposphere.c} {l slice-earth-2.s}}}
|
||||
put {outer-core.s} ell V {0 0 0} A {-2394906651.625486850738525 1382699999.999999523162842 0} B {-1382699999.999999523162842 -2394906651.625486850738525 0} C {0 0 2750000000}
|
||||
put {inner-core.s} ell V {0 0 0} A {-1047890738.579170942306519 604999999.9999997615814209 0} B {-604999999.9999997615814209 -1047890738.579170942306519 0} C {0 0 1210000000}
|
||||
put {inner-core.r} comb region yes tree {n {l inner-core.s} {l slice-earth-2.s}}
|
||||
attr set {inner-core.r} {color} {255/255/255} {shader} {plastic {sp 0.9 di 0.1}} {region} {R} {region_id} {1003} {material_id} {1} {los} {100}
|
||||
put {lower-mantle-core-subtract.c} comb region no tree {u {l outer-core.s} {l inner-core.s}}
|
||||
put {upper-mantle-core-subtract.c} comb region no tree {u {u {l lower-mantle.s} {l outer-core.s}} {l inner-core.s}}
|
||||
put {slice-earth-outcore.s} arb8 V1 {1000000 1000000 1000000} V2 {1500000000 11550000000 1500000000} V3 {11550000000 1500000000 1500000000} V4 {1000000 1000000 1000000} V5 {1500000000 1500000000 11550000000} V6 {1500000000 1500000000 11550000000} V7 {1500000000 1500000000 11550000000} V8 {1500000000 1500000000 11550000000}
|
||||
put {crust-core-subtract.c} comb region no tree {u {u {l upper-mantle.s} {l lower-mantle.s}} {u {l outer-core.s} {l inner-core.s}}}
|
||||
put {outer-core-display.r} comb region yes tree {- {n {l outer-core.s} {l slice-earth-2.s}} {l inner-core.s}}
|
||||
attr set {outer-core-display.r} {color} {254/255/178} {shader} {plastic} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
|
||||
put {slice-earth-lowman.s} arb8 V1 {1000000 1000000 1000000} V2 {1000000000 11550000000 1000000000} V3 {11550000000 1000000000 1000000000} V4 {1000000 1000000 1000000} V5 {1000000000 1000000000 11550000000} V6 {1000000000 1000000000 11550000000} V7 {1000000000 1000000000 11550000000} V8 {1000000000 1000000000 11550000000}
|
||||
put {earth-cutaway.c} comb region no tree {- {l earth-crust.c} {l slice-earth.s}}
|
||||
put {earth-display.c} comb region no tree {u {u {u {u {u {l earth-cutaway.c} {l cutout-earth-backdrop.c}} {- {l upper-mantle-display.r} {l slice-earth-upman.s}}} {- {l lower-mantle-display.r} {l slice-earth-lowman.s}}} {- {l outer-core-display.r} {l slice-earth-outcore.s}}} {l inner-core.r}}
|
||||
put {stratosphere.s} ell V {0 0 0} A {6428100000 0 0} B {0 6428100000 0} C {0 0 6406800000}
|
||||
put {stratosphere.c} comb region no tree {- {l stratosphere.s} {l troposphere.s}}
|
||||
attr set {stratosphere.c} {shader} {glass {tr 0.8}}
|
||||
put {cutout-earth-backdrop.c} comb region no tree {n {l cutout-earth.c} {l earth-crust.s}}
|
||||
put {lower-mantle.s} ell V {0 0 0} A {-4900404747.314247131347656 2829249999.999999046325684 0} B {-2829249999.999999046325684 -4900404747.314247131347656 0} C {0 0 5640000000}
|
||||
put {upper-mantle.s} ell V {0 0 0} A {-5474406384.942572593688965 3160649999.999999046325684 0} B {-3160649999.999999046325684 -5474406384.942572593688965 0} C {0 0 6300000000}
|
||||
put {slice-earth-2.s} arb8 V1 {1000000 1000000 1000000} V2 {1000000 11550000000 1000000} V3 {11550000000 1000000 1000000} V4 {1000000 1000000 1000000} V5 {1000000 1000000 11550000000} V6 {1000000 1000000 11550000000} V7 {1000000 1000000 11550000000} V8 {1000000 1000000 11550000000}
|
||||
put {slice-earth-upman.s} arb8 V1 {1000000 1000000 1000000} V2 {500000000 11550000000 500000000} V3 {11550000000 500000000 500000000} V4 {1000000 1000000 1000000} V5 {500000000 500000000 11550000000} V6 {500000000 500000000 11550000000} V7 {500000000 500000000 11550000000} V8 {500000000 500000000 11550000000}
|
||||
put {cutout-earth.c} comb region no tree {- {l slice-earth.s} {l slice-earth-2.s}}
|
||||
put {troposphere.s} ell V {0 0 0} A {6396100000 0 0} B {0 6396100000 0} C {0 0 6374800000}
|
||||
put {earth-crust.s} ell V {0 0 0} A {-5523596627.877529144287109 3189049999.999999046325684 0} B {-3189049999.999999046325684 -5523596627.877529144287109 0} C {0 0 6356800000}
|
||||
put {troposphere.c} comb region no tree {- {l troposphere.s} {l earth-crust.s}}
|
||||
attr set {troposphere.c} {shader} {stack {{cloud {}} {glass {tr 0.65}}}}
|
||||
put {earth-crust.c} comb region no tree {- {l earth-crust.s} {l crust-core-subtract.c}}
|
||||
attr set {earth-crust.c} {shader} {texture {file earth.pix w 2048 n 1024}}
|
||||
put {slice-earth.s} arb8 V1 {0 0 0} V2 {0 11500000000 0} V3 {11500000000 0 0} V4 {0 0 0} V5 {0 0 11500000000} V6 {0 0 11500000000} V7 {0 0 11500000000} V8 {0 0 11500000000}
|
||||
put {lower-mantle-display.r} comb region yes tree {- {n {l lower-mantle.s} {l slice-earth-2.s}} {l lower-mantle-core-subtract.c}}
|
||||
attr set {lower-mantle-display.r} {color} {255/255/0} {shader} {plastic} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
|
||||
put {upper-mantle-display.r} comb region yes tree {- {n {l upper-mantle.s} {l slice-earth-2.s}} {l upper-mantle-core-subtract.c}}
|
||||
attr set {upper-mantle-display.r} {color} {254/160/60} {shader} {plastic} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 MiB |
Binary file not shown.
@@ -1,856 +0,0 @@
|
||||
$COMMENT Generic Business Jet Rotor Burst Model
|
||||
$COMMENT Todd Horelica
|
||||
$COMMENT 28 Jan 2000
|
||||
$COMMENT
|
||||
$COMMENT The generic aircraft models were developed in support of the Federal
|
||||
$COMMENT Aviation Administration's Aircraft Catastrophic Failure Prevention
|
||||
$COMMENT Program. The models are used to demonstrate the Uncontained Engine
|
||||
$COMMENT Debris Damage Assessment Model (UEDDAM) tool which evaluates the risk
|
||||
$COMMENT to the aircraft from uncontained engine failures. This analysis
|
||||
$COMMENT supports certification to Title 14 Code of Federal Regulations,
|
||||
$COMMENT Part 25.903. The models are for demonstration purposes and do not
|
||||
$COMMENT depict actual aircraft and /or Aircraft systems in service. The models
|
||||
$COMMENT are available for public release.
|
||||
$COMMENT
|
||||
$COMMENT Note: Right and left are with respect to looking forward from the tail;
|
||||
$COMMENT i.e. the pilot's perspective
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT
|
||||
$NAME 0 1 Right Engine Nacelle
|
||||
SECTION 0 1 1 1
|
||||
GRID 1 -375.96 -64.08 145.47
|
||||
GRID 2 -491.31 -64.08 145.47
|
||||
CCONE1 1 8 1 2 0.04 19.010000001
|
||||
10000001 19.0 1 1
|
||||
$NAME 0 11 Left Engine Nacelle
|
||||
SECTION 0 11 1 1
|
||||
GRID 3 -375.96 64.08 145.47
|
||||
GRID 4 -491.31 64.08 145.47
|
||||
CCONE1 2 8 3 4 0.04 19.010000002
|
||||
10000002 19.0 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Pylons
|
||||
$NAME 0 2 Left Pylon
|
||||
SECTION 0 2 1 5
|
||||
GRID 5 -392.28 45.24 142.98
|
||||
GRID 6 -392.17 32.83 139.44
|
||||
GRID 7 -494.47 45.24 142.98
|
||||
GRID 8 -505.76 25.48 137.36
|
||||
GRID 9 -392.28 46.75 137.69
|
||||
GRID 10 -392.17 34.33 134.15
|
||||
GRID 11 -494.47 46.75 137.69
|
||||
GRID 12 -505.76 26.99 132.07
|
||||
CQUAD 51 8 5 9 11 7 0.032 1
|
||||
CQUAD 52 8 5 6 10 9 0.032 1
|
||||
CQUAD 53 8 6 8 12 10 0.032 1
|
||||
CQUAD 54 8 7 8 12 11 0.032 1
|
||||
CQUAD 55 8 5 6 8 7 0.032 1
|
||||
CQUAD 56 8 9 10 12 11 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 0 3 Right Pylon
|
||||
SECTION 0 3 1 5
|
||||
GRID 13 -392.28 -45.24 142.98
|
||||
GRID 14 -392.17 -32.83 139.44
|
||||
GRID 15 -494.47 -45.24 142.98
|
||||
GRID 16 -505.76 -25.48 137.36
|
||||
GRID 17 -392.28 -46.75 137.69
|
||||
GRID 18 -392.17 -34.33 134.15
|
||||
GRID 19 -494.47 -46.75 137.69
|
||||
GRID 20 -505.76 -26.99 132.07
|
||||
CQUAD 61 8 13 17 19 15 0.032 1
|
||||
CQUAD 62 8 13 14 18 17 0.032 1
|
||||
CQUAD 63 8 14 16 20 18 0.032 1
|
||||
CQUAD 64 8 15 16 20 19 0.032 1
|
||||
CQUAD 65 8 13 14 16 15 0.032 1
|
||||
CQUAD 66 8 17 18 20 19 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 0 4 Aft Fuselage
|
||||
SECTION 0 4 1 1
|
||||
GRID 21 -373.75 -0.00 127.25
|
||||
GRID 22 -512.50 -0.00 127.25
|
||||
CCONE1 3 8 21 22 0.032 36.2510000003
|
||||
10000003 26.96 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 0 101 Fairing
|
||||
SECTION 0 101 1 1
|
||||
GRID 223 -512.50 -0.00 100.27
|
||||
GRID 224 -373.75 33.49 75.73
|
||||
GRID 225 -373.75 -33.49 75.73
|
||||
GRID 226 -373.75 33.49 127.25
|
||||
GRID 227 -373.75 -33.49 127.25
|
||||
CQUAD 87 8 224 225 227 226 0.032 1
|
||||
CTRI 88 8 223 224 226 0.032 1
|
||||
CTRI 89 8 223 224 225 0.032 1
|
||||
CTRI 90 8 223 225 227 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Rotors
|
||||
$NAME 1 1 Right Engine Fan
|
||||
SECTION 1 1 2
|
||||
GRID 294 -408.33 -64.08 145.47
|
||||
GRID 295 -411.58 -64.08 145.47
|
||||
CCONE2 1 7 294 295 13.609C90
|
||||
C90 13.609 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 2 Right LPC1
|
||||
SECTION 1 2 2
|
||||
GRID 296 -416.62 -64.08 145.47
|
||||
GRID 297 -418.62 -64.08 145.47
|
||||
CCONE2 2 4 296 297 8.543C905
|
||||
C905 8.543 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 3 Right HPC1
|
||||
SECTION 1 3 2
|
||||
GRID 298 -427.25 -64.08 145.47
|
||||
GRID 299 -429.00 -64.08 145.47
|
||||
CCONE2 3 4 298 299 5.09C91
|
||||
C91 5.09 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 4 Right HPC2
|
||||
SECTION 1 4 2
|
||||
GRID 300 -431.36 -64.08 145.47
|
||||
GRID 301 -432.61 -64.08 145.47
|
||||
CCONE2 4 4 300 301 4.898C92
|
||||
C92 4.898 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 5 Right HPC3
|
||||
SECTION 1 5 2
|
||||
GRID 302 -436.69 -64.08 145.47
|
||||
GRID 303 -439.69 -64.08 145.47
|
||||
CCONE2 5 4 302 303 6.644C93
|
||||
C93 6.644 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 6 Right HPT1
|
||||
SECTION 1 6 2
|
||||
GRID 304 -443.53 -64.08 145.47
|
||||
GRID 305 -445.28 -64.08 145.47
|
||||
CCONE2 6 4 304 305 5.784C94
|
||||
C94 5.784 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 7 Right LPT1
|
||||
SECTION 1 7 2
|
||||
GRID 306 -447.46 -64.08 145.47
|
||||
GRID 307 -448.21 -64.08 145.47
|
||||
CCONE2 7 4 306 307 7.286C95
|
||||
C95 7.286 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 8 Right LPT2
|
||||
SECTION 1 8 2
|
||||
GRID 308 -450.10 -64.08 145.47
|
||||
GRID 309 -450.98 -64.08 145.47
|
||||
CCONE2 8 4 308 309 8.63C96
|
||||
C96 8.63 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 9 Right LPT3
|
||||
SECTION 1 9 2
|
||||
GRID 310 -453.05 -64.08 145.47
|
||||
GRID 311 -454.05 -64.08 145.47
|
||||
CCONE2 9 4 310 311 8.985C97
|
||||
C97 8.985 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 21 Right Engine Case
|
||||
SECTION 1 21 1
|
||||
GRID 332 -407.83 -64.08 145.47
|
||||
GRID 333 -454.55 -64.08 145.47
|
||||
CCONE1 21 4 332 333 0.1 14.109C332
|
||||
C332 14.109 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 11 Left Engine Fan
|
||||
SECTION 1 11 2
|
||||
GRID 312 -408.33 64.08 145.47
|
||||
GRID 313 -411.58 64.08 145.47
|
||||
CCONE2 10 7 312 313 13.609C98
|
||||
C98 13.609 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 12 Left LPC2
|
||||
SECTION 1 12 2
|
||||
GRID 314 -416.62 64.08 145.47
|
||||
GRID 315 -418.62 64.08 145.47
|
||||
CCONE2 19 4 314 315 8.543C985
|
||||
C985 8.543 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 13 Left HPC1
|
||||
SECTION 1 13 2
|
||||
GRID 316 -427.25 64.08 145.47
|
||||
GRID 317 -429.00 64.08 145.47
|
||||
CCONE2 11 4 316 317 5.09C99
|
||||
C99 5.09 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 14 Left HPC2
|
||||
SECTION 1 14 2
|
||||
GRID 318 -431.36 64.08 145.47
|
||||
GRID 319 -432.61 64.08 145.47
|
||||
CCONE2 12 4 318 319 4.898C100
|
||||
C100 4.898 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 15 Left HPC3
|
||||
SECTION 1 15 2
|
||||
GRID 320 -436.69 64.08 145.47
|
||||
GRID 321 -439.69 64.08 145.47
|
||||
CCONE2 13 4 320 321 6.644C101
|
||||
C101 6.644 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 16 Left HPT1
|
||||
SECTION 1 16 2
|
||||
GRID 322 -443.53 64.08 145.47
|
||||
GRID 323 -445.28 64.08 145.47
|
||||
CCONE2 14 4 322 323 5.784C102
|
||||
C102 5.784 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 17 Left LPT1
|
||||
SECTION 1 17 2
|
||||
GRID 324 -447.46 64.08 145.47
|
||||
GRID 325 -448.21 64.08 145.47
|
||||
CCONE2 15 4 324 325 7.286C103
|
||||
C103 7.286 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 18 Left LPT2
|
||||
SECTION 1 18 2
|
||||
GRID 326 -450.10 64.08 145.47
|
||||
GRID 327 -450.98 64.08 145.47
|
||||
CCONE2 16 4 326 327 8.63C104
|
||||
C104 8.63 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 19 Left LPT3
|
||||
SECTION 1 19 2
|
||||
GRID 328 -453.05 64.08 145.47
|
||||
GRID 329 -454.05 64.08 145.47
|
||||
CCONE2 17 4 328 329 8.985C105
|
||||
C105 8.985 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 22 Left Engine Case
|
||||
SECTION 1 22 1
|
||||
GRID 334 -407.83 64.08 145.47
|
||||
GRID 335 -454.55 64.08 145.47
|
||||
CCONE1 22 4 334 335 0.1 14.109C333
|
||||
C333 14.109 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Control Cables
|
||||
$NAME 3 1 Elevator Control Cables
|
||||
SECTION 3 1 1
|
||||
GRID 256 -373.75 13.97 90.17
|
||||
GRID 257 -446.98 -2.25 95.25
|
||||
GRID 258 -512.50 -1.03 104.95
|
||||
GRID 259 -373.75 6.07 88.65
|
||||
GRID 260 -446.96 -2.70 95.40
|
||||
GRID 261 -512.50 -1.63 105.02
|
||||
CLINE 1 4 256 257 0.063 0.063
|
||||
CLINE 2 4 257 258 0.063 0.063
|
||||
CLINE 3 4 259 260 0.063 0.063
|
||||
CLINE 4 4 260 261 0.063 0.063
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 3 2 Elevator Trim Cables
|
||||
SECTION 3 2 1
|
||||
GRID 262 -373.75 -26.11 99.49
|
||||
GRID 263 -388.77 -26.11 99.49
|
||||
GRID 264 -385.59 -5.80 160.33
|
||||
GRID 265 -512.50 -5.80 150.95
|
||||
GRID 266 -375.75 -25.70 99.35
|
||||
GRID 267 -388.78 -25.70 99.35
|
||||
GRID 268 -385.59 -5.80 159.88
|
||||
GRID 269 -512.50 -5.80 150.50
|
||||
CLINE 5 4 262 263 0.063 0.063
|
||||
CLINE 6 4 263 264 0.063 0.063
|
||||
CLINE 7 4 264 265 0.063 0.063
|
||||
CLINE 8 4 266 267 0.063 0.063
|
||||
CLINE 9 4 267 268 0.063 0.063
|
||||
CLINE 10 4 268 269 0.063 0.063
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 3 101 Rudder-Upper
|
||||
SECTION 3 101 1
|
||||
GRID 270 -373.75 -3.72 90.59
|
||||
GRID 271 -384.74 -3.78 90.59
|
||||
GRID 272 -391.84 -5.80 158.00
|
||||
GRID 273 -512.50 -5.80 149.08
|
||||
GRID 274 -373.75 -9.62 91.68
|
||||
GRID 275 -383.88 -9.54 91.68
|
||||
GRID 276 -392.62 -7.04 157.94
|
||||
GRID 277 -512.50 -7.04 149.08
|
||||
CLINE 11 4 270 271 0.063 0.063
|
||||
CLINE 12 4 271 272 0.063 0.063
|
||||
CLINE 13 4 272 273 0.063 0.063
|
||||
CLINE 14 4 274 275 0.063 0.063
|
||||
CLINE 15 4 275 276 0.063 0.063
|
||||
CLINE 16 4 276 277 0.063 0.063
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 3 102 Rudder-Lower
|
||||
SECTION 3 102 1
|
||||
GRID 278 -373.75 -3.85 89.54
|
||||
GRID 279 -448.81 -3.15 95.48
|
||||
GRID 280 -512.50 -5.55 106.78
|
||||
GRID 281 -373.75 -11.73 90.18
|
||||
GRID 282 -448.78 -3.68 95.40
|
||||
GRID 283 -512.50 -6.18 107.18
|
||||
CLINE 17 4 278 279 0.063 0.063
|
||||
CLINE 18 4 279 280 0.063 0.063
|
||||
CLINE 19 4 281 282 0.063 0.063
|
||||
CLINE 20 4 282 283 0.063 0.063
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 3 103 Rudder Trim
|
||||
SECTION 3 103 1
|
||||
GRID 284 -375.75 25.28 99.20
|
||||
GRID 285 -388.78 25.28 99.20
|
||||
GRID 286 -385.54 5.55 159.17
|
||||
GRID 287 -406.34 -5.80 157.47
|
||||
GRID 288 -512.50 -5.80 149.62
|
||||
GRID 289 -373.75 26.53 99.63
|
||||
GRID 290 -388.76 26.53 99.63
|
||||
GRID 291 -385.75 5.95 159.27
|
||||
GRID 292 -406.37 -5.80 157.91
|
||||
GRID 293 -512.50 -5.80 150.06
|
||||
CLINE 21 4 284 285 0.063 0.063
|
||||
CLINE 22 4 285 286 0.063 0.063
|
||||
CLINE 23 4 286 287 0.063 0.063
|
||||
CLINE 24 4 287 288 0.063 0.063
|
||||
CLINE 25 4 289 290 0.063 0.063
|
||||
CLINE 26 4 290 291 0.063 0.063
|
||||
CLINE 27 4 291 292 0.063 0.063
|
||||
CLINE 28 4 292 293 0.063 0.063
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Fuel Lines
|
||||
$NAME 4 1 Fuel Supply Line (Right Side)
|
||||
SECTION 4 1 1 1
|
||||
GRID 23 -378.88 -23.20 99.85
|
||||
GRID 24 -380.84 -28.57 144.05
|
||||
GRID 25 -428.13 -21.15 144.62
|
||||
GRID 26 -428.85 -24.92 136.29
|
||||
GRID 27 -427.79 -45.94 140.51
|
||||
CLINE 1 12 23 24 0.035 0.5
|
||||
CLINE 2 12 24 25 0.035 0.5
|
||||
CLINE 3 12 25 26 0.035 0.5
|
||||
CLINE 4 12 26 27 0.035 0.5
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 4 2 Fuel Supply Line (Left Side)
|
||||
SECTION 4 2 1 1
|
||||
GRID 28 -378.88 23.20 99.85
|
||||
GRID 29 -380.84 28.57 144.05
|
||||
GRID 30 -428.13 21.15 144.62
|
||||
GRID 31 -428.85 24.92 136.29
|
||||
GRID 32 -427.79 45.94 140.51
|
||||
CLINE 5 12 28 29 0.035 0.5
|
||||
CLINE 6 12 29 30 0.035 0.5
|
||||
CLINE 7 12 30 31 0.035 0.5
|
||||
CLINE 8 12 31 32 0.035 0.5
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 4 3 Fuel Motive Flow Line (Right Side)
|
||||
SECTION 4 3 1 1
|
||||
GRID 33 -378.82 -21.40 98.41
|
||||
GRID 34 -380.84 -26.92 143.90
|
||||
GRID 35 -428.20 -19.50 144.48
|
||||
GRID 36 -428.89 -24.34 133.86
|
||||
GRID 37 -427.77 -46.57 138.33
|
||||
CLINE 9 12 33 34 0.035 0.25
|
||||
CLINE 10 12 34 35 0.035 0.25
|
||||
CLINE 11 12 35 36 0.035 0.25
|
||||
CLINE 12 12 36 37 0.035 0.25
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 4 4 Fuel Motive Flow Line (Left Side)
|
||||
SECTION 4 4 1 1
|
||||
GRID 38 -378.82 21.40 98.41
|
||||
GRID 39 -380.84 26.92 143.90
|
||||
GRID 40 -428.20 19.50 144.48
|
||||
GRID 41 -428.89 24.34 133.86
|
||||
GRID 42 -427.77 46.57 138.33
|
||||
CLINE 13 12 38 39 0.035 0.25
|
||||
CLINE 14 12 39 40 0.035 0.25
|
||||
CLINE 15 12 40 41 0.035 0.25
|
||||
CLINE 16 12 41 42 0.035 0.25
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Structure
|
||||
$NAME 7 1 Left Forward Engine Beam (1st 2 outboard; 2nd 2 inboard)
|
||||
SECTION 7 1 1 1
|
||||
GRID 43 -421.50 45.35 142.87
|
||||
GRID 44 -421.50 46.64 137.80
|
||||
GRID 45 -421.50 31.04 138.79
|
||||
GRID 46 -421.50 32.33 133.72
|
||||
$COMMENT Forward Engine Beam, Back Side (1st 2 outboard; 2nd 2 inboard)
|
||||
GRID 47 -424.50 45.35 142.87
|
||||
GRID 48 -424.50 46.64 137.80
|
||||
GRID 49 -424.50 30.85 138.74
|
||||
GRID 50 -424.50 32.13 133.67
|
||||
CQUAD 1 8 49 45 43 47 0.190 1
|
||||
CQUAD 2 8 49 47 48 50 0.100 1
|
||||
CQUAD 3 8 44 46 50 48 0.190 1
|
||||
CQUAD 4 8 44 46 45 43 0.100 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 2 Forward Beam through fuselage
|
||||
SECTION 7 2 1 1
|
||||
GRID 45 -421.50 31.04 138.79
|
||||
GRID 46 -421.50 32.33 133.72
|
||||
GRID 61 -421.50 -31.04 138.79
|
||||
GRID 62 -421.50 -32.33 133.72
|
||||
GRID 49 -424.50 30.85 138.74
|
||||
GRID 50 -424.50 32.13 133.67
|
||||
GRID 65 -424.50 -30.85 138.74
|
||||
GRID 66 -424.50 -32.13 133.67
|
||||
CQUAD 17 8 45 46 62 61 0.100 1
|
||||
CQUAD 18 8 49 50 66 65 0.100 1
|
||||
CQUAD 19 8 45 49 65 61 0.190 1
|
||||
CQUAD 20 8 46 50 66 62 0.190 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 3 Right Forward Engine Beam (1st 2 outboard; 2nd 2 inboard)
|
||||
SECTION 7 3 1 1
|
||||
GRID 59 -421.50 -45.35 142.87
|
||||
GRID 60 -421.50 -46.64 137.80
|
||||
GRID 61 -421.50 -31.04 138.79
|
||||
GRID 62 -421.50 -32.33 133.72
|
||||
$COMMENT Forward Engine Beam, Back Side (1st 2 outboard; 2nd 2 inboard)
|
||||
GRID 63 -424.50 -45.35 142.87
|
||||
GRID 64 -424.50 -46.64 137.80
|
||||
GRID 65 -424.50 -30.85 138.74
|
||||
GRID 66 -424.50 -32.13 133.67
|
||||
CQUAD 9 8 65 61 59 63 0.190 1
|
||||
CQUAD 10 8 65 63 64 66 0.100 1
|
||||
CQUAD 11 8 60 62 66 64 0.190 1
|
||||
CQUAD 12 8 60 62 61 59 0.100 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 11 Left Aft Engine Beam (1st 2 outboard; 2nd 2 inboard)
|
||||
SECTION 7 11 1 1
|
||||
GRID 51 -460.50 45.14 142.88
|
||||
GRID 52 -460.50 46.68 137.76
|
||||
GRID 53 -460.50 28.51 138.09
|
||||
GRID 54 -460.50 29.85 132.97
|
||||
$COMMENT Left Aft Engine Beam Back Side (1st 2 outboard; 2nd 2 inboard)
|
||||
GRID 55 -462.50 45.14 142.88
|
||||
GRID 56 -462.50 46.68 137.76
|
||||
GRID 57 -462.50 28.38 138.05
|
||||
GRID 58 -462.50 29.72 132.93
|
||||
CQUAD 5 8 57 53 51 55 0.160 1
|
||||
CQUAD 6 8 57 55 56 58 0.064 1
|
||||
CQUAD 7 8 52 54 58 56 0.100 1
|
||||
CQUAD 8 8 52 54 53 51 0.064 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 12 Aft Engine Beam through fuselage
|
||||
SECTION 7 12 1 1
|
||||
GRID 53 -460.50 28.51 138.09
|
||||
GRID 54 -460.50 29.85 132.97
|
||||
GRID 57 -462.50 28.38 138.05
|
||||
GRID 58 -462.50 29.72 132.93
|
||||
GRID 69 -460.50 -28.51 138.09
|
||||
GRID 70 -460.50 -29.85 132.97
|
||||
GRID 73 -462.50 -28.38 138.05
|
||||
GRID 74 -462.50 -29.72 132.93
|
||||
CQUAD 21 8 53 54 70 69 0.064 1
|
||||
CQUAD 22 8 57 58 74 73 0.064 1
|
||||
CQUAD 23 8 53 57 73 69 0.160 1
|
||||
CQUAD 24 8 54 58 74 70 0.100 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 13 Right Aft Engine Beam (1st 2 outboard; 2nd 2 inboard)
|
||||
SECTION 7 13 1 1
|
||||
GRID 67 -460.50 -45.14 142.88
|
||||
GRID 68 -460.50 -46.68 137.76
|
||||
GRID 69 -460.50 -28.51 138.09
|
||||
GRID 70 -460.50 -29.85 132.97
|
||||
$COMMENT Aft Engine Beam Back Side (1st 2 outboard; 2nd 2 inboard)
|
||||
GRID 71 -462.50 -45.14 142.88
|
||||
GRID 72 -462.50 -46.68 137.76
|
||||
GRID 73 -462.50 -28.38 138.05
|
||||
GRID 74 -462.50 -29.72 132.93
|
||||
CQUAD 13 8 73 69 67 71 0.160 1
|
||||
CQUAD 16 8 68 70 69 67 0.064 1
|
||||
CQUAD 14 8 73 71 72 74 0.064 1
|
||||
CQUAD 15 8 68 70 74 72 0.100 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$Frames
|
||||
$COMMENT The number in parenthesis () is the actual location relative to the origin.
|
||||
$COMMENT The other numbers are the numbers provided by the original source.
|
||||
$NAME 7 51 Frame at FS 389.5
|
||||
SECTION 7 51 1 1
|
||||
GRID 75 -389.50 -0.00 127.25
|
||||
GRID 76 -390.25 -0.00 127.25
|
||||
CCONE1 5 8 75 76 0.032 35.163C1
|
||||
C1 35.113 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 52 Frame at FS 405.5
|
||||
SECTION 7 52 1 1
|
||||
GRID 77 -405.50 -0.00 127.25
|
||||
GRID 78 -406.25 -0.00 127.25
|
||||
CCONE1 6 8 77 78 0.032 34.092C2
|
||||
C2 34.042 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 53 Frame at FS 479.5
|
||||
SECTION 7 53 1 1
|
||||
GRID 79 -479.50 -0.00 127.25
|
||||
GRID 80 -480.25 -0.00 127.25
|
||||
CCONE1 7 8 79 80 0.032 29.138C3
|
||||
C3 29.087 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 54 Frame at FS 496.5
|
||||
SECTION 7 54 1 1
|
||||
GRID 81 -496.50 -0.00 127.25
|
||||
GRID 82 -497.25 -0.00 127.25
|
||||
CCONE1 8 8 81 82 0.032 28.00C4
|
||||
C4 27.95 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 55 Frame at FS 512.5
|
||||
SECTION 7 55 1 1
|
||||
GRID 83 -512.50 -0.00 127.25
|
||||
GRID 84 -513.25 -0.00 127.25
|
||||
CCONE1 9 8 83 84 0.032 26.928C5
|
||||
C5 26.846 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Engine Beam Frames
|
||||
$NAME 7 61 Frame at FS 420.75
|
||||
SECTION 7 61 1 1
|
||||
GRID 85 -420.75 -0.00 127.25
|
||||
GRID 86 -421.50 -0.00 127.25
|
||||
CCONE1 10 8 85 86 0.032 33.07C6
|
||||
C6 33.021 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 62 Frame at FS 424.5
|
||||
SECTION 7 62 1 1
|
||||
GRID 87 -424.50 -0.00 127.25
|
||||
GRID 88 -425.25 -0.00 127.25
|
||||
CCONE1 11 8 87 88 0.032 32.82C7
|
||||
C7 32.77 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 63 Frame at FS 459.75
|
||||
SECTION 7 63 1 1
|
||||
GRID 89 -459.75 -0.00 127.25
|
||||
GRID 90 -460.50 -0.00 127.25
|
||||
CCONE1 12 8 89 90 0.032 30.46C8
|
||||
C8 30.41 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 64 Frame at FS 462.5
|
||||
SECTION 7 64 1 1
|
||||
GRID 91 -462.50 -0.00 127.25
|
||||
GRID 92 -463.25 -0.00 127.25
|
||||
CCONE1 13 8 91 92 0.032 30.28C9
|
||||
C9 30.23 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 65 Frame at FS 442.5
|
||||
$COMMENT (Missing frame--goes between the two engine beam frames)
|
||||
SECTION 7 65 1 1
|
||||
GRID 93 -442.50 -0.00 127.25
|
||||
GRID 94 -443.25 -0.00 127.25
|
||||
CCONE1 14 8 93 94 0.032 31.615C10
|
||||
C10 31.565 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Stringers
|
||||
$NAME 7 101 Stringer 1
|
||||
SECTION 7 101 1 1
|
||||
GRID 95 -373.75 0.75 91.13
|
||||
GRID 96 -373.75 -0.75 91.13
|
||||
GRID 97 -512.50 0.75 100.42
|
||||
GRID 98 -512.50 -0.75 100.42
|
||||
CQUAD 15 13 95 96 98 97 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 102 Stringer 2
|
||||
SECTION 7 102 1 1
|
||||
GRID 99 -373.75 0.75 163.38
|
||||
GRID 100 -373.75 -0.75 163.38
|
||||
GRID 101 -512.50 0.75 154.09
|
||||
GRID 102 -512.50 -0.75 154.09
|
||||
CQUAD 16 13 99 100 102 101 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 103 Stringer 3
|
||||
SECTION 7 103 1 1
|
||||
GRID 103 -373.75 6.00 162.51
|
||||
GRID 104 -373.75 7.49 162.24
|
||||
GRID 105 -512.50 4.25 153.47
|
||||
GRID 106 -512.50 5.72 153.17
|
||||
CQUAD 17 13 103 104 106 105 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 104 Stringer 4
|
||||
SECTION 7 104 1 1
|
||||
GRID 107 -373.75 -6.00 162.51
|
||||
GRID 108 -373.75 -7.49 162.24
|
||||
GRID 109 -512.50 -4.25 153.47
|
||||
GRID 110 -512.50 -5.72 153.17
|
||||
CQUAD 18 13 107 108 110 109 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 105 Stringer 5
|
||||
SECTION 7 105 1 1
|
||||
GRID 111 -373.75 12.78 160.63
|
||||
GRID 112 -373.75 14.11 160.05
|
||||
GRID 113 -512.50 9.22 152.04
|
||||
GRID 114 -512.50 10.61 151.47
|
||||
CQUAD 19 13 111 112 114 113 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 106 Stringer 6
|
||||
SECTION 7 106 1 1
|
||||
GRID 115 -373.75 -12.78 160.63
|
||||
GRID 116 -373.75 -14.11 160.05
|
||||
GRID 117 -512.50 -9.22 152.04
|
||||
GRID 118 -512.50 -10.61 151.47
|
||||
CQUAD 20 13 115 116 118 117 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 107 Stringer 7
|
||||
SECTION 7 107 1 1
|
||||
GRID 119 -373.75 19.11 157.41
|
||||
GRID 120 -373.75 20.36 156.57
|
||||
GRID 121 -512.50 13.95 149.68
|
||||
GRID 122 -512.50 15.20 148.85
|
||||
CQUAD 21 13 119 120 122 121 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 108 Stringer 8
|
||||
SECTION 7 108 1 1
|
||||
GRID 123 -373.75 -19.12 157.41
|
||||
GRID 124 -373.75 -20.36 156.57
|
||||
GRID 125 -512.50 -13.95 149.68
|
||||
GRID 126 -512.50 -15.20 148.85
|
||||
CQUAD 22 13 123 124 126 125 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 109 Stringer 9
|
||||
SECTION 7 109 1 1
|
||||
GRID 127 -373.75 24.70 153.01
|
||||
GRID 128 -373.75 25.76 151.95
|
||||
GRID 129 -512.50 18.13 146.44
|
||||
GRID 130 -512.50 19.19 145.38
|
||||
CQUAD 23 13 127 128 130 129 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 110 Stringer 10
|
||||
SECTION 7 110 1 1
|
||||
GRID 131 -373.75 -24.70 153.01
|
||||
GRID 132 -373.75 -25.76 151.95
|
||||
GRID 133 -512.75 -18.13 146.44
|
||||
GRID 134 -512.75 -19.19 145.38
|
||||
CQUAD 24 13 131 132 134 133 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 111 Stringer 11
|
||||
SECTION 7 111 1 1
|
||||
GRID 135 -373.75 29.32 147.61
|
||||
GRID 136 -373.75 30.16 146.37
|
||||
GRID 137 -512.50 21.60 142.45
|
||||
GRID 138 -512.50 22.43 141.20
|
||||
CQUAD 25 13 135 136 138 137 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 112 Stringer 12
|
||||
SECTION 7 112 1 1
|
||||
GRID 139 -373.75 -29.32 147.61
|
||||
GRID 140 -373.75 -30.16 146.37
|
||||
GRID 141 -512.50 -21.60 142.45
|
||||
GRID 142 -512.50 -22.43 141.20
|
||||
CQUAD 26 13 139 140 142 141 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 113 Stringer 13
|
||||
SECTION 7 113 1 1
|
||||
GRID 143 -373.75 32.80 141.41
|
||||
GRID 144 -373.75 33.38 140.03
|
||||
GRID 145 -512.50 24.22 137.86
|
||||
GRID 146 -512.50 24.79 136.47
|
||||
CQUAD 27 13 143 144 146 145 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 114 Stringer 14
|
||||
SECTION 7 114 1 1
|
||||
GRID 147 -373.75 -32.80 141.41
|
||||
GRID 148 -373.75 -33.38 140.03
|
||||
GRID 149 -512.50 -24.22 137.86
|
||||
GRID 150 -512.50 -24.80 136.47
|
||||
CQUAD 28 13 147 148 150 149 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 115 Stringer 15
|
||||
SECTION 7 115 1 1
|
||||
GRID 151 -373.75 35.01 134.66
|
||||
GRID 152 -373.75 35.30 133.19
|
||||
GRID 153 -512.50 25.90 132.85
|
||||
GRID 154 -512.50 26.19 131.37
|
||||
CQUAD 29 13 151 152 154 153 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 116 Stringer 16
|
||||
SECTION 7 116 1 1
|
||||
GRID 155 -373.75 -35.01 134.66
|
||||
GRID 156 -373.75 -35.30 133.19
|
||||
GRID 157 -512.50 -25.90 132.85
|
||||
GRID 158 -512.50 -26.19 131.37
|
||||
CQUAD 30 13 155 156 158 157 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 117 Stringer 17
|
||||
SECTION 7 117 1 1
|
||||
GRID 159 -373.75 35.85 127.60
|
||||
GRID 160 -373.75 35.85 126.10
|
||||
GRID 161 -512.50 26.56 127.60
|
||||
GRID 162 -512.50 26.56 126.10
|
||||
CQUAD 31 13 159 160 162 161 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 118 Stringer 18
|
||||
SECTION 7 118 1 1
|
||||
GRID 163 -373.75 -35.85 127.60
|
||||
GRID 164 -373.75 -35.85 126.10
|
||||
GRID 165 -512.50 -26.56 127.60
|
||||
GRID 166 -512.50 -26.56 126.10
|
||||
CQUAD 32 13 163 164 166 165 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 119 Stringer 19
|
||||
SECTION 7 119 1 1
|
||||
GRID 167 -373.75 35.30 121.31
|
||||
GRID 168 -373.75 35.01 119.84
|
||||
GRID 169 -512.50 26.19 123.13
|
||||
GRID 170 -512.50 25.90 121.65
|
||||
CQUAD 33 13 167 168 170 169 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 120 Stringer 20
|
||||
SECTION 7 120 1 1
|
||||
GRID 171 -373.75 -35.30 121.31
|
||||
GRID 172 -373.75 -35.01 119.84
|
||||
GRID 173 -512.50 -26.19 123.13
|
||||
GRID 174 -512.50 -25.90 121.65
|
||||
CQUAD 34 13 171 172 174 173 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 121 Stringer 21
|
||||
SECTION 7 121 1 1
|
||||
GRID 171 -373.75 -35.30 121.31
|
||||
GRID 172 -373.75 -35.01 119.84
|
||||
GRID 173 -512.50 -26.19 123.13
|
||||
GRID 174 -512.50 -25.90 121.65
|
||||
CQUAD 34 13 171 172 174 173 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 122 Stringer 22
|
||||
SECTION 7 122 1 1
|
||||
GRID 175 -373.75 33.38 114.47
|
||||
GRID 176 -373.75 32.80 113.08
|
||||
GRID 177 -512.50 24.79 118.03
|
||||
GRID 178 -512.50 24.22 116.64
|
||||
CQUAD 35 13 175 176 178 177 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 123 Stringer 23
|
||||
SECTION 7 123 1 1
|
||||
GRID 179 -373.75 -33.38 114.47
|
||||
GRID 180 -373.75 -32.80 113.08
|
||||
GRID 181 -512.50 -24.80 118.03
|
||||
GRID 182 -512.50 -24.22 116.64
|
||||
CQUAD 36 13 179 180 182 181 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 124 Stringer 24
|
||||
SECTION 7 124 1 1
|
||||
GRID 183 -373.75 30.16 108.14
|
||||
GRID 184 -373.75 29.32 106.89
|
||||
GRID 185 -512.50 22.43 113.30
|
||||
GRID 186 -512.50 21.60 112.05
|
||||
CQUAD 37 13 183 184 186 185 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 125 Stringer 25
|
||||
SECTION 7 125 1 1
|
||||
GRID 187 -373.75 -30.16 108.14
|
||||
GRID 188 -373.75 -29.32 106.89
|
||||
GRID 189 -512.50 -22.43 113.30
|
||||
GRID 190 -512.50 -21.60 112.05
|
||||
CQUAD 38 13 187 188 190 189 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 126 Stringer 26
|
||||
SECTION 7 126 1 1
|
||||
GRID 191 -373.75 25.76 102.55
|
||||
GRID 192 -373.75 24.70 101.49
|
||||
GRID 193 -512.50 19.19 109.12
|
||||
GRID 194 -512.50 18.13 108.06
|
||||
CQUAD 39 13 191 192 194 193 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 127 Stringer 27
|
||||
SECTION 7 127 1 1
|
||||
GRID 195 -373.75 -25.76 102.55
|
||||
GRID 196 -373.75 -24.70 101.49
|
||||
GRID 197 -512.50 -19.19 109.12
|
||||
GRID 198 -512.50 -18.13 108.06
|
||||
CQUAD 40 13 195 196 198 197 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 128 Stringer 28
|
||||
SECTION 7 128 1 1
|
||||
GRID 199 -373.75 20.36 97.93
|
||||
GRID 200 -373.75 19.11 97.09
|
||||
GRID 201 -512.50 15.20 105.65
|
||||
GRID 202 -512.50 13.95 104.82
|
||||
CQUAD 41 13 199 200 202 201 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 129 Stringer 29
|
||||
SECTION 7 129 1 1
|
||||
GRID 203 -373.75 -20.36 97.93
|
||||
GRID 204 -373.75 -19.12 97.09
|
||||
GRID 205 -512.50 -15.20 105.65
|
||||
GRID 206 -512.50 -13.95 104.82
|
||||
CQUAD 42 13 203 204 206 205 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 130 Stringer 30
|
||||
SECTION 7 130 1 1
|
||||
GRID 207 -373.75 14.16 94.45
|
||||
GRID 208 -373.75 12.78 93.87
|
||||
GRID 209 -512.50 10.61 103.03
|
||||
GRID 210 -512.50 9.22 102.46
|
||||
CQUAD 43 13 207 208 210 209 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 131 Stringer 31
|
||||
SECTION 7 131 1 1
|
||||
GRID 211 -373.75 -14.17 94.45
|
||||
GRID 212 -373.75 -12.78 93.87
|
||||
GRID 213 -512.50 -10.61 103.03
|
||||
GRID 214 -512.50 -9.22 102.46
|
||||
CQUAD 44 13 211 212 214 213 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 132 Stringer 32
|
||||
SECTION 7 132 1 1
|
||||
GRID 215 -373.75 7.41 92.24
|
||||
GRID 216 -373.75 5.94 91.95
|
||||
GRID 217 -512.50 5.59 101.35
|
||||
GRID 218 -512.50 4.13 101.06
|
||||
CQUAD 45 13 215 216 218 217 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 133 Stringer 33
|
||||
SECTION 7 133 1 1
|
||||
GRID 219 -373.75 -7.41 92.24
|
||||
GRID 220 -373.75 -5.94 91.95
|
||||
GRID 221 -512.50 -5.59 101.35
|
||||
GRID 222 -512.50 -4.13 101.06
|
||||
CQUAD 46 13 219 220 222 221 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 201 Fairing Structure 1
|
||||
SECTION 7 201 1 1
|
||||
GRID 228 -389.50 29.69 78.52
|
||||
GRID 229 -389.50 -29.69 78.52
|
||||
GRID 230 -389.50 29.69 108.35
|
||||
GRID 231 -389.50 -29.69 108.35
|
||||
CQUAD 11 8 228 229 231 230 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 202 Fairing Structure 2
|
||||
SECTION 7 202 1 1
|
||||
GRID 232 -405.50 25.83 81.35
|
||||
GRID 233 -405.50 -25.83 81.35
|
||||
GRID 234 -405.50 25.83 104.95
|
||||
GRID 235 -405.50 -25.83 104.95
|
||||
CQUAD 12 8 232 233 235 234 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 203 Fairing Structure 3
|
||||
SECTION 7 203 1 1
|
||||
GRID 236 -423.00 21.61 84.44
|
||||
GRID 237 -423.00 -21.61 84.44
|
||||
GRID 238 -423.00 21.61 102.37
|
||||
GRID 239 -423.00 -21.61 102.37
|
||||
CQUAD 13 8 236 237 239 238 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 204 Fairing Structure 4
|
||||
SECTION 7 204 1 1
|
||||
GRID 240 -442.50 16.90 87.89
|
||||
GRID 241 -442.50 -16.90 87.89
|
||||
GRID 242 -442.50 16.90 100.49
|
||||
GRID 243 -442.50 -16.90 100.49
|
||||
CQUAD 14 8 240 241 243 242 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 205 Fairing Structure 5
|
||||
SECTION 7 205 1 1
|
||||
GRID 244 -461.50 12.31 91.25
|
||||
GRID 245 -461.50 -12.31 91.25
|
||||
GRID 246 -461.50 12.31 99.48
|
||||
GRID 247 -461.50 -12.31 99.48
|
||||
CQUAD 15 8 244 245 247 246 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 206 Fairing Structure 6
|
||||
SECTION 7 206 1 1
|
||||
GRID 248 -479.50 7.97 94.43
|
||||
GRID 249 -479.50 -7.97 94.43
|
||||
GRID 250 -479.50 7.97 99.19
|
||||
GRID 251 -479.50 -7.97 99.19
|
||||
CQUAD 16 8 248 249 251 250 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 207 Fairing Structure 7
|
||||
SECTION 7 207 1 1
|
||||
GRID 252 -496.50 3.86 97.44
|
||||
GRID 253 -496.50 -3.86 97.44
|
||||
GRID 254 -496.50 3.86 99.49
|
||||
GRID 255 -496.50 -3.86 99.49
|
||||
CQUAD 17 8 252 253 255 254 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 501 Pressure Bulkhead
|
||||
SECTION 7 501 2
|
||||
GRID 330 -373.25 -0.00 127.25
|
||||
GRID 331 -373.75 -0.00 127.25
|
||||
CCONE2 18 8 330 331 36.25C106
|
||||
C106 36.25 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
ENDDATA
|
||||
@@ -1,18 +0,0 @@
|
||||
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")
|
||||
endforeach(faa_input ${FAA_SAMPLE_MODELS})
|
||||
|
||||
cmakefiles(
|
||||
${FAA_SAMPLE_MODELS}
|
||||
CMakeLists.txt
|
||||
README
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
-209836
File diff suppressed because it is too large
Load Diff
@@ -1,13 +0,0 @@
|
||||
For example images of these models, see the report:
|
||||
|
||||
Uncontained Engine Debris Analysis Using the Uncontained
|
||||
Engine Debris Damage Assessment Model
|
||||
DOT/FAA/AR-04/16
|
||||
Office of Aviation Research
|
||||
Washington, D.C. 20591
|
||||
http://www.tc.faa.gov/its/worldpac/techrpt/AR04-16.pdf
|
||||
|
||||
(Note: the Generic Twin images in that report show the model
|
||||
prior to its most recent updates, which are reflected in the
|
||||
version included in BRL-CAD.)
|
||||
|
||||
-78680
File diff suppressed because it is too large
Load Diff
+11817
-3473
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
|
||||
|
||||
EXTRA_DIST = \
|
||||
ctype.inc \
|
||||
debug.inc
|
||||
|
||||
include $(top_srcdir)/misc/Makefile.defs
|
||||
@@ -1,40 +0,0 @@
|
||||
set(
|
||||
NIST_SAMPLE_MODELS
|
||||
NIST_MBE_PMI_1.stp
|
||||
NIST_MBE_PMI_2.stp
|
||||
NIST_MBE_PMI_3.stp
|
||||
NIST_MBE_PMI_4.stp
|
||||
NIST_MBE_PMI_5.stp
|
||||
NIST_MBE_PMI_6.stp
|
||||
NIST_MBE_PMI_7-10.3dm
|
||||
NIST_MBE_PMI_11.stp
|
||||
)
|
||||
|
||||
foreach(im ${NIST_SAMPLE_MODELS})
|
||||
g_target(${im} "BRL-CAD Geometry Models/Sample")
|
||||
endforeach(im ${NIST_SAMPLE_MODELS})
|
||||
|
||||
cmakefiles(
|
||||
${NIST_SAMPLE_MODELS}
|
||||
CMakeLists.txt
|
||||
README
|
||||
pdf/1.pdf
|
||||
pdf/2.pdf
|
||||
pdf/3.pdf
|
||||
pdf/4.pdf
|
||||
pdf/5.pdf
|
||||
pdf/6.pdf
|
||||
pdf/7-10_assem.pdf
|
||||
pdf/7.pdf
|
||||
pdf/8.pdf
|
||||
pdf/9.pdf
|
||||
pdf/10.pdf
|
||||
pdf/11.pdf
|
||||
)
|
||||
|
||||
# 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
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1,37 +0,0 @@
|
||||
December 2014:
|
||||
|
||||
The files in this directory are conversions of the NIST MBE PMI test models
|
||||
into the AP203 file format. These conversions are also in the public domain.
|
||||
|
||||
Originals are from http://www.nist.gov/el/msid/infotest/mbe-pmi-validation.cfm
|
||||
|
||||
Models 7 through 10 have been assembled into a single file, guided by the example
|
||||
PDF provided with the original NIST data set.
|
||||
|
||||
MBE PMI Validation and Conformance Testing Models
|
||||
|
||||
NIST has created a Test System to measure conformance of Computer-Aided Design
|
||||
(CAD) to American Society of Mechanical Engineers (ASME) standards for Product
|
||||
and Manufacturing Information (PMI), specifically geometric dimensioning and
|
||||
tolerancing (GD&T) information.
|
||||
|
||||
As part of this Test System, CAD Models were prepared.
|
||||
|
||||
For problems or questions about the MBE PMI CAD Models, contact: Robert Lipman
|
||||
|
||||
Dataset 1 First Release: December 2013
|
||||
Dataset 1 Update Release: December 2014 (Note: Dataset 1 files currently in
|
||||
BRL-CAD repo are based off of the
|
||||
2013 version.)
|
||||
Dataset 2 First Release: June 2015
|
||||
|
||||
These files were developed at the National Institute of Standards and
|
||||
Technology by employees of the Federal Government in the course of their
|
||||
official duties. Pursuant to Title 17 Section 105 of the United States Code
|
||||
these files are not subject to copyright protection and are in the public
|
||||
domain. These files are an experimental system. NIST assumes no responsibility
|
||||
whatsoever for their use by other parties, and makes no guarantees, expressed
|
||||
or implied, about their quality, reliability, or any other characteristic.
|
||||
|
||||
Any mention of commercial products is for information only; it does not imply
|
||||
recommendation or endorsement by NIST.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,27 +0,0 @@
|
||||
title {Photo holder by csanyi_pal}
|
||||
units mm
|
||||
put {keretgyurf.s} eto V {0 0 175} N {0 0 0.9866229999999999167314968} C {0 0 4.933115000000001693081231} r 156 r_d 2.959869000000000749395213
|
||||
put {keretgyura.s} eto V {0 0 25} N {0 0 0.9863332009625119800588777} C {0 0 4.931666004812560011316691} r 156 r_d 2.95899960288753804960038
|
||||
put {kartonekhk.s} tgc V {0 0 20} H {0 0 160} A {0 -162 0} B {162 0 0} C {0 -162 0} D {162 0 0}
|
||||
put {kartonekhb.s} tgc V {0 0 20} H {0 0 160} A {0 -161 0} B {161 0 0} C {0 -161 0} D {161 0 0}
|
||||
put {uvegszelo.s} arb8 V1 {0 0 0} V2 {-273.2568000000004531102604 -199.463712010076335445774 0} V3 {-273.2568000000004531102604 -199.4637120100763070240646 200} V4 {-2.137306219959771470627159E-14 1.560125977964318386935442E-14 199.9999999999999715782906} V5 {-273.2568000000009078576113 199.4637120100766765062872 0} V6 {-273.2568000000009078576113 199.4637120100766765062872 0} V7 {-273.2568000000009078576113 199.4637120100766765062872 200.0000000000001705302566} V8 {-273.2568000000009078576113 199.4637120100766765062872 200.0000000000001705302566}
|
||||
put {kereteehj.s} tgc V {-144.7437920000004965004337 58.16567399999996013093551 20} H {0 0 160} A {1.791839747726502229951961 4.667902132486008603962091 0} B {-2.800741279491604895923729 1.075103848635900805064125 0} C {1.791839747726502229951961 4.667902132486008603962091 0} D {-2.800741279491604895923729 1.075103848635900805064125 0}
|
||||
put {kereteehb.s} tgc V {-144.6299540000000831696525 -58.43016799999981714108799 20} H {0 0 160} A {1.873032967079560906498159 -4.635919272833937121447434 0} B {2.781551563700361828779251 1.123819780247735433675871 0} C {1.873032967079560906498159 -4.635919272833937121447434 0} D {2.781551563700361828779251 1.123819780247735433675871 0}
|
||||
put {kereteehjkicsi.s} tgc V {-144.736713000000236206688 58.16567399999982512781571 25} H {0 0 150} A {1.791839747726502229951961 4.667902132486008603962091 0} B {-2.800741279491604895923729 1.075103848635900805064125 0} C {1.791839747726502229951961 4.667902132486008603962091 0} D {-2.800741279491604895923729 1.075103848635900805064125 0}
|
||||
put {keptarto.c} comb region no tree {u {u {l uveglap.r} {l karton.r}} {l keret.r}}
|
||||
put {kereteehbkicsi.s} tgc V {-144.6299510000000339005055 -58.43016799999985266822478 25.00000000000002842170943} H {0 0 150} A {1.873032967079560906498159 -4.635919272833937121447434 0} B {2.781551563700361828779251 1.123819780247735433675871 0} C {1.873032967079560906498159 -4.635919272833937121447434 0} D {2.781551563700361828779251 1.123819780247735433675871 0}
|
||||
put {uvegekhk.s} tgc V {0 0 0} H {0 0 200} A {0 -160 0} B {160 0 0} C {0 -160 0} D {160 0 0}
|
||||
put {uvegekhb.s} tgc V {0 0 0} H {0 0 200} A {0 -156 0} B {156 0 0} C {0 -156 0} D {156 0 0}
|
||||
put {uveglap.r} comb region yes tree {n {- {l uvegekhk.s} {l uvegekhb.s}} {l uvegszelo.s}}
|
||||
attr set {uveglap.r} {color} {254/240/254} {shader} {glass} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
|
||||
put {kartonkozepenlyuk.s} ell V {-161.3665119999998296407284 9.880522794467734402637521E-15 100.0809629999999117444531} A {7.347638122934263549268508E-16 12 0} B {-12 7.347638122934263549268508E-16 0} C {0 0 12}
|
||||
put {karton.r} comb region yes tree {u {- {- {- {- {n {- {l kartonekhk.s} {l kartonekhb.s}} {l kartonszelok.s}} {l kartongmbab.s}} {l kartongmbaj.s}} {l kartongmbfk.s}} {l kartonkozepenlyuk.s}} {- {- {- {n {- {l kartonekhb.s} {l uvegekhk.s}} {l kartonszelok.s}} {l kartonszelob.s}} {l kartongmbab.s}} {l kartongmbaj.s}}}
|
||||
attr set {karton.r} {color} {255/255/255} {shader} {plastic} {region} {R} {region_id} {1003} {material_id} {1} {los} {100}
|
||||
put {keretszelokozepen.s} arb8 V1 {0 0 0} V2 {-166.3083958664467161270295 -67.15610201701679216057528 0} V3 {-166.3083958664467161270295 -67.15610201701677794972056 214.8175999999999135070539} V4 {-1.578905978938171909047631E-16 1.426081241349886421227616E-14 214.8175999999999419287633} V5 {-166.659954164212450677951 67.12896928889989567323937 0} V6 {-166.659954164212450677951 67.12896928889989567323937 0} V7 {-166.659954164212450677951 67.12896928889990988409409 214.8175999999999987721822} V8 {-166.659954164212450677951 67.12896928889990988409409 214.8175999999999987721822}
|
||||
put {keret.r} comb region yes tree {- {u {u {u {u {u {u {u {u {u {n {l keretgyura.s} {l kereteehb.s}} {l kereteehbkicsi.s}} {n {l keretgyura.s} {l kereteehj.s}}} {l kereteehjkicsi.s}} {n {l keretgyurf.s} {l kereteehb.s}}} {l kereteehbkicsi.s}} {n {l keretgyurf.s} {l kereteehj.s}}} {l kereteehjkicsi.s}} {n {l keretgyura.s} {l keretszelokozepen.s}}} {- {n {l keretgyurf.s} {l keretszelokozepen.s}} {l uveglap.r}}} {l uveglap.r}}
|
||||
attr set {keret.r} {color} {255/240/120} {shader} {plastic} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
|
||||
put {kartonszelok.s} arb8 V1 {0 0 0} V2 {-168.0589500000000384716259 -71.77879269107120308035519 0} V3 {-168.0589500000000384716259 -71.77879269107113202608161 224.0785999999999660303729} V4 {-1.631395896368632521173223E-29 1.592174214692930869044001E-14 224.0786000000000228737917} V5 {-168.0589500000001237367542 71.77879269107125992377405 0} V6 {-168.0589500000001237367542 71.77879269107125992377405 0} V7 {-168.0589500000001237367542 71.77879269107127413462877 224.0786000000000797172106} V8 {-168.0589500000001237367542 71.77879269107127413462877 224.0786000000000797172106}
|
||||
put {kartonszelob.s} arb8 V1 {0 0 0} V2 {-166.4836399999998661769496 -63.37119199999997221084413 0} V3 {-166.4836399999998661769496 -63.37119199999995799998942 214.8175999999999135070539} V4 {-1.757644366536248560321584E-29 1.526370851934186986541124E-14 214.8175999999999419287633} V5 {-166.4836399999998661769496 63.37119199999997221084413 0} V6 {-166.4836399999998661769496 63.37119199999997221084413 0} V7 {-166.4836399999998661769496 63.37119199999999352712621 214.8175999999999987721822} V8 {-166.4836399999998661769496 63.37119199999999352712621 214.8175999999999987721822}
|
||||
put {kartongmbfk.s} ell V {-161.2951809999994736699591 9.876155174676486577133334E-15 180.0822759999995525959093} A {7.347638122934263549268508E-16 12 0} B {-12 7.347638122934263549268508E-16 0} C {0 0 12}
|
||||
put {kartongmbaj.s} ell V {-148.5169369999997002196324 -63.37174099999977983088684 19.92848799999995890175342} A {7.347638122934263549268508E-16 12 0} B {-12 7.347638122934263549268508E-16 0} C {0 0 12}
|
||||
put {kartongmbab.s} ell V {-147.9239789999987806368154 63.24422300000000518593879 20.08229800000001219473234} A {7.347638122934263549268508E-16 12 0} B {-12 7.347638122934263549268508E-16 0} C {0 0 12}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user