From aebf85540bac148932e0fe5efe3ef1f755f8268b Mon Sep 17 00:00:00 2001 From: gdd Date: Mon, 3 Sep 2012 08:53:51 +0000 Subject: [PATCH] Fix several bugs in the "Enforced meshes" feature: - Enforced meshes are now correctly saved to study - The size parameter was removed (unused) - When more than 1 enforced mesh is added, all are correctly treated --- doc/salome/gui/GHS3DPLUGIN/Makefile.am | 2 +- .../images/ghs3d_enforced_meshes.png | Bin 32993 -> 24134 bytes .../images/ghs3d_enforced_vertices.png | Bin 33075 -> 26700 bytes .../images/ghs3d_parameters_advanced.png | Bin 36277 -> 30526 bytes .../images/ghs3d_parameters_basic.png | Bin 25962 -> 20489 bytes .../gui/GHS3DPLUGIN/input/ghs3d_hypo.doc | 2 - idl/GHS3DPlugin_Algorithm.idl | 8 +- src/GHS3DPlugin/GHS3DPlugin_GHS3D.cxx | 6 +- src/GHS3DPlugin/GHS3DPlugin_Hypothesis.cxx | 578 +++++++++++------- src/GHS3DPlugin/GHS3DPlugin_Hypothesis.hxx | 25 +- src/GHS3DPlugin/GHS3DPlugin_Hypothesis_i.cxx | 183 +----- src/GHS3DPlugin/GHS3DPlugin_Hypothesis_i.hxx | 6 +- src/GUI/GHS3DPluginGUI_Enums.h | 2 - src/GUI/GHS3DPluginGUI_HypothesisCreator.cxx | 79 +-- src/GUI/GHS3DPluginGUI_HypothesisCreator.h | 4 +- 15 files changed, 420 insertions(+), 475 deletions(-) diff --git a/doc/salome/gui/GHS3DPLUGIN/Makefile.am b/doc/salome/gui/GHS3DPLUGIN/Makefile.am index 3ebe707..8d25b01 100755 --- a/doc/salome/gui/GHS3DPLUGIN/Makefile.am +++ b/doc/salome/gui/GHS3DPLUGIN/Makefile.am @@ -54,7 +54,7 @@ install-data-local: usr_docs *) echo "Installing $${filen}" ; cp -rp $${filen} $(DESTDIR)$(docdir)/gui/GHS3DPLUGIN ;; \ esac ; \ done ; - cp -rp $(srcdir)/images/head.png $(DESTDIR)$(docdir)/gui/GHS3DPLUGIN/ghs3dpluginpy_doc/ ; + cp -rfp $(srcdir)/images/head.png $(DESTDIR)$(docdir)/gui/GHS3DPLUGIN/ghs3dpluginpy_doc/ ; uninstall-local: rm -rf $(DESTDIR)$(docdir)/gui/GHS3DPLUGIN diff --git a/doc/salome/gui/GHS3DPLUGIN/images/ghs3d_enforced_meshes.png b/doc/salome/gui/GHS3DPLUGIN/images/ghs3d_enforced_meshes.png index 9ddc0127df92bf99b76244a00271ff76cabfa8c2..df87f7751497e8b4cc4dfbf2376f9e758e874219 100644 GIT binary patch literal 24134 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 literal 32993 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 Wq100DFUN3rl(M3lLg5XQ!2bghwoVrS diff --git a/doc/salome/gui/GHS3DPLUGIN/images/ghs3d_enforced_vertices.png b/doc/salome/gui/GHS3DPLUGIN/images/ghs3d_enforced_vertices.png index d3a4bbcfa49c2ddd8d28f288c594bb7a5d207735..27768e4259a2f76d6017ab6ef7b984438f7d3a23 100644 GIT binary patch literal 26700 zcmbrmWmMJO+Aq9F>6S)Py1QFIL0UjMrArzX-3=mL0xBTVDcz{Fbc1wv*O}|yV?XbH zpELHS zfd8KY|03bu;q2yv54l`l=(x&SxR|}Sc5=0Lbb!d%nYg%EP?=j$y|ZxGaeZ&$B21;` z%I4x`YU1Q%XKiKzJ4#usRu`O10XtdK8XN>s@N#l=wX$%rcA=7SbZ~Kf?`8%&kb{2q z3<9Boyp)yF^vv4J_J9&h%=Y=usRttBDR4*z(7EDBBO)P|DQFz26C6HW|AwNFimndN z_$dKGn2>MyEdcG0FH^n~6MU+wtn90R5CZs@{M5f3>IQG+tGW)}xqG;K)X|9=iJww8 zx#Vn$Zte|aEoHg9i?bT<+fA=X2qT^>#nkN$kz`H|G9lh_6&6HDG>$_&T~j+^e#6Gr zBoy=NHYC{qTW@Dp)i130Zg|k70dvFomo1cnb3;*ewV$4saOXF@K#*r~oDOT40$q?? z!3)E5(kaE~##CXvyu64S$nJ8+3yq8%9O17@k-IoM`8K@2u{%gdBQ8EDv6t2H_dZL; zmX|RZjdN6T|5}}v7VpZI@V zRjL&Dd_N};7@tbC_FjnC_iOEnLntRYf}d%Kqp*}Qv0q~vAq0zc;;j@@zz!p zc~se+=RGl6rGatgPj6DoxQ<7m!`zTRJA zD9wLFWJbnA3=z?-?T=ZCV#Qie2=~tRHQss&nRAnTR%hZR#ngQI^yu)QPXCnAuZ!p8iH#CC{S9Q@Z2EKuCTS zdUpqvm6xZb;v8XQ>f%i3U;p`gKvqEkrMbD8io1nam~(BJnQYOW{n>lY%tbgUY6V?O z6eNM`+P?b4Sc=#-4R6e=zd!X6^z5@oTO4h@iLPqX3ykT%Uc3MQr#9`?g2%PAPT!%)=0#bL(ocebo9EH_kENo#V7XD z{A7PucM;T_ow+pfG_}fKGN2*V>c%#C98gtS&~*R(J@auRL4j_>#;xIEGdChOHdKk; zg;iPmwQ)_~&`cLr-Di(H)n%naCd|gt)@+>kggS?g#F;xR-m{Bo�q{w8dbgAhB(v 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 LRKJubZyNAl`Q-z2 literal 33075 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�^>`y z{{+Zhx&y$Dr57@&`g&0V`XQyeh;~F+2Y$)2i%)v3AQg;N1s@eG-4D{lgm~Mh4l#TC z`_Z)t?Peb&CG(?zoUnItY66XuSnQg1s62;O?hp`Yn)lxT>yhzgacXw)!q)oweAMSJ zucUnaSTKXO@$vDai?3k=k%rJAws0E#4*g{_P8=LkCQ{6iM@Q#DJa{dy+7>xRhiJpH z6@B&wPNv@>a=_~#yy8vK*RB5}2B@i3wCf&We4b=cYN*gize*f)0qU$wfCpKZW#0l) z!#quv6;U=x4gj;Hz_nKB2m{a#Ou1@D&83%KObtNTy6cNcdN z#v_efER>M2u%zAeV)`AeI{*9?PB_*!PFi@|^NUrg0J4H9yb+mY04`*hd2Yln zNu);^O`o;)upmn=${%=_bH1MEJ?rS9i45V7%G1+q+3gnp!65oBxB z|G%>DJdIrY?;nYwb{Q|8iS*^72THN%jA@Z;w=QJ#9Gu}#p2+CxQX^sZt5uQruw#4T z*%`buXG+-NYkC)$1TT-@%QQ9;0!snPP~(pNixu6CTdrfQfKo_y`+DuALgcion3t2NEh+I$qY{tU_o)I<*qpqV zmnB6Akl#bg4U9)uEtw#CAZt7AwHoSoAhQLv$Jr z>5c;?<&EC{ZKhEYtem3G8$@6O`KCU~DmzE`^tDYb zPTw!3)0oL{yu)<$Dkakr(G&Fu9v#-QI+G*n;|lAf3%uqQ7A*E=jIEJW;kC83YlQT~ z#5xh&cH~oni`v^iINHla2;+lsRB|0r$g~5X()$Jmf!jtU$kC8DMX>v(e` z%eO3rCaNRs#&^o^GqF3d?N@SF$(IK=8cZyRx?1`NMuLG2j82XZb7@~jSHM}e9}l8@ z`u2ztWspCUbcoKsQf}wG5+KBo`K^;aC#k8=1wEAJ{8-1hk~Vn#+u3DW?Og+M4PhVK7U`b|Y=_G+K!j%}sQ@vWcJOG{y|U$fR$ ztc$n19C{zAdsdSLoF=G#HP-JA>=!~6!9tVsapQ^`F}!tjBjRmU;v4?kFhB+xCpLa; zT@fw^LN4ijj32w`oqIROJ6$C33U9NB{ePmcNLrbJu5Ord6PMC!Ppj?Zuc4ko_`aPd zDZ|y`beEdU-fJfH@9eZ#^n2WI0Xx=0)f~L5*ExqO$rT^9bJroO9ZISp<>KNR+Wd4* zIhnuR%mADOAc?=o%~e!DiL^9O5C%#44Fwfx*WBZZq@X2_mz9%a=HeoVh=}O5D$}mF z@u-+7g@sRaeEaA!*6Gv9Z~w%BAT@2R?KD}2PvK! zcL+X9cdDvukBZ44okdD!pacd+dV5cqdWA@ezel)b$B#j1N$!L*cvADrX=1N|6>x2a z?P8ACS=SZtf!+#ie(|#mZ0vO`Xl6%TWs-$RmNwtmQ&qRx(&IMMr5aDTLPJrkc+NOi z#KK>wvj?6~*U!~LzAt(KkHKe)xZKRH5$3H=EiOJzxKsB8D05_-+#9KFSU!u? z@qx;?7%2E7sq0A%`$mkA-T25*#2R0BO2`fnJ;eLS8*mJ-(=QUMal>c?a+J<^?k4co z0Wa0cXyJ7Z@GH>8Fx-~_=s65ZN=loKA#~DH=N(?}J$svxQanCi0aBFx!W0u2ZZqL3 z6ip$7^7{I;X~`!~+qVf!-$ILM82Kf2O>HbSH8nH4_Es1sgGhjnGf0U^Nik7Ed+n0m z+h6Ytfn>||Kz+U4jLw4i>^!40D-J*~=vv0WL}7`d@gxp6Fu{v!qA6(JLB{#ew&>f%-K`H(^ zUA~}hy~!*-JOpO)&$Lh)@(-&@N@8dXWFwbx%Kkz{#{+_L2*5RTW5UG?f+{9FJHI{H zKm6GflaLTn`OE>uSh@__-}C3R&0UZE;^IiJ9ZnL$8DZm41INOran3D*O5Bq_EbNJ0 zgdU90glSg09+Q9Y3Rrc9cEuBy@(d**jndS*{S6qqaukqMZW)BUTzTH|QgC#BCGYO;29p?%?%#yH zelt-6(}@30MNz==kp3pvH5_@_j8zi%NSufP5z=jY8S)^b;$O4D(6~DT!hv>?2{yN3 zB`%>FVZNt1Ib3|jTyy>2PZcce(~YB}G&RTXl-P~7#+ZSTZw3#gZIxC!pe!5&Kq}!!iR~t{ek~6UFgkF zP*%q3<-IfQ)^I=vZky96IEsPI%`#@@=8C`XWUN8`VTqyFVx~He*#b|vmNUazWb#Pz zHN3F6?VLhH2maDY3f~;}CvFIY_O7nM8o4X%PK)d_&9cnPNmtDA88*!1p(?uRTF{kQ zov{3n#4u0JedyQ`6TX{m!gERJ4NgSdIubVfjpW^F`<=8EUg>@sy59k#c30_65#MY; zFq1tlTX~Mtnwj~`=5J5`FGcMyN#Xy<7yrjyOJ8p>V#=S^y>t%pMn@iTRT7Zlfj8?) zEU!(V z$O-iv+n2L_C+#y~1caksDLkU^|Gci*GLXt&?p^ai8h z-uRb>rXLCMrpJfB&TTVk^TjvJ9g)NQKq)O(3jcrrsQoqp_F6%IemfxVCiGc|lz7-G z9X$~B%4av>=ygkl`M{#H>#tE5afNUopmM{&_4BYqG&D4j*-shgP*3CIzk$Qz+jig} zFR<-3%~pAv$m0cV#vVmS6G4ja?(Tl~Rx4|k2ypd~%gezK37Az9(NO`7d^mCvC{R9O zA_Z|ga)~Wg*3*!Z!lNiUtgWqiPjY`D6=G@V{k`fv>#PUmEqj1W9a;xoxmT2SQ{V*^ z)Rg3bls~kZD^$OE(|C908B>Tvoc+#<4l=_w=LCM9%zYdU6y@m;h`R{f^O= z%nMy%6iiG^u@B-QIp5iF_5Rs?)m{A91zPu2vc%Je^byQ2v0K62}rn3zGxUU_>qeo+^?NOYjgN$uSsNJQ^9+0Imp0u&y91`2N;?o1u3YJ+PT;(9O_& z8oRlE2kUh@$_sO_s0?wGo7DPZAVuH87r%)%03vgBRo zzG;G@OJD%6KlZa5<_VQG#dCWqFsS*e?bv&`B7yz%2kgq48dDhbAjRO|;D8vsKrx`; z)V5bTF)&^9PKTC^z(A~8nB|CMIdCLUj2AEB(FoeShtUE&FwUuV>$6hqDrE9;@co(` zImf$LG(abbN?=GxQ&STr&{nQFK5u?240Qu0UCvR7ti;~{{chvOPO-WE(dV!PtFFU064oGDL%Xk(ntp4m(=mOul~$!P-Jdh`84pFNfPoi;T_f^^CU zLiZ7&bd3`_<3d2;c3xeLHi{oNUw22|BeK9~eeap+{HtK_|701i;s27b((TJn7#0?T z$W@Hf)O@|Ne`+b1AvL&hacz@t;NoGM$%}kCw+sT$kBm6;7ZH;S9ux|j61!uVvj%R` mgjC!$V*y{nh#$p~oG|b`pJd77EskD{!qOo7y0|NjTySAVwv literal 36277 zcmcG#Ra9P06E*nY?(PuWArL}vcXxMpf)m^w65KU`;O_431b26Lo5TC9e=cUt&0GwN z1>rfTbGoalt9R|%CtN{J90?vD9s~j*NlJ()fk5CwAP`t9EHv=R=lS6q;1{HmkfaJM z@Z|+-5(fMY=OCf!1l*4f0wMN-8I$rafk31nNfAL6_l%QFH!sY&r2${<83M)x0q~$t zIk;&miB>|PAUfI2r#yoW(z}4n7$ud~0C=(lNFmv%-6be`2Q-9SNo6a)1Y5TKS7SGG zbJyXsKej?y%-NJJ*F5_f`x&X<_P?6r3!p*@{{Qf;7(F>RT@4pN3L8+QS80H$m1q+`sw1Q9-*hBv(F28v&nNUtKp|Fqpthke%5hqy%Cj6Z2 zSShdtw$>FMw9V**!f3)tt3cD-{4Tek8L|+kC0r+;|4nA~z!{M%Q~5xL<3di+**{bn z6fPR~%#Hb$RCaJhfxVkc6@Vz<&D(j1)^pgE!uJd1D@*^eW}`AJE4uKH)3@4)K>Uq-aLdDV=&=C~b9kZ<9G-gxi}pJ* zZ&hdzH2a0L-w-rG@achtoCM#qqAjC_k=4*N$wo*UXj z86YG>wN~^s!6*8iW^=va=G0gdXnH<=?un=ZXGgUKNJ>1GBXZaLnSt2 z#~baRyl^nK&?p+mH2OzyL-9X5C3QRT44kN?cPUvpYDh`Bw+z8LRgIekyOgK)&405!9*xmROJ=V zmV4VVX6o~ehJswQhyDyX7i0f%=k*gTu%K%(2sXSZG4C);VPn2aaZB)tx+ zQa>yGrAboiV=W5FLAYA$*Vt`OTXF;a;)hSl>Cf5H^k7ZM&54MWq#S@}DDu*LlptC` z(n^d#7)g!StANQdE*#fwJ8bl<<;kK~%3A|e8@w{rNA(uz zmqfZ~j>Y@_B`#8Q)Yg0GKMQO2p*!7~7q_J)!79m)P#~m+$QqdsQ?kmEQB27Hk{bI{ zt;37?=LSX!Ypy!{)3vQ~m_O}O>px*Xjv;0wZc;lO7qWsTQ8?QI)|jU&G^pZse60C^ zdGK3YFWc+(xMaEMuHvQKnr*-uNpYtJ6*U9T})Bf<4~(#cZr%s5y7exa|~ zF;*q((asSN)uWfph0u$^IQ)dz@OwJF@ySOi!X{2&N`l@>LFTD2_bSRt9rIkv`HFvQ zmcMAiK`^>$_*7Zxpll+t4`^`M%h=xMk(Diwy$C1>IA>7-Vb z%eX8?!_Ya&Sr49w1fp|=gG&CmzJ>qd679KpMw$)lkydRPLp(T~G?C+uHlX%`%=JaS zu)2NNFSe9E1%E;Dkvt*HuPPxaui&8gt*J#UicM5ZcxcdB0FZ{mhI#Yf%+t=4cGn)=M1qG0l*a+Q1!iMarh7HRGRT`*h*dZ4e4!F^L zX;gk!UR|VmKM)PB4l!e6tJ^$Di^Gjll(?POT#{SH7FKD1O4Q*w8KuOQ>mc%eNhvC zr^*TXb^VY8flF*D|4SvsO0O`S-M5Le5{iae+O#nJRBa(vMu%1BBZY0*OE$l+N-si) z3=<(OrJ$t~5I3oSDC75RE?%+w;gY`z{5MFFQ56Z+5QPwguEUiODg)qQ88qHtsr4qYk82F<8u z(`*p{siDEIo(HSPjgrq zNqjSgc1f?_081HX6lgsiO;p=dN#zfa(8$4X*(~o{%PdOUptUwH36bC2)++vn{ERA4 z?8>OR845eC@EOZZN@h;fB{wN%8g_^|J&&c#VAxwrhE;w)#qsXNgM!00WN%Cxmg7Ff z@p4-9#pQ()f3^apX6VGNV-PoR&aCJ0djDt2EFok3_Kt`C$NXb~`9EQC5UZMuAQ&G7 zBUnu3{T@#71QU-X6nt%VG5nlf7rTiU2-rf#oIULZI$qJ99XGWr$DHa9LRH$0t46E- zh$>mW0@OI{W9)vng-dNeyYGeE1a4rTQP(2^j)V6ALGC=5T1nqG)pMc388R+9^iwY9 zPXE_ug$^HYz?aaqmzD#JQD&ya873)esaWXHQi-3v7Dr-fjQd!A-+dl~mz@4fPnc?P zp~OGzB&KCF$WMS8h8ytCksSaNpz&)_G+>~C^y&fDM^C)ks$0U5LjrEjlJ(SXsc>$e zw6q-e1zVu_(7ObUF;}_j(;!MZ54dXbl@39HVyXUN>({nnRK+cu)Jnb#|3Pri~IvC7b0}9g7*9-dd;qI2X zVAk6$sFg`pQDd2Cp-|*`kv0Ttg`K~sf))~SGN*$NY&(IJe z8u{B-9>l~ifh0tY34Qw8Nhf_J1#mO>z%j3pvjq?)YR;q&sVbzyecAp+= zx!K&bv3fAU=U?pc9p8vk7| zWvLq};i*$vLE-U-c6F>x8#_+!EpL~9Vhm6jHk{6uf+|{mDfrCv%axOm)8z>Bmp0|| zS2GIg?b*M|4n@&;c_9uCgmPJYfof%1&&h7q`|brYVP?IdC2d90&@zcgUaIQw z_~M(tKYI36&2Bd{C?L$a-^%?Dr;#Wg2KYWI{PAVDBvVOO$ZcCo| z{n_B?ASzS|LrhS!=dN}Y$!2W#fUaT4Uier+j8wbcqf~nTwY=%vLoI}ze_{Jo0@N>y zXT_B_UaVjCw$l~G&oRAB^3=ut#j^G0e^0sTmOECc#Od2AMJ!=%rScZUEfSCM*}BQQ zyHb3Op&?MQu|p7~j6;e(owbsalY<7Y+rRHtU%6uv>;1Wuz!rll!04Ynu*gN0=Xr$0 zX4Yc}_ud_LyVwv$fp-auU|3GkT7=x4O~Fr&F$r|j$Tj8>l0nR+f+q5X8byuncM&$& zkIB6_nBe@Lhw7WT?Ra@E+*qeg&VK5^J)ZRhHRTAW(Ci+(&54PPo#&FyLBrGxzc+A` z-eV^0<;8CqShd^@#lMF9=CY+A%vjCasVC1XpH?hia+n?rSbket`WQZXWa_ z4za!~ztZj`Cxqn>#2|FYXYoO#kL^kBICak9Utqncc+>5Hgro_FgfEmqL+w@#wjT1K zP)q@sc}x|sS1^}v+rUv(YcVB+%f_VJ9CUDCfs2?G>En?#usf2BhJynWIu-(bdCBSZ z0DEK=g-1BBsbok7On;<5pSj}+UY_@sJwz?*f@XVrEy#Hm8Mg z6bl>T3z>9J=_UaGgGiPoGsD8oJ*-At|Zbf`zm2%!XrVf2GN(+7!D4iz*-O_isvr(PzqrEfi8d zN>V0uHl!5aLly6YWd&B|U>?vzErLhU5-%%DYOK1KjLz3YTY;2B1^J1DY4{qVN}H4gf7YP0w!!u?v`E+;K<&?G1i%i1ciL<9v(s()^u8S% ztmiXvc0O6?#(Z9;<6519kZw5P_H{GiDhnT7sbz-UT1;xeJK%wwo z!P+$+QUS>dhPnNv+KGrIhn*lucvMYQ?FDv2R<0CzW14^_K|y%?x%I?ldpf$D=oLhrv4ny z`F1)T$u-0Mcx*EFZM{N0C%?iIxV$?+)-?6SSZRHRyHx+(KJcolMLiM1ygESX%1l6^ z_Pf1n`?t+?g}kEl`D&JwW!t^)pI>@}9d6m%gltk2#{E~j^cTGt@_7Jwl%BCuc9+`dmScp9TD<*Tt3w)OMn@4MtGi|-?`q>X2Bf49qr8kpXCSk5z zZ_dS(r5qn`o8h%6dH!d_`&Bm*4pUQOV>OO64qLjiz~7Kj`zpf-$b#u;O6d8laIat> z!ig@8d$W_}_`tU87o0KtGf^R@kQ$uwjTT-Qhbbi(;c4pa{&H_rV(b7^C*0B8pLs4L zLA3Bhpq5pzmL9P2O}{a##KacIZ84cN&Z*l3X_Oe27Phigu>7e4H4GZv%j0$u`U~=x% zK#BrMMP$wl+b-#a{tmS3QI_ZPuQKij$%H1Jm-ezv@IBhJjo|BwL!bj+_P$3hm|A;_QrP3F+q&re8E;Un z?NV*uv?)X;YYY(#NTc3{_RM!fP$q>Ft@U^b*70@a*~Hlf(FcgaO;}AH@3XhJg_8k? zk+B9+ayE>qDb`BOvg()8@|P7$wQ?_U%yX%g*|rv%wc|?XMN*#I9SmGH*V2jCsX4D= z*G*qh5~@c!x67Gv6X_kO&sgcBvRUH|(X_7#--eg{huYXrzLNxtsg@Mx#Wt@#4j8+| z;ANPMy6-KTvl>4+^E{t8xj+4-uCf?H&){>xKX1P$mWnI~cZkJvJp@8h5%7MfZrc6V zb)QH8M;i8N+vloR=ry(r!>sUneCBL{fPg_p-DSj&tz8mrioi#BkvU%~JaL5~)H`+B zT+!_9pX-`5?73X~@!plfdKeZS(fe&G|N9Gpa!HnzOLQDT;F@1bBXr|87kudTSL{() z@y!l>-^ey!z5bk=!pnz@I$SPKI`p)9p-j&)R5V=@DyI~73`OdrcA>V$T1>SP)w|T& z1)GIa*Tt(}(@Fw`*W2Z+V@$HE`ae2uUX)HtUWUZ0#9cINXIf&RdBmHFDJ>QT>Y(8@bw$%07e#FZr1c=8th12pghus2f%UBH7Nb+w%>Q!HhI%$q(H@bJ!HCQ1g&QFqvANo8^h44S zjt7UH`~8c}EG%%E#&;hXEIf}ee?&Jl;z6vw&)XuKHn_pg;Ln49W$A2U^Bu{09-^4i z;iM`n&#BziE$3O_S^L53h<>Y^ai!V(?++01=gkOYWVw}E8E!=yjN@Nbv>CDY-74}+ z+kV^|b^5&>@aK>KSsbU)+hmGC{F?vH0D?;)LEO4MDe-7DyMv|r*Yr>YZ`s?jGgXanZfObY*vHk*)eW9EdKp8ahN^RWHrEQ?QMr#{=CY%Fxj2 z+cnA_&wDFrf}MuJM6MkeJ@$*Ie{;qB2}kH=U;MS@T-TuYi}A*q_7)FlwKj=0J$ODVjtZ0NRA$bBDAag79A-Vt{-{WtiS3;#a*YNtaLutrgES}09VApWn%{q9KV$QsoBoMIJy~ucQT+LH z^7z)rjzgy2+p-YDMT1W5{VM4;0p3Szw{c>~8tOzEF}#_GkwlZ4Dq0Cvb&ve8s;xNR zCLRf2D-itJ)pU{=msF##aQRzI57G8{?~!VW!}<-LgF{A~2~fDY-_EH!%qO%2jS_nv zkeQTfhmMZkx?gm`1Vd*4c}XmWFovT{+hf>xt2*P5#OJ{9WT_6KEMB|0Jkl{ui`_m3 zTQWQ>GEz8}m{-J~`@LR53jJjD$4vq}h(#uw6(Y06xxXitCu%BRe6#uPGQsO+)y3UW-V=Y?wz+a9@;5owR>WN@+Tw$4wXhR$?3hQ&9%dsOCYee9;S?c zweF3j$J)0);_Gs|iH%^71-pE9oHjuu;XoW>)EeYqB3pAAci&}|N)xMQ4Ks#Uc^GVv zukaQa6Td96fk-@|mg(9XTC~U2{C?M^r4&@k_|0N5FIXWI$d_cF>6BdYq$+7gUWK?6x!R76K}Q6r z#%yAoLStTGQ#PN2LXOCLx?T2)1}{<$IF(h}Jab)+W}|H;DK^uCV|kwL50!l|`??ga zxIal>DL8MUuB|8qPz|+BJ@4ffk*rhX*0&41IS{FI;Pc+v|O z6fBzKa;z2>6_uc}_VvnI#j8-cv0Rk3?BtG~nMD7wXgM>o?i8I_l%zt!>w!jH+y^P{ zPb`DUZb3K!uq;eClC$z6_w|H?H3Gs?aV4lTmF6*_&80iGwE zQB)YEzkfS4%01#nL8k}{fq^(mpa}OfWLeY4#tSQtoPk0!B5aVxFx|z+EsJmF_;#F} zVP2PFT-j23XOdk2y&{d}1()nY6(*gszw#cS{ z!6P7q0)&Ada;~AFLx(gA`>4lK+CJx|98>-jZ2pi(G(ab)Y@u+*az;~OaK;2qSzy|5 zwGmUrOCCr_OH1oKrW$UoIlYLOAMy zi+@dc9`@eRPxQt-{j6^4zfqyPmwO@Xp_3R%5RInUH;@dv+RbO3jO@)$A~IqT|nPSl4`Q|mWOP`!_YK5k+qGhztfZaA{NY9~V(`e%g+UEoj zW-#lxtosz^#m)UyYnT{e^+T|a9oanf_w0O?7dYgz?SMr>5)FKCe|cLzr{VO(9K%S@ zt!=~w41d9zItCjV)=T0`430wd>z5Yk>=%h9!wd1*##WK>v%0)2wJb54%L144Qze(q zUe_@%on&-to>Y90v&&y71 z;5?n%d#PjF4kZm5xE{s`yAyYaX18;HAdeZycxpEEDZy*>GUNYiV&Y`LW(EgsVwU|7 zoKlq+*YvtA-Wa&fVAHR_+QpXgGf#Gmq!1`%J@`R)%Ans4chM@Y6YhwB;uqd7e6<>V z9iY@w9NV*r8kD@cw@X4qxc`*NLUdw@05wEhLLu9 z_+flp@_i?Q5|0Vk{-#MZp1~L1J(8@T;DE_vEMb#GLx`(NUEGAK)afFg;v3K#IAtK< z6$ov>6B|!0zqLK_7I|E59SMDVBv>&MXv{O7$r~ED?j4JKx}0w*1inSU?$Ay%UQ$^d zLAGu=CmO}W7$1)J7t&t?Z}18%MY^B};Zrzn+@rfmV$v=V$>0B@1z14S+gCUYfEDuI z4H#4oStzHBpqOu?3H!9zm&lY2gmd?%1E)ED%D^$e@HBpZtS;oqq;_?bJR|w_H1sc9 zooB0g_+PwSE`NMN5uY_RK~Tc=h1{Ruj_1+|rsa3ORW~8k%eSc;qs8!sYqi!EKjo#ai!Es-DGl z)^j1!IAjF?E-Okb{}1fTpS2R}tQDn>g-^!>e#N1Al$~fle%>0l)S<30*Kbe=N84XCYOV<4Qr+!3^rJJ`E zRBMVZs>hd%z$|!(WTwu9BW1lsCoG98*%5BG)~iP8NFjS5RYnyja){|BVV_%=70RAk zuiSM1D)9YEdgEbGUipGXL&f(gy~EXKTy*#LlF|p$i#_A@5-rIhjOKo;vp26FAN$4Y zvB;gJ(}E>WF+U_M3|2go%dzqMF1*kCbtQ`#yWK2o!^#Q_l8$kRpe!Wq?6L)Wo?=f( z7%YmoP9~>LnqD<%#>;K2cnMwuGB zycFbs;|DlHKoFOZfJKCEbBN4mH~UMfKzMH&b_K^-#vZ+ARDt+~J^YH{mzcoY1LO%c zh6q=cs_Zr`HqGs|mc1TdbtOgKAV#2E*BKfQ*X1W>lFU-=#K%TsOl#D=-Sc7Tx)$}B zuXNp-9&Q*}6u*C^s`C}MlyVxfcvgQ-qFt5&9~>w#e3csVdMGYs*!5Q(5!Y>#gpuBr z2%`By|J&s{Xm%qx+scvdx%!vx9J2uH?(K{PJHR_&E0(j8)6&B63<%n@kn%7flAUok znHYyC`6#taSqNm%oc9)pn6G)dt&ssM)RQlmM{LOWL~~IK9k}-GkC-UeGIbRmXG~~U zj<`mnwagrS^xwJA4cJ`xNx^Y1o%E`M&G0wOatMQ20s}+@ad(ZBIJqku2w6>LZoYfo zp8T!ctbYx?*E^+pAwR@%v?Lt0Z_?&|nv#$7Rag|XU*V>Tqqsv++Uv)Pc1E%-*$8mqep!4k};Z1@(*Dv9;Q8*6xu*6TVZFkF}YUefoU_pP84 zs*3B)VF7E_BhxBM7pTY*BiL5T`zHQX#TG$dNTDuUfnF8Q=WW`pJiw>|?xTMBT7v47we`OB)P#-{DrWE-v_IqOL*)K5dKahi4GMFvsu(Up+>RKk z9loJlNPxI;+eqN&9!k!3O@HF++wF;cyopnhQ@&~XQ}bnA>#(pfPGdDQV_e*O?mMyo zM=(@@*GZ6b6G;G~`PYQE`p z`$?|X)7g_qqB}lITq_QbY}03dQ=$<=@7N;DkzpC0`THjkvcU3I3ztC@Q$YQ=M^(|} zIW_i=0KCWr%@e(QaVerLe=z>jPe)RSKNG2RsoCco7viAD`J`Pe0Y1~pWL6LurU2J& zt-mC)Z(phBQraiSm+d7qAv;`z3l%)lUmNXI`j{h5R7INsgY^84$)tEUrh)m)RofK~ zSCkR0T#gl~pMJNlxWq>g?Y;y>)>5`>bxWj$R`z+ABY@UENs012FvszjT8C43z-2k7 z8A)!@O$d5Cm+}$i4^L`m^|p)t+S54g*qG8d(I3Ym^-A!5#o~W^NEBXhr(}LViQShj zLlXc?qLo+jzPpXc(}E={3zhs313^04q5~lQ1l6jap5sHj6F^D_fiCnvU6CD8r~MC< zPxm+QGO6rjoPro13sfYBo$j0VAM=$>Wd|$y$Iv_5#WqzQsskBLTbrJbK{$56!91IdA9>U!M~OuKR^$`ZnJ=D`M1IFU^18Gprnn1 z5^zeGbqGG|QL}t#-Ekog2K&k5aqu}WOoPBWHXC>|pT+Xs=|U4d&h~jDhBf~SYK{3= zw|Vya{P|5qJ0A|wl3Qo-duu4Q8Gnd8->Xce_uC_m``%&U#aRpe)Md!=<#0&_T>VR{ zj?JJ>XehB4=<$(+oSS~+{PTYrLK=QSOrdt>WbF0V-_Bez(UTe;o{aV93;x{ajYO|c zx1!F@n1I3{W)M5Mu~wIN9+V#u5%p~T3DG}1=hW#f^le*v zV_8)kB#3IM&+L4cT_YjsxaP9QX9^|oolB;5CA~1q3!K~Sv|HQ0Etp=te9Qm&T)e?f z*VOWO_HUr*^*;UH&q)d}z+tz#g8vKkC@cCPP>$%en9pOAd~A51(qAYV9%vAD_8|eg zg`YkOp+JRR8|39SqgO&X+IQs&J>Hcs9-q(Bc<^9Qh?MN~eDs*$nf3c|^u7Gm zfj-Yj5>sNI!_}-LyTxQ@?9#`oAQcrM_h(Z`P|)cni1e5DUr=7nYdhTv)i+vZO1$5zp($3wvmljvc@K~+xH5OtS@9STl90ogZR8mE7$`8 zJ4bT{a@1qfqhsW7y@6RT`zy)*c&0Fb3R#ZV-?42z0#P%TA1DQ4kWZJk52>@!Z32~M zP>G3S9v<8aey@cX_Jlxb2>)-(3r_~c@o&k$yj9*2@w$c3<~nLYsc_D2&1IvNkq zEVao;dN3c)mEd^Z9{oF)u;HAv1x%WU_UiHIKGeRIYX{b&HVl^ zP$z-yP6ndkfyh|=A?a>(bM%Ft#rhw^jRg;J&l_X*>!b4=8YVV0nZkdQx55I?BT zhtBLa&%IcE{dzxRKS@K2oz27*urfm*gpdzLdcOf5&i~&$=Fq5~urugGta_v3s&n8( zEo^X^x*n4}E`#SjJS>R%ra&GPhi>`GJz^H|zeEa7<}OqOZq_LQ`cHO=6!O=rLddFj zdH=u3{=eth;V(jhJ{|b~d!*k{4wTi2uCd6*%f)sqr|XG(WlxbB1tn#kbuv>Iav+ec zVbQzLgk&CKi$1Mq7pmb$Lmh4FZLe0a+sl)r(PpO{fmC0X8B!8qSqwE<$Z+ zh*L#D;6r$um!w1pZ6U#O?bPzN-X&K{COT_-Q(%JGZq$sIeQ8_nCCZbbAjP=N!(`zH^Z>~y<~ zX%jWF>5c?nT`*_-w8?-+*T0Zf zEAhW$iMV4}5AzM`G)9O5#$VM7D=UQ*hijGK;qig!jmu6ZIAH-n5+fLw3e{6Hnxt#| zws(5lD!Djn%T&8-F3CEUE!j9~Y449B4whX^mxM)A3dr}Sm~F%(1F@vaCh|F;$@x5N ziu1gl)VMp2Umy4=-y4J~)3Wq;UV9}bJzfrE8_hkR=T}yuHgPwodwN(3hp2jfQ&kN4 zs@ir|-gm2}y35Ha_qjv_buJj6HVD^v1N`L0=jo7|=e;}9{cf?)QMth`5mU2|)p-H- zWTE}bf}sJB)DM821GF<8$Kc7bP`rM8X9KP-e)j#hT#Ulkd0f#J5EK;jIhlwCOE>18 zquKcRA6-dgdUbirQtMiPD)Pkjh6lQk$ZdWIwmp%d&HtaAn_Q&uH);y?X5lp+%MlTK^wh8@$NQv+YcA7 z_l6wl26c-L^Q+1%zH2({vJ#y+v+M`Ao+}GglUx0Tp`aW%2?r-e`u@%oR=N+R)6mceNJ+s{$!GWh+$eoNI&9SC zuGO)vc7ue^bNoEOyG<1-=F{m8Br2*^HcVZW{P8~ z?-_kfPWzP>n_fIzPS^l>5cm*s3G(}yKm9X{51-rZtoLcuh4cFj4K}j}L~t@ZtMdV> ziCMY$c#=&NVPZ@MV-|PhN{4ui)W9sQa$JoIy^I;g*=xspk3O}W!9WaASa?hq(BPb; z-4)CD=7c|@-WuH_9+S6?G`~I0Z6|JI^hpdDn?UPEZhoxx(W}Q8SP%ck+>Qvs6o>sxp!`YU^x>&LUkQJ2*(U~dKHU;bwW!M@ z5^!N^H`qde0AmX*bJ)hECr6_7gpxBequ4Ij3(f>Vf&_qL2oNcq@&1Tw@`2FvbVLT_ z6cxeRchrFcjWcpSjT&g6>)Rh78adUZOx^l4EDh+4AVCZ|wUBK;Zo3gCcq4h&ePh4i z;klosnqwNn1zlz7DN2{r+9@k3v3ytI0vYrUP7N;pipKEG>?9aT+U(V*o-Ea5<8gmS zWS6#~TIP7?dc#Soa7PG@CG_vv6aefwcY3r?Wvo%VgQU~!4ksLn{Ik#FXx5VFdc{fO z@lKm1RR$0!Ho83_w!UmdP9Enrmo;x!HOk3GHYncnp-E)yu9lC~oLOyoIt{32@rjp> zHSE|V&NY3SPgjPWib5p|1~RHtz)d;p-Yp!<7vl}i@pE}QJEs1ESZGj`to#7eyx*uJ zAqXHE5lLD*@CgUV09guev)jP0zR1pRz=enKYd|`ns6fU2R#8S>FRO|B)s+FXaa_^SMIQS`KrUWrJRZrsncUU^ zYe^MF61$Lsi+He(;`?$51KN0~G6uS$jidpfoSYnxeaAJjSS(&-)AgP)&|*)kdO(=C z25Ts6)CD3t*{hf1+-1Zu!{qflVQ93b<^j+`1R7$rc8!~!txaA{TlJ57)usRdg-|Q= zRF^2J*R@?rh(23wHXPa#1$+i7Shnv8xwM%3jOX$AxWS41`1oj%m=P6%wEd+))s07L zxu_*dV2k10RrjBZy7IiX=*>4N+j6!22p#)zWn*@75qD)*Mg_&$L1kl}^LNFZRl9-0 zZ10eavgJyLDI<`8i3x=r$ya2mcsNj;>#{A-Hv$k04Dw6FU*$6~0B=Gg6NUkuy`XA< z-=l+F|y-1(rw7dlwRC(2Q&*Czydyp{=*K+R_ z`-p%IYZ)cBZ&rk{+MYby`mNq>ImFR;28uOdrJB<7{wNqwvVP*=P`gl#?9(6SCa<;J z_8hWz)U!HPJ8AHJf3Gxn0%whd(5KWa*2dc+a?eo;z09y2zOQkxSHd*2vlFBfwXpEo!A!l0XbG#mp- zG_83pVGE&PLebjkH<$X3=QdtG9$B6ifC>~yGuHtbQFIcc_SO(JF-}t3-II>j?cDrF zTNWh2{p5ODF1#lGh|BIkdUbsb#>w5jvy=32HBvEIwT(3Rd_Zpa4K&o5bCbUB0RWa< z?FPGp)fOBhqr5LO*E}DAo5AOe5A??%LC$BhaGBgL-Ccn&RnCXsS2!#bK#bU&+HN)j zx){`wNzu3*ge2v&oLBfll&S7dO+s_3Y2r9qExv_t*&zP@->b6{6+|*2Ltt>i${9KOz6+hjROp?U% zUt%&~Bm67Vj=bEa1_$APwFA3!vam_i6WGGJu`N37`|k7 z-)Hf94rXn$IS(2j5`ETqIOS74Jl%g=ZS`3b;Zkbm1x3MUXR*?BV)o=T4_cMAQqDa1qQ7~TsCuFx`o$OwYCPu2HrT%krv%# z^VPYXTebfVf)7gqAPN9#b8*!?-qO@kg>K%!8($DcHvO>TMX4yPX|f@c3f?9fjpKw^ zc*Gb)<`Ko}%(Zfv%|DUSD7?Pi`-{tG^N^WX)M>pic`2)LeDsHh5ecH2eOnZ!$N~n;T;e=<>TxHJ6aF^jA8WGyPff zR<9H$D@FsPBi;96aI%gg+auUGnY=F3-!HeIp69OjrJ3}bdTrDrAM&Qrxy`E%%8<3I zri^+_YaloWz&1b^5g@MBNsW2DDwG8qaeCloog79((>x+;(*MS?^Bmg$Cext{si_Xuq{2nMBNMr zH);(+g%kYK+I`U>(R8c|P?wtPtVp)?XPV516AVHX${hI(u8%9);l5Ldyg~mtY`SlCkdQ>=ab(V(grYDvk90ZMwi@GBbW*uFw+nl5Ny~H3?5Otn? z)=mG}>t%=$gMfSS!f^x%9~Wjt^gpr1FLa~c5@9$vLla{ajh;2puJCD0Q|$kXxv ztKdij}Q@1g$7%wUu547f_@FY}z0cpu#e+(gGX|^2$h#1U!;Jdz$tI4`lW4e>VXto}1&Y zb%%=$!H(DEI_uE8)AEwuu&}fcZOGe`MYe@pR0nvn^fCDKxjz>A=~c)W)KTiSNW>Wt zzy|)H+Q=Nn_%)w4x&qzrg1`AZciePe123WFrS;%K3^-QrrXGI<0jf-Zb1E-_W}!S7ODdMx+iZ$l5g-IL=W%GA2 zIVq#HI(nRYne>q5X=v%Avp4!Ti#|QHQSHVQNQF3qDF6M&PJW*({E?wWx*HhhPGQtU z$vI1~F9)+4enJ*EgFgp#I>4e>ZN`VXE)0cD`2f0bp~;&7=%mrN4<s zi8Y=#VGdSHsQ;OmKqmOCJ|P`UH(~H;wBcuR|2Ej%q7-@x8-%qPUkU=sv|LLeWv|!U zuOL5&j<*OiIN7OM%K(bCs8Jb2JRaQT@AZQ*QPD| zmy|En_c$QGDU04l$L&g+K6pS*izb%;Qo0j#xs67E5eWAB+y%5=eFysUd^_47Uhmf_ zZ^1Iei%lg-EYbo3z*}F(xp8^T81}}~V*wQtWWrmrzE4-!W{+Z_93cR`nMPs3ItS6n zgX$mVJN_66CtYjB0yHV6@wE8JmiNXR-ow$cJ&Wa)?n1L|`smwZvcACpP_A*_ znIZx%EAY}dAowFv2waerz zcNnz#qkZ573IPPdj)WrdX@st5zxu4!_70}!{b-spMkT4$Knm>1hz_tE*>sMFo0@mv z&BXDAW*6(u!?sIm+3zDsKv>{B-5y6SEG+oV6c!W!>(IsJGGPH2h7bT^c3~TFAgp7g zu?sH$E4$oH*5AB2WII@>%4b+3UTw)2zdu{(@a5Ob=0+h8LBX-%e|=#~V(`F-#9>0c znv2LRYD&2Ek4R?H?T#U8@p^jX+MuPO>GX$yxwzv#2VL0QKi{7YK(LvSa&TY+k<_;o zHiZN`gNYorU4cC;NWO)+l)CW zB_)R@6U+b60zk!%y)+b`1B5>7>DqG;9+CaZ%!@1rI*aABNVqLfqIDTn!3IhKiM7d? zx|muEMP>F=-12@MvimIL9TJg!=N%C@tIYu_&_58?D0lUP6xhn%LVve{fpTg zib%$~1w+4d;<~fDYkjtD;t8D#_dvaNFkzi8w?=(FqBdE1r@29B+~s)CSWc6PAK?oEHD$NnZ+|VmWpTbX#0C zIPL8O-b5U7#?vow?jf-H3JPPzT<^?=?CrCQ-E+18z76-rlU-V-7jRh8x7aji1p(AA zsn$Ly*6U|no^H5;I>zo3uuXX1tSG(%IDDt*XT)8xd!LvntS1)@X;?A2gb+<5iu@FyQ~>68{EL`p)sL69!#4y8+!E*7!fAd7-i2AFFB zsWjr40ld(N2wsu=KO(jZCl&qvL{tbRAQS_BaEs9VBVdzaHG4!`E%9nFRmh(V1ttfx zbh_ZXhE>Q}1<^K}U5ksv>{4^yRK=6X01$M-PS#`cyBtuadKyG5-mx|u2!e}|yABZH z$Mx#mUDB9GI-{`5+sCZ_D)MQ$%;%H3F*UK< zlJH0!gillBJm#poa-uVo3 zl9)E2rwh!vIf31KsQq=^9&i8D?feD!mya}p=jVVqlt$tKyr)|OIj_@BPXE`NCc@|w_t~Zitw9%~ zgK+O|vgzO`nE)EWU>+Cg)J!FpA<)Yw!yCyeIcI5bR7_dGS|8Hji;Iu{AcQNn4Ub~I z5#o-GDZ}GE{{@#Kj}+MI3%owpQYp063H)LA$ZK8#RgFnxJUqOgyH%?Cs|Q#Y`u)TP zHChL&8*7Z@4Qm@~h8t&AgglnHJGF>5|JN7|9|B-4Y~cFg06hxp>)uej`$y*)?cYy%18VA}LvqN+&e(HZnoPwaHE z+rQ&quRr04AQwV`Fg*1jym#LBB;>Rv<(PQWgC3@Ygwc$nApEE%hTBMot|N>j(Cl2U zbC^cT4rDcRoK}gLPkx8NjH}!X+;SI1_?_TVSDVgo&BgM>%Qs<-Cokze5(m_ye#^xn z8*w<{P!q*EtNM~!BJ@Q5^7T*pOq8F!srEkKpCmY5A4G!S;^HoWSi$8w#Tf#T%w$hL zX}URjxaV$xu)Ms?<}qb!Y_mZ9m4eSOAZoGcjvKGIKP5EDX3zg0ff|%;09wg-HUmLP zR0@_7@4GdEsS*eJ1rMX(!Knvg;mOHXpA+vlqiGJe=4v*F8w7YZR+rWYHuP^12Ss~Z zBxHu_)L82e=E|myZ_m|ZqJ06SjreCQrw=UoRHIQK?I4)$wxogc?q`%>mDitS99yeK zI6y}SS58( zqWr;vu-@nP*B>$MF=qHv<@qOKfp<+F~wvGZ#CK2vEO4y}yK zQAiU7%*7i}j<-Mt#lP=vuMe;0T(PN6Mh8WVxka56|f>Z)H^p7;vc19ig!~m7b3}zUHXC02K)$ANrH3mcB@l zw*v_%8s&F^3c5L0dJYawyZsZQ7t+$rMx6JBTLNaw;<9z;!m>#`a>IM6A8Zn%d_Y3} z($YcK;{krC#O4l2TYAX^6a|Le(lhXV=Y-RQ-MCB!+)zUam_JRA!QcE#6xJOUH31Vf zCDQI_`^9PKr>9RAJ_x-YfY57IndmOdE@!k(7%{yOhMmVKfM%>Okg%Wb`P*D!4km5W zh!E7s;0R6$K+|dF$j^5n%3%w;uQf_3q#V>&buSK>0bmJWBtBD9giZeQV0r>-{b$v^ zUrjMU{X(!9CaDDnjrQsSClh{59u%6v}Zvijhq&{S5vxsw+Y z8%n@BRh%lKXMfrA$fQoQjo@?a6kn)>jpI~EI6etW64?(vbO@4pAsy(+9w_@hr`5jGNH5_mXsU8g-mpgZ$VN zJ8dFWz{MChEioQiT-e-AFV6x)dzmHjM^m-5yhXJ40jDI zFkSBMD&t|OkbX);^w*6v2@ZzdDUJ_R)KqjOG~AKW-gB@9xk!%8}fJ9MXY?STOw*0 zluHEA^5vC!?Q*kGIsh24%wedYe%e33@c|LlVg$UX3Rd$Z?7O1`N{^um83M?UQr_5$ z1KMvPVAZleeypgT20|kUG%O1RklYaDB~W;wVYfMl{}y|R!v77E`OyUUd0XNBfwlGj z?hFO5=>A})eT3`rZ?#ngN%m0#PUD?=F|a@50zj2`Ug1KTwY;L9aXC zdEi7i9=pdoA0Um>p=SRWjPHaL48Whl>jn#09SkQzc+rdC;y}|{iJ|NKJLUI^<4k+0 zZWs_1UqTcX08OTKRDCPHUV zp)uC(Um=<(rq@We90`*YBRs!bHw9@vFoLXH>IW)X<=IE8UoQwN zK+(VEfZ?zx#ELAdKg4Yn*d6AB`g-{0GP6T5S#bJME$yW*dl|na_jDzJ@YJ^T2j^9; z=QmwM1SuDtW3kP>y!)159D3h-oBe^6Z%oJchfM=58Tw2a$4PBJ%DECH6`8cng^fad zY@ca}4<+K;bClLKv+0xSf?5Psb;^edaDX)q8#W(O-~iYY28`nnzyQ1a8^N3yC1 z9Ua+2P8%NE*tjEoo9dRUyp*$J&z6_z_~N{1#S!*7DK7BqDy|@pw{Qf-Ju&3f)u=)| zp9Rk{4o-BVK&vH2|F6-UXnyyIyfDQTE8d9ABg;pzOzzkv%FEvk*BC#2{tN@@>Fq7i z|4A(_DM7;|n9+UJ;i`330m{WAv$MtCRws$!0`25MYj!I4xAV)5G@5r~49Yf9;Oba% zG@bVIVsQu(W=g$Z7NPJ8DreTRb?!nImql%rqVP0ktTMQDn{zb9+@m;G^UzZoF`gA4 za}_^Bu1H1Y^R*V?;yD@g?!dUe2IN%T2a3CMn(Rk%?Lg0_r=q5|vXSQ997Xl~y8!1y zDw+>Q*OgX;?1F?AlQwLH`#*pA)+bwzZk&r;U;?JG<6*ukwc&Cbonzj(xuvTSr{Qb% zsYVBS2qou}hv)O|td-eWpvO;AI6J2UMn?ouc%hlu(64fnUaknE-C8t4A#+@(-KmHY zBS|AuH^9^P*Peo)l(4jn!?t=e%It07VLkITF)nVv-QBI-YL_D9N7bTdpw`WGrnk5E zEXl$H((4;e(9&kPZ(0uqVmfeVo`~cFnl~)XpD%PSw<|3D47~ebG3nLWoZ)=9*{4#V za~zVF+??JSNZ}a<)`H>6b}{cX50)cK9u8Vy>esuUQ_@um0ovNyn1q-?Lhhw@lWBMG zk*Pv<8!4hwF)986A5eX@S)}aj*bP+}FRreh;T3Y6euO-;ltum2v&}nMs8fYrrlidN zcIgMcV-_ua>um4Cm3@jp3a<+oi0#(uV{s`tzsN|8jLeL_4wvQC2e}!UKUY@#2|xE( zCUn?=&Jcz&n#9>{^h;TBdd($9r~5s546IUNFA*>>6he0mwi|_yx>~!;U(_$$FTu5S z%9T{hnW`x2qKo3P>;EXk?`2Z2Mh2B@lG+}E@A%2^nY7_WL_}nRL!Te=F2?r=T~q}Q zIlJZA+QBuA|j8&m_39Q9LVJoOD)EYCAr8eeBFq=*bydy$* zk7T>ngNKWYpBQd4HDpj2Yew3c?hD5*z>Vk5vF+}Kj*kyoTq2?VxV!OC0rErRdT?C^ zR8zSy}TOuYeV^}N4htw31hj8AO8X2EC_oWv(yR7K*N>S{>! z-SyB-*>J?}tliJ`NCgsa_80;ER(kEI|%VJQRuTNGDCu0$?CT1hD4>+%Amw}!&8u?le>H9h5~D78ZA5=q!2%|Rc|aEC4~K@qsB+vHLl>4+GLWwh~6e1_ZbC3 zefdj_hPwQv?01fe)pfl>pait$>}cngV@#wBtB8oR-r_>4=k;aN`AwgMsTT{c)hm`N zW{Tc{?sfo3|J>ajkNBSTTBlG_(ggqI%f`;y3X8AkopgSbzbE6!BLyxZ@^?Jbd^OAq z-1xv$Ls79R404a>vu910k#a>(wz{lv_{zS0W3=>egu`B5>GQgux3j6Xa<)`_{jm{L~IxBsNyl@_apvcMTYRX5aXO!NTqFrq`)?b?@?CI`1yG zC+0Wl;a5zK`PEiRn&#%mSe(q5ze&MY(>eWt00)7Cd@+C}uGO?eC-f*S*9mwp^^7WR zCDsSRq;nK7_H&AsNf1`Z?c~Q|nrla145dtj=jH3TIUX!-)%&Gq9D^FwZ*~HSPSFp3!~Z_L`}(4EBQXLRDqf{F`zQk|F^+2QB=wTi?$?wI6=` zfQ&ZjSR`jnX6o$NPpWUI4HHXaQ=K6xs&R7Awq^S>VmYFHIiK@?9~!6MjT8D6z1^Tt zqmCSG8qITjD#r4|A|NQJ>sQ|kX~b9FrS!*OEp(2_J5edBwuu8#RPspJC*$kX&2B2b z_9r}GLr`CIwp5pH2#JY{i_`Mu zeWa#?zFIA(t@m8O;s+dH&k-D<*r*V41Qvf)iw;6uq;GO1wzw1 z2a2S??+3`EXSJHMm{^MEtGHEz&fUU&==I!8iq3btPr-X|}gT@DZu=jZ1B zsK0!ONrn^JNx&rT>RQuYx`<0)v{i0Q>UOT9l3LjI@r?qt(@Rp-0`2#ur5up&)q-H^ z{Ho)`Op6a1n|65RR9nz~mP1FM`RyAD_$ct$u;3T;uVCev0#JoT?psyW0QY*wIP{Q* zyr-wX_qmci3VD(UsPp$mgD~9wqVG%QCOHfaezBM`oUy?K4uB~7%w_c}-E$+!*t6@U z=I1V4+;})N)O=x*;;Zn<`+Q>5I}_|DEQF)1)ONAq+z=cH711+v zDy+dYFcdvuSGufx@fQ(MJT6i2ji>uGoD{eb zLxsdFCJS2&##B&=pJGB@X=;Wro0-L9r}@O`dLeX1cp5nJLH_cFDDCtLmANaGqW%Z% zaeC=TvX98GX8kYL`iML($K#Muk>7HI+I~WY&y!Lwk~(MAU)pojH`KG;-Pv9I45WZS za^zFR-i^^-TwGA{Gxn^Xah8@Z9+M}9DnydDhXHE!?&gNaCJwA6{Q0{x*L0&IEOVBp zPYK^6p;MbH(H=cK!WxQt$5mzDj#6K5f`%_BjA7If)(mxDPJM)7B1I>1OosY;QIYGvQ><+Fkxaw zg4Ae7NSS0WcMT7+Ihq@S``@(76OHZGc01V|-r^6}n6X*8$uDk*AmYrfGD`xhkDIF>;VThIOoeXS4u8k#Dq0NeW~NV^ z>aQ=(&Uka5idaybooh@ZQ#mGeQ-vC=kL-S}ZEWmq&(4taVK851-CRjD6%|?Y zyiQJu34O5A**ZJhyRKj6U|+J@ony(;w4OEoA}F$~#=~@*(K+w6T7GnN!uyXO_e-pI ziSt^4U3u`Q@0jr*A2;XDzPy8h!)!F1bvw2BY`Vpw^KC?@&ZT61Yd=n6m%AdpsBoBQ zYipIbp;A*Lr~S2>kZm*M2jtn?cpoQiE86~{_!OKbU?noQTUuz+qk8RRog^%-@jYLWyxUt|kCuROUmGHJCLv3mT@YE`Djlhhd1oqJ$QZEU%1|{SFHkbCA z*g7<{KP^mx!BIqCq&Dn5eQlKa=0~;HJ=DFBcbpN0* zVtd~$^9p0Cch~eXIP(lf*j!YCVq33}f4EBovKdLftecpx;Ut5^qhj%4R%nI~irk}C zE%2y+yh=dEs%VLa4<{GW1iPOGN2%ufs%COudm4X2L3()H?@d4y;g1v=j|@Jjpr9b0 zr&8VBtM&296^zS~FN2{)pRGKeI#UI*6+`8)_|T8iZdKfPAS;wWQBCWK^gQ+>F~hRp zpe`q{Cnd66_GWyyT#tCCthM5YV9e-DtS_qhhtsBMqM3Oyw6MY&Gl&LGwLD)lw@cLK z#LwuE<=g`d={pmc2?Y3x%pzZ@30z?E!6+zTfMFaQ#hSd8t)1Q2eJ7YGbk1I1Vnzdv zJ`*JK+x@-Wku7vxiSBN%rs*-aoNjFHGR^Klk|1|Xz@q)buXE#Pl1*bXkg6SSZIcXx zVDhopPGy*on56reu_n`OHK}_*5NRkoL2j)rjOYD<)b@J;X)p;uMR3yLVNM#ChN_B6 zKzh1BJp3>kpTpTC-Giv%CS4DhhTEH0Cwm4bXUDBu1bUw+Yxm@EC6E!H&(Z_8iY`@H z)B&<9bWjB?eLF9Vm6-Sxug)ne3Ec_Ns z+o+M**#%$5vny_-e|V%uZ3zj4^?p5{&3JXeMtv%fP{Kff>Z2tyFE5@D%Zxa+R3(mY zz30w;9rfc!<@E6_$k@60qenSQah#^0|J{}ch4%@&l4-vrsK1C$;D1QreG@%K(=&qx60r@ z61rM5Aq)kK)ivWJVG>j~OF5a=O~o%=eLb*{oq;~FuArY&jaDR*s2CkHrz8-_-;Ttt zdJ_|(UYO74@aFpZ+Nf)(`RUmA2GHFDm577z_V#ubI`TM{*FPt;Y!D!GZrg>q-@bi( znz3iP*y!PL*{)`lDtvjNocEkQgKq2Cr*?*TY<%Jcwy(0F)LU~yYF&3vn!UPxUE?>q z%{QGJFp!rrGKafWi_pvq@+_}@fwY93T~0V3WM;d&;e?-2%GUc3Ab=b-IwMH}$r{}2 za+DfZcNhrNq3k4U8yg!_KYB#O&iHw}HnB{FhnV$z-20{SiY@u-1-5{KQMHtX)#ioMzf*ywuec~Q-d6u}9=!85V zr{zu6ti**xaaa+LaB{F&3~0k6AsPL`35C&avTA5*5;5tEUs$g#_$(*;;>Qu*pi%qL z#!Lmpm>uyVw@I>y!Zfo*-IU8V|^lU4^3BQdx4hgU`j*XN1r zz_#(>OSz=K|NlypC@!wyLcLf7tY-8TFffuB2mUor3Z9`CppPq_vZZ`-cZoquD=R7| zH<~k)=pG9Mwl#9X+wb^Eg>Qthm-|JWgMzI40N8M7WR}-|-(mhOU+%aHwHhx*byvOk zuJA~9K1=3xtpx$=g!b)iX>LO{{#XS!|8t!b?aWElC)?%KTi=ja2qAZ@N>8Hqj%SITLRF)&1FqbUEtXI;E#E7lPIe%BgPQB&T*I?L6iJXn}WN$jg?93fK z9E*?mmjld#uDG~P#G!Av45utstp4vO1;`UWPc=#Sbkh{ zeUEfQEl;qbkWo=LLF$pKBmVH%sg0Z}Lp2Qb0SpA>dH!wDQNxX%m%Ey*Y-~SHj%lf3 zY3n?7jRP?q9|Py)0{e)1OCNoRiuO$;rZO}m*r4-d`7yfzb#P|VlQguR*e`&aR5It_ zp_4QGK@Q!;UQ-r)8T5TFu8!*tsC(2|(SG)=;EyzAwY>Hg4zKCSCHW&DZi&M{L1{@5 zb$(|E4kNzG@YOXvgG{dkv|#b`X3`seW#gH}kx-z>Bo|lsKS_zZtxvvjvf*1ujszu8{?G)H8e5d1uHCxKtix>fiH2hofUU*5~IMQQF*l% z$86m?_u$%g_{+e9sSuFENN+u&rrvTHX)=D^QrEGgu2q(rT2LVCak>`wRL5z?yrv_p z8wm$wlo=6Jnm76)^6XrQ5U8QZQ;v~MBcT^n&Y}C+KAt~Y-VhRk(wEc(8D=kW@n{zN z6c<;;pscGK0ZKhUN1~arOx(Yd4al>#>6c6zXS9YnZ3gW40L)qYFeHo{<_)^sj077 z8-uiv=4Mvw!2coOuc@!e%uc2zRK{(#mW!2WG#`+RcCXNwdkQqF$bofx?xZRiqf7gT zhk%1j6wUe!XG$7OM(h#_m~c5|=Op!zvG51LAzVVM10+pi%}Ah0$9iGm;y?2fO`UU) zC)l3t6nD+m5h&x}lsNATtEi?*Jkw9_hn`46f;$^XiGTwF1sB{_tx8OP`kW>KJPt1B@ z0sjqSPw(N)(b~bmfn}*64;|vmH=d($v9Zgbw6#69oD0InEMmXPU~lhmIQnaJ=q;D6 zqa!;>VAg4pjI{g*rM$L_>&~B_xh)Ec+-K88FP3{*U%6&u53=e-1X82~gBG^fzA!L6 zHnU3C$xmHj0Y&zqs)`pNk2?ch<;1=9o$J&B^aMmi34mRc414*82NBG`nXf(Xlc}+= z;bFYJ*NJwfW8P>wZTo1+Nk`k&l$dtmH#avk2-;#Q#!yG=MMXk5rNw~rpGr%MYzwHS z>yApw&o}cL`r!+10%}M2^^^LB2D#ovk8Nhbn<0NfEJ4!F#*2|p`rslgS*~f!&F!1y zZ}XbUG7;0e$4-!Oy~WgZIn;AG@Fj}sT|-VI`~X#NFU-~aJ_(@xNBuirD(v83Zli8?kb}2US#_h!$ z15j_F^+}`N76v+RJq$m#Z)<^)j}V8AL8H4C3Av(M>9EMoSsSa?K8-TF)2-Lam$}k0 zY^Do>%6u~0vn?aFRf|p};)>!^0S_QP-yaxYN?`f=uDb{Hm5d34TGGEjz4lYVIVGl! zOEo=rGENiOsv0kFkx_`(V6lZ-I?hVcv$qK+V|Zmz(j#GYHM0U2=3md zwH}fnYvMGW7^g}@B|Naci-U!w*Z{P=%bg=iNrRb9dJTq&7=&z?-^S}E^S$#0m7RYn zecqdC59L<#ZelVo&O>mt3Lki-MnAb(G2X+^TvWT|`w$U=2mv)X<(Yx)k3V#T2?-4r zYrYxffEr))5n8c~w^jKWetv%6&(`8*RG>M{&JUO?idxUeAz*3`<_&-ALS6T9@61);k=MT>PKVNC;7gr`o)ScDIi^AJC}8~=o=!C}Tl~i9 z?6I-Y!h`#><%{HSu?RP<9Emx;Rw*}n3IlFMXR*pzDDR!PU__+?@PBEy_AoNwTwWQG z@P5#`vF`qOUQlGQN9zK`oH}VMCeE5KJk?#qV@j2F-H)H{G1P=x@hUGG;o`Wq>GM>lG$jHcMa|bKl*|vO$@K8}#cOgR-7}kY_Gjx@b z7#PTZ#P)qEEUY%HACTna`-Cah;v`KJ6bQ)J%E3T|&okcoh~o-vb4q+pzJ6qrHDoOi2?}6LkG6 zCAd;6Jk~OT0Eq)QluN7j~4W<1EAEFnn5R zGy4In)xX5)7O`v%1fx-LF=!C=I%_!4b@{!HKqU|a3{NGbS~EJ!d7=S5drR0ST)`?s zgm3xdQzusz@q(@#PCIjNN(S!k?g%+t*wDF8lz=wLpew3*bAR8aLfB!3O2MEh`(;8Je$VWT;MfX1uX9ZJKHg z&Lgo?Ka@r)f|{O}KqN&NEnE^#O^qP*&6B^p1Q)Y~Op^LYb@(hc#&5Li?+inKcCb>& zNbD|aY1 zHv4pIVf6OEN}QEd@caAuEp2QBdJ9*7-dMN9ZA(AatOmeGYre?=^0`$ zO*Ck3zejO_v~b6HdlI?A%KhI-^keQ-MIGYRp;tV zepJurWT%1wob5A1L$Sc|N%gU>((#-&fZ(9*=v>*Ysx(+Hn67p^{WfmJ1p2i?aaLjW z?(&q%j<=5^&f4H008xwVlWmXAOf%RT6Nl`Av0y`|Y-+6c)of*iosetmSI8B^Qr2s? z&3PRJ-mLu4mU*4M>CBwIia1k+;v^4kx68|#>#MV~o!LR}{gJ#-M)|lzp3TwO!R!zK zKtY?K0BmoX)Y3_w<&5C0b*Z_rF!uImpiEHkH*qnK`J!Qq{LhY>+K%IJ1gH>H zNWg~&Z#$!6-VI`vIus9Kh-jDEyocJ>loJ}G`Fr0GkeESc&WhOW(Ra{*ZKlMY=b@W! zAIV4=`SBO-MEVLE91l?CxTaGB3#{nyXY|Ytr7x&+9?i?BkuANn1Ft_u!L7n#HyXCW zoI!0m?HFj5UR2i+j|hdB1cqDcg${}T2*3euvx5Qs_^(4lGw3Hj{P{^?_j{f0bB4!e zvrl*~XwAV}?ooG)RKa`1Ws3u`pFS;7^r}s1d#xR90LTa&^#S1C@C}-(PyxFd*`F4<(%FOvf!25Cm2FT8 zvtt3cMYDk9PkZ`n`55e7->^%TYe=8@CsB_H4>`5ETWZBviPIY>pNg;}v$)pzJ6Ol9 zs=2)Zur=+YoM-vtFc2&h9|Mzuw|z&LOSf~xOYKt}l(z^B%rO&^xlV}3jNC~k9UC7vP;f%W z#=+LK8m;W`%yf*uPN=HXi}jKRcg~L1{nt04D+2MI+%a0Oz&v&!8N;xIn|` zYM_67oNIrvnBv2nmjFQXm6L_8pM2nHo77%$WZHH9E7X6g%wcRM@}Is!ecs6(dfWPL z`@#!uSrV@Ku&^8nB5aE*L9my}`QK;=YsGcnU!x^9i@JcDKxz2 z@dG3W{dZsdKS}X~Mqa5uU?9-Qf>Smn@hvyL%&FGLPoIJSInzwTsr==Y_Fy#5%F5xH z)-0RDgeB-uIKIVWBAXTwp2TBdsIH!WsxiCY{*YiPY1y!io-QF)!{WFt03Mnm1qVMU zw61HgTYN#b?zJvidBXzi;l|s+w1iU0?QRk}gdr&y*20nJ`+JPlk9Bl#_x9`u$%Wn& zfl<57uda;r4i3&wR#llUdfoAbuHb*ZS23T_PZPQE{(n*xg4~agVRhXu@u19e9&hH8 z&2M%%SbQJlHfcts~;Jv`74}ov$;!UcJJcXuMHM>QTOaH@@-2alAS>s20b)(JQ~iIt_WA z=pE7`nI!NtCVcInNe_TcTu7zu;4$q_@}*m_>|ug|)!)4e0X~b`{+XO^Ni)5SbIAV7 zMk$b5^{;_>_lNJGrAiYm%lgriIFU|qXqq7Xv>kXkh8e+VBS7v(@xz1T zz|MQUMg7B9^qqNGxE>RRooa|%N6K`L_R7+667yeI~p*sg5Af1)Wo z#Yw5rzS7arU5izdV=-k;^N64)8%mv%W#<%oW(lXz{7!9$akKWvH^1s0mz01Y+K(Zm zYqkpG+a^P3N#S2e%!kK37S~&UsJqJ2n0J+r`NP1ob9hTttNy_SYtGSwJ1Rr#o}Qtz zy&Vvm4rJf#*WvvKhljq5n(yc88}PSz(4~p`-7Q&49qgl{qk}(vGKN}dX6E)P&^!)s zz7R;($W3In&~qd2`pd}8`B{P_9vev@=(@PP)L_z5)Q#APV+{n>SMHja1ZR|Xq5}*l zriP!XMAaGayq{h^>R1#(2i9(Ms}jr!BcYI zDw-TDHD4@&JJ2(p|6;LW_P6DoD0D^e_C6y51ON;K%0`zdE0@rhHO8#IUSyU^Gv zXHzz%W0sV#tM(!Q4fO5hWp0sbQmn?T8n4b2RJE!MDBV4jwZksjXh)qar_~&o zpqC|sPOc@{^;olQVWAd)s+Pm4B3W<3C;oSkMA>>L%eSXG<}*ta)_bPP?Lg!c&*miv zz#mI=9)K~)q*T zI-Q`=0Qfyk^e3$f^q-`JARo-2qkV}Eg^z>zThuxuGwbWcw%CHYB!Pm5kO-UFk#GzF zpb6&h*&ifgl2bV{h#O}DsSgY!hRXaiS1@L0NA5#*I?+t2NC1yhmktBRUUE2&CL2(T zYxWUNmr3rQgR;Wxuz;GgTD+VW0Vi%km3P;R@rlV{dEMPE4%@1mr&p?z7O5Ac*3}pC zD7=XQ?7?7&=G~96zZ3{fUo1vuO`XhGK>vZ)BGeWNm1Ce0FIIG0^0JQ6e#1SW7nVV; zhXf>kKnmFGzTaeX1>lZ<%2xWu{IT)LhmFZ0{{c@}UkU%i*i=lr0KbCyN4Sgn^5sj& zzp#nZ8Rs3^O#cC4ph6C2wu@I{6oe5V(9Q`iyQh==MF3?Hmmi^d2YN@$*>z%$ZlnwB ziI2C3%JmTbD-+0p<_|F5F~b*@&L;R`lBk_$RQq$HBo3^q10JMof#Im}+%k3HWF&Q;WDfsX_vh|6@M7jETS9E4qcYnJ=j>7ZI z;UDAU2oSdYlA5l8ZV5?AIwhr#;9wfzUqF9E(8!0m@@p0hbAqyjB8}1sel2j&md+?B53vN_F+hHFb|RTR z8LXVrwY6nK!60p0>y3lLxjsISQRj}f=O9cBU+b@05ZhTL+*zo=k%?pSRn3QkgrT6d z*K!vx?GFn37ZeCFPgs!m{w2!f1fpBa-?GfDt*!4yo$~b;EsUTB-D&iUdG{fhcQlxn zMI{5A%w~+{=H>@eE5|TIw)cAXA$h?M3%f|mtJ<>rF8hjy}A&EZT6K#1bmjod;{6FW;SrhuZGV@j*_X>p^=ZocwwWdPO~j_xF)Y;x!s>LBKzM54=D^!hYpjPqG!aqYu(B zCyGC0@=u29>QJm-su8@etD7s6Qb@319Zc2by{tYtI(9fe-QAt8O7mV{`6eL}mjZew zVep=p-+L z`Oy3#w5pI7^J<%btq3A^2(bvzY+ZoLLpFZv`uyv;$2~A`~unM3hoII6av$h?Oi860qk07b5|55 zxeAB{sdQ<68_?dzptu0MG6s?@@ZDWze}V?>P_q?8OFzC{^*fJ`9yR>a;@YG^LjWX7 zIs1Pj>j0?;4zyZ6^~aI_%`|^fLK?ycLvh)^J+}j7hf*Na=VAUR}P}GB)`sjBg zD}MIJ(34{UDXlWE2aY8kULplOo4+(Rf8ry2Cox$~|0AdQ`CZff6W{D$ZP5jT3$?wV z;DqMJW~XMLTtHZpy7%=goKoQO_XSr|BuM-%g3)!wfaWzAhF|B*1m9K3gaOW%qazeh z0Q0O+Rfa62H6$c8pv4c)#Jgt7tFUasOI*Bisie{|!mGe>O1$d@u4{gS1W!5I>>x@d z8kQp_xkaJvL8aZM_zPSZMa-}0tp*im7?HcCWEk2|fVrSzVBM%tJkU5$J^&I;|Ky3L z4M}AhwohOWiQ*-f`~2n3B@T3l4cV0K%W`MLOr{f&{86otra%S3GS)~VJG76<6z zW3*B9?q(x15(aXA9(R54Bkb2J#_c2-JWis^>vLFWMTcqq!LoTVYmTe{ z0YRmcxAZv8N!qY9F6w zZDKJpFtzzz9<#q4dItF+$9vlHkshBnkKW0ibk&}3?`l*hJ~las%0G}2YynU6v6-s! z7V+@(WEXNJ_Vf2YbZ8%(D!)X#d3VJH;(@c>{`TUg)b{Ltt%K2D9H_U);Nx6)Fo5*i zbrLb_7R2m8c062p6= z?cYMHZ_j3B(~uUu1irDnP7sFsG2wkr@{JJh>f{%VbXdk)E&l0Y$Gfvxgp2F*GEEa3 zUGy{KHh*L5OK zIbC~5Rp~7Xd%ik69s~{B(x>+$$*y59FA*4ubA2Q;eL?#1_(Sz$<#ZKByZr{EL(l~A zIVSwg&GDeiR`;9Dp9`%jMLRj87mcg#^|xm{5Fe#HF3-v6>rpr8>TPM<_y(jCa>AYM z^p(FZ`0NY`p--t44+u0m#F60_a*`66;D1L=`;v?6EY5wu9aJjJ+4nL-d~UBF9(sed zKv#lF>hdJ@dPC&<)_Vd)E#=S$I32S>0~0gZoHMK(9I&8igk%^aF=%PmIo_)lm68ztf<-lb24zlVsT$a6{-0fi_bM*1Ea*c_1bUPI#)25Cj5;2)~@_ zzSrDv9`QadPA$fB7rKJHlmDC=MJy|&FmRe8Uif%q9c{rlKz~+Oy{+KAbuvYEtG*2k zg9?F+LMo~M%nY&M<(M+W7&J922~w1(dKwJmRV$Zkg9h#22o!bCcu)QrQ;t+2rM*hd(}#q2Y=o3mQ8+^?++Tjx0Uv(3j2yKB>< z+jJB_H|(|7*w`R+eRjOaO>aLut>^WJBezhL20lAmHn_dQVsZv6!vSf%xCVXV-Bm}F5ylhzcK!* zb-NJV!N2Pn{tCMLy9$@!F81kd?QyKmrLeGfbrjc@!W%Lt%bK8Uz`t4FNZPCjYm3pc z#v*LjlxX%t5IOP+kslM323#rn&iOc)j7M)tyd zeHk$Gy-ZL;!{GVs_uB&fSxiNwpCuD0bYjfYBQ&_6(82Ti2#do$fQ))8F#QaQrio&u}b&Kt{ic&G_#8h8SQ^<(0VL`=lcRldx$^zW~v8#;r5D{sm z6msr8!bPZX$_T`DoAg|ts0tzFX-Dw z_u_U8hU?Wr5wC$vaHwij?RxdBxQx4jT`X*g(b?TK`vg>oc!I3cmGiAliY6;K6kowi z?ab9ZFKX!g>TYPM#nqy?hG&s}9}$GB`w{>1KzcDCEBYDBmVlfh8z9RHl<|s~sIc&g z0qK)XYF@kB#D$HOncGkht#jh(B|Ca(&B!68hit}9|MY?D43Ph##dL`u%|Wc zr=*!H44SMXegy{Rf~;_YtG2vdIuZo$b6+u>ycFI07FE}S%kna-W&HKet-WkpJIB`y z^YdG{EQSdK4Kr0avvLjE;=J!=6D>Z2K&Pt_RIu50rZ~5>j^e}>-&tQYzH~6tI;=4= zW!1gXa9`WP(>dL5+P1Lx_C9gT+`qC2{fb{FC3mK3c@AT%fy z4{vV6*DxqE0yzfesb4zp+qIr2YHLMBEV~bq!8g_li{_6%a7&TYQ`5;W&Qr7)+ge0( zocxB+AfL$#zErn3t``@vMw{yyc#c33LFuQHaz3Kk;V&g7L>iwVHIdrP6NGMzbEq7J zBk7ps#5K8}NLD!zY7yh>)eM)+FU;f2 zwa7=CNwfe@F?=$)S&kB}YBaQs%8|8@9&3Rb^<>Kd?N~@`*PbRg>itjl8VIW>UGZx| zao$4Re218tYSrFP6+Zfy@C^%;J@5I$nf~nhyQg zFE0BANgDH0;s$k{oY4pT31azileL8DQ4gw_sy@M22oTjqyC1*lr-L%F9(V^F41yEOt zZM}2zSEVl=HGk(O`Xpxi)IMBZ4H(^@-&!Er91u1LCUG{&9?@1%T?etLk)fwP3ejpt zfu>^q`4GgfPIiolD)q;2YigX01LnNq({^^q> zTjd=7@~p}Xr$_uLjo=7@+EkDbbQv$=x?%D!9rwIv$lNFBr;0zMihU@%gwTXO`PJz@ zMzKawv{ekU_M4LfzgYaVadn<@0SmMG)tDoNaz*uP#rPwk2M zX;d$QwkomD!;aMS5ApUNQ~B-L;62b5w3y@Mu}{X@g+xW$KX|vU!68C z0v}}$W$o`2rc0xni<%PW4Mz=S%;bYo&G%n4b&Y(qS;jB|AH#D>M?Kf38FL}&$H|cF z#$0`7!{-6d7jV_Bd=eF!K}jH?h!}|;^acg3&WQO5^ zZN&7V&yY|f9aX5uZtlZlsEqcbNZGo6()3UwPsZfPdnFJ>DVT397|+ke1Imf#o)dH2&&JCJQ~)u8->v x6mn>vNuJ5S{5=>&3x4iPD98Q3`q>h@^F~{B|4`FCLj(ao(h~CGMPmAX{|9x`WlsPA diff --git a/doc/salome/gui/GHS3DPLUGIN/images/ghs3d_parameters_basic.png b/doc/salome/gui/GHS3DPLUGIN/images/ghs3d_parameters_basic.png index 9519c1461d3734447fd669b37a63f7fea55d83cf..e272cefdd0ba5f5bc8e99c25749cf4423fca8751 100644 GIT binary patch literal 20489 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 wMn(o+UbPAzdF8;f7 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 UNr5qaLEo(?t143>^)m3k062y4DgXcg diff --git a/doc/salome/gui/GHS3DPLUGIN/input/ghs3d_hypo.doc b/doc/salome/gui/GHS3DPLUGIN/input/ghs3d_hypo.doc index 8b544ed..0e18ad3 100644 --- a/doc/salome/gui/GHS3DPLUGIN/input/ghs3d_hypo.doc +++ b/doc/salome/gui/GHS3DPLUGIN/input/ghs3d_hypo.doc @@ -156,8 +156,6 @@ entirely into the solid mesh. - NODE - EDGE - FACE -- If a size is given, the mesh will be refined around the enforced -elements given the size (not available yet) - If a group name is given, the enforced elements will be added to the group. If the group does not exist, it is created. diff --git a/idl/GHS3DPlugin_Algorithm.idl b/idl/GHS3DPlugin_Algorithm.idl index 8af4f1e..0a4fbf2 100644 --- a/idl/GHS3DPlugin_Algorithm.idl +++ b/idl/GHS3DPlugin_Algorithm.idl @@ -50,7 +50,6 @@ module GHS3DPlugin string entry; SMESH::ElementType elementType; string groupName; - double size; }; typedef sequence GHS3DEnforcedMeshList; @@ -166,15 +165,18 @@ module GHS3DPlugin boolean SetEnforcedMesh(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType) raises (SALOME::SALOME_Exception); boolean SetEnforcedMeshWithGroup(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in string groupName) raises (SALOME::SALOME_Exception); + + /* OBSOLETE FUNCTIONS */ boolean SetEnforcedMeshSize(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in double size) raises (SALOME::SALOME_Exception); boolean SetEnforcedMeshSizeWithGroup(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in double size, in string groupName) raises (SALOME::SALOME_Exception); + /* OBSOLETE FUNCTIONS */ + GHS3DEnforcedMeshList GetEnforcedMeshes(); void ClearEnforcedMeshes(); /*! * Set/get/unset an enforced vertex (private method for GUI) */ - boolean p_SetEnforcedMesh(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, - in double size, in string groupName) raises (SALOME::SALOME_Exception); + boolean p_SetEnforcedMesh(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in string name, in string groupName) raises (SALOME::SALOME_Exception); }; }; diff --git a/src/GHS3DPlugin/GHS3DPlugin_GHS3D.cxx b/src/GHS3DPlugin/GHS3DPlugin_GHS3D.cxx index 9f2737b..07b451d 100644 --- a/src/GHS3DPlugin/GHS3DPlugin_GHS3D.cxx +++ b/src/GHS3DPlugin/GHS3DPlugin_GHS3D.cxx @@ -1035,7 +1035,7 @@ static void addElemInMeshGroup(SMESH_Mesh* theMesh, groupDone = true; } if (!groupDone) - throw SALOME_Exception(LOCALIZED("A enforced vertex node was not added to a group")); + throw SALOME_Exception(LOCALIZED("A given element was not added to a group")); } @@ -2748,7 +2748,7 @@ static bool writePoints (ofstream & theFile, if (theEnforcedVertices.find(coords) != theEnforcedVertices.end()) continue; - double size = theNodeIDToSizeMap.find(nodeIt->first->GetID())->second; +// double size = theNodeIDToSizeMap.find(nodeIt->first->GetID())->second; // theGhs3dIdToNodeMap.insert( make_pair( nbNodes + i, (*nodeIt) )); // MESSAGE("Adding enforced node (" << x << "," << y <<"," << z << ")"); // X Y Z PHY_SIZE DUMMY_INT @@ -2756,7 +2756,7 @@ static bool writePoints (ofstream & theFile, << x << space << y << space << z << space - << size << space + << -1 << space << dummyint << space; theFile << std::endl; theEnforcedNodeIdToGhs3dIdMap.insert( make_pair( nodeIt->first->GetID(), aGhs3dID )); diff --git a/src/GHS3DPlugin/GHS3DPlugin_Hypothesis.cxx b/src/GHS3DPlugin/GHS3DPlugin_Hypothesis.cxx index 7aa5341..6910f8c 100644 --- a/src/GHS3DPlugin/GHS3DPlugin_Hypothesis.cxx +++ b/src/GHS3DPlugin/GHS3DPlugin_Hypothesis.cxx @@ -63,7 +63,6 @@ GHS3DPlugin_Hypothesis::GHS3DPlugin_Hypothesis(int hypId, int studyId, SMESH_Gen _enfEdges(TIDSortedElemGroupMap()), _enfTriangles(TIDSortedElemGroupMap()), _nodeIDToSizeMap(DefaultID2SizeMap()), - _elementIDToSizeMap(DefaultID2SizeMap()), _groupsToRemove(DefaultGroupsToRemove()) { _name = "GHS3D_Parameters"; @@ -419,20 +418,19 @@ bool GHS3DPlugin_Hypothesis::SetEnforcedVertex(std::string theName, std::string //======================================================================= //function : SetEnforcedMesh //======================================================================= -bool GHS3DPlugin_Hypothesis::SetEnforcedMesh(SMESH_Mesh& theMesh, SMESH::ElementType elementType, std::string name, std::string entry, double size, std::string groupName) +bool GHS3DPlugin_Hypothesis::SetEnforcedMesh(SMESH_Mesh& theMesh, SMESH::ElementType elementType, std::string name, std::string entry, std::string groupName) { TIDSortedElemSet theElemSet; SMDS_ElemIteratorPtr eIt = theMesh.GetMeshDS()->elementsIterator(SMDSAbs_ElementType(elementType)); while ( eIt->more() ) theElemSet.insert( eIt->next() ); MESSAGE("Add "<name = name; newEnfMesh->entry = entry; newEnfMesh->elementType = elementType; - newEnfMesh->size = size; newEnfMesh->groupName = groupName; TGHS3DEnforcedMeshList::iterator it = _enfMeshList.find(newEnfMesh); @@ -447,7 +445,7 @@ bool GHS3DPlugin_Hypothesis::SetEnforcedMesh(SMESH_Mesh& theMesh, SMESH::Element //======================================================================= //function : SetEnforcedGroup //======================================================================= -bool GHS3DPlugin_Hypothesis::SetEnforcedGroup(const SMESHDS_Mesh* theMeshDS, SMESH::long_array_var theIDs, SMESH::ElementType elementType, std::string name, std::string entry, double size, std::string groupName) +bool GHS3DPlugin_Hypothesis::SetEnforcedGroup(const SMESHDS_Mesh* theMeshDS, SMESH::long_array_var theIDs, SMESH::ElementType elementType, std::string name, std::string entry, std::string groupName) { MESSAGE("GHS3DPlugin_Hypothesis::SetEnforcedGroup"); TIDSortedElemSet theElemSet; @@ -473,13 +471,12 @@ bool GHS3DPlugin_Hypothesis::SetEnforcedGroup(const SMESHDS_Mesh* theMeshDS, SME // theElemSet.insert( it->next() ); MESSAGE("Add "<name = name; newEnfMesh->entry = entry; newEnfMesh->elementType = elementType; - newEnfMesh->size = size; newEnfMesh->groupName = groupName; TGHS3DEnforcedMeshList::iterator it = _enfMeshList.find(newEnfMesh); @@ -494,13 +491,16 @@ bool GHS3DPlugin_Hypothesis::SetEnforcedGroup(const SMESHDS_Mesh* theMeshDS, SME //======================================================================= //function : SetEnforcedElements //======================================================================= -bool GHS3DPlugin_Hypothesis::SetEnforcedElements(TIDSortedElemSet theElemSet, SMESH::ElementType elementType, double size, std::string groupName) +bool GHS3DPlugin_Hypothesis::SetEnforcedElements(TIDSortedElemSet theElemSet, SMESH::ElementType elementType, std::string groupName) { MESSAGE("GHS3DPlugin_Hypothesis::SetEnforcedElements"); TIDSortedElemSet::const_iterator it = theElemSet.begin(); const SMDS_MeshElement* elem; const SMDS_MeshNode* node; - bool added = false; + bool added = true; + pair nodeRet; + pair elemRet; + for (;it != theElemSet.end();++it) { elem = (*it); @@ -508,43 +508,41 @@ bool GHS3DPlugin_Hypothesis::SetEnforcedElements(TIDSortedElemSet theElemSet, SM case SMESH::NODE: node = dynamic_cast(elem); if (node) { - _enfNodes.insert(make_pair(node,groupName)); - _nodeIDToSizeMap.insert(make_pair(node->GetID(), size)); - added = true; + nodeRet = _enfNodes.insert(make_pair(node,groupName)); + added = added && nodeRet.second; + string msg = added ? "yes":"no"; + MESSAGE( "Node (" <X()<<","<Y()<<","<Z()<< ") with ID " << node->GetID() <<" added ? " << msg); } else { SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator(); for (;nodeIt->more();) { node = dynamic_cast(nodeIt->next()); - _enfNodes.insert(make_pair(node,groupName)); - _nodeIDToSizeMap.insert(make_pair(node->GetID(), size)); + nodeRet = _enfNodes.insert(make_pair(node,groupName)); + added = added && nodeRet.second; } - added = true; +// added = true;s } break; case SMESH::EDGE: if (elem->GetType() == SMDSAbs_Edge) { - _enfEdges.insert(make_pair(elem,groupName)); - _elementIDToSizeMap.insert(make_pair(elem->GetID(), size)); - added = true; + elemRet = _enfEdges.insert(make_pair(elem,groupName)); + added = added && elemRet.second; } else if (elem->GetType() > SMDSAbs_Edge) { SMDS_ElemIteratorPtr it = elem->edgesIterator(); for (;it->more();) { const SMDS_MeshElement* anEdge = it->next(); - _enfEdges.insert(make_pair(anEdge,groupName)); - _elementIDToSizeMap.insert(make_pair(anEdge->GetID(), size)); + elemRet = _enfEdges.insert(make_pair(anEdge,groupName)); + added = added && elemRet.second; } - added = true; } break; case SMESH::FACE: if (elem->GetType() == SMDSAbs_Face) { if (elem->NbCornerNodes() == 3) { - _enfTriangles.insert(make_pair(elem,groupName)); - _elementIDToSizeMap.insert(make_pair(elem->GetID(), size)); - added = true; + elemRet = _enfTriangles.insert(make_pair(elem,groupName)); + added = added && elemRet.second; } } else if (elem->GetType() > SMDSAbs_Face) { // Group of faces @@ -552,9 +550,8 @@ bool GHS3DPlugin_Hypothesis::SetEnforcedElements(TIDSortedElemSet theElemSet, SM for (;it->more();) { const SMDS_MeshElement* aFace = it->next(); if (aFace->NbCornerNodes() == 3) { - _enfTriangles.insert(make_pair(aFace,groupName)); - _elementIDToSizeMap.insert(make_pair(aFace->GetID(), size)); - added = true; + elemRet = _enfTriangles.insert(make_pair(aFace,groupName)); + added = added && elemRet.second; } } } @@ -688,7 +685,6 @@ void GHS3DPlugin_Hypothesis::ClearEnforcedMeshes() _enfEdges.clear(); _enfTriangles.clear(); _nodeIDToSizeMap.clear(); - _elementIDToSizeMap.clear(); _enfMeshList.clear(); _entryEnfMeshMap.clear(); NotifySubMeshesHypothesisModification(); @@ -879,7 +875,7 @@ std::ostream & GHS3DPlugin_Hypothesis::SaveTo(std::ostream & save) TGHS3DEnforcedVertexList::iterator it = _enfVertexList.begin(); if (it != _enfVertexList.end()) { - save << "__ENFORCED_VERTICES_BEGIN__ "; + save << " " << "__ENFORCED_VERTICES_BEGIN__ "; for ( ; it != _enfVertexList.end(); ++it ) { TGHS3DEnforcedVertex *enfVertex = (*it); save << " " << "__BEGIN_VERTEX__"; @@ -910,9 +906,38 @@ std::ostream & GHS3DPlugin_Hypothesis::SaveTo(std::ostream & save) save << " " << "__END_SIZE__"; save << " " << "__END_VERTEX__"; } - save << "__ENFORCED_VERTICES_END__ "; + save << " " << "__ENFORCED_VERTICES_END__ "; } + TGHS3DEnforcedMeshList::iterator it_mesh = _enfMeshList.begin(); + if (it_mesh != _enfMeshList.end()) { + save << " " << "__ENFORCED_MESHES_BEGIN__ "; + for ( ; it_mesh != _enfMeshList.end(); ++it_mesh ) { + TGHS3DEnforcedMesh *enfMesh = (*it_mesh); + save << " " << "__BEGIN_ENF_MESH__"; + + save << " " << "__BEGIN_NAME__"; + save << " " << enfMesh->name; + save << " " << "__END_NAME__"; + + save << " " << "__BEGIN_ENTRY__"; + save << " " << enfMesh->entry; + save << " " << "__END_ENTRY__"; + + save << " " << "__BEGIN_ELEM_TYPE__"; + save << " " << (int)enfMesh->elementType; + save << " " << "__END_ELEM_TYPE__"; + + if (!enfMesh->groupName.empty()) { + save << " " << "__BEGIN_GROUP__"; + save << " " << enfMesh->groupName; + save << " " << "__END_GROUP__"; + } + save << " " << "__END_ENF_MESH__"; + std::cout << "Saving of enforced mesh " << enfMesh->name.c_str() << " done" << std::endl; + } + save << " " << "__ENFORCED_MESHES_END__ "; + } return save; } @@ -922,214 +947,298 @@ std::ostream & GHS3DPlugin_Hypothesis::SaveTo(std::ostream & save) std::istream & GHS3DPlugin_Hypothesis::LoadFrom(std::istream & load) { - bool isOK = true; - int i; - - isOK = (load >> i); - if (isOK) - myToMeshHoles = i; - else - load.clear(ios::badbit | load.rdstate()); - - isOK = (load >> i); - if (isOK) - myMaximumMemory = i; - else - load.clear(ios::badbit | load.rdstate()); - - isOK = (load >> i); - if (isOK) - myInitialMemory = i; - else - load.clear(ios::badbit | load.rdstate()); - - isOK = (load >> i); - if (isOK) - myOptimizationLevel = i; - else - load.clear(ios::badbit | load.rdstate()); - - isOK = (load >> myWorkingDirectory); - if (isOK) { - if ( myWorkingDirectory == "0") { // myWorkingDirectory was empty - myKeepFiles = false; - myWorkingDirectory.clear(); - } - else if ( myWorkingDirectory == "1" ) { - myKeepFiles = true; - myWorkingDirectory.clear(); - } - } - else - load.clear(ios::badbit | load.rdstate()); - - if ( !myWorkingDirectory.empty() ) { - isOK = (load >> i); - if (isOK) - myKeepFiles = i; - else - load.clear(ios::badbit | load.rdstate()); - } - - isOK = (load >> i); - if (isOK) - myVerboseLevel = (short) i; - else - load.clear(ios::badbit | load.rdstate()); - - isOK = (load >> i); - if (isOK) - myToCreateNewNodes = (bool) i; - else - load.clear(ios::badbit | load.rdstate()); - - isOK = (load >> i); - if (isOK) - myToUseBoundaryRecoveryVersion = (bool) i; - else - load.clear(ios::badbit | load.rdstate()); - - isOK = (load >> i); - if (isOK) - myToUseFemCorrection = (bool) i; - else - load.clear(ios::badbit | load.rdstate()); - - isOK = (load >> i); - if (isOK) - myToRemoveCentralPoint = (bool) i; - else - load.clear(ios::badbit | load.rdstate()); - - std::string separator; - bool hasOptions = false; - bool hasEnforcedVertices = false; - isOK = (load >> separator); - - if (isOK) { - if (separator == "__OPTIONS_BEGIN__") - hasOptions = true; - else if (separator == "__ENFORCED_VERTICES_BEGIN__") - hasEnforcedVertices = true; - } + bool isOK = true; + int i; + + isOK = (load >> i); + if (isOK) + myToMeshHoles = i; + else + load.clear(ios::badbit | load.rdstate()); + + isOK = (load >> i); + if (isOK) + myMaximumMemory = i; + else + load.clear(ios::badbit | load.rdstate()); + + isOK = (load >> i); + if (isOK) + myInitialMemory = i; + else + load.clear(ios::badbit | load.rdstate()); + + isOK = (load >> i); + if (isOK) + myOptimizationLevel = i; + else + load.clear(ios::badbit | load.rdstate()); + + isOK = (load >> myWorkingDirectory); + if (isOK) { + if ( myWorkingDirectory == "0") { // myWorkingDirectory was empty + myKeepFiles = false; + myWorkingDirectory.clear(); + } + else if ( myWorkingDirectory == "1" ) { + myKeepFiles = true; + myWorkingDirectory.clear(); + } + } + else + load.clear(ios::badbit | load.rdstate()); + + if ( !myWorkingDirectory.empty() ) { + isOK = (load >> i); + if (isOK) + myKeepFiles = i; + else + load.clear(ios::badbit | load.rdstate()); + } + + isOK = (load >> i); + if (isOK) + myVerboseLevel = (short) i; + else + load.clear(ios::badbit | load.rdstate()); + + isOK = (load >> i); + if (isOK) + myToCreateNewNodes = (bool) i; + else + load.clear(ios::badbit | load.rdstate()); + + isOK = (load >> i); + if (isOK) + myToUseBoundaryRecoveryVersion = (bool) i; + else + load.clear(ios::badbit | load.rdstate()); + + isOK = (load >> i); + if (isOK) + myToUseFemCorrection = (bool) i; + else + load.clear(ios::badbit | load.rdstate()); + + isOK = (load >> i); + if (isOK) + myToRemoveCentralPoint = (bool) i; + else + load.clear(ios::badbit | load.rdstate()); + + std::string separator; + bool hasOptions = false; + bool hasEnforcedVertices = false; + bool hasEnforcedMeshes = false; + isOK = (load >> separator); + + if (isOK) { + if (separator == "__OPTIONS_BEGIN__") + hasOptions = true; + else if (separator == "__ENFORCED_VERTICES_BEGIN__") + hasEnforcedVertices = true; + else if (separator == "__ENFORCED_MESHES_BEGIN__") + hasEnforcedMeshes = true; + } + + if (hasOptions) { + std::string txt; + while (isOK) { + isOK = (load >> txt); + if (isOK) { + if (txt == "__OPTIONS_END__") { + if (!myTextOption.empty()) { + // Remove last space + myTextOption.erase(myTextOption.end()-1); + } + isOK = false; + break; + } + myTextOption += txt; + myTextOption += " "; + } + } + } + + if (hasOptions) { + isOK = (load >> separator); + if (isOK && separator == "__ENFORCED_VERTICES_BEGIN__") + hasEnforcedVertices = true; + if (isOK && separator == "__ENFORCED_MESHES_BEGIN__") + hasEnforcedMeshes = true; + } - if (hasOptions) { - std::string txt; - while (isOK) { - isOK = (load >> txt); - if (isOK) { - if (txt == "__OPTIONS_END__") { - if (!myTextOption.empty()) { - // Remove last space - myTextOption.erase(myTextOption.end()-1); - } - isOK = false; - break; - } - myTextOption += txt; - myTextOption += " "; - } - } - } - - if (hasOptions) { - isOK = (load >> separator); - if (isOK && separator == "__ENFORCED_VERTICES_BEGIN__") - hasEnforcedVertices = true; + if (hasEnforcedVertices) { + std::string txt, name, entry, groupName; + double size, coords[3]; + bool isCompound; + bool hasCoords = false; + isOK = (load >> txt); // __BEGIN_VERTEX__ + while (isOK) { + if (txt == "__ENFORCED_VERTICES_END__") + isOK = false; + + TGHS3DEnforcedVertex *enfVertex = new TGHS3DEnforcedVertex(); + while (isOK) { + isOK = (load >> txt); + if (txt == "__END_VERTEX__") { + enfVertex->name = name; + enfVertex->geomEntry = entry; + enfVertex->isCompound = isCompound; + enfVertex->groupName = groupName; + enfVertex->coords.clear(); + if (hasCoords) + enfVertex->coords.assign(coords,coords+3); + + _enfVertexList.insert(enfVertex); + + if (enfVertex->coords.size()) + _coordsEnfVertexMap[enfVertex->coords] = enfVertex; + if (!enfVertex->geomEntry.empty()) + _geomEntryEnfVertexMap[enfVertex->geomEntry] = enfVertex; + + name.clear(); + entry.clear(); + groupName.clear(); + hasCoords = false; + isOK = false; + } + + if (txt == "__BEGIN_NAME__") { // __BEGIN_NAME__ + while (isOK && (txt != "__END_NAME__")) { + isOK = (load >> txt); + if (txt != "__END_NAME__") { + if (!name.empty()) + name += " "; + name += txt; + } + } + MESSAGE("name: " <> entry); + isOK = (load >> isCompound); + isOK = (load >> txt); // __END_ENTRY__ + if (txt != "__END_ENTRY__") + throw std::exception(); + MESSAGE("entry: " << entry); + } + + if (txt == "__BEGIN_GROUP__") { // __BEGIN_GROUP__ + while (isOK && (txt != "__END_GROUP__")) { + isOK = (load >> txt); + if (txt != "__END_GROUP__") { + if (!groupName.empty()) + groupName += " "; + groupName += txt; + } + } + MESSAGE("groupName: " << groupName); + } + + if (txt == "__BEGIN_COORDS__") { // __BEGIN_COORDS__ + hasCoords = true; + isOK = (load >> coords[0] >> coords[1] >> coords[2]); + isOK = (load >> txt); // __END_COORDS__ + if (txt != "__END_COORDS__") + throw std::exception(); + MESSAGE("coords: " << coords[0] <<","<< coords[1] <<","<< coords[2]); + } + + if (txt == "__BEGIN_SIZE__") { // __BEGIN_ENTRY__ + isOK = (load >> size); + isOK = (load >> txt); // __END_ENTRY__ + if (txt != "__END_SIZE__") { + throw std::exception(); + } + MESSAGE("size: " << size); + } + } + isOK = (load >> txt); // __BEGIN_VERTEX__ + } } if (hasEnforcedVertices) { - std::string txt, name, entry, groupName; - double size, coords[3]; - bool isCompound; - bool hasCoords = false; - while (isOK) { - isOK = (load >> txt); // __BEGIN_VERTEX__ - if (isOK) { - if (txt == "__ENFORCED_VERTICES_END__") - isOK = false; - - TGHS3DEnforcedVertex *enfVertex = new TGHS3DEnforcedVertex(); - while (isOK) { - isOK = (load >> txt); - if (txt == "__END_VERTEX__") { - enfVertex->name = name; - enfVertex->geomEntry = entry; - enfVertex->isCompound = isCompound; - enfVertex->groupName = groupName; - enfVertex->coords.clear(); - if (hasCoords) - enfVertex->coords.assign(coords,coords+3); - - _enfVertexList.insert(enfVertex); - - if (enfVertex->coords.size()) - _coordsEnfVertexMap[enfVertex->coords] = enfVertex; - if (!enfVertex->geomEntry.empty()) - _geomEntryEnfVertexMap[enfVertex->geomEntry] = enfVertex; - - name.clear(); - entry.clear(); - groupName.clear(); - hasCoords = false; - isOK = false; - } - - if (txt == "__BEGIN_NAME__") { // __BEGIN_NAME__ - while (isOK && (txt != "__END_NAME__")) { - isOK = (load >> txt); - if (txt != "__END_NAME__") { - if (!name.empty()) - name += " "; - name += txt; - } - } - MESSAGE("name: " <> entry); - isOK = (load >> isCompound); - isOK = (load >> txt); // __END_ENTRY__ - if (txt != "__END_ENTRY__") - throw std::exception(); - MESSAGE("entry: " << entry); - } - - if (txt == "__BEGIN_GROUP__") { // __BEGIN_GROUP__ - while (isOK && (txt != "__END_GROUP__")) { - isOK = (load >> txt); - if (txt != "__END_GROUP__") { - if (!groupName.empty()) - groupName += " "; - groupName += txt; - } - } - MESSAGE("groupName: " << groupName); - } - - if (txt == "__BEGIN_COORDS__") { // __BEGIN_COORDS__ - hasCoords = true; - isOK = (load >> coords[0] >> coords[1] >> coords[2]); - isOK = (load >> txt); // __END_COORDS__ - if (txt != "__END_COORDS__") - throw std::exception(); - MESSAGE("coords: " << coords[0] <<","<< coords[1] <<","<< coords[2]); - } - - if (txt == "__BEGIN_SIZE__") { // __BEGIN_ENTRY__ - isOK = (load >> size); - isOK = (load >> txt); // __END_ENTRY__ - if (txt != "__END_SIZE__") { - throw std::exception(); - } - MESSAGE("size: " << size); - } - } - } - } + isOK = (load >> separator); + if (isOK && separator == "__ENFORCED_MESHES_BEGIN__") + hasEnforcedMeshes = true; } + if (hasEnforcedMeshes) { + std::string txt, name, entry, groupName; + int elementType = -1; + isOK = (load >> txt); // __BEGIN_ENF_MESH__ + while (isOK) { +// if (isOK) { + if (txt == "__ENFORCED_MESHES_END__") + isOK = false; + + TGHS3DEnforcedMesh *enfMesh = new TGHS3DEnforcedMesh(); + while (isOK) { + isOK = (load >> txt); + if (txt == "__END_ENF_MESH__") { + enfMesh->name = name; + enfMesh->entry = entry; + enfMesh->elementType = (SMESH::ElementType)elementType; + enfMesh->groupName = groupName; + + _enfMeshList.insert(enfMesh); + std::cout << "Restoring of enforced mesh " <> txt); + if (txt != "__END_NAME__") { + if (!name.empty()) + name += " "; + name += txt; + } + } + MESSAGE("name: " <> entry); + isOK = (load >> txt); // __END_ENTRY__ + if (txt != "__END_ENTRY__") + throw std::exception(); + MESSAGE("entry: " << entry); + } + + if (txt == "__BEGIN_ELEM_TYPE__") { // __BEGIN_ELEM_TYPE__ + isOK = (load >> elementType); + isOK = (load >> txt); // __END_ELEM_TYPE__ + if (txt != "__END_ELEM_TYPE__") + throw std::exception(); + MESSAGE("elementType: " << elementType); + } + + if (txt == "__BEGIN_GROUP__") { // __BEGIN_GROUP__ + while (isOK && (txt != "__END_GROUP__")) { + isOK = (load >> txt); + if (txt != "__END_GROUP__") { + if (!groupName.empty()) + groupName += " "; + groupName += txt; + } + } // while + MESSAGE("groupName: " << groupName); + } // if + std::cout << "isOK: " << isOK << std::endl; + } // while +// } // if + isOK = (load >> txt); // __BEGIN_ENF_MESH__ + } // while + } // if + return load; } @@ -1345,11 +1454,6 @@ GHS3DPlugin_Hypothesis::TID2SizeMap GHS3DPlugin_Hypothesis::GetNodeIDToSizeMap(c return hyp ? hyp->_GetNodeIDToSizeMap(): DefaultID2SizeMap(); } -GHS3DPlugin_Hypothesis::TID2SizeMap GHS3DPlugin_Hypothesis::GetElementIDToSizeMap(const GHS3DPlugin_Hypothesis* hyp) -{ - return hyp ? hyp->_GetElementIDToSizeMap(): DefaultID2SizeMap(); -} - GHS3DPlugin_Hypothesis::TSetStrings GHS3DPlugin_Hypothesis::GetGroupsToRemove(const GHS3DPlugin_Hypothesis* hyp) { return hyp ? hyp->_GetGroupsToRemove(): DefaultGroupsToRemove(); diff --git a/src/GHS3DPlugin/GHS3DPlugin_Hypothesis.hxx b/src/GHS3DPlugin/GHS3DPlugin_Hypothesis.hxx index 93723bb..db3830d 100644 --- a/src/GHS3DPlugin/GHS3DPlugin_Hypothesis.hxx +++ b/src/GHS3DPlugin/GHS3DPlugin_Hypothesis.hxx @@ -84,9 +84,8 @@ public: struct TGHS3DEnforcedMesh { std::string name; std::string entry; - SMESH::ElementType elementType; std::string groupName; - double size; + SMESH::ElementType elementType; }; struct CompareGHS3DEnforcedMesh { @@ -103,14 +102,19 @@ public: }; typedef std::set< TGHS3DEnforcedMesh*, CompareGHS3DEnforcedMesh > TGHS3DEnforcedMeshList; // Map mesh entry / Enforced mesh list - // ex: 0:1:2:1 -> [ ("Mesh_1", "0:1:2:1", TopAbs_NODE, "", -1), - // ("Mesh_1", "0:1:2:1", TopAbs_EDGE, "edge group", 5)] + // ex: 0:1:2:1 -> [ ("Mesh_1", "0:1:2:1", TopAbs_NODE, ""), + // ("Mesh_1", "0:1:2:1", TopAbs_EDGE, "edge group")] typedef std::map< std::string, TGHS3DEnforcedMeshList > TEntryGHS3DEnforcedMeshListMap; typedef std::map TID2SizeMap; + + struct TIDMeshIDCompare { + bool operator () (const SMDS_MeshElement* e1, const SMDS_MeshElement* e2) const + { return e1->getMeshId() == e2->getMeshId() ? e1->GetID() < e2->GetID() : e1->getMeshId() < e2->getMeshId() ; } + }; - typedef std::map TIDSortedElemGroupMap; - typedef std::map TIDSortedNodeGroupMap; + typedef std::map TIDSortedElemGroupMap; + typedef std::map TIDSortedNodeGroupMap; typedef std::set TSetStrings; static const char* GetHypType() { return "GHS3D_Parameters"; } @@ -225,9 +229,9 @@ public: /*! * To set enforced elements */ - bool SetEnforcedMesh(SMESH_Mesh& theMesh, SMESH::ElementType elementType, std::string name, std::string entry, double size, std::string groupName = ""); - bool SetEnforcedGroup(const SMESHDS_Mesh* theMeshDS, SMESH::long_array_var theIDs, SMESH::ElementType elementType, std::string name, std::string entry, double size, std::string groupName = ""); - bool SetEnforcedElements(TIDSortedElemSet theElemSet, SMESH::ElementType elementType, double size, std::string groupName = ""); + bool SetEnforcedMesh(SMESH_Mesh& theMesh, SMESH::ElementType elementType, std::string name, std::string entry, std::string groupName = ""); + bool SetEnforcedGroup(const SMESHDS_Mesh* theMeshDS, SMESH::long_array_var theIDs, SMESH::ElementType elementType, std::string name, std::string entry, std::string groupName = ""); + bool SetEnforcedElements(TIDSortedElemSet theElemSet, SMESH::ElementType elementType, std::string groupName = ""); const TGHS3DEnforcedMeshList _GetEnforcedMeshes() const { return _enfMeshList; } const TEntryGHS3DEnforcedMeshListMap _GetEnforcedMeshesByEntry() const { return _entryEnfMeshMap; } void ClearEnforcedMeshes(); @@ -235,7 +239,6 @@ public: const TIDSortedElemGroupMap _GetEnforcedEdges() const { return _enfEdges; } const TIDSortedElemGroupMap _GetEnforcedTriangles() const { return _enfTriangles; } const TID2SizeMap _GetNodeIDToSizeMap() const {return _nodeIDToSizeMap; } - const TID2SizeMap _GetElementIDToSizeMap() const {return _elementIDToSizeMap; } const TSetStrings _GetGroupsToRemove() const {return _groupsToRemove; } /*! * \brief Return the enforced vertices @@ -252,7 +255,6 @@ public: static TIDSortedElemGroupMap GetEnforcedEdges(const GHS3DPlugin_Hypothesis* hyp); static TIDSortedElemGroupMap GetEnforcedTriangles(const GHS3DPlugin_Hypothesis* hyp); static TID2SizeMap GetNodeIDToSizeMap(const GHS3DPlugin_Hypothesis* hyp); - static TID2SizeMap GetElementIDToSizeMap(const GHS3DPlugin_Hypothesis* hyp); static TSetStrings GetGroupsToRemove(const GHS3DPlugin_Hypothesis* hyp); void ClearGroupsToRemove(); @@ -331,7 +333,6 @@ private: TIDSortedElemGroupMap _enfEdges; TIDSortedElemGroupMap _enfTriangles; TID2SizeMap _nodeIDToSizeMap; - TID2SizeMap _elementIDToSizeMap; std::map _entryToElemsMap; TSetStrings _groupsToRemove; diff --git a/src/GHS3DPlugin/GHS3DPlugin_Hypothesis_i.cxx b/src/GHS3DPlugin/GHS3DPlugin_Hypothesis_i.cxx index 5b8466b..2e7a37e 100644 --- a/src/GHS3DPlugin/GHS3DPlugin_Hypothesis_i.cxx +++ b/src/GHS3DPlugin/GHS3DPlugin_Hypothesis_i.cxx @@ -799,8 +799,6 @@ GHS3DPlugin::GHS3DEnforcedMeshList* GHS3DPlugin_Hypothesis_i::GetEnforcedMeshes( enfMesh->elementType = currentMesh->elementType; // Group Name enfMesh->groupName = CORBA::string_dup(currentMesh->groupName.c_str()); - // Size - enfMesh->size = currentMesh->size; result[i]=enfMesh; } @@ -817,22 +815,7 @@ bool GHS3DPlugin_Hypothesis_i::SetEnforcedMeshWithGroup(SMESH::SMESH_IDSource_pt throw (SALOME::SALOME_Exception) { #if GHS3D_VERSION >= 42 - return p_SetEnforcedMesh(theSource, theType, -1.0, theGroupName); -// bool res = p_SetEnforcedMesh(theSource, theType, -1.0, theGroupName); -// SMESH_Mesh_i* theMesh_i = SMESH::DownCast( theSource); -// SMESH_Group_i* theGroup_i = SMESH::DownCast( theSource); -// SMESH_GroupOnGeom_i* theGroupOnGeom_i = SMESH::DownCast( theSource); -// if (theGroup_i || theGroupOnGeom_i) -// { -// SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshWithGroup( " -// << theSource << ", " << theType << ", \"" << theGroupName << "\" )"; -// } -// else if (theMesh_i) -// { -// SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshWithGroup( " -// << theSource << ".GetMesh(), " << theType << ", \"" << theGroupName << "\" )"; -// } -// return res; + return p_SetEnforcedMesh(theSource, theType, "", theGroupName); #else SALOME::ExceptionStruct ExDescription; ExDescription.text = "Bad version of GHS3D. It must >= 4.2."; @@ -852,21 +835,6 @@ bool GHS3DPlugin_Hypothesis_i::SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSour // MESSAGE("GHS3DPlugin_Hypothesis_i::SetEnforcedMesh"); #if GHS3D_VERSION >= 42 return p_SetEnforcedMesh(theSource, theType); -// bool res = p_SetEnforcedMesh(theSource, theType); -// SMESH_Mesh_i* theMesh_i = SMESH::DownCast( theSource); -// SMESH_Group_i* theGroup_i = SMESH::DownCast( theSource); -// SMESH_GroupOnGeom_i* theGroupOnGeom_i = SMESH::DownCast( theSource); -// if (theGroup_i || theGroupOnGeom_i) -// { -// SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMesh( " -// << theSource << ", " << theType << " )"; -// } -// else if (theMesh_i) -// { -// SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMesh( " -// << theSource << ".GetMesh(), " << theType << " )"; -// } -// return res; #else SALOME::ExceptionStruct ExDescription; ExDescription.text = "Bad version of GHS3D. It must >= 4.2."; @@ -878,37 +846,13 @@ bool GHS3DPlugin_Hypothesis_i::SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSour } /*! - * \brief Adds enforced elements of type elementType using another mesh/sub-mesh/mesh group theSource and a size. The elements will be grouped in theGroupName. + * \brief OBSOLETE FUNCTION - Adds enforced elements of type elementType using another mesh/sub-mesh/mesh group theSource and a size. The elements will be grouped in theGroupName. */ bool GHS3DPlugin_Hypothesis_i::SetEnforcedMeshSizeWithGroup(SMESH::SMESH_IDSource_ptr theSource, SMESH::ElementType theType, double theSize, const char* theGroupName) throw (SALOME::SALOME_Exception) { #if GHS3D_VERSION >= 42 - if (theSize < 0) { - SALOME::ExceptionStruct ExDescription; - ExDescription.text = "Size cannot be negative"; - ExDescription.type = SALOME::BAD_PARAM; - ExDescription.sourceFile = "GHS3DPlugin_Hypothesis_i.cxx"; - ExDescription.lineNumber = 781; - throw SALOME::SALOME_Exception(ExDescription); - } - - return p_SetEnforcedMesh(theSource, theType, theSize, theGroupName); -// bool res = p_SetEnforcedMesh(theSource, theType, theSize, theGroupName); -// SMESH_Mesh_i* theMesh_i = SMESH::DownCast( theSource); -// SMESH_Group_i* theGroup_i = SMESH::DownCast( theSource); -// SMESH_GroupOnGeom_i* theGroupOnGeom_i = SMESH::DownCast( theSource); -// if (theGroup_i || theGroupOnGeom_i) -// { -// SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshSizeWithGroup( " -// << theSource << ", " << theType << ", " << theSize << ", \"" << theGroupName << "\" )"; -// } -// else if (theMesh_i) -// { -// SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshSizeWithGroup( " -// << theSource << ".GetMesh(), " << theType << ", " << theSize << ", \"" << theGroupName << "\" )"; -// } -// return res; + return p_SetEnforcedMesh(theSource, theType, "", theGroupName); #else SALOME::ExceptionStruct ExDescription; ExDescription.text = "Bad version of GHS3D. It must >= 4.2."; @@ -920,36 +864,13 @@ bool GHS3DPlugin_Hypothesis_i::SetEnforcedMeshSizeWithGroup(SMESH::SMESH_IDSourc } /*! - * \brief Adds enforced elements of type elementType using another mesh/sub-mesh/mesh group theSource and a size. + * \brief OBSOLETE FUNCTION - Adds enforced elements of type elementType using another mesh/sub-mesh/mesh group theSource and a size. */ bool GHS3DPlugin_Hypothesis_i::SetEnforcedMeshSize(SMESH::SMESH_IDSource_ptr theSource, SMESH::ElementType theType, double theSize) throw (SALOME::SALOME_Exception) { #if GHS3D_VERSION >= 42 - if (theSize < 0) { - SALOME::ExceptionStruct ExDescription; - ExDescription.text = "Size cannot be negative"; - ExDescription.type = SALOME::BAD_PARAM; - ExDescription.sourceFile = "GHS3DPlugin_Hypothesis_i.cxx"; - ExDescription.lineNumber = 781; - throw SALOME::SALOME_Exception(ExDescription); - } - return p_SetEnforcedMesh(theSource, theType, theSize); -// bool res = p_SetEnforcedMesh(theSource, theType, theSize); -// SMESH_Mesh_i* theMesh_i = SMESH::DownCast( theSource); -// SMESH_Group_i* theGroup_i = SMESH::DownCast( theSource); -// SMESH_GroupOnGeom_i* theGroupOnGeom_i = SMESH::DownCast( theSource); -// if (theGroup_i || theGroupOnGeom_i) -// { -// SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshSize( " -// << theSource << ", " << theType << ", " << theSize << " )"; -// } -// else if (theMesh_i) -// { -// SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshSize( " -// << theSource << ".GetMesh(), " << theType << ", " << theSize << " )"; -// } -// return res; + return p_SetEnforcedMesh(theSource, theType); #else SALOME::ExceptionStruct ExDescription; ExDescription.text = "Bad version of GHS3D. It must >= 4.2."; @@ -960,7 +881,7 @@ bool GHS3DPlugin_Hypothesis_i::SetEnforcedMeshSize(SMESH::SMESH_IDSource_ptr the #endif } -bool GHS3DPlugin_Hypothesis_i::p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSource, SMESH::ElementType theType, double theSize, const char* theGroupName) +bool GHS3DPlugin_Hypothesis_i::p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSource, SMESH::ElementType theType, const char* theName, const char* theGroupName) throw (SALOME::SALOME_Exception) { MESSAGE("GHS3DPlugin_Hypothesis_i::p_SetEnforcedMesh"); @@ -976,18 +897,6 @@ bool GHS3DPlugin_Hypothesis_i::p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSo throw SALOME::SALOME_Exception(ExDescription); } - if ((theType != SMESH::NODE) && (theType != SMESH::EDGE) && (theType != SMESH::FACE)) - { - return false; -// SALOME::ExceptionStruct ExDescription; -// ExDescription.text = "Bad elementType"; -// ExDescription.type = SALOME::BAD_PARAM; -// ExDescription.sourceFile = "GHS3DPlugin_Hypothesis_i.cxx"; -// ExDescription.lineNumber = 840; -// throw SALOME::SALOME_Exception(ExDescription); - } - - SMESH::array_of_ElementType_var types = theSource->GetTypes(); switch (theType) { case SMESH::NODE: MESSAGE("Required type is NODE"); @@ -999,13 +908,16 @@ bool GHS3DPlugin_Hypothesis_i::p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSo MESSAGE("Required type is FACE"); break; default: - break; + MESSAGE("Incompatible required type: " << theType); + return false; } // MESSAGE("Required type is "<GetTypes(); MESSAGE("Available types:"); for (int i=0;ilength();i++){MESSAGE(types[i]);} if ( types->length() >= 1 && types[types->length()-1] < theType) { + MESSAGE("Required type not available"); return false; // SALOME::ExceptionStruct ExDescription; // ExDescription.text = "The source mesh has bad type"; @@ -1015,36 +927,31 @@ bool GHS3DPlugin_Hypothesis_i::p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSo // throw SALOME::SALOME_Exception(ExDescription); } + + SMESH_Gen_i *smeshGen = SMESH_Gen_i::GetSMESHGen(); + SALOMEDS::SObject_ptr SObj = smeshGen->ObjectToSObject(smeshGen->GetCurrentStudy(),theSource); + SMESH_Mesh_i* theMesh_i = SMESH::DownCast( theSource); SMESH_Group_i* theGroup_i = SMESH::DownCast( theSource); SMESH_GroupOnGeom_i* theGroupOnGeom_i = SMESH::DownCast( theSource); - TIDSortedElemSet theElemSet; - SMESH_Gen_i *smeshGen = SMESH_Gen_i::GetSMESHGen(); - SALOMEDS::SObject_ptr SObj = smeshGen->ObjectToSObject(smeshGen->GetCurrentStudy(),theSource); + + string enfMeshName = theName; + if (enfMeshName.empty()) + enfMeshName = SObj->GetName(); + if (theMesh_i) { try { - bool res = this->GetImpl()->SetEnforcedMesh(theMesh_i->GetImpl(), theType, SObj->GetName() , SObj->GetID(), theSize, theGroupName); - if (theSize > 0) { - if (theGroupName != "") { - SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshSizeWithGroup( " - << theSource << ".GetMesh(), " << theType << ", " << theSize << ", \"" << theGroupName << "\" )"; - } - else { - SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshSize( " - << theSource << ".GetMesh(), " << theType << ", " << theSize << ", \"" << theGroupName << "\" )"; - } - } - else { - if (theGroupName != "") { - SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshWithGroup( " - << theSource << ".GetMesh(), " << theType << ", \"" << theGroupName << "\" )"; - } - else { - SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMesh( " - << theSource << ".GetMesh(), " << theType << " )"; - } - } + bool res = this->GetImpl()->SetEnforcedMesh(theMesh_i->GetImpl(), theType, enfMeshName , SObj->GetID(), theGroupName); + if (theGroupName != "") { + SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshWithGroup( " + << theSource << ".GetMesh(), " << theType << ", \"" << theGroupName << "\" )"; + } + else { + SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMesh( " + << theSource << ".GetMesh(), " << theType << " )"; + } + return res; } catch (const std::invalid_argument& ex) { @@ -1059,22 +966,11 @@ bool GHS3DPlugin_Hypothesis_i::p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSo THROW_SALOME_CORBA_EXCEPTION( ex.what() ,SALOME::BAD_PARAM ); } } - else if (theGroup_i && types->length() == 1 && types[0] == theType) + else if (theGroup_i)// && types->length() == 1 && types[0] == theType) { MESSAGE("The source is a group") try { - bool res = this->GetImpl()->SetEnforcedGroup(theGroup_i->GetGroupDS()->GetMesh(), theGroup_i->GetListOfID(), theType, SObj->GetName() , SObj->GetID(), theSize, theGroupName); - if (theSize > 0) { - if (theGroupName != "") { - SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshSizeWithGroup( " - << theSource << ", " << theType << ", " << theSize << ", \"" << theGroupName << "\" )"; - } - else { - SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshSize( " - << theSource << ", " << theType << ", " << theSize << ", \"" << theGroupName << "\" )"; - } - } - else { + bool res = this->GetImpl()->SetEnforcedGroup(theGroup_i->GetGroupDS()->GetMesh(), theGroup_i->GetListOfID(), theType, enfMeshName , SObj->GetID(), theGroupName); if (theGroupName != "") { SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshWithGroup( " << theSource << ", " << theType << ", \"" << theGroupName << "\" )"; @@ -1083,7 +979,6 @@ bool GHS3DPlugin_Hypothesis_i::p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSo SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMesh( " << theSource << ", " << theType << " )"; } - } return res; } catch (const std::invalid_argument& ex) { @@ -1098,22 +993,11 @@ bool GHS3DPlugin_Hypothesis_i::p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSo THROW_SALOME_CORBA_EXCEPTION( ex.what() ,SALOME::BAD_PARAM ); } } - else if (theGroupOnGeom_i && types->length() == 1 && types[0] == theType) + else if (theGroupOnGeom_i)// && types->length() == 1 && types[0] == theType) { MESSAGE("The source is a group on geom") try { - bool res = this->GetImpl()->SetEnforcedGroup(theGroupOnGeom_i->GetGroupDS()->GetMesh(),theGroupOnGeom_i->GetListOfID(), theType, SObj->GetName() , SObj->GetID(), theSize, theGroupName); - if (theSize > 0) { - if (theGroupName != "") { - SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshSizeWithGroup( " - << theSource << ", " << theType << ", " << theSize << ", \"" << theGroupName << "\" )"; - } - else { - SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshSize( " - << theSource << ", " << theType << ", " << theSize << ", \"" << theGroupName << "\" )"; - } - } - else { + bool res = this->GetImpl()->SetEnforcedGroup(theGroupOnGeom_i->GetGroupDS()->GetMesh(),theGroupOnGeom_i->GetListOfID(), theType, enfMeshName , SObj->GetID(), theGroupName); if (theGroupName != "") { SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMeshWithGroup( " << theSource << ", " << theType << ", \"" << theGroupName << "\" )"; @@ -1122,7 +1006,6 @@ bool GHS3DPlugin_Hypothesis_i::p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSo SMESH::TPythonDump () << "isDone = " << _this() << ".SetEnforcedMesh( " << theSource << ", " << theType << " )"; } - } return res; } catch (const std::invalid_argument& ex) { diff --git a/src/GHS3DPlugin/GHS3DPlugin_Hypothesis_i.hxx b/src/GHS3DPlugin/GHS3DPlugin_Hypothesis_i.hxx index 7ca3cac..62ae16e 100644 --- a/src/GHS3DPlugin/GHS3DPlugin_Hypothesis_i.hxx +++ b/src/GHS3DPlugin/GHS3DPlugin_Hypothesis_i.hxx @@ -144,11 +144,15 @@ class GHS3DPLUGIN_EXPORT GHS3DPlugin_Hypothesis_i: /*! * To set an enforced mesh */ - bool p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSource, SMESH::ElementType elementType, double size = -1, const char* theGroupName="") throw (SALOME::SALOME_Exception); + bool p_SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSource, SMESH::ElementType elementType, const char* theName="", const char* theGroupName="") throw (SALOME::SALOME_Exception); bool SetEnforcedMesh(SMESH::SMESH_IDSource_ptr theSource, SMESH::ElementType elementType) throw (SALOME::SALOME_Exception); bool SetEnforcedMeshWithGroup(SMESH::SMESH_IDSource_ptr theSource, SMESH::ElementType elementType, const char* theGroupName) throw (SALOME::SALOME_Exception); + + /* OBSOLETE FUNCTIONS */ bool SetEnforcedMeshSize(SMESH::SMESH_IDSource_ptr theSource, SMESH::ElementType elementType, double size) throw (SALOME::SALOME_Exception); bool SetEnforcedMeshSizeWithGroup(SMESH::SMESH_IDSource_ptr theSource, SMESH::ElementType elementType, double size, const char* theGroupName) throw (SALOME::SALOME_Exception); + /* OBSOLETE FUNCTIONS */ + GHS3DPlugin::GHS3DEnforcedMeshList* GetEnforcedMeshes(); void ClearEnforcedMeshes(); diff --git a/src/GUI/GHS3DPluginGUI_Enums.h b/src/GUI/GHS3DPluginGUI_Enums.h index 8516565..2a2aca8 100644 --- a/src/GUI/GHS3DPluginGUI_Enums.h +++ b/src/GUI/GHS3DPluginGUI_Enums.h @@ -51,7 +51,6 @@ enum { ENF_MESH_NAME_COLUMN = 0, ENF_MESH_ENTRY_COLUMN, ENF_MESH_CONSTRAINT_COLUMN, - ENF_MESH_SIZE_COLUMN, ENF_MESH_GROUP_COLUMN, ENF_MESH_NB_COLUMNS }; @@ -74,7 +73,6 @@ enum { ENF_MESH_WARNING = 0, ENF_MESH_MESH /*= 0*/, ENF_MESH_CONSTRAINT, - ENF_MESH_SIZE, ENF_MESH_GROUP, ENF_MESH_BTN, ENF_MESH_NB_LINES diff --git a/src/GUI/GHS3DPluginGUI_HypothesisCreator.cxx b/src/GUI/GHS3DPluginGUI_HypothesisCreator.cxx index 6c097cc..46a0776 100644 --- a/src/GUI/GHS3DPluginGUI_HypothesisCreator.cxx +++ b/src/GUI/GHS3DPluginGUI_HypothesisCreator.cxx @@ -287,38 +287,20 @@ EnforcedMeshTableWidgetDelegate::EnforcedMeshTableWidgetDelegate(QObject *parent QWidget *EnforcedMeshTableWidgetDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem & option , const QModelIndex & index ) const -{ - if (index.column() == ENF_MESH_SIZE_COLUMN) { - SMESHGUI_SpinBox *editor = new SMESHGUI_SpinBox(parent); - editor->RangeStepAndValidator(0, COORD_MAX, 10.0, "length_precision"); - return editor; - } +{ return QItemDelegate::createEditor(parent, option, index); } void EnforcedMeshTableWidgetDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { - if (index.column() == ENF_MESH_SIZE_COLUMN) { - SMESHGUI_SpinBox *spinBox = qobject_cast(editor); - spinBox->SetValue(index.data().toDouble()); - } - else - QItemDelegate::setEditorData(editor, index); + QItemDelegate::setEditorData(editor, index); } void EnforcedMeshTableWidgetDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { - if (index.column() == ENF_MESH_SIZE_COLUMN) - { - SMESHGUI_SpinBox *spinBox = qobject_cast(editor); - const double newsize = spinBox->GetValue(); - if (newsize > 0) - model->setData(index, newsize, Qt::EditRole); - } - else - QItemDelegate::setModelData(editor, model, index); + QItemDelegate::setModelData(editor, model, index); } @@ -590,7 +572,6 @@ QFrame* GHS3DPluginGUI_HypothesisCreator::buildFrame() enforcedMeshHeaders << tr( "GHS3D_ENF_NAME_COLUMN" ) << tr( "GHS3D_ENF_ENTRY_COLUMN" ) << tr( "GHS3D_ENF_MESH_CONSTRAINT_COLUMN" ) - << tr( "GHS3D_ENF_SIZE_COLUMN" ) << tr( "GHS3D_ENF_GROUP_COLUMN" ); myEnforcedMeshTableWidget->setHorizontalHeaderLabels(enforcedMeshHeaders); myEnforcedMeshTableWidget->horizontalHeader()->setStretchLastSection(true); @@ -616,10 +597,6 @@ QFrame* GHS3DPluginGUI_HypothesisCreator::buildFrame() myEnfMeshConstraint->insertItems(0,myEnfMeshConstraintLabels); myEnfMeshConstraint->setEditable(false); myEnfMeshConstraint->setCurrentIndex(0); - - QLabel* myMeshSizeLabel = new QLabel( tr( "GHS3D_ENF_SIZE_LABEL" ), myEnfMeshGroup ); - myMeshSizeValue = new SMESHGUI_SpinBox(myEnfMeshGroup); - myMeshSizeValue->RangeStepAndValidator(0, COORD_MAX, 10.0, "length_precision"); QLabel* myMeshGroupNameLabel = new QLabel( tr( "GHS3D_ENF_GROUP_LABEL" ), myEnfMeshGroup ); myMeshGroupName = new QLineEdit(myEnfMeshGroup); @@ -644,8 +621,6 @@ QFrame* GHS3DPluginGUI_HypothesisCreator::buildFrame() anEnfMeshLayout2->addWidget(myEnfMeshWdg, ENF_MESH_MESH, 0, 1, 2); anEnfMeshLayout2->addWidget(myMeshConstraintLabel, ENF_MESH_CONSTRAINT, 0, 1, 1); anEnfMeshLayout2->addWidget(myEnfMeshConstraint, ENF_MESH_CONSTRAINT, 1, 1, 1); - anEnfMeshLayout2->addWidget(myMeshSizeLabel, ENF_MESH_SIZE, 0, 1, 1); - anEnfMeshLayout2->addWidget(myMeshSizeValue, ENF_MESH_SIZE, 1, 1, 1); anEnfMeshLayout2->addWidget(myMeshGroupNameLabel, ENF_MESH_GROUP, 0, 1, 1); anEnfMeshLayout2->addWidget(myMeshGroupName, ENF_MESH_GROUP, 1, 1, 1); anEnfMeshLayout2->addWidget(addEnfMeshButton, ENF_MESH_BTN, 0, 1, 1); @@ -688,7 +663,6 @@ QFrame* GHS3DPluginGUI_HypothesisCreator::buildFrame() connect( removeEnfMeshButton, SIGNAL( clicked()), this, SLOT( onRemoveEnforcedMesh() ) ); // connect( myEnfMeshWdg, SIGNAL( contentModified()), this, SLOT( checkEnfMeshIsDefined() ) ); // connect( myEnfMeshConstraint, SIGNAL( currentIndexChanged(int) ), this, SLOT( checkEnfMeshIsDefined() ) ); -// connect( myMeshSizeValue, SIGNAL( textChanged(const QString&) ), this, SLOT( checkEnfMeshIsDefined() ) ); // connect( this, SIGNAL( enfMeshDefined(bool) ), addEnfMeshButton, SLOT( setEnabled(bool) ) ); return fr; @@ -729,7 +703,7 @@ void GHS3DPluginGUI_HypothesisCreator::checkVertexIsDefined() **/ void GHS3DPluginGUI_HypothesisCreator::checkEnfMeshIsDefined() { - emit enfMeshDefined((!myMeshSizeValue->GetString().isEmpty() && !myEnfVertexWdg->NbObjects() == 0)); + emit enfMeshDefined( myEnfVertexWdg->NbObjects() != 0); } /** @@ -924,9 +898,9 @@ void GHS3DPluginGUI_HypothesisCreator::synchronizeCoords() { /** GHS3DPluginGUI_HypothesisCreator::addEnforcedMesh( meshName, geomEntry, elemType, size, groupName) This method adds in the tree widget an enforced mesh from mesh, submesh or group with optionally size and and groupName. */ -void GHS3DPluginGUI_HypothesisCreator::addEnforcedMesh(std::string name, std::string entry, int elementType, double size, std::string groupName) +void GHS3DPluginGUI_HypothesisCreator::addEnforcedMesh(std::string name, std::string entry, int elementType, std::string groupName) { - MESSAGE("addEnforcedMesh(\"" << name << ", \"" << entry << "\", " << elementType << ", " << size << ", \"" << groupName << "\")"); + MESSAGE("addEnforcedMesh(\"" << name << ", \"" << entry << "\", " << elementType << ", \"" << groupName << "\")"); bool okToCreate = true; QString itemEntry = ""; int itemElementType = 0; @@ -960,11 +934,6 @@ void GHS3DPluginGUI_HypothesisCreator::addEnforcedMesh(std::string name, std::st break; if (itemEntry == QString(entry.c_str()) && itemElementType == elementType) { -// // update size -// if (itemSize != size) { -// MESSAGE("Size is updated from \"" << itemSize << "\" to \"" << size << "\""); -// myEnforcedMeshTableWidget->item(row, ENF_MESH_SIZE_COLUMN)->setData( Qt::EditRole, QVariant(size)); -// } // // update group name // if (itemGroupName.toStdString() != groupName) { // MESSAGE("Group is updated from \"" << itemGroupName.toStdString() << "\" to \"" << groupName << "\""); @@ -1013,11 +982,6 @@ void GHS3DPluginGUI_HypothesisCreator::addEnforcedMesh(std::string name, std::st MESSAGE("Add item in table at (" << rowCount << "," << col << "): " << item->text().toStdString()); myEnforcedMeshTableWidget->setItem(rowCount,col,item); break; - case ENF_MESH_SIZE_COLUMN: - item->setData( 0, size ); - MESSAGE("Add item in table at (" << rowCount << "," << col << "): " << item->text().toStdString()); - myEnforcedMeshTableWidget->setItem(rowCount,col,item); - break; case ENF_MESH_GROUP_COLUMN: item->setData( 0, groupName.c_str() ); MESSAGE("Add item in table at (" << rowCount << "," << col << "): " << item->text().toStdString()); @@ -1233,12 +1197,6 @@ void GHS3DPluginGUI_HypothesisCreator::onAddEnforcedMesh() groupName = ""; - double size = -1; - if (!myMeshSizeValue->GetString().isEmpty()) - size = myMeshSizeValue->GetValue(); -// if (size < 0) -// return; - int elementType = myEnfMeshConstraint->currentIndex(); @@ -1256,7 +1214,7 @@ void GHS3DPluginGUI_HypothesisCreator::onAddEnforcedMesh() CORBA::Object_var anObj = SMESH::SObjectToObject(aSObj,aStudy); if (!CORBA::is_nil(anObj)) { // SMESH::SMESH_IDSource_var theSource = SMESH::SObjectToInterface( aSObj ); - addEnforcedMesh( aSObj->GetName(), aSObj->GetID(), elementType, size, groupName); + addEnforcedMesh( aSObj->GetName(), aSObj->GetID(), elementType, groupName); } } else @@ -1269,7 +1227,7 @@ void GHS3DPluginGUI_HypothesisCreator::onAddEnforcedMesh() CORBA::Object_var anObj = SMESH::SObjectToObject(aSObj,aStudy); if (!CORBA::is_nil(anObj)) { // SMESH::SMESH_IDSource_var theSource = SMESH::SObjectToInterface( aSObj ); - addEnforcedMesh( aSObj->GetName(), aSObj->GetID(), elementType, size, groupName); + addEnforcedMesh( aSObj->GetName(), aSObj->GetID(), elementType, groupName); } } } @@ -1477,6 +1435,7 @@ void GHS3DPluginGUI_HypothesisCreator::retrieveParams() const TEnfVertexList::const_iterator it; int rowCount = 0; + myEnforcedTableWidget->clear(); myEnforcedTableWidget->setSortingEnabled(false); myEnforcedTableWidget->disconnect(SIGNAL( itemChanged(QTableWidgetItem *))); for(it = data.myEnforcedVertices.begin() ; it != data.myEnforcedVertices.end(); it++ ) @@ -1556,6 +1515,7 @@ void GHS3DPluginGUI_HypothesisCreator::retrieveParams() const // Update Enforced meshes QTableWidget TEnfMeshList::const_iterator itMesh; rowCount = 0; + myEnforcedMeshTableWidget->clear(); myEnforcedMeshTableWidget->setSortingEnabled(false); // myEnforcedMeshTableWidget->disconnect(SIGNAL( itemChanged(QTableWidgetItem *))); for(itMesh = data.myEnforcedMeshes.begin() ; itMesh != data.myEnforcedMeshes.end(); itMesh++ ) @@ -1592,11 +1552,6 @@ void GHS3DPluginGUI_HypothesisCreator::retrieveParams() const MESSAGE("Add item in table at (" << rowCount << "," << col << "): " << item->text().toStdString()); myEnforcedMeshTableWidget->setItem(rowCount,col,item); break; - case ENF_MESH_SIZE_COLUMN: - item->setData( 0, enfMesh->size ); - MESSAGE("Add item in table at (" << rowCount << "," << col << "): " << item->text().toStdString()); - myEnforcedMeshTableWidget->setItem(rowCount,col,item); - break; case ENF_MESH_GROUP_COLUMN: item->setData( 0, enfMesh->groupName.c_str() ); MESSAGE("Add item in table at (" << rowCount << "," << col << "): " << item->text().toStdString()); @@ -1739,7 +1694,6 @@ bool GHS3DPluginGUI_HypothesisCreator::readParamsFromHypo( GHS3DHypothesisData& myEnfMesh->name = CORBA::string_dup(enfMeshes[i].name.in()); myEnfMesh->entry = CORBA::string_dup(enfMeshes[i].entry.in()); myEnfMesh->groupName = CORBA::string_dup(enfMeshes[i].groupName.in()); - myEnfMesh->size = enfMeshes[i].size; switch (enfMeshes[i].elementType) { case SMESH::NODE: myEnfMesh->elementType = 0; @@ -1838,14 +1792,17 @@ bool GHS3DPluginGUI_HypothesisCreator::storeParamsToHypo( const GHS3DHypothesisD h->ClearEnforcedMeshes(); TEnfMeshList::const_iterator itEnfMesh; + _PTR(Study) aStudy = SMESH::GetActiveStudyDocument(); + for(itEnfMesh = h_data.myEnforcedMeshes.begin() ; itEnfMesh != h_data.myEnforcedMeshes.end(); itEnfMesh++ ) { TEnfMesh* enfMesh = (*itEnfMesh); - + _PTR(SObject) aSObj = aStudy->FindObjectID(enfMesh->entry.c_str()); SMESH::SMESH_IDSource_var theSource = SMESH::SObjectToInterface( aSObj ); - SMESH::ElementType elementType; + MESSAGE("enfMesh->elementType: " << enfMesh->elementType); + SMESH::ElementType elementType; switch(enfMesh->elementType) { case 0: elementType = SMESH::NODE; @@ -1860,7 +1817,8 @@ bool GHS3DPluginGUI_HypothesisCreator::storeParamsToHypo( const GHS3DHypothesisD break; } - ok = h->p_SetEnforcedMesh(theSource, elementType, enfMesh->size, enfMesh->groupName.c_str()); + std::cout << "h->p_SetEnforcedMesh(theSource, "<< elementType <<", \""<< enfMesh->name << "\", \"" << enfMesh->groupName.c_str() <<"\")"<p_SetEnforcedMesh(theSource, elementType, enfMesh->name.c_str(), enfMesh->groupName.c_str()); } // for } // try // catch(const std::exception& ex) { @@ -1936,12 +1894,11 @@ bool GHS3DPluginGUI_HypothesisCreator::readParamsFromWidgets( GHS3DHypothesisDat MESSAGE("Entry is \"" << myEnfMesh->entry << "\"" ); myEnfMesh->groupName = myEnforcedMeshTableWidget->item(row,ENF_MESH_GROUP_COLUMN)->data(Qt::EditRole).toString().toStdString(); MESSAGE("Group name is \"" << myEnfMesh->groupName << "\"" ); - myEnfMesh->size = myEnforcedMeshTableWidget->item(row,ENF_MESH_SIZE_COLUMN)->data(Qt::EditRole).toDouble(); - MESSAGE("Size is " << myEnfMesh->size); QComboBox* combo = qobject_cast(myEnforcedMeshTableWidget->cellWidget(row,ENF_MESH_CONSTRAINT_COLUMN)); myEnfMesh->elementType = combo->currentIndex(); MESSAGE("Element type: " << myEnfMesh->elementType); h_data.myEnforcedMeshes.insert(myEnfMesh); + std::cout << "h_data.myEnforcedMeshes.size(): " << h_data.myEnforcedMeshes.size() << std::endl; } return true; diff --git a/src/GUI/GHS3DPluginGUI_HypothesisCreator.h b/src/GUI/GHS3DPluginGUI_HypothesisCreator.h index 693f9ce..0aab3e9 100644 --- a/src/GUI/GHS3DPluginGUI_HypothesisCreator.h +++ b/src/GUI/GHS3DPluginGUI_HypothesisCreator.h @@ -120,7 +120,6 @@ struct TEnfMesh{ std::string entry; int elementType; std::string groupName; - double size; }; struct CompareEnfMeshes @@ -188,7 +187,7 @@ protected slots: void checkVertexIsDefined(); void clearEnfVertexSelection(); - void addEnforcedMesh(std::string name, std::string entry, int elementType, double size = 0, std::string groupName = ""); + void addEnforcedMesh(std::string name, std::string entry, int elementType, std::string groupName = ""); void onAddEnforcedMesh(); void onRemoveEnforcedMesh(); //void synchronizeEnforcedMesh(); @@ -247,7 +246,6 @@ private: QStringList myEnfMeshConstraintLabels; // SMESH::mesh_array_var myEnfMeshArray; QTableWidget* myEnforcedMeshTableWidget; - SMESHGUI_SpinBox* myMeshSizeValue; QLineEdit* myMeshGroupName; QPushButton* addEnfMeshButton; QPushButton* removeEnfMeshButton; -- 2.39.2