Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:49:23

0001 #!/bin/bash
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 #defarg="info_build_run_ana"
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    # sets MOI envvar, use MOI bash function to setup/edit
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 #export stree__get_frame_dump=1
0104 
0105 #test=desc_repeat_node
0106 #test=desc_repeat_nodes
0107 
0108 #test=desc_nds
0109 #test=desc_rem
0110 #test=desc_tri
0111 #test=desc_NRT
0112 #test=desc
0113 #test=save_desc
0114 
0115 #test=make_tree_digest
0116 
0117 #test=desc_factor_nodes
0118 #test=desc_node_solids
0119 #test=desc_solids
0120 #test=desc_solid
0121 
0122 #test=get_prim_aabb
0123 #test=get_global_aabb
0124 #test=get_global_aabb_check
0125 #test=get_global_aabb_sibling_overlaps
0126 #test=desc_repeat_index
0127 #test=desc_nodes_with_center_within_ce
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