File indexing completed on 2026-04-09 07:49:23
0001
0002 usage(){ cat << EOU
0003 stree_load_test.sh
0004 =====================
0005
0006 ~/o/sysrap/tests/stree_load_test.sh
0007 ~/o/sysrap/tests/stree_load_test.sh pdb
0008
0009
0010 CAUTION the "ana" python script is independent from the C++ side
0011 with some different envvar controls.
0012
0013
0014 Python
0015 --------
0016
0017 ::
0018
0019 GEOM=J007 RIDX=1 ./stree_load_test.sh ana
0020
0021 Comparing with CSG/tests::
0022
0023 RIDX=1 ./CSGFoundryLoadTest.sh ana
0024
0025
0026 C++
0027 -----
0028
0029 ::
0030
0031 ~/o/sysrap/tests/stree_load_test.sh
0032 TEST=desc ~/o/sysrap/tests/stree_load_test.sh
0033
0034 LVID=124 TEST=desc_solid ~/o/sysrap/tests/stree_load_test.sh
0035
0036
0037
0038 To update the input tree::
0039
0040 ~/o/u4/tests/U4TreeCreateTest.sh
0041
0042
0043
0044
0045
0046
0047
0048 epsilon:~ blyth$ st
0049 /Users/blyth/opticks/sysrap/tests
0050 epsilon:tests blyth$
0051 epsilon:tests blyth$ LVID=112 ./stree_load_test.sh
0052 stree::init
0053 stree::load_ /tmp/blyth/opticks/U4TreeCreateTest/stree
0054 LVID 112 num_nds 11
0055 ix: 531 dp: 3 sx: 0 pt: 533 nc: 0 fc: -1 ns: 532 lv: 112 tc: 103 pa: 319 bb: 319 xf: 208 zs
0056 ix: 532 dp: 3 sx: 1 pt: 533 nc: 0 fc: -1 ns: -1 lv: 112 tc: 105 pa: 320 bb: 320 xf: 209 cy
0057 ix: 533 dp: 2 sx: 0 pt: 535 nc: 2 fc: 531 ns: 534 lv: 112 tc: 1 pa: -1 bb: -1 xf: -1 un
0058 ix: 534 dp: 2 sx: 1 pt: 535 nc: 0 fc: -1 ns: -1 lv: 112 tc: 105 pa: 321 bb: 321 xf: 210 cy
0059 ix: 535 dp: 1 sx: 0 pt: 541 nc: 2 fc: 533 ns: 540 lv: 112 tc: 1 pa: -1 bb: -1 xf: -1 un
0060 ix: 536 dp: 3 sx: 0 pt: 538 nc: 0 fc: -1 ns: 537 lv: 112 tc: 103 pa: 322 bb: 322 xf: 211 zs
0061 ix: 537 dp: 3 sx: 1 pt: 538 nc: 0 fc: -1 ns: -1 lv: 112 tc: 105 pa: 323 bb: 323 xf: 212 cy
0062 ix: 538 dp: 2 sx: 0 pt: 540 nc: 2 fc: 536 ns: 539 lv: 112 tc: 1 pa: -1 bb: -1 xf: -1 un
0063 ix: 539 dp: 2 sx: 1 pt: 540 nc: 0 fc: -1 ns: -1 lv: 112 tc: 105 pa: 324 bb: 324 xf: 213 cy
0064 ix: 540 dp: 1 sx: 1 pt: 541 nc: 2 fc: 538 ns: -1 lv: 112 tc: 1 pa: -1 bb: -1 xf: 214 un
0065 ix: 541 dp: 0 sx: -1 pt: -1 nc: 2 fc: 535 ns: -1 lv: 112 tc: 3 pa: -1 bb: -1 xf: -1 di
0066
0067
0068 See:
0069
0070 * notes/issues/U4Tree_stree_snd_scsg_FAIL_consistent_parent.rst (realloc stale pointer issue now fixed)
0071
0072
0073 EOU
0074 }
0075
0076
0077 cd $(dirname $(realpath $BASH_SOURCE))
0078
0079
0080 defarg="info_build_run"
0081 [ -n "$LVID" ] && defarg="build_run"
0082
0083 arg=${1:-$defarg}
0084
0085 name=stree_load_test
0086 bin=/tmp/$name/$name
0087 script=$name.py
0088 csgscript=${name}_csg.py
0089 tmpfold_script=${name}_tmpfold.py
0090
0091 source $HOME/.opticks/GEOM/GEOM.sh
0092 source $HOME/.opticks/GEOM/MOI.sh
0093
0094
0095 cuda_prefix=/usr/local/cuda
0096 CUDA_PREFIX=${CUDA_PREFIX:-$cuda_prefix}
0097
0098
0099 opt="-DWITH_PLACEHOLDER"
0100 opt="$opt -DWITH_CHILD"
0101
0102 export stree_level=1
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128 test=desc_prim
0129
0130 export TEST=${TEST:-$test}
0131
0132
0133
0134
0135 CFB=${GEOM}_CFBaseFromGEOM
0136 export FOLD=${!CFB}/CSGFoundry/SSim/stree
0137
0138 export TMPFOLD=$TMP/stree_load_test
0139 mkdir -p $TMPFOLD
0140
0141
0142 if [[ "$TEST" =~ ^get_global_aabb$ ]]; then
0143 script=$tmpfold_script
0144 elif [[ "$TEST" =~ ^get_global_aabb_sibling_overlaps$ ]]; then
0145 script=${name}_${TEST}.py
0146 fi
0147
0148
0149 vars="BASH_SOURCE opt GEOM CFB FOLD MOI TEST TMPFOLD"
0150
0151
0152 logging(){
0153 type $FUNCNAME
0154 export NPFold__load_DUMP=1
0155 }
0156 [ -n "$LOG" ] && logging
0157
0158
0159 if [ ! -f "$FOLD/nds.npy" ]; then
0160 echo $BASH_SOURCE : GEOM $GEOM ${GEOM}_CFBaseFromGEOM ${!CFB} FOLD $FOLD
0161 echo $BASH_SOURCE : CFBaseFromGEOM directory MUST contain CSGFoundry/SSim/stree/nds.npy : THIS DOES NOT
0162 exit 1
0163 fi
0164
0165 if [ "${arg/info}" != "$arg" ]; then
0166 for var in $vars ; do printf "%30s : %s \n" "$var" "${!var}" ; done
0167 fi
0168
0169 if [ "${arg/build}" != "$arg" ]; then
0170 mkdir -p $(dirname $bin)
0171
0172 gcc \
0173 $opt \
0174 $name.cc \
0175 ../s_tv.cc \
0176 ../s_bb.cc \
0177 ../s_pa.cc \
0178 ../sn.cc \
0179 ../s_csg.cc \
0180 -g -std=c++17 -lstdc++ -lm -lssl -lcrypto \
0181 -I.. \
0182 -I$CUDA_PREFIX/include \
0183 -I$OPTICKS_PREFIX/externals/glm/glm \
0184 -o $bin
0185
0186 [ $? -ne 0 ] && echo $BASH_SOURCE build error with opt $opt && exit 1
0187 fi
0188
0189
0190
0191
0192 if [ "${arg/run}" != "$arg" ]; then
0193 $bin
0194 [ $? -ne 0 ] && echo $BASH_SOURCE run error && exit 2
0195 fi
0196
0197 if [ "${arg/dbg}" != "$arg" ]; then
0198 source dbg__.sh
0199 dbg__ $bin
0200 [ $? -ne 0 ] && echo $BASH_SOURCE dbg error && exit 3
0201 fi
0202
0203 if [ "${arg/pdb}" != "$arg" ]; then
0204 ${IPYTHON:-ipython} --pdb -i $script
0205 [ $? -ne 0 ] && echo $BASH_SOURCE ana error && exit 4
0206 fi
0207
0208 if [ "${arg/ana}" != "$arg" ]; then
0209 ${PYTHON:-python} $script
0210 [ $? -ne 0 ] && echo $BASH_SOURCE ana error && exit 4
0211 fi
0212
0213 if [ "${arg/csg}" != "$arg" ]; then
0214 FOLD=$FOLD/csg ${IPYTHON:-ipython} --pdb -i $csgscript
0215 [ $? -ne 0 ] && echo $BASH_SOURCE ana error && exit 4
0216 fi
0217
0218 exit 0
0219