lvidx103 ============ * TODO: make zsphere endcaps ON the default with flags to switch them off * TODO: investigate no-shows in gltf viz Issue : parsurf bbox bigger in z, g4poly bb misses both zsphere ends of capsule ---------------------------------------------------------------------------------- :: 10 10.035 weight-shell0xc307920 lvidx 103 nsp 567 union zsphere cylinder nds[ 36] 4543 4547 4558 4562 4591 4595 4631 4635 4646 4650 ... 10.035 weight-shell0xc307920 lvidx 103 nsp 567 amn ( -10.035 -10.035 -28.510) bmn ( -10.035 -10.035 -18.475) dmn ( 0.000 0.000 -10.035) amx ( 10.035 10.035 28.510) bmx ( 10.035 10.035 18.475) dmx ( 0.000 0.000 10.035) viz ----- :: op --dlv103 appears as cylinder without the spherical ends op --dlv103 --gltf 3 op --dlv103 --gltf 1 huh no show ??? opticks-;opticks-tbool-vi 103 --------------------------------- * ~/opticks_refs/lvidx103_tbool_zscy_union_coincidence_wierdness.png Ahha ... my generated python is not setting the zsphere endcap flags, :: 78 # generated by tboolean.py : 20170706-1446 79 # opticks-;opticks-tbool 103 80 # opticks-;opticks-tbool-vi 103 81 82 83 a = CSG("cylinder", param = [0.000,0.000,0.000,10.035],param1 = [-18.475,18.475,0.000,0.000]) 84 b = CSG("zsphere", param = [0.000,0.000,0.000,10.035],param1 = [0.000,10.035,0.000,0.000]) 85 b.transform = [[1.000,0.000,0.000,0.000],[0.000,1.000,0.000,0.000],[0.000,0.000,1.000,0.000],[0.000,0.000,18.475,1.000]] 86 ab = CSG("union", left=a, right=b) ## a.z -18.475,18.475 ## b.z 0+18.475, 10.035+18.475 -> 18.475, 28.51 ## ^^^^^^^ ## union coincidence z=18.475 ## 87 88 c = CSG("zsphere", param = [0.000,0.000,0.000,10.035],param1 = [0.000,10.035,0.000,0.000]) 89 c.transform = [[1.000,0.000,0.000,0.000],[0.000,-1.000,-0.000,0.000],[0.000,0.000,-1.000,0.000],[0.000,0.000,-18.475,1.000]] ## ## hmm transform is flipping y and z signs ? ## <rotation name="weight-shell0xc307920_rot" unit="deg" x="180" y="0" z="0"/> ## 90 abc = CSG("union", left=ab, right=c) ## ## c.z 0 - > 10.035 ## -10.035 -> 0 + ( -18.475 ) ## ## -28.51 --> -18.475 union coincidence z=-18.475 ## 91 92 93 94 obj = abc 95 96 con = CSG("sphere", param=[0,0,0,10], container="1", containerscale="2", boundary=args.container , poly="IM", resolution="20" ) 97 CSG.Serialize([con, obj], args.csgpath ) GDML ------ :: 36.95/2. Out[14]: 18.475 1249 <tube aunit="deg" deltaphi="360" lunit="mm" name="WeightMidCylinder0xc307d80" rmax="10.035" rmin="0" startphi="0" z="36.95"/> 1250 <sphere aunit="deg" deltaphi="360" deltatheta="90" lunit="mm" name="WeightTop0xc307e28" rmax="10.035" rmin="0" startphi="0" starttheta="0"/> 1251 <union name="WeightMidCylinder+ChildForweight-shell0xc17e030"> 1252 <first ref="WeightMidCylinder0xc307d80"/> 1253 <second ref="WeightTop0xc307e28"/> 1254 <position name="WeightMidCylinder+ChildForweight-shell0xc17e030_pos" unit="mm" x="0" y="0" z="18.475"/> 1255 </union> 1256 <sphere aunit="deg" deltaphi="360" deltatheta="90" lunit="mm" name="WeightBot0xc307f00" rmax="10.035" rmin="0" startphi="0" starttheta="0"/> 1257 <union name="weight-shell0xc307920"> 1258 <first ref="WeightMidCylinder+ChildForweight-shell0xc17e030"/> 1259 <second ref="WeightBot0xc307f00"/> 1260 <position name="weight-shell0xc307920_pos" unit="mm" x="0" y="0" z="-18.475"/> 1261 <rotation name="weight-shell0xc307920_rot" unit="deg" x="180" y="0" z="0"/> 1262 </union> G4DAE -------- 32744 <mesh> 32745 <source id="weight-shell0xc307920-Pos"> 32746 <float_array count="150" id="weight-shell0xc307920-Pos-array"> 32747 10.035 0 18.475 32748 9.69307 2.59725 18.475 32749 8.69056 5.0175 18.475 32750 7.09582 7.09582 18.475 32751 5.0175 8.69056 18.475 32752 2.59725 9.69307 18.475 32753 6.14446e-16 10.035 18.475 32754 -2.59725 9.69307 18.475 32755 -5.0175 8.69056 18.475 32756 -7.09582 7.09582 18.475 32757 -8.69056 5.0175 18.475 32758 -9.69307 2.59725 18.475 32759 -10.035 1.22889e-15 18.475 32760 -9.69307 -2.59725 18.475 32761 -8.69056 -5.0175 18.475 32762 -7.09582 -7.09582 18.475 32763 -5.0175 -8.69056 18.475 32764 -2.59725 -9.69307 18.475 32765 -1.84334e-15 -10.035 18.475 32766 2.59725 -9.69307 18.475 32767 5.0175 -8.69056 18.475 32768 7.09582 -7.09582 18.475 32769 8.69056 -5.0175 18.475 32770 9.69307 -2.59725 18.475 32771 10.035 0 -18.475 32772 9.69307 2.59725 -18.475 32773 8.69056 5.0175 -18.475 32774 7.09582 7.09582 -18.475 32775 5.0175 8.69056 -18.475 32776 2.59725 9.69307 -18.475 32777 6.14446e-16 10.035 -18.475 32778 -2.59725 9.69307 -18.475 32779 -5.0175 8.69056 -18.475 32780 -7.09582 7.09582 -18.475 32781 -8.69056 5.0175 -18.475 32782 -9.69307 2.59725 -18.475 32783 -10.035 1.22889e-15 -18.475 32784 -9.69307 -2.59725 -18.475 32785 -8.69056 -5.0175 -18.475 32786 -7.09582 -7.09582 -18.475 32787 -5.0175 -8.69056 -18.475 32788 -2.59725 -9.69307 -18.475 32789 -1.84334e-15 -10.035 -18.475 32790 2.59725 -9.69307 -18.475 32791 5.0175 -8.69056 -18.475 32792 7.09582 -7.09582 -18.475 32793 8.69056 -5.0175 -18.475 32794 9.69307 -2.59725 -18.475 32795 0 0 18.475 32796 0 0 -18.475 32797 </float_array>