File indexing completed on 2026-04-09 07:49:21
0001
0002 usage(){ cat << EOU
0003 SScene_test.sh
0004 ===============
0005
0006 Inits SScene from loaded stree.h::
0007
0008 ~/o/sysrap/tests/SScene_test.sh
0009 ~/o/sysrap/tests/SScene_test.sh info
0010
0011
0012 To create and persist the stree starting from GEOM gdml::
0013
0014 ~/o/u4/tests/U4TreeCreateTest.sh
0015
0016
0017 The framespec.txt file used is the first of the below paths that exists::
0018
0019 ~/.opticks/GEOM/${GEOM}_framespec.txt
0020 $TREE_FOLD/framespec.txt
0021
0022 TODO: relocate "scene" output default to be sibling to the stree from which it was derived ?
0023
0024 TODO: position the scene under GEOM/$GEOM dir to avoid using wrong scene with an analytic geometry
0025
0026
0027 EOU
0028 }
0029
0030 cd $(dirname $(realpath $BASH_SOURCE))
0031
0032 name=SScene_test
0033 export SCENE_FOLD=/tmp/$name
0034 mkdir -p $SCENE_FOLD
0035 bin=$SCENE_FOLD/$name
0036
0037
0038 tree_fold=$TMP/U4TreeCreateTest
0039 export TREE_FOLD=${TREE_FOLD:-$tree_fold}
0040
0041
0042 if [ ! -d "$TREE_FOLD/stree" ]; then
0043 echo $BASH_SOURCE : ERROR TREE_FOLD $TREE_FOLD DOES NOT CONTAIN stree
0044 exit 1
0045 fi
0046
0047 source $HOME/.opticks/GEOM/GEOM.sh
0048 spec0=$HOME/.opticks/GEOM/${GEOM}_framespec.txt
0049 spec1=$TREE_FOLD/framespec.txt
0050
0051 specs="$spec0 $spec1"
0052 framespec=none
0053 for spec in $specs ; do
0054 if [ -f "$spec" ]; then
0055 framespec=$spec
0056 break
0057 fi
0058 done
0059 export SScene__initFromTree_addFrames=${SScene__initFromTree_addFrames:-$framespec}
0060
0061
0062
0063 vars="BASH_SOURCE PWD stree_fold TREE_FOLD SCENE_FOLD bin GEOM framespec spec0 spec1"
0064 vars="$vars SScene__initFromTree_addFrames"
0065
0066 defarg=info_build_run
0067 arg=${1:-$defarg}
0068
0069 cuda_prefix=/usr/local/cuda
0070 CUDA_PREFIX=${CUDA_PREFIX:-$cuda_prefix}
0071
0072 glm_prefix=$OPTICKS_PREFIX/externals/glm/glm
0073 GLM_PREFIX=${GLM_PREFIX:-$glm_prefix}
0074
0075
0076
0077
0078
0079
0080 if [ "${arg/info}" != "$arg" ]; then
0081 for var in $vars ; do printf "%20s : %s \n" "$var" "${!var}" ; done
0082 fi
0083
0084 if [ "${arg/build}" != "$arg" ]; then
0085
0086 echo $BASH_SOURCE [ building
0087 gcc $name.cc \
0088 ../sn.cc \
0089 ../s_pa.cc \
0090 ../s_tv.cc \
0091 ../s_bb.cc \
0092 ../s_csg.cc \
0093 -DWITH_CHILD \
0094 -std=c++17 -lstdc++ -lm \
0095 -I.. -g \
0096 -I$GLM_PREFIX \
0097 -I${CUDA_PREFIX}/include \
0098 -o $bin
0099
0100 [ $? -ne 0 ] && echo $BASH_SOURCE build error && exit 1
0101 echo $BASH_SOURCE ] building
0102 fi
0103
0104 if [ "${arg/run}" != "$arg" ]; then
0105 $bin
0106 [ $? -ne 0 ] && echo $BASH_SOURCE run error && exit 2
0107 fi
0108
0109 if [ "${arg/dbg}" != "$arg" ]; then
0110 dbg__ $bin
0111 [ $? -ne 0 ] && echo $BASH_SOURCE dbg error && exit 3
0112 fi
0113
0114 exit 0