XRjPj __text__TEXTHo__gcc_except_tab__TEXT@__literal16__TEXT@ 8__literal8__TEXT` X%__literal4__TEXTh!|`&__StaticInit__TEXT!T& __bss__DATAPj__cstring__TEXTD"h<'__const__DATA __const__TEXTXP__mod_init_func__DATA0(h __compact_unwind__LD8.0p__eh_frame__TEXT*8@/h h2  p\08 PffhUHAVSPHHHHHC0HC8C@HCHHH[A^]IHIHL UHAVSpHHHHHCHHC0C8H?HC@HCPCXHC`HChHH[A^]IHL UHAVSpHHHHHCHHC0HHC8H?HC@HCPCXHC`HChHH[A^]IHL f.UHAVShHHHHHC`HHC0HC8C@HCHHCPHCXHH[A^]IHL UHAVSIHIF(AH5HƃL[A^]UHAVSIHIF(AH5# HƃL[A^]UHAVSIHIF(^AH5"HƃL[A^]UHAWAVAUATSPEIIDmHIF( AH5$HƃE_EuZEAAHH5 ,HƃLHpHH5+iHCiiLHHEiPHH59+OHCOOLHHA,HH5-HƃLH8HH5-HƃLHDeHA|v} tp0HHntWeightHC H_componeHCH vec4 inHCH uniformHCH HfC(;)LHHIH5$LP1ɅLDILpILPt|0HHSampler;HC'HpthPassSHC H2D in_deHCH samplerHCH uniformHCH HC//LHHLH[A\A]A^A_]# IHIAt I~L DUHAWAVAUATSPEIIHtHHH5HPE1LEE1@IG(AHellFlag;HH-H!in_cellHH(Hents = HH HxtureExtHHHadjustTeHHH bool l_HHH H@5IELpt&IELPtIELHH5/~HC~~LHHHH50 Hƃ  LHHLH1AuDt@`HH56RHƃRRLHHLH1tTIELptcHH58HƃLHH!Ltu HPuLtuJHPt@HH58HƃLHHLH[A\A]A^A_]ÿPHH5*AHƃAALH! IHIAt IL f.UHSPH HC(Hp = falsHHH g_skiHHH Hf@e;@HH[]fUHHHGHGH]UHAWAVAUATSHLEAΉUHHGHGH}HHtuHPt}E}EHtHPHH@HHHH8H@HHHDž0Dž8HHHHhH8H@H`HHHMHHHpH@HDžHDžHDžHDžDžHyHAHXE1f.DAD;uƅx(Hm sampleHCH uniforHCr2D ELXM,$MMM<$M@IDp H@(H@0H@8HH@LhI$H]HHHttHI4$nf.IEMHtDIE9u } MeIEHuM<$MmAW(tGIW0M8Df.MM<$Mu=LH{HCHyAW(uI)HHxLHHHMHHPHUHMHH@H@fDž@;ƅBH}HAHHHMHHPHUHMHH@H@UtHuHU @HHuH}Eu*@u3Eu?xFf.fH}@tHPEtH}xH}HEHXH$LxHIHHÃ{ y L{HCHuM7MbPHH55KHCKKH}HHE1L}H8DHxHH@H1H5HHHMHHPHUHMHH@H@LH55HHHMHHPHUHMHH@H@UtHuHUf.fHHuH}Eu*Eu3xuMMuMuELIIGL}AV(uI)HH}LHHHMHHPHUHMHH@H@fDžh;ƅjH}HiHHHMHHPHUHMHH@H@UtHuHUf.HHuH}Eu*hu3Eu?EFf.DH}htHxEtH}EH}}E`HIF( AH5CPPHƃP`HH5NUHCUUH}HHE1LmHDLHL1HNHHHMHHPHUHMHH@H@H}H5#HHHMHHPHUHMHH@H@Ut HuHU fHHuH}Eu*Eu3EuMMuMuELIIGL}AV(uI)HH}LHHHMHHPHUHMHH@H@fDžH;ƅJH}HIHHHMHHPHUHMHH@H@UtHuHUf.HHuH}Eu*Hu3Eu?EFf.DH}HtHXEtH}EH}}EM~I^HIHIHHÃ{ LsHCHuPHH5ECHCCCH}HHE1Lmf.H@DLHHL1H~HHHMHHPHUHMHH@H@H}H5_HHHMHHPHUHMHH@H@Ut HuHU fHHuH}Eu*Eu3EuH@{LIIGAV(EI)HH}LHHHPHHPHHH@HH@H@H5=H@HHHuHNHHPHVHHH@H@@uEuEu+6HPHuEtH}HuEt H}HuHHĘ[A\A]A^A_]I@uEuDEuQHPEt%IEu/jIEu!\IEtH}E@H}2IEt-IHII IWhzIEttH}dIEt;H}0I0ASIEtH}IHt HXEtH}IEtH}IHpH@HhHHxHHt HHHH5HH@HHEt HxL DUHAWAVAUATSHHLeAH}uNI\$HMt$fHIHHÃ{ LsHCHuEAEHGHGHHHHHHHH@HHHDžDžHHHHMHH@HEHHHHHEHHDžHDžHDžHDžDž@HDuHnent) { HC7Ht componHC0Hcity, inHC(Hloat opaHC Hcalar, fHCHr(vec4 sHCHputeColoHCHvec4 comHC??H}HHID$HE1@AD;mcHDLuLHHHH5:LHH5:HHHxHHPHpHhHH@H@LM<$M|MM4$M@IDh H@(H@0H@8HH@LxI$L}IHHtpII4$jfDIMHtEIE9o } MgIGHuM4$MrAV(tAIV0Mv8>f.fMM4$MuALIIGAV(uI)HHhLHHH`HHPHXHPHH@H@HPH58HHHHHHPH@H8HH@H@UtHuHUf.HHuH8HHH0HHPH(H HH@H@H H5 8HHHHHPHHHH@H@UtHuHUfHHuHHHHHHPHHHH@H@HH5k7HHHHHPHHHH@H@UtHuHUfHHuHHHHHHPHHHH@H@HH56HHHMHHPHUHMHH@H@Ut HuHU fHHuH}E 8P'h3t HfEHHuEt H}HHxHH1EH}H}!HH HH H08HHPH`hHxAZEQI\$H$Mt$DHIHHÃ{ LsHCHuEHufE} EH}HEt H}HEHHEHHEHt HHH5HHH3I\$IM>M@I@ H@(H@0H@8HH@HXII$HHtMI$I6GpHHEHX(HEH53jHHuCjLI|$ID$I(H51LLLH51LHHHuHNHHPHVHHH@H@tHHuHHH[A\A]A^A_]I\$IM>Mui@I@ H@(H@0H@8HH@HXII$HHt I$I6LI|$ID$I(H50LLLH51L(dIHfIcIIIH IEH}IEuz 8PhH}tIoHcIQHEH9H -H08!HHPH`h HxH~IGIKI OI8ySIPqWIyIEt H}HEHHEHHEHt HHH5HHHHEt HxL IwIoIhf.UHAWAVAUATSHLeDEAH}kEbHGHGHH8HHHHHH@H8HHDžDžHHHHXHH@HPH8HHHH`HHDžHDžHDž HDž(Dž0LuID$HHE1AD;eE&H samplerIFH uniformIAFr2D ELHM}MuvMI]H@HD` H@(H@0H@8HH@LxIEL}IHHtjIIudIMHtEIE9g } MoIGHuI]HxS(tAHS0H[8>f.MI]HuGHIIGS(uH)HH}HHHHMHHPHUHMHH@H@fDžh;ƅjH}HiHHHMHHPHUHMHH@H@UtHuHUf.DHHuH}Eu*hu3Eu?EFf.DH}htHxEtH}EH}}EM|$I\$HMt$ f.@HIHHÃ{ LsHCHu@HHmponent)HC(H, int coHC H4 scalarHCHcity(vecHCHmputeOpaHCHfloat coHC/) { C33H}HHE1L AD;}HDH]HHLH5_)HLH5*HHH@HHPH8H0HH@H@LHI]HuwLMuM@IDx H@(H@0H@8HH@HXIEH]HHHtkHIueHIHtEHD9{ } LkHCHuMuMwAV(tAIV0Mv8>f.fIMuMuFLH{HCAV(uI)HH0LHHH(HHPH HHH@H@HH5'HHHHHPHHHH@H@UtHuHUf.HHuHHHHHHPHHHH@H@HH5['HHHxHHPHpHhHH@H@UtHuHUfHHuHhHHHMHHPHUHMHH@H@H}H5(HHHMHHPHUHMHH@H@UtHuHUf.@HHuH}EEh0t HfEHHuEt H}HHxHH1EH}f.H}E1H}h(HxHHH(0H@EHufE} EH}Et H}HXHHPH8H`Ht H HH5HHH8bM|$I\$HtQMt$f.HIHHÃ{ y)LsHCHuLMM&M#LMM&M:wIM&M@I@ H@(H@0H@8HH@HXIH]HHHtwHI6rIM&M@I@ H@(H@0H@8HH@HXIH]HHH\HI6TLH{HCI(H5<$LuLLH59$LHHHMHHPHUHMHH@H@IHLeI\$f.HHHHȃx y HXHHHuIL3Mui@I@ H@(H@0H@8HH@LxHI$HHI$H3LL3MtAV(IV0Mv8IHL3MuiLH{HCI(H5"LuLLH5"LHHHMHHPHUHMHH@H@IHLeI\$fHHHHȃx y HXHHHuIL3Mui@I@ H@(H@0H@8HH@LxHI$HHI$H3LL3MtAV(IV0Mv8IHL3MuiLI|$ID$AV(pI)HH}LHHHHHPHHHH@H@H5!H}LI|$ID$AV(AI)HH}LHHHHHPHHHH@H@H5>!HHHHuHNHHPHVHHH@H@uEuEu+6HHuEtH}HuEt H}HuHH[A\A]A^A_]IuEuDEuQ:HEt%IEu/IEu! IEtH}EH}IEtIHEIBII}IEsH}`IEuYEumh0H}Et IEtH}ht IhtHxtHhH\H(0PH@tUBIIIItHIEH}IIIEuhu.Eu:EucjH}ht IhtHxEtH}Eu 'I0PIEt H}HXHHPH8H`Ht H HH5HHH8HEt HxL DUHHHGHGH]UHAVSHIHHu3@IF(ݿAHaxValue;HH.Hc4 l_maxFHH@IF(AHinValue;HH.Hc4 l_minHH(H veHH Hlue; HHH_firstVaHHH bool lHHH H@6L[A^]HH@IF(AHavgValueHH0H vec4 l_HH(H HH Hmples; HHH l_numSaHHH uvec4HHH Hf@8;^HHuR IF(DAHl_sumValHHH vec4 HHH H@lue;@IFIFIf.UHAVSHIHHu9HIF( AH5rHCrHHu9HIF(AH5qHCqHHu9HIF(VAH5Hƃ^HHu6`HIF(AH5_RHCRIFIFIL[A^]f.DUHAWAVAUATSHXAHHHHEHGHGHEAHLHHHHH@HLHEEL-MuLI@LLL=ILHDžHDžHDžHDžDžHDH}HH5\H}HUH5ZH}HPHUHPHUHPHH@H@Ef HEHMHCHKHSt H}Et H}LLLt HHH5HHHXAuRƅ"Hvec4 g_gHHradientsHfDž;HHHHCHHCHHH;EuHHX[A\A]A^A_]HEtH}HEtH}HLLLt HHHH5HHHH HfUHAVSH HHGHGHEt00HE()EHdient(0)HHHmputeGraHHHnts = coHHHg_gradieHf@ ; @"HEHCHEHMHKHLpIHE()EH5gHAFgHEHMHHKHEHCHH [A^]H f.DUHAWAVAUATSH8LMLEIH}DeHtIH5LPE1MEE1pHHEHX(]H5f`HC`Au?IH5HAƆH}LPIHme_bias;IF8H in_voluIF0H_scale +IF(Hn_volumeIF Hscalar*iIFHcalar = IFH sIFH IAF@@H}LLIL] uPAHH5|Hƃ||H}HILA>HH5qHƃqqH}HqHH5^ Hƃ  H}H3ILA'pHH5hHƃhhH}HHH5U Hƃ  H}HILA;3HH5I"HƃH}H+ HH5HƃH}HHH5HƃH}HILW)EHEHuH}1EtH}t HH5kHƃH}H6HH5!zHCzzH}HHE HuH HEH }HEEH}Et H}HEH8[A\A]A^A_]DuAHH5!HƃH}HHIELPIELp0HH5"%Hƃ%%H}HIELPtMIELpu;`HH5&_HC__H}HH}H}AAAAuAHH5&HƃH}HH@HH5t'1Hƃ11H}HHE HH }HCH HCH HCH}HH}tH}t AtHH5!HƃH}H.IHEeIHEKIHE1IHEoIHEUzIHE;`IHE!FIHE,IHEIHEyIHEbIHEKIHE4IHEtv!IHEtcIHEtPxIHTIHEt:bIHEt*RIL.IHEtH H}Et HEtH}At HAtI~H UHAWAVAUATSHH0f H}GH8HHLAE1HLh@H HQHHH@H@HHEHHHEHHHELmOf.MLHHuHHIIL98Lm.LHHHH@HHDžHLLHDžDžHEHHLxhLLIHEHHH@H@H@H@DžxHLHHLH1HYHHHMHHPHUHMHH@H@H}H5eYHHHxHHPHpHhHH@H@H0HBT0tJ40JT0f.@HJt0HhHHH`HHPHXHPHH@H@HPH5XHHHMHHPHUHMHH@H@Ut HuHUHHuH}EPhEt H(HEHLHEHHEHXHhH}PqH`heHxEYH}LSH5qWLuLLH[A\A]A^A_]I/IEu*PuAhu[EugH}Pt IPtH`ht IhtHxEtH}u.IExItH(ILuHEHLHEHHEHXt HhLHHuHAt I~L IHHuLuILufDUHAWAVSPHHHHHLHHhHH@HGLHHHGGXt H{hLH5HHLH[A^A_]f.fUHAVSHHHH[A^]IHL f.DUH]fDUHAWAVAUATSHAΉIHHHEHLEADEDNHHDI`HHDIHHDIIMIH@ILJMILJIhIpHIpHHILJxIhILJpIHPIH IILJIILJIHItIuhHHHHHC`HHC0HC8C@HCHHCPHCXHIIukhHHHHHC`HHC0HC8C@HCHHCPHCXHILpHLHHHHH@HLL}HDžDžHHHH`HH@HXHLHHHhHHDžXHDž`HDžhHDžpDžxEd HEHH(HpH0HH8E1D|HDEt\E,HEHsferFuncHHHtyTransfHHHin_opaciHEH}LU~HuHUxE,HEHsferFuncHHHtyTransfHHHin_opaciHELpI$HL( f.@HIH HÃ{ yLcHCHufM<$MEI_(AG(t I8HEHCHEHMHKHE(HEHTransferHHHin_colorH@FuncELI$H=L0f.HIHVHÃ{ yLcHCHufM<$MI_(AG(t I8HEHCHEHMHKH IHE()EHsferFuncIGHentTransIGHin_gradiIAGL I]HL8HIHHÃ{ yLkHCHufMeMI\$(AD$(t I|$8HEHCHEHMHKHL|HHuLpH}XHHHMHHHML`HH@H@M}MU]L(f.IMHBIE9w } MoIGHuI]H\C(t H{8EC(EC)HEHMHC*HK0Lc8Et H}EHt H}E(HEHTransferHHHin_colorH@FuncEH}HULtHuHU @HHuH}XHHHMHHHML`HH@H@M}MU]L0@IMHIE9w } MoIGHuI]HC(t H{8EC(EC)HEHMHC*HK0Lc8Et H}EHt H} HE()EHsferFuncHHHentTransHHHin_gradiH@H}HUL tHuHUf.fHHuH}XHHHMHHHML`HH@H@M}MU]L8@IMHIE9w } MoIGHuI]HC(t H{8EC(EC)HEHMHC*HK0Lc8Et H}EL|t H}fELHuEt H}HHxHH1AA99Z@MI]H@HDp H@(H@0H@8HH@LxIEH@HHHHIuf.@MI]Hd@HDp H@(H@0H@8HH@LxIEHHHHHHIuf.@MI]HD@HDp H@(H@0H@8HH@LxIEHPHHH;HIu2LM<$M@I@ H@(H@0H@8HH@HXI$H@HHHHI4$LM<$M@I@ H@(H@0H@8HH@HXI$HHHHHHI4$LMeMa@I@ H@(H@0H@8HH@HXIEHPHHHaHIuXMI]H*MI]HMI]HIIM<$M]IM<$MIMeMHL}IIC(GKHL}IpIxC(^bHL}IIC(LH]HHI_(AG(UYLH]HpHxI_(AG(LH]HHI\$(AD$(H}HpH`HHXHHhHXt HhLH5HHHHHH;EuH[A\A]A^A_]IGIVIHNILLMKIEt$LEtGIEu IEuEu-Et H}L~ILrIEtH}EuIEuILAIEtIEuIEtIEuIEx|IH`HHXHHhHXt HhLH5HHHL @UHAWAVAUATSPIH}L`MteI$Ml$I)tWILtI~8Ht$f.LI~8HPIF8L9sI$HLtI~8HuLuIHt#H{8HtLH{8HPHC8IHt#H{8HtLH{8HPHC8MMtbI$Ml$I)tTIAJ\H{0Ht fDLH{0HPHC0M9sI$IJ\H{0HuHELMt_IMfI)tSIAJ\H{0Ht fDLH{0HPHC0M9sIIJ\H{0HuH[A\A]A^A_]f.fUHAWAVATSIL`MtAI?MgI)tI1@HMHMU]u/LMM&MuF f.IMHIA y MwIGHuLM&MAD$(t I|$8EAD$(EAD$)HEHMID$*IL$0HEID$8pt H}fDžpIHHpHLPpt H}HHHxHHH1AD;mjDLMM&M5@I@ H@(H@0H@8HH@LxIH]HHHt HI6LHHHPAD$(H}HEt H}H`HHHXHHhHPt HLH5HHHHHHH;EuHĘ[A\A]A^A_](IIILIEpEt H}H`HHHXHHhHPt HHPH5HHHHL H}pc5ILLIp>Ip,H}E#IE UHAWAVAUATSPLMtkIMgI)t_IIAJ\H{8Ht)f.DLH{8HPHC8M9sIIJ\H{8HuH[A\A]A^A_]f.fUHAWAVATSILMtAI?MgI)tI1@HHPE1LEHULL1MHHH;Eu1H([A\A]A^A_]fUHAWAVAUATSPAIIHHHHuYL}HHDDHDIHHE1IH HRH)HL9vN4H[A\A]A^A_]E1HMAHHtHH5=HP1ɅHE1LLDH[A\A]A^A_]UHAWAVAUATSH8IIHHLeI$HEȉHEE1L}"LHIL;uI$HHIH)HL9vN,H]I}8HuE1H]I}8HtL#MtCIf.@I$MHtTIIcD$ I9|~M|$ID$Hu @IIIHt2C(H(Hf.fMIHuD@HDp H@(H@0H@8HH@L`ILeI$HHt I$I7HI$I$C(VH[8L}LeI}8HurTI$HEI$pHEI$HEHEE1#@LLIL;mI$HJHx0HtLeI$Hu%LM4$Mu:ifHIHtEHHcC I9|~ LcHCHuM4$Mt1AF(I(If.IM4$Mu@@IDh H@(H@0H@8HH@HXI$H]HHHt HI4$LHHAF(YMv8LeI$HJHx0Ht fDLLI$KI$`HJHx8HtLeI$Hu#LM4$Mu8YHIHt;HHcC I9|~ LcHCHuM4$Mt#AF(I(IIM4$Muݿ@IDh H@(H@0H@8HH@HXI$H]HhHHt HhI4$LHpHxAF(gMv8LeI$`HJHx8Ht LLI$H%HJHx0HtLeI$HuLM4$Mu4UHIHt;HHcC I9|~ LcHCHuM4$Mt#AF(I(IIM4$Muݿ@IDh H@(H@0H@8HH@HXI$H]HHHt HI4$LHHAF(gMv8LeI$HJHx0HH8[A\A]A^A_]UHAWAVSPAIHHtJEE1HI9IHHHx8HtE|E1fDHI9tgIHHHx0HtItI`HHHx8HtIHtHHHx0HtH[A^A_]fDUHAWAVAUATSHHIIIHHI;IhueIhLmHULHHLH}IhI7IHIh0PHMAAAMILIhILjLLHE1LH[A\A]A^A_]HH}H DUH]fDUHAWAVAUATSPLMMIIHHwpIL@HLIELLLLHMAAHLHHHHLHxHDH[A\A]A^A_]f.UHAVSH HIHHHEH8HHHHuHIHHA8A@AHIEfW1f.11f.11f.@@WA*YXAWA* kXAY8XAEWA*AY@XAָWA*XAY@XAθWA*UAYHXAWA*XAYHXH11f.11f.@11f.@WA*YXAeA*YXAWA*uYXAWA*YXAWA*YXAWA*YXƸAƨHHH;Eu H [A^]f.UHAWAVATSHPIHHHEH8H{0HH(]fA$@(]fA$PI$%A$A+$W*A$A+$*A$A+$*^j(^^]-JjXf: ^)]\(X^e\X^I$8ZO0f.u{*G0Hm]]mI$8\mWZOXf.u{ GXHmmI$8WZf.u{HI$8(EZOHf.u{GHHI$8EZOhf.u{GhHI$8M$@M$PEZf.u{HI$8(g)E(g)EH0HuLI$8H0HuLHHH;Eu HP[A\A^A_]f.fUHAWAVSPHIHHMI;vHHIHLH[A^A_]DUHAWAVAUATSPMAIIHH8Hu HHC8LA$f.CHuzAL$f.KPuCHID$HCPAILH;C`wCH{8HH;C`Au*H{8HtD9s@ H[A\A]A^A_]HsHLc`HSPLHLAHSXHtD9k0t@Dk0HDk0Dk0HcK4IcHHHHAHHCXCHKPLDH{8H1HH{8H1XH{8HDH{8HDxH{8s0K4LKXA Ds@LD9s@Ds@H{8HDH{8HHxDH[A\A]A^A_]E1tfDUHAWAVAUATSHXMDEMIEIIH0Hu HID$0LAL$`Af.uzAL$hfA.Nu{NAD$`IFID$hAIELI;D$HwtI|$0HI;D$Hw_A9\$8uXt Et ME1EfA.D$@Au/I|$0Ht]A9\$XHX[A\A]A^A_]It$`IT$hLLLAIT$PHtE9|$~5I~HI~HIA9u 9E11E1I~Hu덳I~Hu0t,I~HHIHHH9eIHEtIHHHHD(LA9ADOE9EODDEDI~HI~HI~`A9A9HI6HDADžAI1fؙAщؙAW*HW*HWXXZMN`AI9HI6HtDAHHIF`HHAIF`I6HIHHWWWHWA*WA*HJXHH>XH I6HDADžMN`I~DDA I~HHI~HXI~H1I~H1xI~HWfWWWI~HH[A\A]A^A_]H[A\A]A^A_]UHAWAVATSH0IIHHA|$ uLA|$  Mt$ Mt&IHt3HH5tHP1HEIID$ IHu1LI|$ HueI|$ H1HI|$ H1XI|$ HI|$ HxI|$ A$A$I|$ A$A$E$A$$1E1H0[A\A^A_]I`H}LUt HuHUHHuH=HHHpHH}H5H}HHǾ Q8AH}AHHE\H}NHH}HEt H}H UHAVSH HuMfEH`HuLXEt H}IHxL1H=t C H [A^]H5LH5&HHEt H}H fUHAWAVAUATSHHHHHEHHHIHHE1H1\HhILH5 HLHHHxIHG8HHHpHHIHxH@H`E1fDHxfC@KPHHHH`HC@ZLXKCHZCPZAHpHIHILh~ILIILIILLIILXAMYZHcHXHH@LAMYZLAMYZLA $YZ0AL$YZ4AL$YZ8AYZAOYZAYGZLHLfff\K\Hf(fYf(fXf(YXQf.Quf^^H5< HMHHDH54 H0HDH50 HHDH5- HHDH5& HDHhTHpHG8HHHgILxI@E1Hx+f.fHpHIH%IELh~IELZMcJ LIJ<ILEE1O,AMtM~LHHLHLpLxLmHI?tHLxLmEZM9s AILxMHpI)LHHCL9EI)LHII9LBHH9MCMt+EM9EIJ<ILEE1O,AM|M~LHHLHLpLxLmHI?tHLxLmEZM9|LpM)LHHCL9oM)LHII9LBHH9MCMt%EM9hJ<IEE1O,AI\M~LLLLpHxLmMI?LHpHxH`H)HHwW JW*H5HHHpHt HxHHH;EuHx[A\A]A^A_]HpnHp`HpRHpDHp6Hp(!   HHpHt HxH fDUHAWAVSPHIHHAƆHt4ILHtLHrAƆHHHtHHH1AH[A^A_]@UHAWAVSPHIHHIHt'ILuAƆI-HH0AtIMt1IL`(At%IAdž AH[A^A_]UHAVSIHHHt8At.HHHA|HHH1[A^][A^]UHAVSH HIHHHEEHEHHHtAtHHuHHYHH* 3^ZEW*^ZEW*^ZEIH5GHUHHH;Eu H [A^]UHAVSHHHHtatXIƃ|<+++ILIL[A^] [A^]f.DUHAVSIH?$HI8HHHHHx@0H8YPPYX@pYXWQAY8f(.fT]]2YXXYXHxYXQAY@fT]P@YX`YXYXQAYHfT]WZAFhIp1f.vfWf.u{Z^AFh[A^]ÃtbI8IZI(^(%2(TTUVUVA^h[A^]ËAFh[A^]UHAWAVAUATSHHHHEHIHHHXAIELAIELH`LALhAFAODžptDžx|W)EHEEEM)E)E)EHHHuHHHDD(HHuHHHDL`D`LIHǾIHH1110HpHHHELhPAQATAWH LILPHXHuHHHHHPHHH;EuHĈ[A\A]A^A_]UHAWAVATSIHatQHHILHAAT$LHHHAL;Xu.AL;XtvIHLXƃ`H.Q/uHLtsLLLHHHXWWWW@[A\A^A_][A\A^A_]fUHAVSatIHHHHHAAVHHHH[A^]ø[A^]f.UHAWAVATSHIIHH5LPIHtHPIdžMII9t_f.@I<$LL1IL9uMIL9tf.@HHI9uMM(I0L9u]M0IPHtHPIdžPIHHtHPIdžHIdž@[A\A^A_]HI9tHX@tHxUHAWAVAUATSHHIHHHEH*^,щW*^,ɉHLJ11IHt3HHA9uAA9u9HHt9HH5HP1ɅHEH!AI1HIIXH`I(IXHhIXLUL8E1HLHH@HHHHpHHHxI@HLLHxLHHIM;XLHHLHHHAAAHHHxHHHH1HHH1XIM L9Lt5HHHILkf.DH`HH)HHCHH9I)LHII9LBHH9LCMtI9J<1HLf.fNd(IH<LLHII;Xs,IH<I(M@BD(tN$(IHIHIML9f.@H;HI9uH}EZH}EQH}I@HH]HH5HHǾ H5yHH5CHH5HH}HH}H1H}Hh[A\A]A^A_].HEt4\HEt/`HEt$U HEt9HEuEu*Eu3H H}Et HEtH}EtH}H HH}H f.@UHAWAVAUATSPHt xtH[A\A]A^A_]IH.u{+*^,W*^,ɉ9uA9u9LMtTMMtcI$H5LP1IEJIHLMuIHMMu1LLLLH@H;HAHHt;D9u!HH{HPHǃIHMMtIEH5LP1IE1LHEHHH1xHH1HH1DH%IHMMtI$H5LP1IE1LHAHHH1xHH1HH1HIHMMtIH5`LP1IE1LHHHH1xHH1HH1H@HH@HH@1E1HH@E1HH@W((AH[A\A]A^A_]f.fUHAVSHHIHH5HPIHtHPIdžIHt HIHPIdžIHt HIHPIdžIHt HIHPIdž[A^]f.fUHAVSHt xt[A^]HH@H@1H@HLLLHHH[A^]UHAWAVAUATSPIIH.u{.*^,AWA*^,AA9uAA9u AAAMMIH5LPIHtHPIDžIHt LIHPIDžIHt LIHPIDžIpHLHMMt&IHt5HH52HP1HEIIIHu1LIHHI@AAItIIIIHtHH5HP1HE1LIAAE11IIH1xIH1IH1IIIIHtHH5HPE1LELLIAAAIIH1xIH1IH1II@II@1E1II@IhIp1H HHHWWWWAq H[A\A]A^A_]DUHAVSHHIHH5HPIHtHPIdžIHt HIHPIdžIHt HIHPIdžIpHHHH[A^][A^]f.@UHAVSHHLLLHHq [A^]f.UHAWAVSPHHHHhHHǃHǃHIHHLH?HpǃxHǃHǃHǃHǃ0H@@H HHXIfHn@ H`HHHH[A^A_]ILI3IHHHhHtHǃhHPHL HUHHw]fUHHH?Ht HHP]Hf.UHAVSHHHH`Ht#HPH`HtHPHǃ`HHtHPHǃLMtLLHǃHHPHǃHH1HH1HHHhHtHǃhHPH[A^]HIHHhHLfDPDUH]fDUHSPHHH[]@UHAWAVATSHHIUL}HLH5HApHL%HLHLH5 HAxHHLH[A\A^A_]f.UHHH]f.fUHHH]f.fUHHHH]DUHHHH]DUHAWAVAUATSPIH`IIs t+Lc HHLA$st+LcHHLA${t$HtHHIHtLIHGHt+HLIHxHPIHGHG Ht+HLIHx HPIHG LMIIH5LPHHtHPHǃHHt LHHPHǃHHt LHHPHǃHpHLHILIHhHt%HLhI1ILIILLMLIEMeI)LuILtI~8HtLI~8HPIF8L9s+IEHLtI~8HuHH[A\A]A^A_]`LuILLMt[I}M}I)u/II}M}I)tI1HIM4$Mu0I@ H@(HH@HXI$IHHt II4$LIIGI~(HELMtRA<$tKI]HMoHIHHËC }LkHCHuI]Ht@Mgf.fHIHHËC }tLcHCHuLMM4$M0I@ H@(HH@HXI$IHHtxII4$rLMuM)0I@ H@(HH@HXIEIHHIIuIM4$MuJLIIGI^(HL LHIHsC6ELmMu0Mgf.@HIHt:HËC }tLcHCHuLMM4$MtI~(usRIM4$Mu0I@ H@(HH@HXI$IHHt II4$LIIGI~(IEHtII_f.@HHHt7HȋH }t HXHHHuIL3MurLL3MueIHL3MuU0I@ H@(HH@LhHIHHtIH3LIIGI~(fEHuEt H}H8[A\A]A^A_]H}HEt H}H f.UHAWAVAUATSHhDEHMIH}LvHFHtHEuEu/H H}EtHEt HEtH}H fDUHAWAVAUATSH8ILfHFHt8MoHfDH IHH˃{ yLkHKHuLMMuMtdMv(HI_DHHHHȋH }t HXHHHuIL+MIMuMu0I@ H@(HH@HXIEIHHtIIuIHL+M,LIIGIGMv(H-LL+MuU0I@ H@(HH@L`HIHHtIH3LIIGM}( HE()EIion::DecLhHerminatiHXI//VTK::TL @W)EHEHuHULEt H}Et H} HE(w)ELhHXL @@HE(_)EH.0 / 255HH0H 1.0 - 1HH(Heshold =HH HacityThrHHHoat g_opHHHconst flHHH H@75.0;@;HuHULEt H}Et H}E,LeIerminateLuHte::InitHEE0HHE()EH50v(Hƃ(HuHULEt H}Et H}E,LeLuHte::ImplHEE`HHE()EH5{VHƃVHuHULEt H}Et H}E,LeLuHte::ExitHEEW)EHEHuHULEt H}Et H}H8[A\A]A^A_]'%HEt+BHEt5 HEt(HEuEuH H}EtH}H f.DUHAWAVAUATSHxDEIH}L~HFHt@MfH f.@HIHHӃ{ yLcHSHuLMM,$MteMe(HLeMnHIHHЋP }t LhHPHuII]HIM,$MuHM0I@ H@(HH@HXI$IHHtII4$III]H5LI~IFIFHMMe(HLe#MI]Hu_HM0H@ H@(HH@LxIEIHHt IIuHI~IFHMH[(HHHAE&I//VTK::SLuIhading::LmE:DecEW)EHEHuHUH}ED}t H}Et H}E&LuLmE:DecEH}HUHuHUH߹Et H}Et H}E(LuLmEInitEH}HUHuHUH߹Et H}Et H}E(LuLmEImplEHULHLhDd$D|$$H}HuHUH߹Et H}Et H}E(LuLmEExitEH}HUEEHuHUH߹Et H}Et H}Hx[A\A]A^A_]2HEt8O%HEt+BHEt5 HEt(HEuEuH H}EtH}H f.UHAWAVAUATSHDEHMIIH}H^HtDMff.HIHt,HËC }t LcHCHuM<$MuiI^IM<$MuW0I@ H@(HH@HXI$IHHt II4$LI~IFMg(H]HIHLE HE(o)EHadient::HHHomputeGrHHI//VTK::CL0@:Dec@H}HHuHULEt H}Et H}IL_Lm HE()EHacity::DHHHomputeOpHHL0f@ec@HELLXHDž`HDžXLPIIL9rLPfDHL9WHK LLHHKHtfHH HuHCH9tHH HAHYH9uLm HE()EHacity::DHHHomputeOpHHL0f@ec@HELLHDžHDžLMIƐM9HfIL9IM HLHIMHtfHH HuIEL9(tIIMHALiH9uHPH$H}DEDMHuHULEH//VTK::Ct H}HXHPEt H} HE(|)EHlor::DecHHHomputeCoHHH@HELLpHDžxHDžpLhIIL9LhfDHL9HK LLHHKHtfHH HuHCH9tHH HAHYH9uHH$H}DEDMHuHULH//VTK::CEt H}HHEt H}0HE(M)EHacity1D:HHHadientOpHHHomputeGrHHH@ :Dec@$HELL(HDž0HDž(L IIL9L fHL9HK LLHHKHtfHH HuHCH9tHH HAHYH9uHhH$H}DEDMHuHULLmEt H}HpHhEI//VTK::Ct H} HE()EHache::DeHHHradientCHHH//VTK::GHf@cH}MDEHuHULEt H}Et H}0HE(>)EHts::ImplHHHeGradienHHHreComputHHH//VTK::PH@ H}MDEHuHULEt H}Et H} HE(g)EHghting::HHHomputeLiHHL0@:Dec@HUHTD$H}HMDEDMHuHULEt H}Et H} HE(')EHion::DecHHHyDirectiHHHomputeRaHHL0@LHHt3HH5$.HHH(/HH5u-{HHH{(H])EHuHULEt H}Et H}H[A\A]A^A_]H}L HuUMHuHULEH//VTK::Ct H}H(H Et H} HE(i)EHlor::DecHHHomputeCoHHH@HELL@HDžHHDž@L8IhIpL9trL8HL9tZHK LLHHKHtf.HH HuHCH9tHH HAHYH9uH8H$H}DEDMHuHULLmEt H}H@H8EI//VTK::C~HEH} HEH} HE)HEHEH}HEH}HEH}HEtHEuEH H}EtrHEtgHEt\HH@H8Et>HH(H Et HHpHhEsH}H HHHE@HHXHPEUHHw]fUHAWAVAUATSHHIH}LvHFHt4M|$HH IHH˃{ yL{HKHuLMM/MteI}(HMl$DHIHHȋH }t LhHHHuII]HIM/Mu0I@ H@(HH@HXII$HHtI$I7III]H0LI|$ID$ID$I}(H(MI]HuaI0H@ H@(HH@LpIEI$HHt I$IuHI|$ID$LLc(E(I//VTK::CL}Iropping:LmE:DecEW)EHEHuHUELut H}Et H}E(L}LmE:DecEIL@t9HHE(6)EH5hHƃW)EHEHuHULEt H}Et H}E*L}LmHng::InitHEEIL@t9HHE()EH5kHƃW)EHEHuHULEt H}Et H}E*L}LmHng::ImplHEEIL@t9pHHE()EH5qfHƃfW)EHEHuHULEt H}Et H}E*L}LmHng::ExitHEEW)EHEHuHULEt H}Et H}HH[A\A]A^A_]HEuEu:H H}EtHEtHEt HEtH}H f.@UHAWAVAUATSHHIH}LvHFHHUt@MeH f.@H IHH˃{ yLcHKHuLMM<$MtdMg(HI]DHHHHȋH }t HXHHHuIL;MIM<$Mu0I@ H@(HH@HXI$IEHHtIEI4$IHL;M,LI}IEIEMg(H+LL;MuW0I@ H@(HH@LpHIEHHt IEH3LI}IEMo(E(I//VTK::CLuIlipping:L}E:DecEW)EHEHuHULEt H}Et H}E(LuL}E:DecE`HHE(t)EH5aoSHCSHuHULEH]t H}Et H}E*LuL}Hng::InitHEEH}HuHHuHULEt H}Et H}E*LuL}Hng::ImplHEEHH`Ht9HHE()EH5}~Hƃ~W)EHEHuHULEt H}Et H}E*LuL}Hng::ExitHEEW)EHEHuHULEt H}Et H}HH[A\A]A^A_]HEt@ HEt3HEuEu$H H}Et HEtH}H UHAWAVAUATSHXDEIIH^Ht?MofDHIHt,HËC }t LkHCHuMuMuiI_IMuMuW0I@ H@(HH@HXIEIHHt IIuLIIGM~(E,I//VTK::BLuHinaryMasH]Hask::DecHEEI$t`I$HhtN HE(.)EHD in_masHHHsampler3HHHuniform Hf@k;@W)EHEHuHULEt H}Et H} HE()EHsk::ImplHHHXL0@I$tVI$HhtDA$t9HHE(a)EH5}HƃW)EHEHuHULEt H}Et H} HE()EHMask::DeHHIompositeLhI//VTK::CL0f@cI$tSI$HhtAA$u6HHE()EH5`}rHCrW)EHEHuHULEt H}Et H} HE()EHMask::ImHHLhL0f@pl@M$I$LhA$ML$$H}HuHULEt H}Et H}HX[A\A]A^A_]HEt8OHEt-DHEt"9HEt,HEuEuH H}EtH}H f.UHAWAVAUATSH8IIH^Ht\Mof.HIHtEHËC }t LkHCHuMeMt+II_IMeMuտ0I@ H@(HH@HXIEIHHt IIuLIIGIBMt$(E(H//VTK::PHEHicking::HEEExitEPHHE()EH5BA@Hƃ@HuHULE(H//VTK::PHEHicking::HEEExitE`HHE(Q)EH5DZHƃZHuHULE&I//VTK::PL}Hicking::H]E:DecE0HE()EH_propId;HHH vec3 inHHH uniformHHH H@ HuHULEt H}Et H}E(L}H]EExitEHHE(g)EH5(>HƃHuHULEt H}Et H}H8[A\A]A^A_]%HEt+MHEt@ HEt3HEuEu$H H}Et HEtH}H fUHAWAVAUATSH8IIH^HtPMof.HIHt9HËC }t LkHCHuMeMtAuz_I_IMeMu0I@ H@(HH@HXIEIHHt IIuLIIGAMt$( HE()EHmage::DeHHIenderToILxI//VTK::RL f@c@HE(i)EHdateDeptHH0Hool l_upHH(H bHH HagPos; HHHopaqueFrHHH vec3 l_HHH Hf@8h;@:HuHULEt H}Et H} HE()EHmage::InHHLxL f@it@HHE()EH5{HƃHuHULEt H}Et H} HE( )EHmage::ImHHLxL f@pl@HHE()EH5{HƃHuHULEt H}Et H} HE(~)EHmage::ExHHLxL f@it@@HHE(c)EH5{4Hƃ4HuHULEt H}Et H}H8[A\A]A^A_]%HEt+MHEt@ HEt3HEuEu$H H}Et HEtH}H DUHAWAVAUATSH(EIIIHHH1zDeLuLmMHǀPIE8HEHuLH-ILeHf.fHǀTILLLIHILhH~-PTt=u#PDf.Tt݃~f.@ǁTPIILXf.M/)ILHTHǀTLuDeLmHLLHLLEHLHLLEHLLLEHLHLLHLEHLHLHLL1H([A\A]A^A_]f.fUHAWAVAUATSHMHUILfH^HHuLet2LfHIHt(HÃ{ yLcHCHuLM<$Mui IM<$Mu[0I@ H@(HH@HXI$H]HHHt HI4$LH{HCIw(H@HPLeI$Ht?HEL`f.HIHtvHËC }tLcHCHuLM<$Mui0I@ H@(HH@HXI$H]HHHtHI4$IM<$MuLH{HCIw(H@HhLeI$Ht:HEL`fDHIHtvHËC }tLcHCHuLM<$Mui0I@ H@(HH@HXI$H]HHHtHI4$IM<$MuLH{HCIw(H@H}H}HIHLHLHEE1H]$f.H]HAD9}LHDIH}$LHPHhHMMLMutHHH5HǾHH5yMt=LH}HHH5HLHH5H}H5mHLHHHH5{MXLH5AH}LH5H2f.LHPHhHMMLMuHHH5HǾHH5sxMt=LH}HHH5HLHH5H}H5yHLHHHH5zMt^LH5tKH}LH5nH?H}HH}H1\H}HH}H1.L}IHt7HELxHIHt'HÃ{ yL{HCHuLM7Muf IM7MuY0I@ H@(HH@HXIH]HHHtHI7LH{HCI~(HPL}IHt8HELx@HIHtsHËC }tL{HCHuLM7Muf0I@ H@(HH@HXIH]HHHtHI7IM7MuLH{HCI~(HhH]HHtEHMHYf.DHHHtvHȋH }t HXHHHuHEL3Mun0I@ H@(HH@HEIFL3L}IHHtIH3HEHL3MuLIIGI~(HuEu0hu9Pt H`HĈ[A\A]A^A_]H}htHxPu.,*(&$Hht:]HPt5dHHH}Euhu%Pu1H H}htHxPtH`H UHAWAVAUATSHAIHxH}HEHEHEHEHH1HXH]HLPL}u$LM7M=DHIHt"HÃ{ y L{HCHuM7Mud IM7MuW0I@ H@(HH@HXIHEHHt HEI7LH}HEHXIF(HHǾH`H]L}Hu+LM7MIL$Hf.MI?uMMf.0IMIUHP(HH HH@LpIHMH HtHMIH}HHEIL$Ht#HH HuL}@f.DID$L9 L}t#If.@I $HALaH9uHMH9HMH]IMl$ L9Y@IL9A~<H]Ht@AF8LmfDH IHtH9C }"LkHKHuf.fLmLM}Muh0IAF8AG IG(IIGI_M}HEHHtHEIuIM}MuLH}HEIw(H@H]HIv IV@ANXHH]HtFAF8Lmf.fH IHtH9C }"LkHKHuf.fLmLM}Muh0IAF8AG IG(IIGI_M}HEHHtHEIuIM}MuLH}HEI(HuEt H}INHtHH HuIFL90If.DIHALqH9uf.IL9A<H]Ht4AG8LmfDH IHtsH9C }LkHKHuLmLMuMuh0IAG8AF IF(IIFI^MuHEHHtHEIuIMuMuLH}HEIv(H@H]HIw IW@AOXHH]Ht6AG8LmH IHtsH9C }LkHKHuLmLMuMuh0IAG8AF IF(IIFI^MuHEHHtHEIuIMuMuLH}HEI~(HuEtH}IOHtHH HuIGL98If.DIHALyH9uHxHHu1H]HHHuH}HHHtHH}H5pH}HǾ,H5iHH}H}HH5qHHHuH5qHH5pH}H5lHH5pH}tH}H5pH}HH}HH}H1H}HXHPH`HPHpHPHEHH}HHaHuH}HĈ[A\A]A^A_]A?=;9IHuH}@%#IH}.IH}HIIEt H}HuH}L @UH僿tTfWf.u.p f.vCfWf.u9z7^ɮ%Z ^fW-fTfUfV^^XYf(]pyf.v cQf.w f.f(v pf(f(^Zf.vf(^pf(^Zf.v ^p]f.UHAWAVAUATSPIIHHHhILIċLLLHEHHspIL@HLI$LLLLHMAAHLHHHHLHxHD1H[A\A]A^A_]UHAWAVAUATSHxHUIIH`HHPIH0H{0HHIHH;pIHtHH5QsHP1HE1MHHpH]HILhHEHILHt!HHH5vHP1ɅHEHM1HEIELmLAI<$HuI$t!Hu I$f(Ef(HHHLILAAAMMH}Hcp@IHEHSHHKPH)HH9HuHhsHHH)HUHI$ vHHCPuH}HI$H;pv,H}HHHLuHUDEt!HUDE }H]HH5jHHǾH5bHLH}HH5SjHHLH5HXH6I+W*Wf(^ +W*f(^(+W*^0fff\fY%if\YZMWZEWZELH5 [LIZEZEZELH5ZLIfff\f(f^f\ ٙ^HH{0HHI^HO0f.u{G0HIHj^OXf.u{GXHIH5^f.u{HIHf.u{$H?HHIHOHf.u{GHHIHOhf.u{GhHIHLPf.u{HIHx IHx LH5XHXH{H{LH5XHxHII>LHHpIHxHt"IHxLH5WXLPMt#IILH58XLpHHHHIHHx8AHt$IHHx8HtHH5WIHHx8Ht IHHx8HtAHHH5XWDHHH5@WHxfI>HHHEE1fDLDZplhLDZ@<8LDZ LDZBIHM9YHHH5]VDHpHH5OVDH@HH5AVDHHH54VDIHH`HHHhH8LHL0`IHHHH{0H0HHIHH{0HHHHHLH5UIHLH5UIHHhH{0H0HHIHH{0HHHHhLH5SUIHLH5MUIH0LxILxH{0Hp0HHIH0H{0HHHIH H0H{0H0HHIH H{0HHHIH0LH5TIH LH5TIHH0H{0H0HHILL`xIH(H0Hx0H0H0HhIH(H0H0HIH0H{0HHHIHH0H{0H0HHIHH{0HHHIH0LH5SIHLH5SIH(LH5SILH]HtYILZEWZEZELH5ZSHLH5ZSHLH5VSU(@)W)LI{0 HK4HDHHEHHELH5 SLH5SHI@hLH5RIf@XfHhfZfZff)f@xffZfZff)LH5RHILZE@ZE@ZELH5oRL}LIZEZEZELH5'RLIZEZEZELH5QLIW*EW*EW*ELH5QLIW*EW*EW*ELH5wQLIW*EW*ELH5NQH]HIW*Sf(*^f(^ZMZELH5QHIW*f(W*^f(^ZMZELH5PHIL LH5PALH5PI@MċDMȋHELH5PLIPMċTMȋXELH5]PLIH0H8H{0H0HHIH0H{0HHHIH0LH5OILLH5OILILIEHEHHHLut'tHHLHjf.HH* ^ZEW*^ZEW*^ZEHH5ELHHHH f.vf(f(f(LZEWZELH5NHMH^LH5nN^\LH5LNtU1L@I$LZDHI9uLH5 NHMHL}I>HLHxHXHxI>HGHt HI>HG Ht HI>LHpLPMt I|$uZtQHtGu>IHHy8HtIHHx8Htf.@HHHHhHHHIHHH;EuHĨ[A\A]A^A_]UHAWAVAUATSH8IHHuHHILHLHEԅo1f9]WLHƉIIHI$LLHME1utLuLLH5GHǾHH5@LH}HHH5HHLHH5GH}H5KILLHHH5BLH5GtH}LH5GHH}HH}H1H}H8[A\A]A^A_]HH}H fUHAVSLI9tH}H5"LH/A8H]HH5 HHǾzH5VHLH}HH5HHLH5HH5 H}H5HH5L H}H5mLHA[H]HH5HHǾH5yHLH}HH5HHLH5HH5H}H5HH5Lt]H}H5LHQADOH}HH}H1OH}HH}H1$H}HH}H1H}DH [A\A^A_]HH}H f.UHAWAVATSH IH0cB1ۅOH&AƉ ؉  ȉ  A9WLeLH5O LHǾH5uHLH}HH5HHLH5HH5H}HljH5J HHDH5HH5HH5HH5L>H}H5LH/A8H]HH5HHǾH5VHLH}HH5HHLH5HH5H}H5HH5L H}H5mLHA[H]HH5HHǾH5yHLH}HH5HHLH5HH5H}H5HH5Lt]H}H5LHQADOH}HH}H1OH}HH}H1$H}HH}H1H}DH [A\A^A_]HH}H f.UHAWAVATSH IH8cB1ۅOH&AƉ ؉  ȉ  A9WLeLH5kLHǾH5u HLH}HH5HHLH5HH5H}HljH5HHDH5HH5HH5HH5L>H}H5LH/A8H]HH5HHǾzH5V HLH}HH5HHLH5HH5H}H5HH5L H}H5mLHA[H]HH5HHǾH5y HLH}HH5HHLH5HH5H}H5 HH5Lt]H}H5LHQADOH}HH}H1OH}HH}H1$H}HH}H1H}DH [A\A^A_]HH}H f.UHAWAVATSH IH0cB1ۅOH&AƉ ؉  ȉ  A9WLeLH5kLHǾH5u HLH}HH5HHLH5HH5H}HljH5HHDH5HH5HH5 HH5L>H}H5LH/A8H]HH5HHǾ~H5VHLH}HH5HHLH5HH5H}H5 HH5L H}H5mLHA[H]HH5HHǾH5yHLH}HH5HHLH5HH5H}H5 HH5Lt]H}H5LHQADOH}HH}H1OH}HH}H1$H}HH}H1H}DH [A\A^A_]HH}H f.UHAWAVAUATSHXIHHL`HCXHCPHCHHC@HC8HC0HHHHXH@HH}LHXHEHǃPǃXL=MoLXI@LLHHHEH`HǃHǃHǃHǃǃHpHǃpHǃxHEHhHHǃHǃHEHHHǃHǃHEHHHǃHǃHEHHǃHǃLeLmHHHHH H(H0H8L`LLhLHǃHǃHǃHǃHǃHǃHǃxHǃpHǃHǃHǃHǃ Hǃ(Hǃ0Hǃ8Hǃ@HǃHHǃPHǃXfǃ`HhHpHxL3fCC HHC$HC HCHCCh?Hǃ`HǃHǃHǃHǃHǃL1HǃHCxHCpHǃHǃHǃHǃǃHC`HǃPHǃHǃHǃ(HHHL8I~0IL(G@(GPHC0HKHHC8HKPƃHǃHǃHǃHǃHǃǃfǃHǃHǃHǃHX[A\A]A^A_]HEHEHEHEcHEbHEvHEHEHEHEHEHEHEHEHEHEHxHtHǃxHPHpHtHǃpHPHhHtHǃhHPL(MtEH0LL9t*HHHM@t HxHMHI9uH(L0HHEHtHuH} H{PI>HtH{8H} HHHHHHHHHHHUHHH?Ht HHP]Hf.UHHH?Ht HHP]Hf.UHHH?Ht HHP]Hf.UHAWAVSPL?MtQIHGL9uL-f.HI9tHX@tHxI>M~H[A^A_]H[A^A_]fUHAWAVSPL?Mt$IH_L9t#fHHI9uI>H[A^A_]LM~H[A^A_]fUHHH?Ht Hx]]DUHAWAVATSIH`HtIHtHPIGI HtHPIG IHtHPILJIHtHPILJIHtHPILJIHtHPILJIHtHPILJMII9tCfL1IL9uMIL9tf.HHI9uMM(I0L9MM0IPHtHPILJPIHHtHPILJHLMMtII<$Mt$I)t$I1Hu/{t9{t1H[A^]ÿ A>tѿ{uǿD {uf.UHAVSIt H1H11A>u\A~A~u D A~u A~u q A~t [A^]Hf.UHHHHHE'fDfV fDf@fN`f(fAYwf(fYfX_f(fAYfXGf(fYfXf)pfnfDV0fDNPfDFpfYfAYfXfAYfXfAYfXf)EG fDY_(fYfAXg0fDYfDXW8fYfAXf)MfYfAYfXfAYfXfAYfXf)Ug@fDfV fDf@fN`f(fAYwHf(fYfX_Pf(fAYfXGXf(fYfXf)}fnfDV0fDNPfDFpfYfAYfXfAYfXfAYfXf)EG`fDY_hfYfAXgpfDYfDXWxfYfAXf)MfYfAYfXfAYfXfAYfXf)UHpHHHHH;Eu HĐ]f.UHSPHH=aHtZH=fHtGH=gHt4H=fHt!H=EHtHH[]H[]f.@UHH9Fu]ÐHAHH9@tHNyuHAHH9tHt`ztXfDHPHtztH91HQH2HqHtHNHAHBHA1H9@HH HQHBH91tH4HVHHtHJHAHFHA1H9H4HNHqHFF@HHHHPHtHBHPHQHP1H9@H HHH]HB@HHQHHtHBHPHQHP1H9@H HAHH]ÐUHAWAVAUATSPIF`u ubIFIFIHF0LfXI9sHFXIH^(MI)IIwVCD-ALHL9ukH^Lf MI)IICD-ALHL9TM}ILIFIM>MnL9,I RL9s J (H9@LHHqHHHljH`sv1M}ILIFIM>MnL9I L9s J (H9LHHyHHHƉH`1"H)1D3L30L0D3 L30D0 L00D3@L3PD0@L0PD3`L3pD0`L0pHHuHt.HHf.fD3 3D0 0H HuHL9HfD HHI9uHH)13L30L0D3 L30D0 L00D3@L3PD0@L0PD3`L3pD0`L0pHHuHt.HHf.fD3 3D0 0H HuHI9tHf. HHI9uLH[A\A]A^A_]LUHAWAVSPHLw@LHCXC`t2AuHILIV HSPHKHHHKXHSHSHK E>AuIKD>HCXHs@L{HHCPLHCXHHL1AuIHHCHLsPLLs0Ls(HC8C`t\ItDIHHHH)HHHHHH)N0I)ILs0Mt IcILs0H[A^A_]fUHAWAVAUATSH(IIHH}H}HH@L$H|(DluJH}H}LH5H}HHǾ Q8EH}EA$H}MAA LIDDLLMHuHH@H<t H}HH([A\A]A^A_]IH}IH}ILHHxHHH Hf.@UHAWAVAUATSH8HMIIDMHH)IHE1H)LOHUHH)H~IELHP`H9MLeIsC6EH]Le'I^HHIHEHH]LuH]uLLC4EtH]HLeIELHLP`HEt H}L9u)HuI)M~IELLP`L9u ID$E1LH8[A\A]A^A_]HEt H}H f.Ht 0.0 ? normalize(g2) : vec3(0.0); // Since the actual range of the gradient magnitude is unknown, // assume it is in the range [0, 0.25 * dataRange]. range = range != 0 ? range : 1.0; grad_mag = grad_mag / (0.25 * range); grad_mag = clamp(grad_mag, 0.0, 1.0); return vec4(g2.xyz, grad_mag); } vec4 computeGradient(int component) { return vec4(0.0); } vec4 computeLighting(vec4 color, int component) { vec4 finalColor = vec4(0.0); // Compute gradient function only once vec4 gradient = computeGradient(component); // TransferFunction2D is enabled so the gradient for // each component has already been cached vec4 gradient = g_gradients[component]; vec4 gradient = g_gradients; vec3 diffuse = vec3(0.0); vec3 specular = vec3(0.0); vec3 normal = gradient.xyz / in_cellSpacing; float normalLength = length(normal); if (normalLength > 0.0) { normal = normalize(normal); } else { normal = vec3(0.0, 0.0, 0.0); } float nDotL = dot(normal, g_ldir); float nDotH = dot(normal, g_h); if (nDotL < 0.0 && in_twoSidedLighting) { nDotL = -nDotL; } if (nDotH < 0.0 && in_twoSidedLighting) { nDotH = -nDotH; } if (nDotL > 0.0) { diffuse = nDotL * in_diffuse[component] * in_lightDiffuseColor[0] * color.rgb; } specular = pow(nDotH, in_shininess[component]) * in_specular[component] * in_lightSpecularColor[0]; // For the headlight, ignore the light's ambient color // for now as it is causing the old mapper tests to fail finalColor.xyz = in_ambient[component] * color.rgb + diffuse + specular; g_fragWorldPos = in_modelViewMatrix * in_volumeMatrix * in_textureDatasetMatrix * vec4(-g_dataPos, 1.0); if (g_fragWorldPos.w != 0.0) { g_fragWorldPos /= g_fragWorldPos.w; } vec3 vdir = normalize(g_fragWorldPos.xyz); vec3 normal = gradient.xyz; vec3 ambient = vec3(0.0); vec3 diffuse = vec3(0.0); vec3 specular = vec3(0.0); float normalLength = length(normal); if (normalLength > 0.0) { normal = normalize((in_textureToEye * vec4(normal, 0.0)).xyz); } else { normal = vec3(0.0, 0.0, 0.0); } for (int lightNum = 0; lightNum < in_numberOfLights; lightNum++) { vec3 ldir = in_lightDirection[lightNum].xyz; vec3 h = normalize(ldir + vdir); float nDotH = dot(normal, h); if (nDotH < 0.0 && in_twoSidedLighting) { nDotH = -nDotH; } float nDotL = dot(normal, ldir); if (nDotL < 0.0 && in_twoSidedLighting) { nDotL = -nDotL; } if (nDotL > 0.0) { diffuse += in_lightDiffuseColor[lightNum] * nDotL; } if (nDotH > 0.0) { specular = in_lightSpecularColor[lightNum] * pow(nDotH, in_shininess[component]); } ambient += in_lightAmbientColor[lightNum]; } finalColor.xyz = in_ambient[component] * ambient + in_diffuse[component] * diffuse * color.rgb + in_specular[component] * specular; g_fragWorldPos = in_modelViewMatrix * in_volumeMatrix * in_textureDatasetMatrix * vec4(g_dataPos, 1.0); if (g_fragWorldPos.w != 0.0) { g_fragWorldPos /= g_fragWorldPos.w; } vec3 viewDirection = normalize(-g_fragWorldPos.xyz); vec3 ambient = vec3(0,0,0); vec3 diffuse = vec3(0,0,0); vec3 specular = vec3(0,0,0); vec3 vertLightDirection; vec3 normal = normalize((in_textureToEye * vec4(gradient.xyz, 0.0)).xyz); vec3 lightDir; for (int lightNum = 0; lightNum < in_numberOfLights; lightNum++) { float attenuation = 1.0; // directional lightDir = in_lightDirection[lightNum]; if (in_lightPositional[lightNum] == 0) { vertLightDirection = lightDir; } else { vertLightDirection = (g_fragWorldPos.xyz - in_lightPosition[lightNum]); float distance = length(vertLightDirection); vertLightDirection = normalize(vertLightDirection); attenuation = 1.0 / (in_lightAttenuation[lightNum].x + in_lightAttenuation[lightNum].y * distance + in_lightAttenuation[lightNum].z * distance * distance); // per OpenGL standard cone angle is 90 or less for a spot light if (in_lightConeAngle[lightNum] <= 90.0) { float coneDot = dot(vertLightDirection, lightDir); // if inside the cone if (coneDot >= cos(radians(in_lightConeAngle[lightNum]))) { attenuation = attenuation * pow(coneDot, in_lightExponent[lightNum]); } else { attenuation = 0.0; } } } // diffuse and specular lighting float nDotL = dot(normal, vertLightDirection); if (nDotL < 0.0 && in_twoSidedLighting) { nDotL = -nDotL; } if (nDotL > 0.0) { float df = max(0.0, attenuation * nDotL); diffuse += (df * in_lightDiffuseColor[lightNum]); } vec3 h = normalize(vertLightDirection + viewDirection); float nDotH = dot(normal, h); if (nDotH < 0.0 && in_twoSidedLighting) { nDotH = -nDotH; } if (nDotH > 0.0) { float sf = attenuation * pow(nDotH, in_shininess[component]); specular += (sf * in_lightSpecularColor[lightNum]); } ambient += in_lightAmbientColor[lightNum]; } finalColor.xyz = in_ambient[component] * ambient + in_diffuse[component] * diffuse * color.rgb + in_specular[component] * specular; finalColor = vec4(color.rgb, 0.0); if (gradient.w >= 0.0) { color.a = color.a * computeGradientOpacity(gradient); } if (gradient.w >= 0.0) { for (int i = 0; i < in_noOfComponents; ++i) { color.a = color.a * computeGradientOpacity(gradient, i) * in_componentWeight[i]; } } finalColor.a = color.a; return finalColor; } vec3 computeRayDirection() { return normalize(ip_vertexPos.xyz - g_eyePosObj.xyz); } uniform vec3 in_projectionDirection; vec3 computeRayDirection() { return normalize((in_inverseVolumeMatrix * vec4(in_projectionDirection, 0.0)).xyz); } uniform sampler2D in_colorTransferFunc; vec4 computeColor(vec4 scalar, float opacity) { return computeLighting(vec4(texture2D(in_colorTransferFunc, vec2(scalar.w, 0.0)).xyz, opacity), 0); } vec4 computeColor(vec4 scalar, float opacity, int component) { if (component == { return computeLighting(vec4(texture2D( , vec2( scalar[],0.0)).xyz, opacity),); } uniform sampler2D in_colorTransferFunc; vec4 computeColor(vec4 scalar, float opacity) { return computeLighting(vec4(texture2D(in_colorTransferFunc, vec2(scalar.x, 0.0)).xyz, opacity), 0); } vec4 computeColor(vec4 scalar, float opacity) { return computeLighting(vec4(scalar.xyz, opacity), 0); } float computeOpacity(vec4 scalar, int component) { { return texture2D(,vec2(scalar[], 0)).r; } uniform sampler2D ; float computeOpacity(vec4 scalar) { return texture2D(, vec2(scalar.y, 0)).r; }, vec2(scalar.w, 0)).r; }vec4 computeColor(vec4 scalar, float opacity) { vec4 color = texture2D(, vec2(scalar.w, g_gradients.w)); return computeLighting(color, 0); } vec4 computeColor(vec4 scalar, float opacity, int component) { if (component == ) { vec4 color = texture2D(, vec2(scalar[], g_gradients[].w)); return computeLighting(color, ); } , vec2(scalar.x, g_gradients.w)); return computeLighting(color, 0); } vec4 computeColor(vec4 scalar, float opacity) { return computeLighting(vec4(scalar.xyz, opacity), 0); } uniform sampler2D float computeOpacity(vec4 scalar, int component) { ) { return texture2D(].w)).a; } uniform sampler2D ; float computeOpacity(vec4 scalar) { return texture2D(, vec2(scalar.y, g_gradients.w)).a; } , vec2(scalar.a, g_gradients.w)).a; } bool l_firstValue; vec4 l_maxValue; bool l_firstValue; vec4 l_minValue; uvec4 l_numSamples; vec4 l_avgValue; vec4 l_sumValue; // We get data between 0.0 - 1.0 range l_firstValue = true; l_maxValue = vec4(0.0); //We get data between 0.0 - 1.0 range l_firstValue = true; l_minValue = vec4(1.0); //We get data between 0.0 - 1.0 range l_avgValue = vec4(0.0); // Keep track of number of samples l_numSamples = uvec4(0); //We get data between 0.0 - 1.0 range l_sumValue = vec4(0.0);vec4 g_gradients;vec4 g_gradients[];g_gradients = computeGradient(0); for (int comp = 0; comp < in_noOfComponents; comp++) { g_gradients[comp] = computeGradient(comp); } if (!g_skip) { vec4 scalar = texture3D(in_volume, g_dataPos); scalar.r = scalar.r*in_volume_scale.r + in_volume_bias.r; scalar = vec4(scalar.r,scalar.r,scalar.r,scalar.r); scalar = scalar*in_volume_scale + in_volume_bias; if (l_maxValue.w < scalar.w || l_firstValue) { l_maxValue = scalar; } if (l_firstValue) { l_firstValue = false; } for (int i = 0; i < in_noOfComponents; ++i) { if (l_maxValue[i] < scalar[i] || l_firstValue) { l_maxValue[i] = scalar[i]; } } if (l_firstValue) { l_firstValue = false; } if (l_maxValue.w < scalar.x || l_firstValue) { l_maxValue.w = scalar.x; } if (l_firstValue) { l_firstValue = false; } if (l_minValue.w > scalar.w || l_firstValue) { l_minValue = scalar; } if (l_firstValue) { l_firstValue = false; } for (int i = 0; i < in_noOfComponents; ++i) { if (l_minValue[i] < scalar[i] || l_firstValue) { l_minValue[i] = scalar[i]; } } if (l_firstValue) { l_firstValue = false; } if (l_minValue.w > scalar.x || l_firstValue) { l_minValue.w = scalar.x; } if (l_firstValue) { l_firstValue = false; } for (int i = 0; i < in_noOfComponents; ++i) { // Get the intensity in volume scalar range float intensity = in_scalarsRange[i][0] + (in_scalarsRange[i][1] - in_scalarsRange[i][0]) * scalar[i]; if (in_averageIPRange.x <= intensity && intensity <= in_averageIPRange.y) { l_avgValue[i] += computeOpacity(scalar, i) * scalar[i]; ++l_numSamples[i]; } } // Get the intensity in volume scalar range float intensity = in_scalarsRange[0][0] + (in_scalarsRange[0][1] - in_scalarsRange[0][0]) * scalar.x; if (in_averageIPRange.x <= intensity && intensity <= in_averageIPRange.y) { l_avgValue.x += computeOpacity(scalar) * scalar.x; ++l_numSamples.x; } for (int i = 0; i < in_noOfComponents; ++i) { float opacity = computeOpacity(scalar, i); l_sumValue[i] = l_sumValue[i] + opacity * scalar[i]; } float opacity = computeOpacity(scalar); l_sumValue.x = l_sumValue.x + opacity * scalar.x; vec4 color[4]; vec4 tmp = vec4(0.0); float totalAlpha = 0.0; for (int i = 0; i < in_noOfComponents; ++i) { // Data fetching from the red channel of volume texture float opacity = computeOpacity(scalar, i); if (opacity > 0.0) { g_srcColor.a = opacity; } } // Data fetching from the red channel of volume texture color[i][3] = computeOpacity(scalar, i); color[i] = computeColor(scalar, color[i][3], i); totalAlpha += color[i][3] * in_componentWeight[i]; } if (totalAlpha > 0.0) { for (int i = 0; i < in_noOfComponents; ++i) { // Only let visible components contribute to the final color if (in_componentWeight[i] <= 0) continue; tmp.x += color[i].x * color[i].w * in_componentWeight[i]; tmp.y += color[i].y * color[i].w * in_componentWeight[i]; tmp.z += color[i].z * color[i].w * in_componentWeight[i]; tmp.w += ((color[i].w * color[i].w)/totalAlpha); } } g_fragColor = (1.0f - g_fragColor.a) * tmp + g_fragColor; g_srcColor = vec4(0.0); g_srcColor.a = computeOpacity(scalar); g_srcColor = vec4(0.0); g_srcColor.a = computeOpacity(scalar); if (g_srcColor.a > 0.0) { g_srcColor = computeColor(scalar, g_srcColor.a); // Opacity calculation using compositing: // Here we use front to back compositing scheme whereby // the current sample value is multiplied to the // currently accumulated alpha and then this product // is subtracted from the sample value to get the // alpha from the previous steps. Next, this alpha is // multiplied with the current sample colour // and accumulated to the composited colour. The alpha // value from the previous steps is then accumulated // to the composited colour alpha. g_srcColor.rgb *= g_srcColor.a; g_fragColor = (1.0f - g_fragColor.a) * g_srcColor + g_fragColor; } } // Special coloring mode which renders the Prop Id in fragments that // have accumulated certain level of opacity. Used during the selection // pass vtkHardwareSelection::ACTOR_PASS. if (g_fragColor.a > 3.0/ 255.0) { gl_FragData[0] = vec4(in_propId, 1.0); } else { gl_FragData[0] = vec4(0.0); } return; // Special coloring mode which renders the voxel index in fragments that // have accumulated certain level of opacity. Used during the selection // pass vtkHardwareSelection::ID_LOW24. if (g_fragColor.a > 3.0/ 255.0) { uvec3 volumeDim = uvec3(in_textureExtentsMax - in_textureExtentsMin); uvec3 voxelCoords = uvec3(volumeDim * g_dataPos); // vtkHardwareSelector assumes index 0 to be empty space, so add uint(1). uint idx = volumeDim.x * volumeDim.y * voxelCoords.z + volumeDim.x * voxelCoords.y + voxelCoords.x + uint(1); gl_FragData[0] = vec4(float(idx % uint(256)) / 255.0, float((idx / uint(256)) % uint(256)) / 255.0, float((idx / uint(65536)) % uint(256)) / 255.0, 1.0); } else { gl_FragData[0] = vec4(0.0); } return; // Special coloring mode which renders the voxel index in fragments that // have accumulated certain level of opacity. Used during the selection // pass vtkHardwareSelection::ID_MID24. if (g_fragColor.a > 3.0/ 255.0) { uvec3 volumeDim = uvec3(in_textureExtentsMax - in_textureExtentsMin); uvec3 voxelCoords = uvec3(volumeDim * g_dataPos); // vtkHardwareSelector assumes index 0 to be empty space, so add uint(1). uint idx = volumeDim.x * volumeDim.y * voxelCoords.z + volumeDim.x * voxelCoords.y + voxelCoords.x + uint(1); idx = ((idx & 0xff000000) >> 24); gl_FragData[0] = vec4(float(idx % uint(256)) / 255.0, float((idx / uint(256)) % uint(256)) / 255.0, float(idx / uint(65536)) / 255.0, 1.0); } else { gl_FragData[0] = vec4(0.0); } return; g_srcColor = vec4(0); for (int i = 0; i < in_noOfComponents; ++i) { vec4 tmp = computeColor(l_maxValue, computeOpacity(l_maxValue, i), i); g_srcColor[0] += tmp[0] * tmp[3] * in_componentWeight[i]; g_srcColor[1] += tmp[1] * tmp[3] * in_componentWeight[i]; g_srcColor[2] += tmp[2] * tmp[3] * in_componentWeight[i]; g_srcColor[3] += tmp[3] * in_componentWeight[i]; } g_fragColor = g_srcColor; g_srcColor = computeColor(l_maxValue, computeOpacity(l_maxValue)); g_fragColor.rgb = g_srcColor.rgb * g_srcColor.a; g_fragColor.a = g_srcColor.a; g_srcColor = vec4(0); for (int i = 0; i < in_noOfComponents; ++i) { vec4 tmp = computeColor(l_minValue, computeOpacity(l_minValue, i), i); g_srcColor[0] += tmp[0] * tmp[3] * in_componentWeight[i]; g_srcColor[1] += tmp[1] * tmp[3] * in_componentWeight[i]; g_srcColor[2] += tmp[2] * tmp[3] * in_componentWeight[i]; g_srcColor[2] += tmp[3] * tmp[3] * in_componentWeight[i]; } g_fragColor = g_srcColor; g_srcColor = computeColor(l_minValue, computeOpacity(l_minValue)); g_fragColor.rgb = g_srcColor.rgb * g_srcColor.a; g_fragColor.a = g_srcColor.a; for (int i = 0; i < in_noOfComponents; ++i) { if (l_numSamples[i] == uint(0)) { continue; } l_avgValue[i] = l_avgValue[i] * in_componentWeight[i] / l_numSamples[i]; if (i > 0) { l_avgValue[0] += l_avgValue[i]; } } l_avgValue[0] = clamp(l_avgValue[0], 0.0, 1.0); g_fragColor = vec4(vec3(l_avgValue[0]), 1.0); if (l_numSamples.x == uint(0)) { discard; } else { l_avgValue.x /= l_numSamples.x; l_avgValue.x = clamp(l_avgValue.x, 0.0, 1.0); g_fragColor = vec4(vec3(l_avgValue.x), 1.0); } l_sumValue.x *= in_componentWeight.x; for (int i = 1; i < in_noOfComponents; ++i) { l_sumValue.x += l_sumValue[i] * in_componentWeight[i]; } l_sumValue.x = clamp(l_sumValue.x, 0.0, 1.0); g_fragColor = vec4(vec3(l_sumValue.x), 1.0); l_sumValue.x = clamp(l_sumValue.x, 0.0, 1.0); g_fragColor = vec4(vec3(l_sumValue.x), 1.0); const float g_opacityThreshold = 1.0 - 1.0 / 255.0; uniform vec3 in_propId; // Flag to indicate if the raymarch loop should terminate bool stop = false; g_terminatePointMax = 0.0; #ifdef GL_ES vec4 l_depthValue = vec4(1.0,1.0,1.0,1.0); #else vec4 l_depthValue = texture2D(in_depthSampler, fragTexCoord); #endif // Depth test if(gl_FragCoord.z >= l_depthValue.x) { discard; } // color buffer or max scalar buffer have a reduced size. fragTexCoord = (gl_FragCoord.xy - in_windowLowerLeftCorner) * in_inverseOriginalWindowSize; // Compute max number of iterations it will take before we hit // the termination point // Abscissa of the point on the depth buffer along the ray. // point in texture coordinates vec4 terminatePoint = WindowToNDC(gl_FragCoord.x, gl_FragCoord.y, l_depthValue.x); // From normalized device coordinates to eye coordinates. // in_projectionMatrix is inversed because of way VT // From eye coordinates to texture coordinates terminatePoint = ip_inverseTextureDataAdjusted * in_inverseVolumeMatrix * in_inverseModelViewMatrix * in_inverseProjectionMatrix * terminatePoint; terminatePoint /= terminatePoint.w; g_terminatePointMax = length(terminatePoint.xyz - g_dataPos.xyz) / length(g_dirStep); g_currentT = 0.0; if(any(greaterThan(g_dataPos, in_texMax)) || any(lessThan(g_dataPos, in_texMin))) { break; } // Early ray termination // if the currently composited colour alpha is already fully saturated // we terminated the loop or if we have hit an obstacle in the // direction of they ray (using depth buffer) we terminate as well. if((g_fragColor.a > g_opacityThreshold) || g_currentT >= g_terminatePointMax) { break; } ++g_currentT; uniform float in_croppingPlanes[6]; uniform int in_croppingFlags [32]; float croppingPlanesTexture[6]; // X: axis = 0, Y: axis = 1, Z: axis = 2 // cp Cropping plane bounds (minX, maxX, minY, maxY, minZ, maxZ) int computeRegionCoord(float cp[6], vec3 pos, int axis) { int cpmin = axis * 2; int cpmax = cpmin + 1; if (pos[axis] < cp[cpmin]) { return 1; } else if (pos[axis] >= cp[cpmin] && pos[axis] < cp[cpmax]) { return 2; } else if (pos[axis] >= cp[cpmax]) { return 3; } return 0; } int computeRegion(float cp[6], vec3 pos) { return (computeRegionCoord(cp, pos, 0) + (computeRegionCoord(cp, pos, 1) - 1) * 3 + (computeRegionCoord(cp, pos, 2) - 1) * 9); } // Convert cropping region to texture space mat4 datasetToTextureMat = in_inverseTextureDatasetMatrix; vec4 tempCrop = vec4(in_croppingPlanes[0], 0.0, 0.0, 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[0] /= tempCrop[3]; } croppingPlanesTexture[0] = tempCrop[0]; tempCrop = vec4(in_croppingPlanes[1], 0.0, 0.0, 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[0] /= tempCrop[3]; } croppingPlanesTexture[1] = tempCrop[0]; tempCrop = vec4(0.0, in_croppingPlanes[2], 0.0, 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[1] /= tempCrop[3]; } croppingPlanesTexture[2] = tempCrop[1]; tempCrop = vec4(0.0, in_croppingPlanes[3], 0.0, 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[1] /= tempCrop[3]; } croppingPlanesTexture[3] = tempCrop[1]; tempCrop = vec4(0.0, 0.0, in_croppingPlanes[4], 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[2] /= tempCrop[3]; } croppingPlanesTexture[4] = tempCrop[2]; tempCrop = vec4(0.0, 0.0, in_croppingPlanes[5], 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[2] /= tempCrop[3]; } croppingPlanesTexture[5] = tempCrop[2]; // Determine region int regionNo = computeRegion(croppingPlanesTexture, g_dataPos); // Do & operation with cropping flags // Pass the flag that its Ok to sample or not to sample if (in_croppingFlags[regionNo] == 0) { // Skip this voxel g_skip = true; } int clippingPlanesSize; vec3 objRayDir; mat4 textureToObjMat; vec4 tempClip = in_volumeMatrix * vec4(rayDir, 0.0); if (tempClip.w != 0.0) { tempClip = tempClip/tempClip.w; tempClip.w = 1.0; } objRayDir = tempClip.xyz; objRayDir = normalize(in_projectionDirection); clippingPlanesSize = int(in_clippingPlanes[0]); vec4 objDataPos = vec4(0.0); textureToObjMat = in_volumeMatrix * in_textureDatasetMatrix; vec4 terminatePointObj = textureToObjMat * terminatePoint; if (terminatePointObj.w != 0.0) { terminatePointObj = terminatePointObj/ terminatePointObj.w ; terminatePointObj.w = 1.0; } for (int i = 0; i < clippingPlanesSize; i = i + 6) { if (in_useJittering) { objDataPos = textureToObjMat * vec4(g_dataPos - g_rayJitter, 1.0); } else { objDataPos = textureToObjMat * vec4(g_dataPos - g_dirStep, 1.0); } if (objDataPos.w != 0.0) { objDataPos = objDataPos/objDataPos.w; objDataPos.w = 1.0; } vec3 planeOrigin = vec3(in_clippingPlanes[i + 1], in_clippingPlanes[i + 2], in_clippingPlanes[i + 3]); vec3 planeNormal = vec3(in_clippingPlanes[i + 4], in_clippingPlanes[i + 5], in_clippingPlanes[i + 6]); vec3 normalizedPlaneNormal = normalize(planeNormal); float rayDotNormal = dot(objRayDir, normalizedPlaneNormal); bool frontFace = rayDotNormal > 0; float distance = dot(normalizedPlaneNormal, planeOrigin - objDataPos.xyz); if (frontFace && // Observing from the clipped side (plane's front face) distance > 0.0) // Ray-entry lies on the clipped side. { // Scale the point-plane distance to the ray direction and update the // entry point. float rayScaledDist = distance / rayDotNormal; vec4 newObjDataPos = vec4(objDataPos.xyz + rayScaledDist * objRayDir, 1.0); newObjDataPos = in_inverseTextureDatasetMatrix * in_inverseVolumeMatrix * vec4(newObjDataPos.xyz, 1.0); if (newObjDataPos.w != 0.0) { newObjDataPos /= newObjDataPos.w; } if (in_useJittering) { g_dataPos = newObjDataPos.xyz + g_rayJitter; } else { g_dataPos = newObjDataPos.xyz + g_dirStep; } bool stop = any(greaterThan(g_dataPos, in_texMax)) || any(lessThan(g_dataPos, in_texMin)); if (stop) { // The ray exits the bounding box before ever intersecting the plane (only // the clipped space is hit). discard; } bool behindGeometry = dot(terminatePointObj.xyz - planeOrigin.xyz, normalizedPlaneNormal) < 0.0; if (behindGeometry) { // Geometry appears in front of the plane. discard; } // Update the number of ray marching steps to account for the clipped entry point ( // this is necessary in case the ray hits geometry after marching behind the plane, // given that the number of steps was assumed to be from the not-clipped entry). g_terminatePointMax = length(terminatePoint.xyz - g_dataPos.xyz) / length(g_dirStep); } } for (int i = 0; i < clippingPlanesSize && !g_skip; i = i + 6) { vec4 objDataPos = textureToObjMat * vec4(g_dataPos, 1.0); if (objDataPos.w != 0.0) { objDataPos /= objDataPos.w; } vec3 planeOrigin = vec3(in_clippingPlanes[i + 1], in_clippingPlanes[i + 2], in_clippingPlanes[i + 3]); vec3 planeNormal = vec3(in_clippingPlanes[i + 4], in_clippingPlanes[i + 5], in_clippingPlanes[i + 6]); if (dot(vec3(objDataPos.xyz - planeOrigin), planeNormal) < 0 && dot(objRayDir, planeNormal) < 0) { g_skip = true; g_exit = true; } }uniform sampler3D in_mask; vec4 maskValue = texture3D(in_mask, g_dataPos); if(maskValue.r <= 0.0) { g_skip = true; } uniform float in_maskBlendFactor; uniform sampler2D in_mask1; uniform sampler2D in_mask2; vec4 scalar = texture3D(in_volume, g_dataPos); scalar.r = scalar.r*in_volume_scale.r + in_volume_bias.r; scalar = vec4(scalar.r,scalar.r,scalar.r,scalar.r); scalar = scalar*in_volume_scale + in_volume_bias; if (in_maskBlendFactor == 0.0) { g_srcColor = computeColor(scalar, computeOpacity(scalar)); } else { float opacity = computeOpacity(scalar); // Get the mask value at this same location vec4 maskValue = texture3D(in_mask, g_dataPos); if(maskValue.r == 0.0) { g_srcColor = computeColor(scalar, opacity); } else { if (maskValue.r == 1.0/255.0) { g_srcColor = texture2D(in_mask1, vec2(scalar.w,0.0)); } else { // maskValue.r == 2.0/255.0 g_srcColor = texture2D(in_mask2, vec2(scalar.w,0.0)); } g_srcColor.a = 1.0; if(in_maskBlendFactor < 1.0) { g_srcColor = (1.0 - in_maskBlendFactor) * computeColor(scalar, opacity) + in_maskBlendFactor * g_srcColor; } } g_srcColor.a = opacity; } vec3 l_opaqueFragPos; bool l_updateDepth; l_opaqueFragPos = vec3(-1.0); if(in_clampDepthToBackface) { l_opaqueFragPos = g_dataPos; } l_updateDepth = true; if(!g_skip && g_srcColor.a > 0.0 && l_updateDepth) { l_opaqueFragPos = g_dataPos; l_updateDepth = false; } if (l_opaqueFragPos == vec3(-1.0)) { gl_FragData[1] = vec4(1.0); } else { vec4 depthValue = in_projectionMatrix * in_modelViewMatrix * in_volumeMatrix * in_textureDatasetMatrix * vec4(l_opaqueFragPos, 1.0); depthValue /= depthValue.w; gl_FragData[1] = vec4(vec3(0.5 * (gl_DepthRange.far - gl_DepthRange.near) * depthValue.z + 0.5 * (gl_DepthRange.far + gl_DepthRange.near)), 1.0); } vec3 l_isoPos = g_dataPos; if(!g_skip && g_srcColor.a > 0.0) { l_isoPos = g_dataPos; g_exit = true; g_skip = true; } vec4 depthValue = in_projectionMatrix * in_modelViewMatrix * in_volumeMatrix * in_textureDatasetMatrix * vec4(l_isoPos, 1.0); gl_FragData[0] = vec4(l_isoPos, 1.0); gl_FragData[1] = vec4(vec3((depthValue.z/depthValue.w) * 0.5 + 0.5), 1.0); initializeRayCast(); castRay(-1.0, -1.0); finalizeRayCast(); ; gl_FragData[] = texture2D(, texCoord); return; in_opacityTransferFuncin_colorTransferFuncin_gradientTransferFuncin_transfer2Din_twoSidedLightingin_lightAmbientColorin_lightDiffuseColorin_lightSpecularColorin_lightDirectionin_numberOfLightsin_lightAttenuationin_lightPositionalin_lightPositionin_lightExponentin_lightConeAnglein_vertexPosin_croppingPlanesin_croppingFlagsin_clippingPlanesin_propIdGL_ARB_texture_floatRequired extension GL_ARB_texture_float is not supportedrenderedTex_Generic Warning: In /Volumes/Data/workspace/med-macos-free/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.cxx, line Failed to attach ImageSampleFBO! //VTK::FSQ::Decl//VTK::FSQ::ImplFailed to initialize ImageSampleProgram!ReductionFactor: CurrentPass: //VTK::ComputeClipPos::Impl//VTK::ComputeTextureCoords::Impl//VTK::Base::Dec//VTK::CallWorker::Impl//VTK::Base::Init//VTK::Base::Impl//VTK::Base::Exit//VTK::Termination::Dec//VTK::Terminate::Init//VTK::Terminate::Impl//VTK::Terminate::Exit//VTK::Shading::Dec//VTK::Shading::Init//VTK::Shading::Impl//VTK::Shading::Exit//VTK::ComputeGradient::Dec//VTK::ComputeOpacity::Dec//VTK::ComputeGradientOpacity1D::Dec//VTK::ComputeColor::Dec//VTK::GradientCache::Dec//VTK::PreComputeGradients::Impl//VTK::ComputeLighting::Dec//VTK::ComputeRayDirection::Dec//VTK::Cropping::Dec//VTK::Cropping::Init//VTK::Cropping::Impl//VTK::Cropping::Exit//VTK::Clipping::Dec//VTK::Clipping::Init//VTK::Clipping::Impl//VTK::Clipping::Exit//VTK::BinaryMask::Dec//VTK::BinaryMask::Impl//VTK::CompositeMask::Dec//VTK::CompositeMask::Impl//VTK::Picking::Exit//VTK::Picking::Dec//VTK::RenderToImage::Dec//VTK::RenderToImage::Init//VTK::RenderToImage::Impl//VTK::RenderToImage::ExitERROR: In /Volumes/Data/workspace/med-macos-free/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.cxx, line (): Shader failed to compileErrorEventThree dependent components are not supportedin_depthPassSamplerin_cellSpacingin_cellStepin_cellScalein_depthSamplerin_volumein_noiseSamplerin_maskin_mask1in_mask2in_maskBlendFactorin_ambientin_diffusein_specularin_shininessin_projectionMatrixin_inverseProjectionMatrixin_modelViewMatrixin_inverseModelViewMatrixin_volumeMatrixin_inverseVolumeMatrixin_textureDatasetMatrixin_inverseTextureDatasetMatrixin_textureToEyein_projectionDirectionin_noOfComponentsin_independentComponentsin_volume_scalein_volume_biasin_sampleDistancein_scalarsRangein_cameraPosin_volumeExtentsMinin_volumeExtentsMaxin_textureExtentsMinin_textureExtentsMaxin_windowLowerLeftCornerin_inverseOriginalWindowSizein_inverseWindowSizein_useJitteringin_cellFlagin_texMinin_texMaxin_cellToPointin_clampDepthToBackfacein_averageIPRangein_scalein_biasin_componentWeightvtkOpenGLRenderPass::PreReplaceShaderValues failed for vtkOpenGLRenderPass::PostReplaceShaderValues failed for RenderPass::SetShaderParameters failed for renderpass: vtkObjectvtkOpenGLGPUVolumeRayCastMapperallocator::allocate(size_t n) 'n' exceeds maximum supported sizeERROR: In /Volumes/Data/workspace/med-macos-free/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLVolumeRGBTable.h, line vtkTextureObject not initialized!Failed to query max texture size! using default 1024.Warning: In /Volumes/Data/workspace/med-macos-free/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLVolumeRGBTable.h, line This OpenGL implementation does not support the required texture size of , falling back to maximum allowed, .This may cause an incorrect color table mapping.WarningEventvtkOpenGLRenderWindowERROR: In /Volumes/Data/workspace/med-macos-free/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLVolumeOpacityTable.h, line Warning: In /Volumes/Data/workspace/med-macos-free/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLVolumeOpacityTable.h, line . Falling back to maximum allowed, ERROR: In /Volumes/Data/workspace/med-macos-free/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLTransferFunction2D.h, line Warning: In /Volumes/Data/workspace/med-macos-free/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLTransferFunction2D.h, line ERROR: In /Volumes/Data/workspace/med-macos-free/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLVolumeGradientOpacityTable.h, line Warning: In /Volumes/Data/workspace/med-macos-free/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLVolumeGradientOpacityTable.h, line vtkOpenGLCameravtkGPUVolumeRayCastMappervtkVolumeMappervtkAbstractVolumeMappervtkAbstractMapper3DvtkAbstractMappervtkAlgorithmp@@pp@@h@h@pp31vtkOpenGLGPUVolumeRayCastMapper27vtkOpenGLTransferFunction2D35vtkOpenGLVolumeGradientOpacityTable27vtkOpenGLVolumeOpacityTable23vtkOpenGLVolumeRGBTableNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEENSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEENSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE36vtkGenericOpenGLResourceFreeCallbackx!A!A!A !A4@I!I!I!0KXADFXA ^0 P Y XATva0yaAZXA0!Q XA)XA85XAhFXAZ  Z!0\Q!]XA`!!Aa| XA`kI!kI!lI!PlX`o o pfpI!pI!0q Pq pqr!qr!prr!r s 0sF!s!A `us!u vvr!wo!w^!A yzI!zI! {I!p{h{I!0|I!|F!|XA `~XA,  aA!At  XA X AD XAh @X A pV СAX XXgX`XP`Xa+XA  X!P [apXpXX XpX  A @!A X p+ XA  !PM!aPJXA a@aX!`!P!!X> c!0M / XA ,XAT+ BXAh`dX ! !` XP! S!maA&A0*!Ap  `XAXA4XAHC XA\%:XA-XA( 2fXAx6Y XACDXAIXAMXAH RXAUKXA0ZdX\ XATe XAqU sX t XAL X&A0X XA T! Y A!Ap  Л;0 @P ` p  М   0@` p   Н    0@p 0О   @.  Gp GР3  0 @0p  0  0 @`0 Т  0P` p 'LP`pLФLP`p''   0L Ц     0>p  Ч0 @` pШ   0P `p0Щ  0 @ P,a  a &A 3@r!Az!A@ PX!A`!A(X!A8p`!AHаX!AX0`!Aha ~aa04p<{0%`A[hXAxaaa0aa`XApG!A*XA0PXApXA$ AT A A A XAT&A &A &A,PnaWa @ A<!!A5_-X7aPRXASXAB!`Q! )!A!` [XA`,X!0 A(3!9X!T!zRx $IAC C$D0IAC C$lXIAC C$ ^AC B$X AC $vAC F$ AC C$4. AC $\.AC C$0QAC C$?IAC C$?IAC C$?IAC C,$@AC J$TB AC $|BAC B$`CfAC B$CIAC C$CIAC C$C AC $DC AC $lCrAC C$@DrAC C$DrAC C$D AC $ D AC $4DFAC C$\FsAC C$@G AC $8GAC B$GrAC C$GoAC C$$JAC B$LKIAC C$t@KIAC C$hKIAC C$KhAC B$KIAC C$LIAC C$<(LFAC C$dSAC F$XT AC ,@eAC J,@oAC J,@pVAC G,DppAAC J,tqAC M,0sAC M,ugAC M,@wAC J,4x`AC M$d0~AC F$8 AC , AC J$AC G, (AC K$< [AC F,d AC J, AC M, AC M, AC J,$ ppAC J,T AC P, PAC N$ Ъ AC $ AC C$ 0MAC C$, XAC L$T 0AC F$| AC F$ @XAC C$ xAC G$ @AC C$ AC C,D @AC P,t >AC G$ cAC C, HMAC G, +AC G,, dAC J$\ XAC C$ AC C, AC J$ XAC C$SAC C$,AC $T AC $|AC B,AC K$pAC $hAC $$`AC $LXAC $t` AC ,x dAC M$7UAC ,9AC J,$GAC M,TI0AC P$_TAC C$_AC $_ AC $_YAC B$$_AC $L` AC $t_AC $_ AC $_AC $_AC $_;AC $<_ AC $d_AC $_ AC $_ AC $x_ AC $`_AC $,X_AC $TP_ AC $|8_AC $0_AC $_ AC $_ AC $^AC $D^AC $l^AC $^ AC $^AC $^ AC $ x^ AC $4`^ AC $\H^AC $0^ AC $^AC $^ AC $]AC $$] AC $L]@AC $t] AC $]AC $]0AC $]AC $] AC $<] AC $d]AC $x]AC $p]AC $].AC $] AC $,]GAC $T^ AC $|]GAC $^3AC $(^AC $^ AC $] AC $D]0AC $l]AC $] AC $] AC $]AC $ ]AC $4]0AC $\]AC $] AC $h] AC $P]AC $H]AC $$@]0AC $LH]AC $t0] AC $] AC $]AC $\AC $\0AC $<\AC $d\ AC $\ AC $\AC $\AC $\'AC $,\AC $T\LAC $|\AC $\AC $\AC $p\LAC $\AC $D\AC $lh\AC $P\LAC $x\AC $`\AC $ H\AC $40\'AC $\8\AC $ \'AC $(\AC $\ AC $\ AC $$ [LAC $L \AC $t \AC $ [AC $ [ AC $ [ AC $![ AC $AC $!x[ AC $"`[AC $,"H[AC $T"0[AC $|"([ AC $"[AC $"[AC $"[AC $#Z AC $D#ZAC $l#Z AC $#ZAC $#ZAC $#ZAC $ $ZAC $4$Z AC $\$ZAC $$Z AC $$hZAC $$`Z AC $$HZAC $$%0ZAC $L%ZAC $t%Z0AC $%ZAC $%Y AC $%Y AC $&YAC $<&YAC $d&Y AC $&Y AC $&Y,AC $&YAC F$'Z AC $,'ZAC F$T'@\ AC $|'X\ AC $'@\3AC B$'X] AC $'_AC F$(_~AC F$D(@`AC F$l(`4AC B$(`<AC B$(`{AC A$(0b%AC B$ )8bAAC $4)`b[AC $\)dAC F$)`dAC F$)dAC F$)@eAC F$)eAC F$$*0hAC $L*xh*AC B$t*jAC $*lAC $*nAC $*HnAC F$+WAC F$<+ȈAC $d+AC G$+5AC $+ AC B$+_AC ,,-AC J$4,7AC F$\,BFC C$,QFC C$,AC $, AC $,ț)AC C$$-МAAC C$L-AC A,t-`AC G,-,AC J$-AC C$-ؤAC $$.@3FC C,L.X9AC M$|.XTAC CzPLRx ,$ x AC C,TpAC C,ЧϨAC C,@AC C4KAC J4FۨAC J4T@Y 3AC P,yAC F48ZAC J4Q +AC P4,(AC P4d57AC P4AC P4+AC P, !#AC G4<| AC M,tPWAC G, ^[AC G4@ oAC M4 !SAC P,D'AcAC C4t'CAC P4:˭AC G4;AC P4C߭AC G4TS+AC M4jAC K,l{AC G4u+ _AC P4,hJAC M4d`/ AC P4X,AC M4BǮAC M, m߮AC F,<&߮AC ,l*AC C4AC J4AC M4 ȺoAC M4DC KAC M4|:WAC M4AC M4xfAC M4$ Y ϮAC P4\ AC M4 AC M4 AC M4 `ӯAC M4< KAC M4t p AC P4 X [AC P4  AC M, &AC 4L 4AC M, 6AAC C, PI&_AC , Ir?AC C, Iz#AC C,D PJXAC C,t J`AC C, JXǯAC C, J`AC C, KXAC C,4 @K`gAC C4d OhGAC M4 T'AC M, VGAC C4PVAC M4<XXAC M4t`ZAC M4H\ۮAC K4`AC K4cAC K4TgAC K4hk AC M,@t&{AC ,@t&[AC ,$@t&;AC 4T0uAC G,|KAC C4؅R/AC M4S;AC M4,[AC J4dAC K"--0-U-m3-0--0---f3-Q-0-0-0--ZT-T-U-M0-)--3-]-N--3-H-0--0-0-0-0-M0-A0--0-0-fV-@3---8-8-}-n7-a-S-3-*----=-r--%- -3-3-b7-PZ-H=Z-5*Z-"Z-Z-D-E=E=-J-K-sK-bF-SK-BI-!<=== -M-I-M-J-F-M-hO-VP-?Q-/Q-Q--\-\--5-5-5-5-m-m-m-sm-gm-[m-Om-Cm-7w-+x-[-Z-p-q-r-------------{-j0-P0->-6-*=#-0-==------u0-X-,0-0-0-)0-!0--h-6-X/-50-0--0-0-B----------|-t-l-d-Z-Q0-@0-5---=-0-----w-o-g0-J-0-0-PB/+-{--y-H---(-(-(-(-(-(-(-~(-v=o-Q=*-=--w-n-d-[-S-H-C-9-0-(---------v-v-v-w-vv-ngv-[-Sv-KDx-7v-/(-----v-v-v-w-v-v-~-vv-ngx-Zv-RK-1-'---v-v-v-x-v-x-v-v-w-zv-rkv-_-Wv-OHx-;v-3,--b---w-n-d-[-S-H-C-9-0-(---------v-v-v-w-vv-ngv-[-Sv-KDx-7v-/(-----v-v-v-w-v-v-~-vv-ngx-Zv-RK-1-'---v-v-v-x-v-x-v-v-w-zv-rkv-_-Wv-OHx-;v-3,--b---w-n-d-[-S-H-C-9-0-(---------v-v-v-w-vv-ngv-[-Sv-KDx-7v-/(-----v-v-v-w-v-v-~-vv-ngx-Zv-RK-1-'---v-v-v-x-v-x-v-v-w-zv-rkv-_-Wv-OHx-;v-3,--b---w-n-d-[-S-H-C-9-0-(---------v-v-v-w-vv-ngv-[-Sv-KDx-7v-/(-----v-v-v-w-v-v-~-vv-ngx-Zv-RK-1-'---v-v-v-x-v-x-v-v-w-zv-rkv-_-Wv-OHx-;v-3,--b-0--x0-Z0-R-9"-2-0-U-3-N5-*9-!-3-3-0-a-Y0-;0-'"- -0-U-3-15-ۿ-п3-3-E0-(- 0-0-"--˾0-U-v3-5--3-Q3-&=-Ѽ-ɼ9-:-=#=M-5-0-j-b0-D0-0"-)- 0-U-3-:5--3-3-W0-E-= -1=*-"0- =ع=0-- -=-~0-[===(0-- -=-0-ܸ==-} -q=j-b0-I==- -ݷ=ַ-η0-==r8-m7--}-0--0-|=`-R0-<=(0---=-0-ڲ==0---t=m-e0-N=0=--=-0-ʱ==--y0-m-e/-=$---/-ݰ̰-İ-0--/-}d-\-Q-E/- --0--/----/-]F-6-.-&n--0--ͮ--n---M#7-Z- -2-y[-l/-[Z-2-٪[-̪/-Z-Ũ@L@hXؤhXȝ-H[-S0-@5-8c--3--Z-ߚԚZ-̚Z-k-- ---ۙ-љ-ș-----v-xv-m-bv-]Rv-MCw-8v-3)v--v-x-v--ژ-;--t@-i-\=-Q-D-E=i-ȗi-[-[-Y[-C/-1[-[- [-!-ՖV-ǖO-}oWO-R@8T-*Q-[ٔ-ʔ-P-W-u,-O*--U- U-P-P-T-{D*T-ϒT-U-?U-2U-U-OU->T-O-V-vlV-b P-P-ݏU-ЏiW-dPW-K7W-2)-*-Ǝ,-u-u-N*-0W-+W-)-Ѝ*-,-*-ZW-UAW-<)-*-ߌW-ڌƌW-)-*-1R-U-U-U-ԋ~-{|-Q{-'z-#-O-ފŊP-^-f-yP-td^-Gf-ӉP-̉‰^-f-P-^-f-v(-^-OP-H>^-5f-%P-^-f-J҇+-c?U-ÆU-cDž-'i-l-Ʉi-l-\-U-E=-?-A-v-!;--;--̂@--=--@-{-l=-a-- ---΁-N-7-.[- -P-^-̀f-R-m"-X------K-[-[---x-L-5*-(-I--~K-~J-~I-~-~-u~--d~K-Z~[-N~[-B~-:~-+~-}-;}-0} -}-| -| -|"-|-{-x{X-[{m-{:-z--z--z--7z%z-z-z%-y$-dyZyLy3yyxxxMx-->x:-%x)-x-xh-w-w-w-~w-uw-mw-bw-WwPw-Cw-;w4wv-,w%wv-wwv- www-vv-vvv-v-vv-vvx-vv-vv-v-v&-kv'-Hv- v-uq-`uP-Eu- ut-t-t-tbt+-t--s:-s)-s-sh-sq-Ws-8s-rrrsrSr1rrqq-q-q0-q-qq-_q-3q-&q- q--p-p-p-p-p-p-p-pp-zp-qpjpv-bp[pv-RpKpv-Cp->>3->0->0-r>M-]>->>3-=0-=0-=M-=~-=x=3-n=0-U=-B=0-/=M-=-<-<<3-;0-;-;0-;M-;-J;-::3-:0-:-y:0-`:M-K:-9-G9<93-8-J8?83-80-80-7M-7-773-v7-b7-73-6-x60-i60-^6-60-50-5M-5t-50-50-5M-t5-(50-50- 5M-4u-40-40-4M-4-z40-k40-X4M-3-3-33-e3-33- 2-20-10-1-10-10-|1M-:10-+10-1M-1U-0003-00-00-0M-x0U-k0`0R03- 00-00-0M-}/r/3-U/J/3-@/0-1/0-"/M-..3-.-i.3-?.--3---,0-,0-,-a,0-R,0-C,M-,0-+0-+M-++3-h+0-Y+0-J+M-5+-*0-*0-*M-*-*-Z*0-K*0-2*M-*U- **)3-))3-)0-)0-)M-i)U-\)Q)C)3-)0-)0-(M-(U-(((3-q(f(3-\(0-M(0->(M-"(U-( ('3-''3-'-'-;'3-'-&3-%-%0-%-%0-t%-]%-%3-$-G$3-#0-#-#U-#3-I#[-.#- #-"U-"3-"[-"X="-"3-!3- - 3-3 0- - U-3-[---qU-L3-[-Y=-3-=3-O-3-m-e0-B0-3-----0-r0-g-60-'0------t-l-a--80-00-c-,- ---n-6-c-zc-;!8-c-c-n-@={-Z?=L<=(?=<=,-,-B-2-#-1----1--0-f-vf-g-b7-V-N-Fo-:)-+-#--0-<-="------0-p-mo-K83-;-3->--oK-a[-U[-I-A-2-c-c-lGM-/G-%H------cf-WZ-2\-d-e-f-]-\-lLd-/-- ----rc-Fc- U [-E [-9 [-- -% - - - - - c-W c-+ c-  G- H-  - -p -P -3 - - f- ]- \- q d-( f- Z- \-  d-n f-b Z-B \-(  d-----s-S-B8-L-D-6-.0-0-0------z-qv-ibv-ZSv-KDx-7v-/(--0-0-0-[----^f->P-1^-K-F-M-R--r-f---x0-i0-ZN-D-0-0-N----j-]-I-/"-0-0-63--0--"-0-x-,-3---0-z-S-G -4-(0-0-|0-b-G"-@"-9-+-D- E=6------v-v-v-x-v-}v-_-;E=%--[---}-j-Y-L-8-"-0-0-0-~0--3--0---->-=-=0----3-6-f-Z-\-{-md-Q-B-: -$- ===--q-GR-E=w0---c-P;--@--G-H--|-k-_-R-:*-'6-;--@--{D-[E=<%-"-L--g-k%- _-E=`W$m6G-g[ED-.E='Q-tE=------=--:-B-<-B--0-S"-L"-E"->"-7"-0"-)-- ----D-E=0-R-O0-"U-3-s0-GU-3-s0-GU-3-s0-GU-3-w0-KU-3-0-gU-23-3-gE=CD-'E= S- 4-R-E=xA=fB=[-2@='-?=<=?=<=----}-"-------m-e-]-UD->X-Y- <===--SE=:<=/==$-L-}>=dX-H:Y-.>=<===-~A=mB=b-K@=@-?=<=?=<=$----o-Y-P-=------~-m-h/-].-R--'-j'-'-'-k-W)-8*- ---E=lD-NE=B-)'-'-'-e-Q)-2*- E=D-E=R-R-U-yS-g`U-G----P-U-wpU-^WU-E>U-(------P-`-S-E=-0---S--0-i-O-3-+0--0-----=--=y-Ya-']-\-d-}Q4-`-VBC-2-/-b-\-d-a--*`- -2-/-g--\-d-P--C`--u-t-\-P-=-\-d-T--`-vnW-`8KD W-ƾW-umW-_W-߽ƽ -޼2-/---\-d---`--2-n/-P-C-\-d-g--Um-D-E=޸&-Ƹ&-/m|+-eE=AD-*E=~E=--q:-\)-T-Fh--ղ-Ͳ---h-q-Yk-Ej-6p-'---o-[-x[-P[-[-]-3-~f-XP-D^- -3-*f-P-^--F3-f-P-^- -3-f-P-^-E--{-SD-4E=-- -ը--Z-5-ϧ---i-6-+--E=D-ƦE=i-l---ߥ--}-- E=ޤD-E=-b---ӣ-{-p}-M->E=+-Ԣ1-7-3-|+-L1-<7-,3--¡&-'--^-V-70-/0-c-0---̟0----=-0-K0-0-D-ݞE=֞-ʞ-=-0-l0-]--.-ȝ3--y0-`-B0-0-]-+- -r=k-?=#-=-ٚ3-0-0-c-E=-|-q-i-^-V-70-/0-ט0-Ϙ0-G0-?0-c-4c-c-c-dc----=ە-ӕ0-40- 0-ܔ0-0-0-D-cE=\-P-@=9-10---œ--i-@---3-3-3-3-&3-3-w-[0-L-:0-0-0-\-&-ލ3-ԍ0-0-0--Ό-0-~0-O0--p0-̊3-0-݉0--ˈ--=&-=ڇ-=5-QJ-?3-$5-܆Ն-ʆ3-k-&--l-3--3-{-m3-J-B--/E=c--0-Є5-Ȅc-3-- -={-s0-\=0= --0-ۃ-σ --0-o0-=0-.0- 0-0--j0-W0->0-%0-0-ρ0--:-5-w-r9-4(---=-6-' --~=~=~=~=S~-K~0-1~0-~0- ~-}0-}0-}-=}-8}.}-)}|U-|||3-f|U-Y|N|@|3-|U- |{{3-{{3-V{U-I{>{0{3-{U-zzz3-zU-zzz3-yy3-y-y0-y0-y-hy0-Yy0-y-xU-xxx3-x0-x-xU-xx3-ex-MxU-@x6x3-ww3-UwU-Hw>w0w3-vU-vvv3-$vv3-uU-uuu3-Tu-Gu0-3u0-u0-t-tU-tt3-tU-ttt3-ss3-s-fsU-YsNs@s3-rU-rrr3-5rU-(rrr3-qU-qqq3-qU- qpp3-pU-ppp3-:p/p3-oo3-DoU-7o,oo3- oU-nnn3-nU-nnn3-UnU-Hn=n/n3-nU- nnm3-mU-mmm3-xmU-km`mRm3-mU-mll3-vl6lU-)lll3-kU-kkk3-kU-k~kpk3-Vk-Nk0-*k0-k-@i-(iU-ii3-h-h3-h0-h-vhU-ih_h3-Uh0-Mh-5hU-(hh3-g-gU-gg3-g-vgU-ig_g3-*g0-"g- gU-ff3-f0-f-{f0-sf-^fU-QfGf3-;f-#fU-f f3-e-e-eU-ee3-e-ieU-\eRe3-Ce-+eU-ee3-d-dU-dd3-d-dU-{dqd3-;d-#dU-d d3-c-cU-cc3-c-cU-scic3-9c0-1c-b3-b-bU-tbjb3-VbU-Ib?b-b3-ba-aU-aaqa3- a`3-`3-`-`-`-`=s`-g`0-6`0-"`0-`D-_E=_-_-p_=i_-]_0-3_0-$_0-^-^^-^^-^-L^=E^-'^=^-]=]E=X]U-K]@]2]3-]U-]\\3-\U-\\\3-z\U-m\b\T\3-[[3-2['[3-ZZ3-OZDZ3-Y-Y0-Y-Y-Y=Y-Y0-mY0->Y0-/Y0- Y0-X0-bX0-IX0-0X0-X0-W0-W0-W0-V0-V0-{V0-hV0-UV0-V-UU-U-U-vU8U-U-xT3-S-SS-SS-(S3-R-RR-RpR-R3-Q3-Q-Q-P=P-P0-P0-P-eP0-LP0-3P0-P0-P0-O0-O0-O0-O-O0-|O-fO0-N-N-N_N-M-MM-GM-BML-L-L3-K-KK-KK-K-`K0-XK-J3-lJ0-YJ0-JJ0-5J0-I-I-II-)I-nH3-G=G-uG=YG-;G=F-F0-F-F-tF=mF-aF0-+F0-E0-E0-jE0-QE0-8E0-E0-E0-D0-D0-D0-C-CC-CxC-C3-B0-B-BB-BtB-ZBU-MB?B-B3-A3-A-A-A=A-A0-RA0-CA-@0-@0-{@0-b@0-I@0-0@0-@0-?0-?0-?0-?-?0-?-?0->->->_>-=-==-I=-D=<-<-<M<-)<-h;3-;-::-::-:-:0-:-:3-9=9-9=l9-N9=8-80-{8-o8-_8=X8-L80-80-70-70-70-C70- 70-60-60-60-O6-C66-5-5-55-c5-43-@4-8414-"44-x33-2-22-22-^23-13-i1-]1-M1=F1-:10-00-0-00-00-0-|00-m0-W00-<0-/-//-//-/0-|/-P/-H/5/-.3-c.0-T.0-E.0- .----{--v-j--[--:-0-2---U---3-,0-,0-z,0-e,0-,,-+-~+-Y+-*3-)=)-)=)-k)=(-(0-(-(-(=(-(0-n(0-X(0-I(0-/(0-'0-'0-'0-e'0-K'0-&U-&&&3-&-&-q&=j&-^&0-&0-&-%0-%0-%0-%0-%0-j%-N%0-?%-)%0-$-|$-w$>$- $-#-##-}#q#-[#0-L#- #-##-"3-3"0-$"0-"0-!-!-!K!-F!:!-+!-!0-!- U-  3- U-   3-| 0-i 0-Z 0-E 0- --^-9-|3-=-=j-L=U-3-U-uk3-_OU-B83---0-0--U-3-p-XU-KA3-%0-- U-3-0--U-3--U-~t3-C-;/-U- 3-0--)3-0--U-3--0--U-~3--U-3---0-0-d0-\-EU-8.3-"-U-3--U-3--q-e-[-"--=-0-==-0--y-i=b-V0-0-0-0-0-0-L0-20-$-0-0--8-/(- -3---x=q-e0-&0---0--0-0-|----3-&0-0-0--o-j2--!- -0--U-3-_0-I0-:0-%0- - -D - -T 3-~ =s -G =+ - = - -  3- - 0- 0-~ -g U-Z P 3-4 0-, - U- 3---0--U-z3-Z-P-H0-@-)U-3---0--U-3-0--U-y3-3-u-m0-W0-"0--3-si0-a-3-0--U-3--U-y3-e0-]-IU-<23-0--U-3--U-3-wU-j_Q3-U- 3-U-3-vU-i^P3-2-*0-5--3--0-5-/(-3- -0-5--3-r-j0-]-J5-'9-- 3-P6-A=:-2e+6- ;=- d   %  $x p h ` X H !@ 8 %0 +( ,     ) *     - . !h '` (X !@ 8 0 !                x p h P "H @ %8 0 (       J         % + , x p h P H @ 8 0 (        %      4   v x p 1h 8` 3X 2P H 0@ 68 s0 (    % 4v18320x6psh`PH@%80( 4vjk183206sx%ph`XPH4@80v( 183206s%RUILK@xph`XPH@80 (` D_=>xph`XPHF@80( xph`XPH@80( xph`zXyP{H@8|0( }~DExphr`XZPH@i80( Ft !" p qxph` X P H@80(h nfrsgljmoksxphv`dXePH#@3820a(0 6]c...`.X.P.C@. ..--C----`-@- --,,,C,,,C,,`,@, ,,++C++++C++`+@+8+0+C +++C+**C***C***C***C*x*p*C`*X*P*C@* ***C*)))C))))C)`)X)P)C@) )))C)((((`(X(P(C@( ((''''`'@' '''C'&&C&&&C&&&C&&&C&x&p&C`&@&8&0&C &&&C&%%%%C%%`%@% %%$$$$`$@$ $$####`#@# ##""""`"@" ""!!!!`!@! !!    ` @   `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ C`@ CCC`@80C CCCCxpC`XPC@ CCCCCxpC`XPC@80C `@80C CC`@   C    C   C ` @       ` @ 8 0 C       C ` @ 8 0 C   C     ` @       C  ` @   C`XPC@80C CCxpC`XPC@ `@80C xpC`@ `@ `@80C CCxpC`XPC@80C CCCxpC`@ CCxpC`XPC@80C C.CMs 4-DkTLl0޷h0%Yyº Ͷ  , 6t  Q9p909pD 0:h  R (}   ? t! WTh:t` 4ԻH\Ee(۸xyy:CLqH=TǸLIC(8ԼHX_hY08xQe$T8]պT1 ),8P95 $<ʷ"(G!rPjQjVPs|+pQМ,pcЛ%`zt FE@"0,z٭44 s(+ w?!c$О0qР`*p vڐ0‘#@&p  *#(t0V 0SH.)*`v@*vp]rН/v%*/]?] ap<03аZ`N+'w( Ou;pLТQЧ9q ls7*jv7)!ЦG,uШ`z!Щ$V^zy0$  k0y{&z0p|,pz8-`Q(0`"P!($w@t( u #p8(P~u0jF #r@,p,{D{!`%P@0`s> b#p3"`W%P|"%Фl! $]`@;@\~ p<ph3ZYZKb'<4]feP_~ sVp IPHK`ațH Jr~kH` ~w/0/[I@P_J7} PI JpJ`h|3bС^^ZP PWKV`W[@@[ap3V)U 3@ P0QU5 E0@_2Bx@'(`-mUl%L + g0ZdP{k6iMxj R&k 2+iIlhD ʓq E\g-، ^N &} tU`*D;1=<2p/0}\N g<:3P*ZPe;4u43 P43GcPl`0\]usr΅q؂0|8p{ȃ0qpb] {zK `k|vJfv`a`upr"kulec0~L{b`ev!Zs8)uPqOp0P`aR|Ӂ Z{0sLawEF#pq pzٴP `oQ`~nȀoRew*y@0 m H@ ۤ` h` YGps `K@p]808@8 ? "7 PP%`؜]0^QP Ho ի ; S \ ( ǥ @fL ` MT 0 :  X4 9 zώ  K XV S ˰ < ~Ʈ  {   x 7 K + @ p\ 0 \?0n7?7>6{`X|b/p /{@o{op7^No4GIAzAEA@_E tnP9A)d@ qtM2`pMlqcNtG'{GxO Q,-D&CBpG'1&Z$ >[s <[, D=Nn1 Xt}Jxxny_ygo.yxx`_N&l^ l) _o -s&&.,\"au "Ln}M)AF˕ qz ptrorowrxwUw e  L~1V0+|~[ &;24t;2OdxF AM 2ep Y|&sxO-&|p}Cv1/yTEcXKWX4TTWW8XXl YVd{ s-7'<31 Y: ;  ed  w)-qCc1/ Y '*.2>ON>6=S2>'60qsXP=50.7 8SRvSt.1,1&3`  Y0KEo;G9G(=:5J>\6=5d=v5]  wBPNLLD&x9xLLEGFGFRϏ L HÏSF!xkBLD'GFLN__ZN31vtkOpenGLGPUVolumeRayCastMapper17IsRenderSupportedEP15vtkRenderWindowP17vtkVolumeProperty__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal12UpdateVolumeEP17vtkVolumeProperty_memcpy__ZN14vtkInformation3HasEP33vtkInformationObjectBaseVectorKey__ZN14vtkInformation6LengthEP33vtkInformationObjectBaseVectorKey__ZN14vtkInformation3GetEP24vtkInformationIntegerKey__ZN14vtkInformation3HasEP24vtkInformationIntegerKey___glewBindVertexArray__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal8LoadDataEP11vtkRendererP9vtkVolumeP17vtkVolumePropertyP12vtkImageDataP12vtkDataArray__GLOBAL__sub_I_vtkOpenGLGPUVolumeRayCastMapper.cxx__ZN25vtkGPUVolumeRayCastMapper19SetMaxMemoryInBytesEx__ZN23vtkAOSDataArrayTemplateIxE10GetPointerEx___cxa_throw_pow__ZN26vtkOpenGLFramebufferObject10SetContextEP15vtkRenderWindow__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal33LoadRequireDepthTextureExtensionsEP15vtkRenderWindow__ZN35vtkOpenGLVolumeGradientOpacityTable6UpdateEP20vtkPiecewiseFunctiondPddiP21vtkOpenGLRenderWindow__ZN27vtkOpenGLVolumeOpacityTable6UpdateEP20vtkPiecewiseFunctionidPddiP21vtkOpenGLRenderWindow__ZN23vtkOpenGLVolumeRGBTable6UpdateEP24vtkColorTransferFunctionPdiP21vtkOpenGLRenderWindow__ZN27vtkOpenGLTransferFunction2D6UpdateEP12vtkImageDataiP21vtkOpenGLRenderWindow__ZN16vtkTextureObject10SetContextEP21vtkOpenGLRenderWindow__ZN29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE25RegisterGraphicsResourcesEP21vtkOpenGLRenderWindow__ZN16vtkTextureObject21GetMaximumTextureSizeEP21vtkOpenGLRenderWindow__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal33ReleaseDepthPassGraphicsResourcesEP9vtkWindow__ZN16vtkTextureObject24ReleaseGraphicsResourcesEP9vtkWindow__ZN31vtkOpenGLGPUVolumeRayCastMapper24ReleaseGraphicsResourcesEP9vtkWindow__ZN16vtkVolumeTexture24ReleaseGraphicsResourcesEP9vtkWindow__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal39ReleaseRenderToTextureGraphicsResourcesEP9vtkWindow__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal35ReleaseImageSampleGraphicsResourcesEP9vtkWindow__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal25ReleaseGraphicsTransfer2DEP9vtkWindow__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal25ReleaseGraphicsTransfer1DEP9vtkWindow_glGetIntegerv_glGetBooleanv__ZSt9terminatev__ZN9vtkObject11InvokeEventEmPv__ZdlPv__ZN16vtkTextureObject15Create2DFromRawEjjiiPv__ZN9vtkObject11InvokeEventEPKcPv__ZdaPv__ZN18vtkLightCollection12GetNextLightERPv__ZNSt3__18ios_base4initEPv__ZN17vtkOStreamWrapperlsEPv__ZN9vtkVolume11GetPropertyEv__ZN9vtkObject23GetGlobalWarningDisplayEv__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal24ComputeCellToPointMatrixEv__ZNSt3__18ios_base33__set_badbit_and_consider_rethrowEv__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5uflowEv__ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9underflowEv__ZN25vtkGPUVolumeRayCastMapper19GetFinalColorWindowEv__ZN19vtkUnsignedIntArray3NewEv__ZN26vtkOpenGLVertexArrayObject3NewEv__ZN26vtkOpenGLFramebufferObject3NewEv__ZN21vtkOpenGLBufferObject3NewEv__ZN9vtkObject3NewEv__ZN16vtkTextureObject3NewEv__ZN8vtkActor3NewEv__ZN16vtkContourFilter3NewEv__ZN31vtkOpenGLGPUVolumeRayCastMapper3NewEv__ZN17vtkPolyDataMapper3NewEv__ZN9vtkShader3NewEv__ZN18vtkPlaneCollection3NewEv__ZN14vtkInformation3NewEv__ZN14vtkImageResize3NewEv__ZN14vtkPerlinNoise3NewEv__ZN16vtkVolumeTexture3NewEv__ZN8vtkPlane3NewEv__ZN35vtkOpenGLVolumeGradientOpacityTable3NewEv__ZN27vtkOpenGLVolumeOpacityTable3NewEv__ZN23vtkOpenGLVolumeRGBTable3NewEv__ZN23vtkTessellatedBoxSource3NewEv__ZN18vtkDensifyPolyData3NewEv__ZN21vtkClipConvexPolyData3NewEv__ZN11vtkPolyData3NewEv__ZN12vtkImageData3NewEv__ZN27vtkOpenGLTransferFunction2D3NewEv__ZN12vtkMatrix4x43NewEv__ZN17vtkAbstractMapper13GetTimeToDrawEv__ZN12vtkAlgorithm15GetProgressTextEv__ZN17vtkImageAlgorithm9GetOutputEv__ZN20vtkPolyDataAlgorithm9GetOutputEv__ZN25vtkGPUVolumeRayCastMapper12GetMaskInputEv__ZN25vtkGPUVolumeRayCastMapper19GetTransformedInputEv__ZN8vtkLight24GetTransformedFocalPointEv__ZN12vtkAlgorithm21PropagateUpdateExtentEv__ZN12vtkAlgorithm17UpdateWholeExtentEv__ZN16vtkTextureObject14GetTextureUnitEv__ZN12vtkAlgorithm16UpdateDataObjectEv__ZN11vtkPolyData8GetPolysEv__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19DeleteBufferObjectsEv__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19CreateBufferObjectsEv__ZN25vtkGPUVolumeRayCastMapper17GetReportProgressEv__ZN12vtkAlgorithm11GetProgressEv__ZN31vtkOpenGLGPUVolumeRayCastMapper14GetCurrentPassEv__ZN25vtkGPUVolumeRayCastMapper15GetUseDepthPassEv__ZN16vtkContourValues19GetNumberOfContoursEv__ZN26vtkOpenGLFramebufferObject21DeactivateDrawBuffersEv__ZN26vtkOpenGLFramebufferObject18SaveCurrentBuffersEv__ZN26vtkOpenGLFramebufferObject22RestorePreviousBuffersEv__ZN20vtkDataSetAttributes10GetScalarsEv__ZN16vtkVolumeTexture13GetPartitionsEv__ZN13vtkCollection14RemoveAllItemsEv__ZN26vtkOpenGLFramebufferObject19SaveCurrentBindingsEv__ZN26vtkOpenGLFramebufferObject23RestorePreviousBindingsEv__ZN15vtkVolumeMapper22GetCroppingRegionFlagsEv__ZN25vtkGPUVolumeRayCastMapper25GetDepthPassContourValuesEv__ZN25vtkGPUVolumeRayCastMapper19GetMaxMemoryInBytesEv__ZN19vtkOpenGLRenderPass12RenderPassesEv__ZN15vtkVolumeMapper23GetCroppingRegionPlanesEv__ZN25vtkGPUVolumeRayCastMapper24ClipCroppingRegionPlanesEv__ZN15vtkVolumeMapper28GetVoxelCroppingRegionPlanesEv__ZN17vtkAbstractMapper17GetClippingPlanesEv__ZN25vtkGPUVolumeRayCastMapper28GetAutoAdjustSampleDistancesEv__ZN23vtkAbstractVolumeMapper9GetBoundsEv__ZN23vtkAbstractVolumeMapper24GetGradientMagnitudeBiasEv__ZN20vtkOStrStreamWrapper3strEv__ZNKSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strEv__ZN25vtkGPUVolumeRayCastMapper18GetMaskBlendFactorEv__ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv__ZN9vtkObject12BreakOnErrorEv__ZN12vtkAlgorithm19GetProgressObserverEv__ZN19vtkAbstractMapper3D16IsARayCastMapperEv__ZN19vtkAbstractMapper3D24IsARenderIntoImageMapperEv__ZN24vtkOpenGLRenderUtilities31GetFullScreenQuadGeometryShaderEv__ZN24vtkOpenGLRenderUtilities29GetFullScreenQuadVertexShaderEv__ZN14vtkInformation5ClearEv__ZN8vtkLight22GetTransformedPositionEv__ZN25vtkGPUVolumeRayCastMapper20GetMaxMemoryFractionEv__ZN12vtkAlgorithm14GetInformationEv__ZN12vtkAlgorithm17UpdateInformationEv__ZN25vtkGPUVolumeRayCastMapper14UseDepthPassOnEv__ZN25vtkGPUVolumeRayCastMapper27AutoAdjustSampleDistancesOnEv__ZN9vtkObject7DebugOnEv__ZN25vtkGPUVolumeRayCastMapper14UseJitteringOnEv__ZN15vtkVolumeMapper10CroppingOnEv__ZN25vtkGPUVolumeRayCastMapper34LockSampleDistanceToInputSpacingOnEv__ZN12vtkAlgorithm14AbortExecuteOnEv__ZN25vtkGPUVolumeRayCastMapper15RenderToImageOnEv__ZN25vtkGPUVolumeRayCastMapper9AMRModeOnEv__ZN25vtkGPUVolumeRayCastMapper22ClampDepthToBackfaceOnEv__ZN25vtkGPUVolumeRayCastMapper18GetFinalColorLevelEv__ZNK9vtkObject20GetClassNameInternalEv__ZNK31vtkOpenGLGPUVolumeRayCastMapper20GetClassNameInternalEv__ZNK9vtkObject19NewInstanceInternalEv__ZNK31vtkOpenGLGPUVolumeRayCastMapper19NewInstanceInternalEv__ZN16vtkVolumeTexture12GetNextBlockEv__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv__ZN25vtkGPUVolumeRayCastMapper15GetUseJitteringEv__ZN15vtkVolumeMapper11GetCroppingEv__ZN25vtkGPUVolumeRayCastMapper35GetLockSampleDistanceToInputSpacingEv__ZN12vtkAlgorithm18GetReleaseDataFlagEv__ZN20vtkOStrStreamWrapper5rdbufEv__ZN25vtkGPUVolumeRayCastMapper15UseDepthPassOffEv__ZN25vtkGPUVolumeRayCastMapper28AutoAdjustSampleDistancesOffEv__ZN9vtkObject8DebugOffEv__ZN25vtkGPUVolumeRayCastMapper15UseJitteringOffEv__ZN15vtkVolumeMapper11CroppingOffEv__ZN25vtkGPUVolumeRayCastMapper35LockSampleDistanceToInputSpacingOffEv__ZN12vtkAlgorithm15AbortExecuteOffEv__ZN25vtkGPUVolumeRayCastMapper16RenderToImageOffEv__ZN25vtkGPUVolumeRayCastMapper10AMRModeOffEv__ZN25vtkGPUVolumeRayCastMapper23ClampDepthToBackfaceOffEv__ZN24vtkColorTransferFunction7GetSizeEv__ZN20vtkPiecewiseFunction7GetSizeEv__ZN12vtkAlgorithm22CreateDefaultExecutiveEv__ZN12vtkAlgorithm19GetProgressMaxValueEv__ZN25vtkGPUVolumeRayCastMapper23GetUseDepthPassMaxValueEv__ZN15vtkVolumeMapper30GetCroppingRegionFlagsMaxValueEv__ZN25vtkGPUVolumeRayCastMapper36GetAutoAdjustSampleDistancesMaxValueEv__ZN25vtkGPUVolumeRayCastMapper26GetMaskBlendFactorMaxValueEv__ZN25vtkGPUVolumeRayCastMapper28GetMaxMemoryFractionMaxValueEv__ZN25vtkGPUVolumeRayCastMapper23GetUseJitteringMaxValueEv__ZN15vtkVolumeMapper19GetCroppingMaxValueEv__ZN25vtkGPUVolumeRayCastMapper43GetLockSampleDistanceToInputSpacingMaxValueEv__ZN25vtkGPUVolumeRayCastMapper18GetAMRModeMaxValueEv__ZN25vtkGPUVolumeRayCastMapper30GetImageSampleDistanceMaxValueEv__ZN25vtkGPUVolumeRayCastMapper37GetMaximumImageSampleDistanceMaxValueEv__ZN25vtkGPUVolumeRayCastMapper37GetMinimumImageSampleDistanceMaxValueEv__ZN12vtkAlgorithm19GetProgressMinValueEv__ZN25vtkGPUVolumeRayCastMapper23GetUseDepthPassMinValueEv__ZN15vtkVolumeMapper30GetCroppingRegionFlagsMinValueEv__ZN25vtkGPUVolumeRayCastMapper36GetAutoAdjustSampleDistancesMinValueEv__ZN25vtkGPUVolumeRayCastMapper26GetMaskBlendFactorMinValueEv__ZN25vtkGPUVolumeRayCastMapper28GetMaxMemoryFractionMinValueEv__ZN25vtkGPUVolumeRayCastMapper23GetUseJitteringMinValueEv__ZN15vtkVolumeMapper19GetCroppingMinValueEv__ZN25vtkGPUVolumeRayCastMapper43GetLockSampleDistanceToInputSpacingMinValueEv__ZN25vtkGPUVolumeRayCastMapper18GetAMRModeMinValueEv__ZN25vtkGPUVolumeRayCastMapper30GetImageSampleDistanceMinValueEv__ZN25vtkGPUVolumeRayCastMapper37GetMaximumImageSampleDistanceMinValueEv__ZN25vtkGPUVolumeRayCastMapper37GetMinimumImageSampleDistanceMinValueEv__ZN12vtkAlgorithm15GetAbortExecuteEv__ZN13vtkObjectBase10FastDeleteEv__ZN13vtkObjectBase6DeleteEv__ZN16vtkTextureObject10DeactivateEv__ZN16vtkTextureObject8ActivateEv__ZN24vtkOpenGLRenderUtilities39GetFullScreenQuadFragmentShaderTemplateEv__ZN20vtkAbstractTransform6UpdateEv__ZN12vtkAlgorithm6UpdateEv__ZN9vtkVolume6UpdateEv__ZN26vtkOpenGLVertexArrayObject7ReleaseEv__ZN29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE7ReleaseEv__ZN13vtkObjectBase20InitializeObjectBaseEv__ZN31vtkOpenGLGPUVolumeRayCastMapper15GetColorTextureEv__ZN31vtkOpenGLGPUVolumeRayCastMapper15GetDepthTextureEv__ZN25vtkGPUVolumeRayCastMapper23GetDepthImageScalarTypeEv__ZN25vtkGPUVolumeRayCastMapper11GetMaskTypeEv__ZN25vtkGPUVolumeRayCastMapper27GetGradientOpacityRangeTypeEv__ZN25vtkGPUVolumeRayCastMapper25GetScalarOpacityRangeTypeEv__ZN25vtkGPUVolumeRayCastMapper17GetColorRangeTypeEv__ZN16vtkTextureObject14GetVTKDataTypeEv__ZN9vtkObject8GetMTimeEv__ZN17vtkAbstractMapper8GetMTimeEv__ZN23vtkAbstractVolumeMapper12GetArrayNameEv__ZNK13vtkObjectBase12GetClassNameEv__ZN23vtkAbstractVolumeMapper25GetGradientMagnitudeScaleEv__ZN15vtkVolumeMapper23GetAverageIPScalarRangeEv__ZN25vtkGPUVolumeRayCastMapper16GetRenderToImageEv__ZN23vtkAbstractVolumeMapper18GetArrayAccessModeEv__ZN23vtkAbstractVolumeMapper13GetScalarModeEv__ZN15vtkVolumeMapper12GetBlendModeEv__ZN25vtkGPUVolumeRayCastMapper10GetAMRModeEv__ZN12vtkAlgorithm12GetErrorCodeEv__ZN31vtkOpenGLGPUVolumeRayCastMapper19GetVertexShaderCodeEv__ZN31vtkOpenGLGPUVolumeRayCastMapper21GetFragmentShaderCodeEv__ZN14vtkOpenGLActor19GLDepthMaskOverrideEv__ZN25vtkGPUVolumeRayCastMapper17GetSampleDistanceEv__ZN25vtkGPUVolumeRayCastMapper22GetImageSampleDistanceEv__ZN25vtkGPUVolumeRayCastMapper29GetMaximumImageSampleDistanceEv__ZN25vtkGPUVolumeRayCastMapper29GetMinimumImageSampleDistanceEv__ZN25vtkGPUVolumeRayCastMapper23GetClampDepthToBackfaceEv__ZN26vtkOpenGLVertexArrayObject4BindEv__ZN16vtkTextureObject4BindEv__ZN9vtkObject8ModifiedEv__ZN12vtkTimeStamp8ModifiedEv__ZN24vtkOpenGLRenderUtilities18DrawFullScreenQuadEv__ZN16vtkTextureObject8DownloadEv__ZN23vtkAbstractVolumeMapper10GetArrayIdEv__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9showmanycEv__ZNKSt3__18ios_base6getlocEv__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE4syncEv__ZN11vtkRenderer15GetActiveCameraEv__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal16DeleteTransfer2DEv__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal16DeleteTransfer1DEv__ZN9vtkObjectD2Ev__ZN25vtkGPUVolumeRayCastMapperD2Ev__ZN31vtkOpenGLGPUVolumeRayCastMapperD2Ev__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternalD2Ev__ZN19vtkSmartPointerBaseD2Ev__ZN18vtkVolumeStateRAIID2Ev__ZNSt3__19basic_iosIcNS_11char_traitsIcEEED2Ev__ZNSt3__114basic_iostreamIcNS_11char_traitsIcEEED2Ev__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED2Ev__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED2Ev__ZN9vtkObjectC2Ev__ZN25vtkGPUVolumeRayCastMapperC2Ev__ZN31vtkOpenGLGPUVolumeRayCastMapperC2Ev__ZN19vtkSmartPointerBaseC2Ev__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEEC2Ev__ZN21vtkOpenGLRenderWindow26GetContextSupportsOpenGL32Ev__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev__ZNSt12length_errorD1Ev__ZN20vtkOStrStreamWrapperD1Ev__ZN31vtkOpenGLGPUVolumeRayCastMapperD1Ev__ZN20vtkDebugLeaksManagerD1Ev__ZN31vtkObjectFactoryRegistryCleanupD1Ev__ZN35vtkOpenGLVolumeGradientOpacityTableD1Ev__ZN27vtkOpenGLVolumeOpacityTableD1Ev__ZN23vtkOpenGLVolumeRGBTableD1Ev__ZNSt3__16localeD1Ev__ZN6vtkNewI8vtkActorED1Ev__ZN6vtkNewI16vtkContourFilterED1Ev__ZN29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperED1Ev__ZN6vtkNewI17vtkPolyDataMapperED1Ev__ZN6vtkNewI14vtkInformationED1Ev__ZN6vtkNewI14vtkImageResizeED1Ev__ZN15vtkSmartPointerI16vtkVolumeTextureED1Ev__ZN15vtkSmartPointerI11vtkPolyDataED1Ev__ZNSt3__16vectorIdNS_9allocatorIdEEED1Ev__ZThn16_NSt3__114basic_iostreamIcNS_11char_traitsIcEEED1Ev__ZTv0_n24_NSt3__114basic_iostreamIcNS_11char_traitsIcEEED1Ev__ZNSt3__114basic_iostreamIcNS_11char_traitsIcEEED1Ev__ZTv0_n24_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev__ZTv0_n24_NSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev__ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev__ZTv0_n24_NSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev__ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev__ZThn16_NSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev__ZTv0_n24_NSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev__ZNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev__ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev__ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEED1Ev__ZNSt3__16vectorI15vtkSmartPointerI16vtkTextureObjectENS_9allocatorIS3_EEED1Ev__ZNSt3__16vectorIP35vtkOpenGLVolumeGradientOpacityTableNS_9allocatorIS2_EEED1Ev__ZNSt3__16vectorIP27vtkOpenGLVolumeOpacityTableNS_9allocatorIS2_EEED1Ev__ZNSt3__16vectorIP23vtkOpenGLVolumeRGBTableNS_9allocatorIS2_EEED1Ev__ZNSt3__16vectorIP27vtkOpenGLTransferFunction2DNS_9allocatorIS2_EEED1Ev__ZNSt3__13mapIiNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIiEENS4_INS_4pairIKiS6_EEEEED1Ev__ZNSt3__13mapIKN9vtkShader15ReplacementSpecENS1_16ReplacementValueENS_4lessIS3_EENS_9allocatorINS_4pairIS3_S4_EEEEED1Ev__ZN6vtkNewI12vtkMatrix4x4ED1Ev__ZN27vtkOpenGLTransferFunction2DD1Ev__ZN20vtkOStrStreamWrapperC1Ev__ZN31vtkOpenGLGPUVolumeRayCastMapperC1Ev__ZN20vtkDebugLeaksManagerC1Ev__ZN31vtkObjectFactoryRegistryCleanupC1Ev__ZN31vtkOpenGLGPUVolumeRayCastMapperD0Ev__ZN35vtkOpenGLVolumeGradientOpacityTableD0Ev__ZN27vtkOpenGLVolumeOpacityTableD0Ev__ZN23vtkOpenGLVolumeRGBTableD0Ev__ZN29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperED0Ev__ZThn16_NSt3__114basic_iostreamIcNS_11char_traitsIcEEED0Ev__ZTv0_n24_NSt3__114basic_iostreamIcNS_11char_traitsIcEEED0Ev__ZNSt3__114basic_iostreamIcNS_11char_traitsIcEEED0Ev__ZTv0_n24_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev__ZTv0_n24_NSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev__ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev__ZTv0_n24_NSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEED0Ev__ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEED0Ev__ZThn16_NSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEED0Ev__ZTv0_n24_NSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEED0Ev__ZNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEED0Ev__ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEED0Ev__ZN27vtkOpenGLTransferFunction2DD0Ev__ZN12vtkAlgorithm21SetNthInputConnectionEiiP18vtkAlgorithmOutput__ZN12vtkAlgorithm18SetInputConnectionEiP18vtkAlgorithmOutput__ZN12vtkAlgorithm21RemoveInputConnectionEiP18vtkAlgorithmOutput__ZN12vtkAlgorithm18AddInputConnectionEiP18vtkAlgorithmOutput__ZN12vtkAlgorithm18SetInputConnectionEP18vtkAlgorithmOutput__ZN12vtkAlgorithm18AddInputConnectionEP18vtkAlgorithmOutput__ZN31vtkOpenGLGPUVolumeRayCastMapper13SetPartitionsEttt_glViewport__ZlsRNSt3__113basic_ostreamIcNS_11char_traitsIcEEEERK9vtkIndent__ZN13vtkObjectBase12PrintTrailerERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE9vtkIndent__ZN13vtkObjectBase11PrintHeaderERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE9vtkIndent__ZN9vtkObject9PrintSelfERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE9vtkIndent__ZN25vtkGPUVolumeRayCastMapper9PrintSelfERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE9vtkIndent__ZN31vtkOpenGLGPUVolumeRayCastMapper9PrintSelfERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE9vtkIndent___cxa_atexit_memset__ZN15vtkVolumeMapper12SetInputDataEP10vtkDataSet__ZN13vtkCollection7AddItemEP9vtkObject__ZTI9vtkObject__ZN26vtkOpenGLFramebufferObject18AddDepthAttachmentEjP16vtkTextureObject__ZN12vtkAlgorithm18SetInputDataObjectEiP13vtkDataObject__ZN12vtkAlgorithm18AddInputDataObjectEiP13vtkDataObject__ZN12vtkAlgorithm18SetInputDataObjectEP13vtkDataObject__ZN12vtkAlgorithm18AddInputDataObjectEP13vtkDataObject__ZN17vtkImageAlgorithm12SetInputDataEP13vtkDataObject__ZN20vtkPolyDataAlgorithm12SetInputDataEP13vtkDataObject___glewGenVertexArrays___glewDeleteVertexArrays_raycastervs_glDrawElements___glewGenBuffers___glewDeleteBuffers_raycasterfs__ZN12vtkAlgorithm16ReportReferencesEP19vtkGarbageCollector__ZN13vtkObjectBase16ReportReferencesEP19vtkGarbageCollector__ZN12vtkAlgorithm6UpdateEiP20vtkInformationVector__ZTVSt12length_error__ZTISt12length_error_glClearColor__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal13ExitDepthPassEP11vtkRenderer__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal14SetupDepthPassEP11vtkRenderer__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal12BeginPickingEP11vtkRenderer__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal10EndPickingEP11vtkRenderer__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17CheckPickingStateEP11vtkRenderer__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19ExitRenderToTextureEP11vtkRenderer__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal20SetupRenderToTextureEP11vtkRenderer__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal18CreateNoiseTextureEP11vtkRenderer__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal14EndImageSampleEP11vtkRenderer__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal12SetPickingIdEP11vtkRenderer__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal24InitializeImageSampleFBOEP11vtkRenderer__ZTI25vtkGPUVolumeRayCastMapper__ZTV31vtkOpenGLGPUVolumeRayCastMapper__ZTS31vtkOpenGLGPUVolumeRayCastMapper__ZN16vtkVolumeTexture9SetMapperEP31vtkOpenGLGPUVolumeRayCastMapper__ZTI31vtkOpenGLGPUVolumeRayCastMapper___glewBindBuffer_glClear_strcmp_memcmp___bzero___cxa_allocate_exception___cxa_free_exception__ZN31vtkOpenGLGPUVolumeRayCastMapper17SetNoiseGeneratorEP19vtkImplicitFunction__ZN21vtkClipConvexPolyData9SetPlanesEP18vtkPlaneCollection__ZN17vtkAbstractMapper17SetClippingPlanesEP18vtkPlaneCollection__ZN12vtkAlgorithm22SetInputArrayToProcessEiP14vtkInformation__ZN12vtkAlgorithm25FillOutputPortInformationEiP14vtkInformation__ZN15vtkVolumeMapper24FillInputPortInformationEiP14vtkInformation__ZN12vtkAlgorithm14SetInformationEP14vtkInformation__ZN12vtkAlgorithm6UpdateEP14vtkInformation_strlen__Znwm__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertEmPKcm__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm__ZN24vtkOpenGLRenderUtilities17PrepFullScreenVAOEP21vtkOpenGLBufferObjectP26vtkOpenGLVertexArrayObjectP16vtkShaderProgram__Znam__ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m__ZN12vtkAlgorithm20ComputePipelineMTimeEP14vtkInformationPP20vtkInformationVectorS3_iPm__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEm__ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE7reserveEm__ZNSt3__16vectorI15vtkSmartPointerI16vtkTextureObjectENS_9allocatorIS3_EEE7reserveEm__ZN12vtkAlgorithm12SetErrorCodeEm__ZN9vtkvolume29ImageSampleImplementationFragERKNSt3__16vectorINS0_12basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEENS5_IS7_EEEEm__ZN9vtkvolume26ImageSampleDeclarationFragERKNSt3__16vectorINS0_12basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEENS5_IS7_EEEEm___stack_chk_fail__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsgetnEPcl__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6setbufEPcl__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsputnEPKcl_glDepthMask__ZTS36vtkGenericOpenGLResourceFreeCallback__ZN21vtkOpenGLRenderWindow25RegisterGraphicsResourcesEP36vtkGenericOpenGLResourceFreeCallback__ZTI36vtkGenericOpenGLResourceFreeCallback__ZN26vtkOpenGLFramebufferObject18AddColorAttachmentEjjP16vtkTextureObjectj__ZN26vtkOpenGLFramebufferObject21RemoveColorAttachmentEjj__ZN31vtkOpenGLGPUVolumeRayCastMapper9PreRenderEP11vtkRendererP9vtkVolumePdS4_ij__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal37UpdateGradientOpacityTransferFunctionEP11vtkRendererP9vtkVolumej__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal29UpdateOpacityTransferFunctionEP11vtkRendererP9vtkVolumej__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal27UpdateColorTransferFunctionEP11vtkRendererP9vtkVolumej__ZN31vtkOpenGLGPUVolumeRayCastMapper11RenderBlockEP11vtkRendererP9vtkVolumej__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal24UpdateTransferFunction2DEP11vtkRendererP9vtkVolumej__ZN26vtkOpenGLFramebufferObject21RemoveDepthAttachmentEj__ZN26vtkOpenGLFramebufferObject22CheckFrameBufferStatusEj__ZN26vtkOpenGLFramebufferObject19ActivateDrawBuffersEj__ZN26vtkOpenGLFramebufferObject18SaveCurrentBuffersEj__ZN26vtkOpenGLFramebufferObject22RestorePreviousBuffersEj__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEj__ZN26vtkOpenGLFramebufferObject19SaveCurrentBindingsEj__ZN26vtkOpenGLFramebufferObject23RestorePreviousBindingsEj__ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE7seekoffExNS_8ios_base7seekdirEj__ZNSt3__18ios_base5clearEj__ZN26vtkOpenGLFramebufferObject4BindEj__ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE7seekposENS_4fposI11__mbstate_tEEj__ZN36vtkOpenGLVolumeGradientOpacityTablesC2Ej__ZN28vtkOpenGLVolumeOpacityTablesC2Ej__ZN24vtkOpenGLVolumeRGBTablesC2Ej__ZN28vtkOpenGLTransferFunctions2DC2Ej__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal24ActivateTransferFunctionEP16vtkShaderProgramP17vtkVolumePropertyi__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal26DeactivateTransferFunctionEP17vtkVolumePropertyi__ZN14vtkInformation9CopyEntryEPS_P33vtkInformationObjectBaseVectorKeyi__ZN14vtkInformation3GetEP33vtkInformationObjectBaseVectorKeyi__ZN16vtkVolumeTexture10LoadVolumeEP11vtkRendererP12vtkImageDataP12vtkDataArrayi__ZN35vtkOpenGLVolumeGradientOpacityTable31GetMaximumSupportedTextureWidthEP21vtkOpenGLRenderWindowi__ZN27vtkOpenGLVolumeOpacityTable31GetMaximumSupportedTextureWidthEP21vtkOpenGLRenderWindowi__ZN23vtkOpenGLVolumeRGBTable31GetMaximumSupportedTextureWidthEP21vtkOpenGLRenderWindowi__ZN27vtkOpenGLTransferFunction2D31GetMaximumSupportedTextureWidthEP21vtkOpenGLRenderWindowi__ZN31vtkOpenGLGPUVolumeRayCastMapper10PostRenderEP11vtkRendereri__ZN12vtkAlgorithm13ModifyRequestEP14vtkInformationi__ZN16vtkTextureObject13AllocateDepthEjji__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal23SetupTransferFunction2DEP11vtkRendererii__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal23SetupTransferFunction1DEP11vtkRendererii__ZN31vtkOpenGLGPUVolumeRayCastMapper11DoGPURenderEP11vtkRendererP9vtkVolumeP15vtkOpenGLCameraP16vtkShaderProgramii__ZN16vtkTextureObject10Allocate2DEjjii__ZN16vtkTextureObject19CopyFromFrameBufferEiiiiii__ZN12vtkAlgorithm22SetInputArrayToProcessEiiiii__ZN9vtkvolume26ComputeLightingDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiii__ZN9vtkvolume21ShadingImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTextureiii__ZN16vtkVolumeTexture13SetPartitionsEiii__ZN9vtkvolume27CompositeMaskImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTextureii__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal26InitializeTransferFunctionEP11vtkRendererP9vtkVolumeii__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal22UpdateTransferFunctionEP11vtkRendererP9vtkVolumeii__ZN9vtkvolume23PreComputeGradientsImplEP11vtkRendererP9vtkVolumeii__ZN9vtkvolume16GradientCacheDecEP11vtkRendererP9vtkVolumeii__ZN9vtkvolume11ShadingExitEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeii__ZN9vtkvolume23BaseDeclarationFragmentEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiibii__ZN26vtkOpenGLFramebufferObject18InitializeViewportEii__ZN12vtkAlgorithm27SetNumberOfInputConnectionsEii__ZN12vtkAlgorithm21RemoveInputConnectionEii__ZN26vtkOpenGLFramebufferObject6ResizeEii__ZN31vtkOpenGLGPUVolumeRayCastMapper19SetNoiseTextureSizeEii__ZN20vtkPiecewiseFunction8GetTableEddiPfi__ZN9vtkObject18UnRegisterInternalEP13vtkObjectBasei__ZN9vtkObject16RegisterInternalEP13vtkObjectBasei__ZN9vtkvolume32CompositeMaskDeclarationFragmentEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTexturei__ZN9vtkvolume24BinaryMaskImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTexturei__ZN9vtkvolume21BinaryMaskDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTexturei__ZN31vtkOpenGLGPUVolumeRayCastMapper11BuildShaderEP11vtkRendererP9vtkVolumei__ZN31vtkOpenGLGPUVolumeRayCastMapper19ReplaceShaderValuesERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP11vtkRendererP9vtkVolumei__ZN31vtkOpenGLGPUVolumeRayCastMapper24ReplaceShaderTerminationERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP11vtkRendererP9vtkVolumei__ZN31vtkOpenGLGPUVolumeRayCastMapper21ReplaceShaderCroppingERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP11vtkRendererP9vtkVolumei__ZN31vtkOpenGLGPUVolumeRayCastMapper21ReplaceShaderClippingERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP11vtkRendererP9vtkVolumei__ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderMaskingERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP11vtkRendererP9vtkVolumei__ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderPickingERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP11vtkRendererP9vtkVolumei__ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderShadingERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP11vtkRendererP9vtkVolumei__ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderComputeERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP11vtkRendererP9vtkVolumei__ZN31vtkOpenGLGPUVolumeRayCastMapper17ReplaceShaderBaseERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP11vtkRendererP9vtkVolumei__ZN31vtkOpenGLGPUVolumeRayCastMapper16ReplaceShaderRTTERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP11vtkRendererP9vtkVolumei__ZN9vtkvolume8BaseInitEP11vtkRendererP15vtkVolumeMapperP9vtkVolumei__ZN9vtkvolume30ComputeRayDirectionDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumei__ZN16vtkShaderProgram11SetUniformiEPKci__ZN17vtkAbstractMapper10GetScalarsEP10vtkDataSetiiiPKcRi__ZN15vtkVolumeMapper29SpacingAdjustedSampleDistanceEPdPi__ZN12vtkAlgorithm14UpdateTimeStepEdiiiPKi__ZN12vtkAlgorithm11UpdatePieceEiiiPKi__ZN16vtkShaderProgram13SetUniform1ivEPKciPKi__ZN12vtkAlgorithm12UpdateExtentEPKi__ZN17vtkVolumeProperty18GetGradientOpacityEi__ZN17vtkVolumeProperty16GetScalarOpacityEi__ZN23vtkAbstractVolumeMapper17SelectScalarArrayEi__ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE8overflowEi__ZN12vtkAlgorithm13GetOutputPortEi__ZN17vtkVolumeProperty10GetAmbientEi__ZN12vtkAlgorithm22SetNumberOfOutputPortsEi__ZN12vtkAlgorithm21SetNumberOfInputPortsEi__ZN25vtkGPUVolumeRayCastMapper15SetUseDepthPassEi__ZN12vtkAlgorithm25RemoveAllInputConnectionsEi__ZN17vtkOStreamWrapperlsEi__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi__ZN15vtkVolumeMapper22SetCroppingRegionFlagsEi__ZN25vtkGPUVolumeRayCastMapper28SetAutoAdjustSampleDistancesEi__ZN23vtkAbstractVolumeMapper24GetGradientMagnitudeBiasEi__ZN17vtkVolumeProperty16GetSpecularPowerEi__ZN17vtkVolumeProperty11GetSpecularEi__ZN17vtkVolumeProperty22GetRGBTransferFunctionEi__ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9pbackfailEi__ZN25vtkGPUVolumeRayCastMapper15SetUseJitteringEi__ZN15vtkVolumeMapper11SetCroppingEi__ZN25vtkGPUVolumeRayCastMapper35SetLockSampleDistanceToInputSpacingEi__ZN12vtkAlgorithm18SetReleaseDataFlagEi__ZN20vtkOStrStreamWrapper6freezeEi__ZN16vtkContourValues8GetValueEi__ZN12vtkAlgorithm15SetAbortExecuteEi__ZN12vtkAlgorithm6UpdateEi__ZN17vtkVolumeProperty10GetDiffuseEi__ZN25vtkGPUVolumeRayCastMapper23SetDepthImageScalarTypeEi__ZN16vtkVolumeTexture23UpdateInterpolationTypeEi__ZN25vtkGPUVolumeRayCastMapper11SetMaskTypeEi__ZN25vtkGPUVolumeRayCastMapper27SetGradientOpacityRangeTypeEi__ZN25vtkGPUVolumeRayCastMapper25SetScalarOpacityRangeTypeEi__ZN25vtkGPUVolumeRayCastMapper17SetColorRangeTypeEi__ZN23vtkAbstractVolumeMapper25GetGradientMagnitudeScaleEi__ZN25vtkGPUVolumeRayCastMapper16SetRenderToImageEi__ZN23vtkAbstractVolumeMapper18SetArrayAccessModeEi__ZN23vtkAbstractVolumeMapper13SetScalarModeEi__ZN15vtkVolumeMapper12SetBlendModeEi__ZN25vtkGPUVolumeRayCastMapper10SetAMRModeEi__ZN17vtkVolumeProperty8GetShadeEi__ZN17vtkVolumeProperty28GetScalarOpacityUnitDistanceEi__ZN25vtkGPUVolumeRayCastMapper23SetClampDepthToBackfaceEi__ZN17vtkVolumeProperty21GetTransferFunction2DEi_glFinish___cxa_begin_catch___cxa_end_catch__ZN16vtkShaderProgram11SetUniformfEPKcf__ZN24vtkColorTransferFunction8GetTableEddiPf__ZN12vtkMatrix4x413MultiplyPointEPKdPKfPf__ZN16vtkShaderProgram13SetUniform4fvEPKciPA4_Kf__ZN16vtkShaderProgram13SetUniform3fvEPKciPA3_Kf__ZN16vtkShaderProgram13SetUniform2fvEPKciPA2_Kf__ZN16vtkShaderProgram13SetUniform1fvEPKciPKf__ZN16vtkShaderProgram12SetUniform3fEPKcPKf__ZN25vtkGPUVolumeRayCastMapper19SetFinalColorWindowEf__ZN25vtkGPUVolumeRayCastMapper18SetMaskBlendFactorEf__ZN25vtkGPUVolumeRayCastMapper20SetMaxMemoryFractionEf__ZN25vtkGPUVolumeRayCastMapper18SetFinalColorLevelEf__ZN25vtkGPUVolumeRayCastMapper17SetSampleDistanceEf__ZN25vtkGPUVolumeRayCastMapper22SetImageSampleDistanceEf__ZN25vtkGPUVolumeRayCastMapper29SetMaximumImageSampleDistanceEf__ZN25vtkGPUVolumeRayCastMapper29SetMinimumImageSampleDistanceEf__ZN12vtkAlgorithm12SetExecutiveEP12vtkExecutive___clang_call_terminate__ZN12vtkAlgorithm10UnRegisterEP13vtkObjectBase__ZN12vtkAlgorithm8RegisterEP13vtkObjectBase__ZN19vtkSmartPointerBaseaSEP13vtkObjectBase__Unwind_Resume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal22UpdateSamplingDistanceEP12vtkImageDataP11vtkRendererP9vtkVolume__ZN25vtkGPUVolumeRayCastMapper14ValidateRenderEP11vtkRendererP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper9GPURenderEP11vtkRendererP9vtkVolume__ZN25vtkGPUVolumeRayCastMapper6RenderEP11vtkRendererP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19CaptureDepthTextureEP11vtkRendererP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal16BeginImageSampleEP11vtkRendererP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal14IsCameraInsideEP11vtkRendererP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11PreLoadDataEP11vtkRendererP9vtkVolume__ZN9vtkvolume28TerminationDeclarationVertexEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume25CroppingDeclarationVertexEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume25ClippingDeclarationVertexEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume24ShadingDeclarationVertexEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume21BaseDeclarationVertexEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume30TerminationDeclarationFragmentEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume27CroppingDeclarationFragmentEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume27ClippingDeclarationFragmentEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume26ShadingDeclarationFragmentEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume32RenderToImageDeclarationFragmentEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume20PickingActorPassExitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume13DepthPassExitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume22PickingIdLow24PassExitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume22PickingIdMid24PassExitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume15TerminationExitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume12CroppingExitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume12ClippingExitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume8BaseExitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume17RenderToImageExitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume13DepthPassInitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume15TerminationInitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume12CroppingInitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume12ClippingInitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume11ShadingInitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume17RenderToImageInitEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume25ComputeTextureCoordinatesEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume23DepthPassImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume20WorkerImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume33ComputeClipPositionImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume25TerminationImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume22CroppingImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume22ClippingImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume18BaseImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume27RenderToImageImplementationEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN9vtkvolume27PickingActorPassDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal20RenderVolumeGeometryEP11vtkRendererP16vtkShaderProgramP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal21SetLightingParametersEP11vtkRendererP16vtkShaderProgramP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal18SetCroppingRegionsEP11vtkRendererP16vtkShaderProgramP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17SetClippingPlanesEP11vtkRendererP16vtkShaderProgramP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal8LoadMaskEP11vtkRendererP12vtkImageDataS4_P9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17CheckPropertyKeysEP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper29SetShaderParametersRenderPassEP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal28GetNumImageSampleDrawBuffersEP9vtkVolume__ZN9vtkvolume26ComputeGradientDeclarationEP9vtkVolume__ZN31vtkOpenGLGPUVolumeRayCastMapper23GetRenderPassStageMTimeEP9vtkVolume___dso_handle_glDisable_glEnable__ZTV35vtkOpenGLVolumeGradientOpacityTable__ZTS35vtkOpenGLVolumeGradientOpacityTable__ZTI35vtkOpenGLVolumeGradientOpacityTable__ZTV27vtkOpenGLVolumeOpacityTable__ZTS27vtkOpenGLVolumeOpacityTable__ZTI27vtkOpenGLVolumeOpacityTable__ZTV23vtkOpenGLVolumeRGBTable__ZTS23vtkOpenGLVolumeRGBTable__ZTI23vtkOpenGLVolumeRGBTable__ZL28vtkDebugLeaksManagerInstance__ZL39vtkObjectFactoryRegistryCleanupInstance_glCullFace___stack_chk_guard__ZN16vtkContourValues8SetValueEid_glewIsSupported_glIsEnabled__ZN15vtkVolumeMapper23SetCroppingRegionPlanesEdddddd__ZN24vtkColorTransferFunction11AddRGBPointEdddd__ZN12vtkDataArray16InsertNextTuple3Eddd__ZN20vtkPiecewiseFunction8AddPointEdd__ZN15vtkVolumeMapper23SetAverageIPScalarRangeEdd__ZN12vtkMatrix4x46InvertEPKdPd__ZN12vtkMatrix4x49TransposeEPKdPd__ZN12vtkMatrix4x413MultiplyPointEPKdS1_Pd__ZN12vtkMatrix4x411Multiply4x4EPKdS1_Pd__ZN12vtkMatrix4x48IdentityEPd__ZN15vtkVolumeMapper23SetCroppingRegionPlanesEPd__ZN15vtkVolumeMapper23GetCroppingRegionPlanesEPd__ZN15vtkVolumeMapper28GetVoxelCroppingRegionPlanesEPd__ZN23vtkAbstractVolumeMapper9GetBoundsEPd__ZN19vtkAbstractMapper3D9GetBoundsEPd__ZN31vtkOpenGLGPUVolumeRayCastMapper17GetReductionRatioEPd__ZN15vtkVolumeMapper23GetAverageIPScalarRangeEPd__ZNSt3__16vectorIdNS_9allocatorIdEEE8__appendEmRKd__ZN12vtkMatrix4x48DeepCopyEPdPKd__ZN12vtkAlgorithm11SetProgressEd__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEd__ZN31vtkOpenGLGPUVolumeRayCastMapper22ComputeReductionFactorEd_glBlendFunc__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc__Z31vtkOutputWindowDisplayErrorTextPKc__Z33vtkOutputWindowDisplayWarningTextPKc__Z40vtkOutputWindowDisplayGenericWarningTextPKc__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertEmPKc__ZN12vtkAlgorithm22SetInputArrayToProcessEiiiiPKc__ZN23vtkAbstractVolumeMapper17SelectScalarArrayEPKc__ZN16vtkShaderProgram20EnableAttributeArrayEPKc__ZN17vtkOStreamWrapperlsEPKc__ZNSt3__1L20__throw_length_errorEPKc__ZN9vtkObject11HasObserverEPKc__ZN23vtkAbstractVolumeMapper8IsTypeOfEPKc__ZN13vtkObjectBase8IsTypeOfEPKc__ZN31vtkOpenGLGPUVolumeRayCastMapper19SetVertexShaderCodeEPKc__ZN31vtkOpenGLGPUVolumeRayCastMapper21SetFragmentShaderCodeEPKc__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKc__ZN9vtkObject3IsAEPKc__ZN31vtkOpenGLGPUVolumeRayCastMapper3IsAEPKc__ZNSt11logic_errorC2EPKc__ZNSt12length_errorC1EPKc__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc__ZN31vtkOpenGLGPUVolumeRayCastMapper23ReplaceShaderRenderPassERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEEP9vtkVolumeb__ZN31vtkOpenGLGPUVolumeRayCastMapper20AddShaderReplacementEN9vtkShader4TypeERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEbSA_b__ZN16vtkShaderProgram10SubstituteEP9vtkShaderRKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_b__ZN16vtkShaderProgram10SubstituteERNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEERKS6_S9_b__ZN25vtkGPUVolumeRayCastMapper17SetReportProgressEb__ZN31vtkOpenGLGPUVolumeRayCastMapper22ClearShaderReplacementEN9vtkShader4TypeERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEb__ZN18vtkVolumeStateRAIIC2Eb___glewBufferData__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal25ConvertTextureToImageDataEP16vtkTextureObjectP12vtkImageData__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal13ComputeBoundsEP12vtkImageData__ZN31vtkOpenGLGPUVolumeRayCastMapper13GetColorImageEP12vtkImageData__ZN31vtkOpenGLGPUVolumeRayCastMapper13GetDepthImageEP12vtkImageData__ZN15vtkVolumeMapper12SetInputDataEP12vtkImageData__ZNSt3__16__treeINS_12__value_typeIiNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEENS_19__map_value_compareIiS8_NS_4lessIiEELb1EEENS5_IS8_EEE12__find_equalIiEERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT___ZN13vtkObjectBase10UnRegisterEPS___ZN13vtkObjectBase8RegisterEPS___ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternalC2EPS___ZN19vtkSmartPointerBaseaSERKS___ZN19vtkSmartPointerBaseC2ERKS___ZNSt3__1plIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_12basic_stringIT_T0_T1_EEPKS6_RKS9___ZNSt3__127__tree_balance_after_insertIPNS_16__tree_node_baseIPvEEEEvT_S5___ZNSt3__113__tree_removeIPNS_16__tree_node_baseIPvEEEEvT_S5___ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5___ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1ERKS5___ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4___ZN12vtkAlgorithm14ProcessRequestEP14vtkInformationPP20vtkInformationVectorS3___ZN16vtkPixelTransfer4BlitERK14vtkPixelExtentS2_S2_S2_iiPviiS3___ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC1ERS3___ZN24vtkColorTransferFunction26EstimateMinNumberOfSamplesERKdS1___ZN20vtkPiecewiseFunction26EstimateMinNumberOfSamplesERKdS1___ZN12vtkAlgorithm22SetInputArrayToProcessEiiiPKcS1___ZN7vtkMath19PlaneIntersectsAABBEPKdS1_S1___ZNSt3__16__treeINS_12__value_typeIiNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEENS_19__map_value_compareIiS8_NS_4lessIiEELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIiJRKNS_4pairIKiS7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0___ZNSt3__16__treeINS_12__value_typeIKN9vtkShader15ReplacementSpecENS2_16ReplacementValueEEENS_19__map_value_compareIS4_S6_NS_4lessIS4_EELb1EEENS_9allocatorIS6_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRS4_EEENSI_IJEEEEEENS_4pairINS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEEbEERKT_DpOT0___ZNK9vtkShader15ReplacementSpecltERKS0___ZNSt3__1L19piecewise_constructE__ZNSt3__14cerrE__ZTV29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE__ZTS29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE__ZTI29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE__ZTVN10__cxxabiv120__si_class_type_infoE__ZTVN10__cxxabiv117__class_type_infoE__ZN16vtkShaderProgram17UseAttributeArrayEPKcimiiNS_15NormalizeOptionE__ZN20vtkPixelBufferObject11UnmapBufferENS_10BufferTypeE__ZN20vtkPixelBufferObject9MapBufferENS_10BufferTypeE__ZN9vtkShader7SetTypeENS_4TypeE__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5imbueERKNS_6localeE__ZN19vtkSmartPointerBaseC2EP13vtkObjectBaseRKNS_11NoReferenceE__ZNKSt3__16locale9use_facetERNS0_2idE__ZNSt3__15ctypeIcE2idE__ZNSt3__16__treeINS_12__value_typeIiNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEENS_19__map_value_compareIiS8_NS_4lessIiEELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE__ZNSt3__16__treeINS_12__value_typeIKN9vtkShader15ReplacementSpecENS2_16ReplacementValueEEENS_19__map_value_compareIS4_S6_NS_4lessIS4_EELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE__ZNSt3__16__treeINS_12__value_typeIN9vtkShader4TypeEPS2_EENS_19__map_value_compareIS3_S5_NS_4lessIS3_EELb1EEENS_9allocatorIS5_EEE7destroyEPNS_11__tree_nodeIS5_PvEE__ZNSt3__16__treeINS_12__value_typeIKN9vtkShader15ReplacementSpecENS2_16ReplacementValueEEENS_19__map_value_compareIS4_S6_NS_4lessIS4_EELb1EEENS_9allocatorIS6_EEE5eraseENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEE__ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strERKNS_12basic_stringIcS2_S4_EE__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE16_NS_13basic_ostreamIcS2_EE__ZTCNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_ostreamIcS2_EE__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE__ZTINSt3__114basic_iostreamIcNS_11char_traitsIcEEEE__ZTINSt3__113basic_ostreamIcNS_11char_traitsIcEEEE__ZTINSt3__113basic_istreamIcNS_11char_traitsIcEEEE__ZTINSt3__115basic_streambufIcNS_11char_traitsIcEEEE__ZN13vtkObjectBase16CollectRevisionsERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE__ZTVNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZTTNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZTSNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZTINSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZTSNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZTINSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZTSNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZTINSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE__ZN9vtkShader9SetSourceERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE__ZN9vtkvolume25ComputeOpacityDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiNSt3__13mapIiNS6_12basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEENS6_4lessIiEENSB_INS6_4pairIKiSD_EEEEEE__ZN9vtkvolume23ComputeColorDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiNSt3__13mapIiNS6_12basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEENS6_4lessIiEENSB_INS6_4pairIKiSD_EEEEEE__ZN9vtkvolume27ComputeOpacity2DDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiNSt3__13mapIiNS6_12basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEENS6_4lessIiEENSB_INS6_4pairIKiSD_EEEEEE__ZN9vtkvolume25ComputeColor2DDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiNSt3__13mapIiNS6_12basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEENS6_4lessIiEENSB_INS6_4pairIKiSD_EEEEEE__ZN9vtkvolume28ComputeGradientOpacity1DDeclEP9vtkVolumeiiNSt3__13mapIiNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS2_4lessIiEENS7_INS2_4pairIKiS9_EEEEEE__ZN31vtkOpenGLGPUVolumeRayCastMapper17GetShaderTemplateERNSt3__13mapIN9vtkShader4TypeEPS2_NS0_4lessIS3_EENS0_9allocatorINS0_4pairIKS3_S4_EEEEEE__ZTV27vtkOpenGLTransferFunction2D__ZTS27vtkOpenGLTransferFunction2D__ZTI27vtkOpenGLTransferFunction2DGCC_except_table89GCC_except_table59GCC_except_table359GCC_except_table159GCC_except_table49GCC_except_table149GCC_except_table339GCC_except_table139GCC_except_table329GCC_except_table19GCC_except_table309GCC_except_table109GCC_except_table8GCC_except_table88GCC_except_table68GCC_except_table368GCC_except_table58GCC_except_table358GCC_except_table18GCC_except_table118GCC_except_table308GCC_except_table108GCC_except_table7GCC_except_table97GCC_except_table77GCC_except_table337GCC_except_table137GCC_except_table17GCC_except_table66GCC_except_table346GCC_except_table146GCC_except_table136GCC_except_table16GCC_except_table306GCC_except_table65GCC_except_table345GCC_except_table145GCC_except_table335GCC_except_table135GCC_except_table25GCC_except_table305__ZN16vtkVolumeTexture21SortBlocksBackToFrontEP11vtkRendererP12vtkMatrix4x4__ZN16vtkShaderProgram16SetUniformMatrixEPKcP12vtkMatrix4x4LCPI81_4GCC_except_table344GCC_except_table134GCC_except_table24GCC_except_table14GCC_except_table3LCPI103_3GCC_except_table63GCC_except_table153GCC_except_table43GCC_except_table343GCC_except_table143GCC_except_table333GCC_except_table133GCC_except_table23GCC_except_table323GCC_except_table13GCC_except_table313GCC_except_table2GCC_except_table92GCC_except_table352GCC_except_table342GCC_except_table142GCC_except_table132GCC_except_table312GCC_except_table302GCC_except_table1GCC_except_table371GCC_except_table61GCC_except_table151GCC_except_table341GCC_except_table141GCC_except_table331GCC_except_table131GCC_except_table121GCC_except_table11GCC_except_table311GCC_except_table111___gxx_personality_v0GCC_except_table0GCC_except_table350GCC_except_table340GCC_except_table140GCC_except_table130GCC_except_table120GCC_except_table310