From af295b6eed76d510e7db3c482b7192931c137702 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Tue, 7 Mar 2017 19:07:45 -0800 Subject: [PATCH] optimize hand (hand.py, vrhand.py) MPL.xml STL meshes for better collision detection performance (using Blender decimation tool) --- data/MPL/MPL.xml | 46 ++++++++--------- data/MPL/mesh/index0_collision.STL | Bin 0 -> 2184 bytes data/MPL/mesh/index1_collision.STL | Bin 0 -> 2684 bytes data/MPL/mesh/index2_collision.STL | Bin 0 -> 3284 bytes data/MPL/mesh/index3_collision.STL | Bin 0 -> 4484 bytes data/MPL/mesh/middle0_collision.STL | Bin 0 -> 3084 bytes data/MPL/mesh/middle1_collision.STL | Bin 0 -> 3684 bytes data/MPL/mesh/middle2_collision.STL | Bin 0 -> 4384 bytes data/MPL/mesh/middle3_collision.STL | Bin 0 -> 5584 bytes data/MPL/mesh/palm_collision.STL | Bin 0 -> 11084 bytes data/MPL/mesh/pinky0_collision.STL | Bin 0 -> 2184 bytes data/MPL/mesh/pinky1_collision.STL | Bin 0 -> 3084 bytes data/MPL/mesh/pinky2_collision.STL | Bin 0 -> 4784 bytes data/MPL/mesh/pinky3_collision.STL | Bin 0 -> 6484 bytes data/MPL/mesh/ring0_collision.STL | Bin 0 -> 2184 bytes data/MPL/mesh/ring1_collision.STL | Bin 0 -> 2684 bytes data/MPL/mesh/ring2_collision.STL | Bin 0 -> 4384 bytes data/MPL/mesh/ring3_collision.STL | Bin 0 -> 4484 bytes data/MPL/mesh/thumb0_collision.STL | Bin 0 -> 3584 bytes data/MPL/mesh/thumb1_collision.STL | Bin 0 -> 3484 bytes data/MPL/mesh/thumb2_collision.STL | Bin 0 -> 3384 bytes data/MPL/mesh/thumb3_collision.STL | Bin 0 -> 4984 bytes data/MPL/mesh/wristx_collision.STL | Bin 0 -> 2984 bytes data/MPL/mesh/wristy_collision.STL | Bin 0 -> 6084 bytes data/MPL/mesh/wristz_collision.STL | Bin 0 -> 3884 bytes data/MPL/mpl2.xml | 48 +++++++++--------- .../Importers/ImportSTLDemo/LoadMeshFromSTL.h | 7 ++- 27 files changed, 52 insertions(+), 49 deletions(-) create mode 100644 data/MPL/mesh/index0_collision.STL create mode 100644 data/MPL/mesh/index1_collision.STL create mode 100644 data/MPL/mesh/index2_collision.STL create mode 100644 data/MPL/mesh/index3_collision.STL create mode 100644 data/MPL/mesh/middle0_collision.STL create mode 100644 data/MPL/mesh/middle1_collision.STL create mode 100644 data/MPL/mesh/middle2_collision.STL create mode 100644 data/MPL/mesh/middle3_collision.STL create mode 100644 data/MPL/mesh/palm_collision.STL create mode 100644 data/MPL/mesh/pinky0_collision.STL create mode 100644 data/MPL/mesh/pinky1_collision.STL create mode 100644 data/MPL/mesh/pinky2_collision.STL create mode 100644 data/MPL/mesh/pinky3_collision.STL create mode 100644 data/MPL/mesh/ring0_collision.STL create mode 100644 data/MPL/mesh/ring1_collision.STL create mode 100644 data/MPL/mesh/ring2_collision.STL create mode 100644 data/MPL/mesh/ring3_collision.STL create mode 100644 data/MPL/mesh/thumb0_collision.STL create mode 100644 data/MPL/mesh/thumb1_collision.STL create mode 100644 data/MPL/mesh/thumb2_collision.STL create mode 100644 data/MPL/mesh/thumb3_collision.STL create mode 100644 data/MPL/mesh/wristx_collision.STL create mode 100644 data/MPL/mesh/wristy_collision.STL create mode 100644 data/MPL/mesh/wristz_collision.STL diff --git a/data/MPL/MPL.xml b/data/MPL/MPL.xml index 5800a1200..2b8408323 100644 --- a/data/MPL/MPL.xml +++ b/data/MPL/MPL.xml @@ -49,30 +49,30 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/data/MPL/mesh/index0_collision.STL b/data/MPL/mesh/index0_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..9d055eb5fd96a72ee1a498ad579f99df0217a679 GIT binary patch literal 2184 zcmb7EZBSHY6h0)04zPlNO@ZTLBkXQKO=&Xw-o1CilAIw%(Qt5-Y2;Hxzy(4B*|8eJ z(ood+vRnx=L6T6u_P+PNtBh8|DqxJti006)kO2cSlMyEE&-4E5{=Mfp?{l8>oadc= zdAa6-v{Y@nId_jXCOa)BHO(CPdequztuDWCr}i~H{IAd8u8!;VHj$igQa5Cgu19;& zqn~|EHKEIeJBv<`(F0wya`Q4FvD;UeZf+sTLrVpKB?BKDZF@S!L62O?(cMqXr*y)k zzl$X8?3IV^>V>K!PSVlhPZOuElCx#LZp1B{Lw)Q1C|yvV#X|J~H2>-q@`vI}%jWCl zFQ?n-*02zI{40NYdrK4bbO8kzet%Sq^U^BQx>VMkT}##}Ep*Mn6*MJciSQ9zAj?dQ3J#J#4q-t9cu>YNJW{< zYxPMHRb%_IS;lI+viqzz9enjRJr(&j!3g{wz>{+W>JNDt%=-O590FHiwg4rMyp$dK z18U+}5$BS@&FAGv#ZJvuAI>oV`(}$&ZErlwJh@oHRhS|F#zVsy@x_r)#d6IoVfQ^c zp%J2rFVg0}=Ly~{z+9Mv%IBAv)-wyI72Xgl{DSLd_q1eM+GVY6K!m0yo7%yc%K519>mUVIofDyP8K&6t-b~pVl)W+Wvp9bpb zkqsF{QdEMg@OBckC-(tF6^`>6!T>IvaVFwU05gS2tRm1$${X%6;#9+|_%}|w5kWy-66E(7F%yjD5!Rth>CTlw zQMbw2iC@R8_&c|UW=L;@42$AS8^H)%g>N3fyDN&S8)t-Vzwya{S@DRK>n!Y*sl&7( zp-RE|inodV2A~-!WgncpA;&bU3hs;1JYrT&X30rU#pzG~G~z#4UEB#E!oBbArtP+g w>Ux6t;>oc?0eant(4r98F&AsYfA9t4P5?b_hdc|^kghQ*R literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/index1_collision.STL b/data/MPL/mesh/index1_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..9d11ac8bcba09d60a1170d54578853f248d874fe GIT binary patch literal 2684 zcmb7GYfzL`7=DEn!ApTDsA#MpD?}>ef<)itWGD@R5 z45<*yRCENi5t9`7zH^Qj)EqCUd7;o6aE81A0!k8;?a%l0ul;-8=REKGJkNQ*otv{Z zdz~$Pg>mJ&>`#mzW~OJYNMAQ?=Jbg7j6v4*X~xiC_+P&;XSM2T=hmAim4TF6g++90 zofdED-NNB=o1s%Z|W8N!IiHmqr3O%IrMAa!c_xRLJGc9h$sslw9QR ztKlk)2Jl~9!=}`m^nD3ydAzwtYrGvUWnFaB$r@V=Mv!SA}e7*Q%$w({mGl)c}qrZQy4Y?a(Va3mNVN^Hr|&)HmN9LJzq( z8UUV5AIqQKRoM}H9B=ucN;@Avm*&6Nt>JqyAHWV%3+uJD=u@Ir5rd&w>$w*~&2D|t zYs-O#PBK&v@d}r*h5!%mo{{2aMchXtStK3s|8+cRSV``E{`;3==c;QO@0v0;wFdPV{%AT(enz2s+`b&pmNK7WnIpmv9qp9`#3>AA&9Na1$t&gOV zwe>%K{Mc^g9t(_2vwY65CfIYVAwXNbo&34=iek#>5`4z~V{ZUvRLsyHsr#AT&&utk zizOE3L5G}~pf75=E-g=uropLSYM2jTLE?6Lcx(;3emR>=J6Wl?H zsn7UUS`(8=FgxxFdjs(Ns-Nnp^P}HZZxYgub1Wi;r*9%pmztQ`^OKaMO(f+VzP2^bKu%5g+7f5s7DrWcuBgB;a z6IiA+r6rM)A{UNxh2IL!7=YKMXtMg}D&1Y0%<;WAyCTQlT|`Z=j#3v7Bc69{#_<@ln9ZBR^EBuOZx6ZG#Zy~kb+Qs~y+c^FTV}!Wj z&K$3mUDGqww4u3zR(K9^mw4&#(}j82w8FAQc;}b{a|0y28bOSAQfckOC4#ybfi-mg z!P;4*obZ{-ZwJgKIEgszcs~O8?9QYkN80%5#;;Y3z*Ts=0_@wrN7?I=$3xTR3rWOi X5#hh&l)mWvDqb4&3&Sd6Z$!kuszJ>4 literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/index2_collision.STL b/data/MPL/mesh/index2_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..3739de3fb6dbb1f114b3b7fe8c5ffa945856fca9 GIT binary patch literal 3284 zcmb7GYgCj~6g`kAiGo>EE73$W0R<%^(77M?Vp?e^Noa)lj)54#Q538th!0dSF&Cl1 zf?Q;1Xv&Jv)y#Z%?#)_=Z?uPkp`fBmLB$6c0%h~_-2OFx@7Z(qIs2S_zPCPEZb@5Z zO7KZcv!wdGnPOU&U`h*`FfMGOkN?W_B|gCc@V|Z$&giZMOC7NZ%jNwYhs0~;vx#HR z6F#fO+g8b83^$xCeIS3N%` z7=ix@pr(AObQ@bjZDpC_qhSMh$CN?(g(NrPQMp_HBg#cHJoGlkYtQnQIp6E|3tn~R zm{hZrmF(F^Gh^b#!o}0c^g1_fW}KI8%IkLtNpH7b_$7d(cs(G!-yhbGX``Ho)+=wY znBh(Q<9;EmXiXz=TUW>D>`W!o3RjTl>W>@O6#Y%)cV_ZyvX%Q4Tq6MMJno4xN9M_n z&?wrzx{1CmT`^R{8dIz|{$-1VnVcJY#3 z-A-1yn~sQIJ?FB{PirWy_TGXL{oYh7IbySu=0eTxd*&If>$@B$tH@_N90yx7*@&?x z!~NpB?A3pIXs3c+)G=B`yihe({vOaq2YDMLj>70sOCgb&J8E4xQ=XQdScLm zytZiFwodY5LNmWuxzUI_iaQOEkPRC|EVLoX|nuQ zUl+bFX|%-JVkTi(wfdO4Vs78{yOY(Z^zGubWjJZSo-T0|?x>1*km@coz6y~|f$fTd zRabZFhxko?`SUz-@{Rty!CKFcIlP_Soe(rfhDLu&KW=Cdm=*3D&JECXAXcP|+ea(C zQrOKyGi|rNv>G?`dTF@wQfrxhYeA0j+J4Xg&JB%|BR9<_gTLv=@C%-NmDP=jX4zo0 z(H0U$aTM+}W(eT!m(Cn5efS4SUr?+Ro_wq zHt>{qYxYqx?GGC_ca`cm-pkIGe4^6|PoA?7cC7Pta;aCP`t@O_llzJLj3@ z^#n6fy@XVZcTCP|6xWX@DhND@7!6RGb6XVdh?K!arzv(BjKHo0;6FOe(ce8mUbfw& zI0~cH96eLc(d6>?#DRVZ66=Az3+oS%RpLh%>XD)o;3?=%SaEJ;%F^rw5?-l{nTAage%h zJumQ1;7L?j8M4;X(DTdKbMI}W_yyOY?qDa4VVkZx! z!VCd29{SU%2Er0|1TfrptOsTYaK(Qal{>A}K$94L!PR1&018uWw6x?IcFp4*1%ab* zZUEPJ`>?#emEuGH>B@d!kHWhGaNA`w?He}0v8OFVxoQ}J^8sAn>@6E3^CkYW z!1}9~vnS&z$$P<*{rF(E#8DWHCkCKmgGK{G66M+PrxY*2&VU^QU{ORS+tR+D`^^Xv z*a0vC&$07z_Fu{d*Pfsqm&SzS8O0q{_ruglp#2eRDVxgvJ#yUO=2b_3jLfa>(U;j7M7Y14*eD_(+c2A&0ge*tWQ BKbZgk literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/index3_collision.STL b/data/MPL/mesh/index3_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..ec42373086607f90ebc91500b1a4c0dbbfb786c6 GIT binary patch literal 4484 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 TP*S?y;p2Md3QEKXoC)B6XnLD- literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/middle2_collision.STL b/data/MPL/mesh/middle2_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..447bf724098cd0f1a300241e62f6446198ee48b4 GIT binary patch literal 4384 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 literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/palm_collision.STL b/data/MPL/mesh/palm_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..08625a6f10ad7bbd787297878a431d7962ad1def GIT binary patch literal 11084 zcmb7KX+VzI`#$z8V=a=XWJHp(wY<-BjzUzjRYH~$+7qR;Ytv$wlBFnXQX)%;_kGTD zrm>7O$1c&rxʈ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 literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/pinky0_collision.STL b/data/MPL/mesh/pinky0_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..ddc6371262b3a782c97f36c9c28f172e32846041 GIT binary patch literal 2184 zcmb7EZBSHY6g~tkxb6~Q=uFV=T1dN#h%}nA_wKz6!XVD@9XUOYHfEZB9p#A!(<5SH9gD`}&GCYYoQTd-4n`P4K@yvk$FWHs*d@RY7Zp@ALMh z8qU-`L$(lkY{#K{bMa}OK9iLoC+fizlV}HKXGwKre7d; z{+-~m_89q}!n{7ltGTxY|HuvQk-n{>YzgLF)n_>kzlgsW)WCV?T8Xtv&wuofnr|tf z|I9Xp<`&bZ>I-f>2cBGhLqj@` zjuUg~dY`Ii=Qmo{kJ#wT?Mp=GGj)cAUgrHzu~iCHxEdXR`;a1UGw zz-dgij1@lQ7fwseuJCrJ4tyb(!B=F}X*~frrJuC~rbN-ytYnH`FaysAu+%lF4CoEi z9ciQu=^>=X(?*J(^CK9=PQL%U%gUE(9aWj*m>!scD*;@Ryvpt|fA>ot(3; z%T;1u>$~px#%zkUYd;G+?mlkl=1K~5qpa_jc);<*YqLP?Jz6H;%q|k*=Vvc zB#Jo6EQkHTl>nZQ7b)>PPj9>QB1YjJEaR0XHCJl+R(Sh_gPu+ulWVUS`H9P38DBWw z2ta1Kof-rFQhpW#k7=_uaA2+lTUHEm2 zyX0fF8+(hDV1)pV!DfrAs!JGL;Sg`F9+eNQGxL93o8@q7cjXOnp_^iOoiyXi`Ec9S zwO4f)g+eFGzN*TJ8&YR~W@^*H~9g%57l1H6byouo8BT@ZRlWa`rVr_ppM;JHaS?V*rUcJH@K@ zeqpMoF#)4+qFBbU1}%yCUTaOAkeHm~d&O*k1)dI>{4I%o3(^U85G!PRc%mmQO;05; zbYMir42;6L0hl?QMLQ~j#L~_Y89Rto;j94s_*Nc`PrfGzHLVN-*TrmKq7H4Qqx18^ z1@S0{QMeyg3m^_w(AqOI@;4cSZrmN$#VG(d93#<`v^tX8f0D@uzC>Kfr|Ov`K2cR# x`ZsNN;k{!w@x1}e^-H1@5>Dm@OjeA-m&h{S^Yx&=tm^S}*2(wZC+EI^n3a4-2s+ zlC{mjwR4gS|pX}n#yIDsu{{8no3N|F1`TbZT( z(}-1DzOe0utuT12LCiU6Bf|b#W~+Of7`SJm2r#|AOgVRT7}t1zyIiQ}nYFc6;*((y zQLP&g6ir@CcIpIim&ZfK-zJf<;zk4j=gnnetJ?y8SF^W_PcUL~!V@7(X`y^sZ)HRj zeXfxsOgq@2#w*J4_xc2v;zx|y?kIzA_2k)z%pxzbD#(rjC|RSC8qiz?=ZO zPiW-%`Q_||hV2CRz?^6VQ=*YgD@xgoaeK&uAPdpAYlisPD@(u#TnT`g9xdCMZzT5G zE(y}t73{&?%BuGa@I;kO0{U7bzE=gZ)Lvh zb0l5Q0~y7eR;IYdiO93|)d7rKq?V(u21u(StO?vR6UVB~iwAT){!e=PH6#!#ZQf0N7L;nHO)C>|Wb*SShRx-a5d0Lo3+sm`u5%IDo}kmF2F7q; ztdi7)Qb~;y9N@>pJNR5Ra3-@l2+qV&jkU5n-d?P8tE2J}z;mXCKm5g0);H;A5hHLv zj0V`Z@(35>($79yoGjxs!2ee`g8|a})O@SkNfLa-nZvunYDR2QC}WOWinS_Y)cpMN z5I$^Z19>`VLTwk{8lxOwI&U-xuBR=GzH;!%k>;+6lyvVWQBK6$#o7S$H8gXc?zdT0 zd>oH!VfWGAy>)DtV2HFMJ#Cp(4}6POFzwE{x`UB>xOpqL@%RKIa6bUs!gP7X41wr@ z;c(*Mmr8Mh6=`Z&t@V=z?}xM03CeleyV<>a*#!4YzC+_jxdi|BVf_Ju-^ykWMZPAT zyE9~*05}=2{s4NXGt$k=ggh=yq?qFgabf^iL}+;Jx(96NsU;$I9G(R04=`8zf=oIg zv%ihcpuQRKBzQuAr1cwk>zSw7n|H5sSaV#L*5l?g1J~kxh}io?QclEZtfn!qk`u+Q z+YWqh#s}0p$93sf`)0ILX~r$!E6coj%og9mXaM{Cds3+WGWjPwib`ty#X&QlKT*Yh z_MT literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/pinky2_collision.STL b/data/MPL/mesh/pinky2_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..375aa5f97c3d2b180679c24033c0767ce434be6f GIT binary patch literal 4784 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 literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/ring0_collision.STL b/data/MPL/mesh/ring0_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..9d055eb5fd96a72ee1a498ad579f99df0217a679 GIT binary patch literal 2184 zcmb7EZBSHY6h0)04zPlNO@ZTLBkXQKO=&Xw-o1CilAIw%(Qt5-Y2;Hxzy(4B*|8eJ z(ood+vRnx=L6T6u_P+PNtBh8|DqxJti006)kO2cSlMyEE&-4E5{=Mfp?{l8>oadc= zdAa6-v{Y@nId_jXCOa)BHO(CPdequztuDWCr}i~H{IAd8u8!;VHj$igQa5Cgu19;& zqn~|EHKEIeJBv<`(F0wya`Q4FvD;UeZf+sTLrVpKB?BKDZF@S!L62O?(cMqXr*y)k zzl$X8?3IV^>V>K!PSVlhPZOuElCx#LZp1B{Lw)Q1C|yvV#X|J~H2>-q@`vI}%jWCl zFQ?n-*02zI{40NYdrK4bbO8kzet%Sq^U^BQx>VMkT}##}Ep*Mn6*MJciSQ9zAj?dQ3J#J#4q-t9cu>YNJW{< zYxPMHRb%_IS;lI+viqzz9enjRJr(&j!3g{wz>{+W>JNDt%=-O590FHiwg4rMyp$dK z18U+}5$BS@&FAGv#ZJvuAI>oV`(}$&ZErlwJh@oHRhS|F#zVsy@x_r)#d6IoVfQ^c zp%J2rFVg0}=Ly~{z+9Mv%IBAv)-wyI72Xgl{DSLd_q1eM+GVY6K!m0yo7%yc%K519>mUVIofDyP8K&6t-b~pVl)W+Wvp9bpb zkqsF{QdEMg@OBckC-(tF6^`>6!T>IvaVFwU05gS2tRm1$${X%6;#9+|_%}|w5kWy-66E(7F%yjD5!Rth>CTlw zQMbw2iC@R8_&c|UW=L;@42$AS8^H)%g>N3fyDN&S8)t-Vzwya{S@DRK>n!Y*sl&7( zp-RE|inodV2A~-!WgncpA;&bU3hs;1JYrT&X30rU#pzG~G~z#4UEB#E!oBbArtP+g w>Ux6t;>oc?0eant(4r98F&AsYfA9t4P5?b_hdc|^kghQ*R literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/ring1_collision.STL b/data/MPL/mesh/ring1_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..5b1f6af500798af90dfc1dae266494a26ddf0fc0 GIT binary patch literal 2684 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 SbH7p>60<1o4@O~c0{jhvjAjS` literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/thumb1_collision.STL b/data/MPL/mesh/thumb1_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..97fe1dc9c3f061635a35021c4df2c5d8f8981dd2 GIT binary patch literal 3484 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 literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/thumb3_collision.STL b/data/MPL/mesh/thumb3_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..373c2434d3387faa788b274ff9db1d6b524455fc GIT binary patch literal 4984 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 literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/wristx_collision.STL b/data/MPL/mesh/wristx_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..d6d5ee4659668341a722a5c2110b83778bcca44f GIT binary patch literal 2984 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 literal 0 HcmV?d00001 diff --git a/data/MPL/mesh/wristz_collision.STL b/data/MPL/mesh/wristz_collision.STL new file mode 100644 index 0000000000000000000000000000000000000000..95a0f9b48b50407944651f7516b88b25d8919121 GIT binary patch literal 3884 zcmb7GZB$iN8h)2RDoQ#MWTFUy3aAJP3is@LwqR;13TWPvuZ0L=BH&yQ1d%gpSP@gU z6wRepW+{TiXx!m&&*p5Gi)P3rlp{I98U@QrxqhKyN_@=u`R@5Q=kM9i`}I8U$Kvf< zbFKLq={_5+x!FF^TQYLeGpuu74PFr86Ogwp%_k%f{;w~_cwOd^MsB+vkf*qAqg_e$ zI z6jcHXyT8=%QQj6~Us6#@dw%FJzpz|oKbEg2j=|%Sn~RO8nQ5f@&`~Mrg32-++2q7; zt{Q-O<_=mu#b2&EeM3O}qf=$;oTJE%>0^i~L1pCWZc)VsKY3%{5pfOP30HXm~`V{-U zV}(5T@h<(-&ut{M@ohHGvQEQniVU6`Jxcd9XLFZl-w2#bmsGamQWUFs=E*Ss0N?c1 z%9AIa)boee3!Gz~&wgto?=<$?)w(Q$k0sYm%7v*j`I*bXwEv=wxczEomn1hq8CWp@ z?=Q2+oyAGKW70jDl-bA&tJ2vzuL=pHMTFD7ucY5+ndsQR&lS|ZS+SA%Gor}U64(Dx zNlN!Et>d#d=$9Y8NbxJIN>NuqQ^v5Ot`fR)%~TodwPlBmSTE&}KZVych}vzx;zqpU zi|P3^i;iDmU5SYL^JnE{en088Eo(T|66Rmze8{8E6nD3TFJ0m-Fo^lT+*(T-U$(OP z&3jaUWaWI*&lbBp7@19xb_t#mxSIhAV~G@p5)Phl-cacK8LoLRFKXGDodR0 zD}8CnBK{7Qeb0|-2ZB=#&gW+C)6_C|dSXGmzz41pv*b*gKTF)Sh5Ds7 z>zG^2Ii4{9RY#&&TDw)gU%Q=SyV#$|`N|Pj_29`)JkMhx$DNANV%LuU+amck{i}K2 z>0*kz6Z0=}{!ZX#`bSKg9`-Vr+pemt;Eil{q^Ht^XGz&%m3?R1#8&P7iv+Mcf1lKu zxPy;%iDmbWK9IfWWUr21DZV$p>K z4~lcw@yQ4lc1YnHr3^E!70w)28la)d!`|7jN1mBhD5xE?CT70wz0jr&;TiIys3HM@ zU*WnLeSUj9^=eM00Cd$=Ye}Pk57s7g z{0gH*27^|&%y)_$)`RXPQ=B25kGLWLBb`5JnD*MR{`^j|zz0TSHUSRF0K!r5&%O+9yiBjka6x4gx!au5`APEwc2>S*%bLh zAi;m|M8(QCw!v+Mzj94~_)a5TJipp+E66kxwr~n($qMcL}}#0W3c%w6=1*`E}D14PO>`<6uhwF?SUD z>&_ZheP%bofADt3mH^!TQ0R$3yVi5)Rf6v;VTYrO96+ltrLWgJnH;BD&DaNuiiuZv zo00j`5HBgIY=)3ILJ(X9fQTW5y8pRNTAp95;jND&#J&LzK2>Pff+AuadZOV!I1gL} zfciRx63 - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/Importers/ImportSTLDemo/LoadMeshFromSTL.h b/examples/Importers/ImportSTLDemo/LoadMeshFromSTL.h index 65bdd330b..95cd93ef3 100644 --- a/examples/Importers/ImportSTLDemo/LoadMeshFromSTL.h +++ b/examples/Importers/ImportSTLDemo/LoadMeshFromSTL.h @@ -98,8 +98,11 @@ static GLInstanceGraphicsShape* LoadMeshFromSTL(const char* relativeFileName) } fclose(file); } - shape->m_numIndices = shape->m_indices->size(); - shape->m_numvertices = shape->m_vertices->size(); + if (shape) + { + shape->m_numIndices = shape->m_indices->size(); + shape->m_numvertices = shape->m_vertices->size(); + } return shape; }