lvidx46 (15) ============= Summary ---------- Unusually an xy discrep, parsurf ~symmetrically slimmer in xy * my analytic bbox matches closely the g4poly one * slimmer parsurf could be from my OpenMesh join kludge * dont think there is issue with underlying CSG * familar PMT shape, intersection of three z-spheres and cylinder, xy dimension comes from the intersect position of the middle two z-spheres (b and c) :: op --dlv46 --gltf 3 g4poly mesh extends lower : is there a multi transform mis interpretation ? * ~/opticks_refs/lvidx46_gltf_3_pmthemivac_is_there_a_multitransform_mis_interpretation.png parsurf xy slimmer ---------------------- :: 15 7.54053 pmt-hemi-vac0xc21e248 lvidx 46 nsp 665 union intersection sphere cylinder nds[672] 3200 3206 3212 3218 3224 3230 3236 3242 3248 3254 ... 7.54053 pmt-hemi-vac0xc21e248 lvidx 46 nsp 665 amn ( -91.464 -91.464 -164.500) bmn ( -98.995 -99.003 -164.504) dmn ( 7.531 7.539 0.004) amx ( 91.464 91.464 128.000) bmx ( 99.005 98.997 128.000) dmx ( -7.541 -7.533 0.000) nnode::composite_bbox left [ 0:in abc] right [ 0:cy d] bb mi ( -99.000 -99.000 -164.500) mx ( 99.000 99.000 128.000) si ( 198.000 198.000 292.500) Viz ----- :: op --dlv46 as expected loadsa triangulated PMTs in poly and raytrace op --dlv46 --gltf 1 as expected loadsa analytic PMTs op --dlv46 --gltf 3 g4poly mesh extends lower : is there a multi transform mis interpretation ? * ~/opticks_refs/lvidx46_gltf_3_pmthemivac_is_there_a_multitransform_mis_interpretation.png :: 78 # generated by tboolean.py : 20170706-1446 79 # opticks-;opticks-tbool 46 80 # opticks-;opticks-tbool-vi 46 81 82 83 a = CSG("sphere", param = [0.000,0.000,0.000,128.000],param1 = [0.000,0.000,0.000,0.000]) 84 b = CSG("sphere", param = [0.000,0.000,0.000,99.000],param1 = [0.000,0.000,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,43.000,1.000]] 86 ab = CSG("intersection", left=a, right=b) 87 88 c = CSG("sphere", param = [0.000,0.000,0.000,99.000],param1 = [0.000,0.000,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,69.000,1.000]] 90 abc = CSG("intersection", left=ab, right=c) 91 92 d = CSG("cylinder", param = [0.000,0.000,0.000,39.250],param1 = [-83.000,83.000,0.000,0.000]) 93 d.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,-81.500,1.000]] 94 abcd = CSG("union", left=abc, right=d) 95 96 97 98 obj = abcd z-Transforms on 3 primitives:: . abcd:union abc:intersection d:cylinder (z -81.500) ab:intersection c:sphere (z +69) a:sphere b:sphere (z +43) But they dont combine as not lined up...:: // opticks-nnt 46 gt [ 0:in ab] NO gtransform gt [ 0:sp a] NO gtransform gt [ 0:sp b] gt.t 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 43.000 1.000 gt [ 0:sp c] gt.t 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 69.000 1.000 gt [ 0:cy d] gt.t 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 -81.500 1.000 GDML ------- * *deltatheta=180* is full sphere : so no z-sphere needed :: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 opticks-;opticks-nnt 46 -------------------------- :: simon:opticks_refs blyth$ opticks-;opticks-nnt 46 opticks-nnt : compiling /usr/local/opticks/opticksdata/export/DayaBay_VGDX_20140414-1300/extras/46/NNodeTest_46.cc du [ 0:un abcd] OPER v:1 2017-07-07 11:59:44.795 INFO [3793907] [nnode::bbox@414] nnode::bbox [ 0:un abcd] nbbox::CombineCSG BB(A+B) L mi ( -99.000 -99.000 -30.000) mx ( 99.000 99.000 128.000) si ( 198.000 198.000 158.000) R mi ( -39.250 -39.250 -164.500) mx ( 39.250 39.250 1.500) si ( 78.500 78.500 166.000) C mi ( -99.000 -99.000 -164.500) mx ( 99.000 99.000 128.000) si ( 198.000 198.000 292.500) nnode::composite_bbox left [ 0:in abc] right [ 0:cy d] bb mi ( -99.000 -99.000 -164.500) mx ( 99.000 99.000 128.000) si ( 198.000 198.000 292.500) bb mi ( -99.000 -99.000 -164.500) mx ( 99.000 99.000 128.000) si ( 198.000 198.000 292.500) du [ 0:in abc] OPER v:0 bb mi ( -99.000 -99.000 -30.000) mx ( 99.000 99.000 128.000) si ( 198.000 198.000 158.000) du [ 0:in ab] OPER v:0 bb mi ( -99.000 -99.000 -56.000) mx ( 99.000 99.000 128.000) si ( 198.000 198.000 184.000) du [ 0:sp a] PRIM v:0 bb mi ( -128.000 -128.000 -128.000) mx ( 128.000 128.000 128.000) si ( 256.000 256.000 256.000) gt [ 0:sp a] NO gtransform du [ 0:sp b] PRIM v:0 bb mi ( -99.000 -99.000 -56.000) mx ( 99.000 99.000 142.000) si ( 198.000 198.000 198.000) gt [ 0:sp b] gt.t