From c2e867e1c75a37c88e501c3d3fd76ff633607199 Mon Sep 17 00:00:00 2001 From: Luke Brooks Date: Thu, 10 Aug 2017 12:27:41 +0100 Subject: [PATCH 1/5] Changes the default behavior of IfcFile::Init to copy an existing string instead of creating a new file descriptor. Creating a method named `Dup` repeatedly fails with a "No member named 'Dup'" error. The implementation is commented out in case a maintained knows or figures out how to get it working. Same for a `read` method on the Python wrapper that utilises `Dup`. --- src/ifcparse/.IfcFile.h.swp | Bin 0 -> 16384 bytes src/ifcparse/.IfcParse.cpp.swp | Bin 0 -> 77824 bytes src/ifcparse/IfcFile.h | 6 ++++-- src/ifcparse/IfcParse.cpp | 34 ++++++++++++++++++++++++++++++++- src/ifcparse/IfcSpfStream.h | 2 ++ src/ifcwrap/IfcParseWrapper.i | 15 +++++++++++---- 6 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 src/ifcparse/.IfcFile.h.swp create mode 100644 src/ifcparse/.IfcParse.cpp.swp diff --git a/src/ifcparse/.IfcFile.h.swp b/src/ifcparse/.IfcFile.h.swp new file mode 100644 index 0000000000000000000000000000000000000000..0e15dcd88625258f12b1aa4709a19122c0d590e0 GIT binary patch literal 16384 zcmeHNO^h5z8Lb2eOu#k-=SLh+VN0vs&3eX;kx0htMYHQ!d!*g*GBX?FfHbO^uAV8} z)7^Ae?|Lu}2RMKTNN~svIFJwoC`TWnHMG#6#SyzrM_V=}zXUG}I8Mq?` zB5j{|{17|+*r}70|M;;F@%KNleMd#}OgRHN133dZ133dZ133dZ133dZ18)rmw0|%A z9GY@((wwJ~^F34Nw^0!`!0&*Yz}JDV0iOk~0VjcfzKgM!f!_e1 z2hISmzLT-<04^Yb!@wcn@AzKfZ@?dbUjQ!vUjcf64SWpP0-gXK2Oa?)295xKeFtN= zfR})u12=#l0iOa+14n^dZ)faTUVer$D47Id4-Cp9h2PdzJf$zw2Y^hLt_M9&p)Ip{?LG`YxF;W{fA6p|)Tb*>ml-YS=!l%IK5?ixqNQ;3bibuJw= z@)~}o79y8ySZykOVnu|@t(AF`SJ`}iJaNGko6#HNnfTePbxG&Iu{B48;rs$wo$2p% z5mS?vU{7etm%CJ)w^sg-doydys4okw(DmF1QEfJPwce_=F1Ks-W~)+PtG4Tv&FaEruu*7&JRK7}9FMmpL>Z#m54?`( zI7kXj*qMle)G+k`bH&o>^el>l& zsRJnni##-E5Idb=Ltd4^BG=v(>4s;RA9WnnEn}?hc%VC!`kb^y zOJ_(w(iBX3ZKMU#Hc2>7rO*H~N%SL48&a9X8rfonj^{a?zBR*FYwfN_6P1>2N-?v6 zw858EF2ko~@U^X#WB6Rf6lq5D;u6iCGw!b>u{P08uo|cx3}#G*sr^wy$+2>IYA{S* zq9JLy%&&2lmtuE!WETTzc|2u>CmxM6H_M!{iy#3ZrfumH1?lie(d|miwAvd@1z?S44S|Q{`WmM=HKoiGF*cqQ#xqgwU?OwS6GE#l&0{;# zRnqNBZbxpH9%gv_p}HLrD9kxB#5)WgU7;_K1zwq93%A&D<#wG24jn5NOKR+!$ZWI~ z`^WaqW$aLnu`ICCrf`>S;j78CWeo9^QPyR|{0fR%(pE0~T3=hQZB*MAki&LybLBCs;M4Df!wJu!TZt+U}GQU)5 zG*H3iGp4sZq+(RXZ;1+%v;xDsA_xRt+KA)H!&t;X%04Qlr@Dprx0kr5P3{Z~cc?#>aWQ>JGgq;GR#@!UCp+AzoDQBE&I=gt+wvJu&To zu}B232VlDC*%}Pt%8T$;Pv)1nMC6Zb^V7wXS%Ai2xI|r<9mXQ4fdP~v)9`GNz3lHF zR{}3q6y{+cq<4m#&+HkS{0$R-%R~t8VxkS?sLMFKz?4}sacU_Wrjo;0OfL@PY%H3I zou+vT9ZZ;-h#C*6H_gq3-esyYgarNENDO)K|F)uoci)Qc-~T+f^FEljY&vTCVV()O2TD z{zp!_Mf$(dtI~^+?O5UAU5J8OwiM(C4Vius2w7125xO7a}H zv7#h5<7~;$9?Lz$Ih)4SaoT$suXkp~C2kxWK!!SNW4B6DNoAArv<(GsbF;E#*qF(> z4j{(ROtMD=q}>oVU?8rx9q0?r*%POT5z+&*Eh$pwQ{8TC3(925ItYRu{?#{FMqJyL44}baX)PeZ__}{0-VsQeAs|P@`&}V$yiA)L<&6%y3b_NM!Cw91!8T1|B_tj$wr`FRK1Bu))0 zMcO{tdz`KgF-lClzsU+zVtRTQ8J95DSBDL0%Yf9>J?y{n#v(Qf;?hRW*uOR!m$RsQ I3vR0Z8zM(lYXATM literal 0 HcmV?d00001 diff --git a/src/ifcparse/.IfcParse.cpp.swp b/src/ifcparse/.IfcParse.cpp.swp new file mode 100644 index 0000000000000000000000000000000000000000..c8070fe716d1390ffa48ff4fe76df1c0684dc601 GIT binary patch literal 77824 zcmeIb34EMab@#6T1q_6;x9m?uVvl4kwv({Pj)H8cA&b{|pW|3qk@PGS$q)&eF z%rp17%em(+XSwH2Z@FY_fAp|{^Sb!ETUXb|N1k)pOL~5FM%V4Ty2^{ki+a4;U%gQ{ zTB;mfEm_wSmEmB$HZwT0urN3_H*;X2SeZOlESK$JX>MkrP^%a9%Rzk@Ala&!t|wTh zz&Zt1r@&%kuK(d@cAdLz>lP(`NcUOMJ@0X7_4n3OtW#i}0_zl5r@%S|)+w+~fprS3 zQ(&C}|IbjMv2gdUC()YQ_!cetf6r+8_qY7_clv)%H2sdc!2X`?|2@}d5c0W$fBsbe z@4K3QzoUO%_y6wl6$Hj_FcJ4!X-+%2o?0&mZsq9rGO$^1rKp{sjN;Yny)e1c$&QK?Ht^94}e^2jKhQTi{>8o4{Xy>%sHDNiYE(4Yq?J z@Cyk0L-0B9Ch!{Ya&R4Z4A>7Y29E-}!7i{3JP_Om+yvLp z7+u|UqFS1bN|jP0@3ZXTA#N#+(o7Vx@gFETmGgG$SE|gE7iWvn4wrJ^*l?(O^3%!G zZ>71};#`!^j~qO>Z#17*3n5%r7phNz9)LZ6Pll&yN&1RKFTm*euhqH6a(8NoM=qghVOhz7%$o)Dy+nLaoQB?#m{)( zTAOOf{>feWOGYPpx&{X$c|y^1Fm<$l@{(QKwrt%J72v2+BPuK`6!|r3RHNx)G`~1= zEUK5QOU2qiq&IoISTE9pbbl$`|9oAEW%{D&#YWUPR;(4H0;n%eH_F9EsaRJflyl4} zJyEHyLT0T>g{W3!dMH+AiYlBOG=M{!Nm-q46x3Cb@*aq$NKhy@inR*k^F&d3DR&BS zd`!!Z6&lg80>5qQ+Y}Y*QGs5aDa{wkQN0Ld3XLj_B_9f|QdJdMsaC|bmDxgVHp-`} zI%v6%=*MI_h0|SGll=s}WljruAVe9GYVr6#VSht^{ z;=-EKpVySy&2TDjY|kz^z6R!p_CP%rM%1h-=sajd$(o$u%xJsE<{4@0|)T&2oh4}%7EprItyIy1~aIDc-7#bX0T3Q-7T3H;Z){YLA zOEbkvy;vU{9*AqC3@@uLM)hOW#WM4ormR|VrpUC$+{og;upCwAY@*p$tk;=i_KqKl z_7*F}8q>}}R$?|N`&`DBsWQA(|CHhCMQb*k*GxKFWU4OLlNPpAMj5hK+jY^%_|(YG zv3+Axmqon2XKZSGbaFDcA_;Y}7A)#F%oK^0=9VNG2smCIU9S=8nh%YCgGW}n=`Z>nLAf|sj{wWw;- zRS!$)a->PS7M&=v_A`U6y%c4rHtnfF1M2Wi(?5$|wZaA;hEKAN&K=kiGp1v| zKJ{Y!rwkzr@AHy!re5=`923!EPgCX!w=mi$RgTWc# z!{`Q{2`&T=0N+6u@CvX9=D_2@5cm(|{+EEm;1|gEp8_ucmw^dzZ}1P)_k-X~;E%y1 z*a!B25pV$*0%rrY?JThVw@!g|3anFLodW9=SUUw0wVu=N<*lzWJ{ha)#?pt6|E2{KUIU7W5xM`Q`wFkqVV3HNcxM}ylO(zlvyOLW+b(1@>BnC zsh-YY3N2nLo1RdUP!)8W%5jBa=NJ2jRfApC`Gsl)1&gUYRRNXU=GQe>A>CU8fecAg zTr0E0O1jA@i=5up=}Cuky{e6MS*o)A!_>LdSneM_T5OEejxNrt4O>hDt5#&Gy}wwf zFV>2evKcqBqrHPRWV@?c@w@ SAxmaXrCqw7=C-e~Yun@% z_j9&(la7}XUPHqv8hE~(sY0oW4ILgfm#(&molv`-bwMQcaA2lvA>-mx*YKo4trSR- z^&rJ~rdFBy(vgSaw?YfEWxHaP0|oZFOeH#t`lH4M`;aryvzkmv$C9$%KRjLJcq~0C zVTQK(rzimRZ1d(4x?~ODrc7j_v80rRlH!Wu4D~*w9LFm3Nuzj@vErXNcF9)upnIn` zysRqwd{T9ChLz;Gj1hDJCYG&MtG0P!ajIpc;~V@a!1=&hpnonoL(rD zYE6k^`uFxle%K)n%BJEb(p(dtC+T~(^hH|-P}rYJ*3?kS$)O>}t|;4-yB>|A8@3rP ze2H08_MT%{a4?MZFu#qllA1B3q_^h2-!UFI0}^o&Gr2P3saJNOy!P_rSr?@yUxu_wAFJVRG!i zc*pz}YDGGB2Ax&4miIH$Ez1!VTA`9{(+OC*TI*N`M+V>iRnkhm35^Q#3pr=enc{)_ zZc}kvq8aU)$lFZc*m)s+{ZIwtZ`NYb&yEroS1pq#p1t zmOf*iG|vnyEY^?ZrwcR3Gkh5{m5OZ6D)mnHC8grhZW+l+QUOJWcU7ykS!0rFMZXD=e*oMF{v13G zoDY72-2XyQ0`~)5;1|gLp97x)Zvw9a*MUcYA0q#M1$+>^6TA^TAN&+uz<0s7z`ueI zf~pMU>w{9{2%-Vz6d@IZU9SQ5j4P~!0&*2gL?td z{mu9ayb{Qd;P=6Ezzi4%@*{WzxDWVk@EQ8*?}2;>eu-WGKf%wzyTQA_E5TJ@8RWq} zunC+4&IES?wkT_1c7IF9Hf&frR?-*#LHCtAi`fPnKYN?%oUH;~8}?O?9xc{}h9+VC z#d@xL5=~u221;?@z`%eFfKsL5^y$nStOr{D7c2GBQQ7`x7HgOY8!)*0rAzDGp+>1} zvukYJLG6gaydYbm%Yam)wzQ7<=erAyLT`j#v!G#P78NYtS@Xw^sp|1!Wf*fL|7h-% z$HKXNkv+B@w%fjkR_&+4g`>q>_`dJJ-u&pq#DNLS0f`ws*S$yNaU+%0ZU+4-dQlpO zX3{L6jcBe`osWtqu?b1lys2A;ewr{DcHHsk<#{(hLn7@;T%Pp-zx=XG*eYALe|&h$ z5p5jW=41VH4T{qScHkU6!2@l${Hstg?csqLjw#k+ z_bPef(*OyXqu3XMUKe&Zpfppr<+%2GrW`E2sGn`uSS4O%mHHbK=6j za-nzWzcFb7|q^w?B zyXUYdu#@&fo2JPdqCE}R^&^0$c!;_h6`a@1DO9m9nx8K$oJujcG^kVTHRz7lNY;)X z^$vDLz0o!L-`X4R`mP!!A0pfirzip6QG1i{8^z zn*88vLPchac(Oo)q_Q+d1QHF`Qcb^j#Tl?kSKBgmX01ETYPYHPh7CcP&>JtEap`nJ z{JEZYO;OWV>=0Ty4VxWTvm3{1Rhx>9$!rCV9VeVi8S@I$X0H2C<#?sKR7uK9uX{s& zfh+V6H>#8F4J~-xIPJhl7!Oa9f(L$;E*DRh@cwgZmDH3loGZE4Y(2zT&YWo6<{*$E ze`x&T@dKBR58=XAoGUDr8+`IDVg$3`rSvbQzNo;mvdwtOcfM!bWZMyPmas}%h?-hp z^>AotFL?%@(UV+5|LaLle)5;=DXE|i^&Z)~cVcw!$kb^5z@Gf*{)1DO<>N;~T5CJJ z*PJxlTD7Ksm^SB_FL0%chnB6lj<1`4=^vIvktD(nH!x`Ar3+ZnOCthH1!JEZV7ToB>?fri2L- zN=l>QwJfP$;+nM8w74comC;PEuqAN&Po)!#G*mzPbZAI9#DzkZUiPP*`Zi_&@kHj! z==c;K75TC8$*Ga?U8BYzX)aItT{D2widc=(#C6N9r*zPx4BHrXZ=81Zb{{yjbKk8| zEA|Y-(XCRYvGJ)DsMOr2Mk|~3n}6}61GS!|Y308}uNQZ7it(LpFZIjHT<7?uxel!y z*UD|TfYaJAm*oHZvE}VWo|OGRobUe;GXIyrN5DJ4+rV4FP2l&zv%pp00`M^KTi{pd z0e%F&4x}e|KX@Pb8*mgn6nqz*z<0ps!N$>2#qXCE#E+rSpk4SokmkMRZYe(+lG z3h+lj=O3;IGvE>+oyK192rvNd1MUE%G`!3V%=z^lNuK)R9|xDr&r!@>FBe&9Ah z=Q6$nbQa?#@JuiU_JTd&zu@N|fUknLgSUdWfER;jf~SM0fy;o-UWosDK3Xab5H{ITqdFP3# zZ>cvdDdlqfoxK5dYapCst^My4Q=IHC<` z*s98Yu<7#3Ch0J|;>SIzZGvL1F!qZ`t`fdEu%M;Vzn(Jj{lU&ykWANcC;749vkmpvtI$w;Avky&c7PPrg&tYV$nK8;LzIn6OZ>o)q zu1<}dXMdZjN^Ucujf&Sy8C+L|QIwlEJdK*ITZhaXTdW+H0kwihDEg(^a**7-kWGng z`6N(gien(w*{-|^GlV#a&=0Xja+GnyyeLE!NXM=!tKGy+jicL4aAT0bM=9la<$HEz*jM(o|Ni&d{nUj1wTZ5*?DIig9cYkIh31i8lXU5br? z87W-t1=B68nr)_ouh#i9m*1(JH|wBe>BEAWD5;{8>Bg36$LcN0X#n9Kp_cK2Z;{@; zHLBgBAk0<}9ZG8r=LU|N;@MegRUs-9_kjD5uPyO#Za|Y!E`HRf#5UEcO`ggmrQ@`K zsHKOMM4FLXxuGVVAUsi_`9xW1t@XM}Mnn^fOM^7$MumIP_QDB4d=D7wI$J?|GPGrG ze2+7viMFEZr|nYstCCih_5I3pLQ%ZL0^?QL_Le7Ib}-H9OkX+`b12h{E37ZVdObNh zdU1Yqe7EJ19bgc`M3!X2&=ld`)tWVaXx~1YBak^ba+%iOxq+?OMAfoUnc}I0U`in# zcPZ9V{8=qil$*GaY1++KVde|}w(sxICeCMR=9{a8*@W|WwP{V=F}ox>N-6>idmU4W zV^r$E`p}S$uvp*+TUUbK3;lxt==B=~afz+;f%u5~~PihPdc z`NTOTd7=(ra}jCPmdU~<8%W8jtgl*>bgtWPm-Hx%<0iFx41INGw7yVGS-vU2HCf7NHZv)BlOP~SH2fqvM0~EL59^i8uT+D)-`1d%t z2s{wn9{dd1`t#u3K)wchfaL9OBPV|XdEHyI0~263*a=3!UBMaPN65nO0&f9N15W}K@HlV)jDQQl zFt{uDC^GOnz^lLvI2Sww+!ZKL#IN9!n}K2xJQ0X*oZ3*D3x*7>Evow0vOb5bZAh5>GuvV0P zC-z0Y@mnnrhPtD*zGHYDr!**WcWK>CS5^DS>TX=)ydzk&8I!I$O8S@BJy#o~85;qS z)8W|X%hBFQq2s=I?T-7>fO*J5qnV%m9@-CKGme=$Jsy80OQTR0k!+R>M?P%cESAdD z4xyM(2ilXCDrG_lSh$F2qBxHU+eZFm2nXQY(nB> zuqhX+<=MQ`qG);%u{q9K&uj7SiD~ELOFu8E+bkcqtx6f|W^9Hs@gO$uCfoYnSe@wK zx59i6Zjv$%in|(|Vt?~$nqxxyf;P|P>1*pmk7(n@z*V^vBlV;{Uy%CTm-@Ut^?7hp z4`s(~ZQ;3CN$8!~qO&q2wHEt&#oUEyGTl9<;1XREhGiHfy_Vu|r=ugO8+Sq+-_(^cAWrnZ0wq|J(GrPm~z`jI6?{;B3cq6Jj3Gg6jz z=bt7eo7-M?*6SI!`NeUZlNs?s8?&r-kv+j-$e(GCQ%M=yC)HRGsQZT5IQ``}G97?~c-+lNImeE~IMd|nra(YySH*Z$9 zp}Vu(s^5P-Jep#dm_5}t^^oaZtg6<5rJz-Ycud~34@wc3K$A{Q{@qYR+8Uc+XjNw} zcS4sMW#U0v2OhO-pHlrrr)}P9)Ndw}`piuew`2gHof^!&4CbrNUyp81bidvq>2R*+ zg1+r%_a2Fs(BtEW;#zG%l~5+xd35zVx?N2JU1*FtP6thcnMS5MB_73UVbgTcX$-`q zZ?WgFM(P=-gzPYo)VIV%avUE>>gM_mc_+Kw#A-Bd=RIs$(%_#+83Wu>A~m8S}G^ zug=3l^1nj=ZIuj%{Qp!Z$#qHo|1|g{_yl+om;jFkcLtwFW`7xY33vjKTz>(00Qfqx z`Coz?z#o7s!KFaw0ltB3{vq&wa3i=LJQh3>+zxyTnOw01-v{0c{sz1OJPAAzTmue* z0ni6FgP$Rr>#V@rf$Z|n21h{=%z{UN`vTeDCC`5od0n=5#T|S#xEd(dz-8buKye4} z3^sr}0-YszFZf&V9`Hi243@wNun(LEzK0C2cm)3&To0ZFo&lZ?B1^6cT zI`|sUIfCbdJzy6Y0DWLHxDEIQa{Md6OTp8?Q^4i}K?(YN722TNVU_aOe zy1>oI?uth!yZF0+;t=iuj|BGs-=Y8i6r2Q)1G~WpI1g+C#vjHTu&Eyyj2=HY`80q$ zj{QoXyfau>LQ=o5(dW#XTU-VQv7X8m)fTqR{FJPO+Cuj)lrfLHk(?{lC*3v)UoxiG zQeEe=qyfPAnG4T$BGc5C`P!oyOJ@23JKf_9Xd4>XvQSB|5z*c}9^#7dsBOO7uRWX9I*^e%>75`^GX1%iZ#z%;JC z*@aSeD^JZyjR83xY6`Zx=f@9>k7{7MO=qUUmS7LDsD_3Lo@f)rIWHU9j~gQh=H??! zIdPrGDyAy5G)b)+DFVe#o()_eyP3DjW=u`F3wzFJ43O1gG4Et$KOHwW!XlxmCP4|{ z^I>)C=WjTcFJ#qU*7@o5sWi@95NSyPg8y<=s^cFT8d z&lu4WVHoWVGBqBHkJWTw^d|b=D)nv@IT6*l#*RT+s~Rh6nrItFL0r}Bkhjqi>%CS= zqzSSOyTVUWMBWMm!rNb3n7)~lO7%6de72opORtDab#bY_7N*SR#1L(l(O9PrNM@02 zJ{ON(cIknM-R<(axVXH8ZfG^8%jUOpYtuPk`3*x>(}EkCFVNDV5@D~A?7te?$6%Lc4c8~XNAS~o z%(bRBY@f!@DNeJfH6o?@wk+w=!~pLKNiXa&ZnP`gMqX2{8g?t^$yC`X!!Tr$JiW~b z`L0{4XDvbPYU0@6X`8HZHjS)Y4^3liAqNL-KGV^ta=psdEZ%UoZ**!PGS!-BCz2)= z#lXVa)wY^pP_=vQ@=Zwt+c>)=W5jPQ3B4zE5!8&=Clemevi7&@1`g<8?N4{_3SE&N zv6gSrz=ya7+DKcAO^@}6c$3{S?66=`$YYx?~*o~=15^{j<4^lZyMKK#ID z-oM_mm8Uu=Mx-_Ll!OX|GiJN*U4WvTmspC`azBdAinsz7Tx~09bmeHV-ot2|(qMF1 zbT)$84!+f_*{nuQX%tS&s_AA3KQi3VbrYd8y1MiK_eHKd0~t^9f4G0|ACU212%ZQU zU=Z|yUeE)+i=6+r;4eWLlz@Ev9}dn2-$T|{EP&Sm=>ilJpbo~te$WqY3uL!{4R{`q z@BZV!C13&^0OMd7>;T)r2Jlm4{ttn-f;R)j5RmWw)4)~WB#__!9-ugb^4WhAcow)C zOn`&n0MPve4+j5&oG<(S5|AEXE4V%Q8FIa3|F?ptgU5nR;11xI$n*aU6f@vja5b0! z+rd_#I02srHvsv_zW_{wBj7S1-+1}OZwK;?54QgIBhSAV{2h1(I0CkSUm(YS1pG0O ze7_Z(0p5%J{w$!o1nv$#PG3GB>;=}Z>f26#vG4?|HJ!N298Ai5X*x(EQ6&i%#aYYw zd{~fI$+amXH$nO}Z{g2PQM=R{nIYqEqJF%120OhwIiBHc1mq-diPY?8!y3Y zZ>4+XR0@gL!L=9SUOAOQPJ>rYojn{!Xalgya0tEcw#_X(KPA0SDhr(0>kZ;TaN^dE zqH6o6%}>WM({zj!c2T92OIkVBzT9v^R>vNPhFpPWd}*+e(MD7y%bFk+nU)%kVLCen z#kf70ZOl@q$WxYUS+Q)b48?Hz?Ic@3y&L9}tM%FCv>}c`vO=_u;=mFSo#PmKaa;^- zv16Uq#;EAk;^dtiq;9I3JKx!^ZXrkpZzE8*Hk`_f#%UErsUAc{YhzrzBM-foJ?@^v zfJ0EZ_)u?Np^DgWh(1Ohx1(Edmqg?-`VyCjYb@L_uphIfC%Z&PWM2V4%#6xy3Bg4$ z{=_RDD!5~{ua~9jA1?UtclAL3Ks@n}BCqogoT7eD|KcpYsS%&8dMui$^?jRiY%+Z_ zV@uRp-|b1>rQ>F?gjKP7R*u4CtsT}>ZeMuU3|Tqri&!-($y?QP8fI5Nw++V`5;uA%YDd_j?0`k zX$jweTxoy{IUaKO^4TLe-}v(@KIDRqLpw{Oya=Qbjr-Sm5pd2*9jZOM#=g?pq~K~z zqZxA{?v49*)VSKBrihK@Z{9y_P1aW%OY)=9REV(UZWr-9P8qR2c)-%`=52^xRORd@ z6lGMzM@+6ps;(QD7H7y6JXVoTcc!Q}T?8R2i3~BD!?9R8cZ8t0OI0HpknJG+ok^zt z47LP)-`?f&51lbIl>OeMR8a3|^0fLXFE0ipuN&)xukGGWDFI>^v$#t3wpYd^?NRs3 zDNpT68w|qx>1URMvmwMP{}t6b9EIXYSXhf}QoDxP(I#*A8zE2|M0ucaH`YuRi8e;L zt-97IcW(a`J$B5=|6JA>pU1q{A&E#F%cMM1Fg9rdo;_)pvxLiEkdz7PdmBK_uESdADv#h}i5gBM3 zn*-w2EZ1$_C6@`w{RQvvJ#EG?ZnL;@Q8)9%dg@#Ss%)_di}UyAnmNs^cHT(~s&AFv ztl~U0jjW=oZ1E7mkul3dgx}KHO#(tVpIk*?FyE(O2_(7OE8ODRCnTa3E<&Ya%v9$^ z-e{LLe~Il;=V%+#(l;q?FVt65!HTitCY-9djH*d71L&lfSzwG{p!DGNB;1C!9_XEER6dUlf$ouaF zi{MglF8DdJ{ing3z#GBKz)Qf>!2QAZk>fuMo(tx|e()%uv-;b>Rxkj5hWxH``tJn4 z51tL41s(%r`|klc@O@p5d@bAd-9{?`_MQ|~A2)G+K6Wj*CrFP%o zyO8aF4_phL40eEDNuCG40Ph9Q0kY}$f-}LtA-}&4JPj;?I#>WjFasp_-xJ&edr_(O0#cpi8zI1I!OLtuqJe96j{z3GF~k14Azqdq^oSt!=myQ2aTZeO&=k8y6UVh*s~uDi^y zyQiDBXi{IrS;06{*s0ie5Wyd=0yEDkn9|&>(cM zcC%pWX=Zy*A6F-x^M(=7wJH$IiILhVSY?usrv)!esJm11rBb;-WFY~+Z}9Blf8>b> zCeL!WsM#VWI$QiB$sg*q(34JD@&0Lk72FY(^pb7UL%My&7uv@p3pfiSv8F-_WSmfI zUQTs=QZdycUP9v7QU?|r2j(WEK~62}Ay@Y03Z$i5kl1T;>Cw?-HOGBkC*i4?-#KJB zxi_wvt9#WSnu$2p*wl!agPAtcN2Wt1eBxH6uwNKrwUd@FE{1}#UB4}~Frp1p)*O$vSNz7biXHDo4JLG`Kl1ZdK zi%ZC6V*Tm%Jrr*nP`9@+g0C>CFrzS9jqN(kQZ3_=5~QRs5lPf`6xVU*GP(pYZOhNh zI}DF>Ylep6K5j{EfrFB%D%~*>g7SrZb4fJlO;)BCY%$L>^ntqayanLjsskUe-#2+k6N{0lyXY4Wi zN8Onbg2S3DdiHOebzF$3wrsO@mRUQy#2n(TMQpRhK9vsZv`t?d*CcgGtw*O)eCD;a z@M%)wDRQPIKeZB0eE^0xl5(74NYcHWC%Ntnb%`cWSuv$HNlz!zte_&(9dJm(I#iM! zut{Wo*k7}{+v>O=b18kQ28c$IO`$=6wn?-}g5HpxJVH&hscV@o8FrajIBc_g*{C&& zwG&0B==Qq+Dv-`TGdE2s8eO{f{w4vhXKR;sEmNkKxYETYt=ecU&?+G#v+n-eAu>zX z8%+(T*3E3a{>Kp-+GbmjCWrl)A!R(EZVB;yRl-BZ? zs76kyX+7UYS1KMEF6v6q|R76TkSb1 z?RUyhWa`(ZVw>I-=SluYB<=c=4gnzlSG~aZKID3x`!9m6pdaXL|KEYPf&$nM?g;)J zdHx4Las8eH@<8$bzl!`W+y2vm?D_p52R4C!M`nK`cr922qd>C!*O1k31UCT1)SCu_ zpa+}{9s+)Xoc;|U-~DHRJ>V>GfACXe^&7y8z_Y+L;7V{D%zogEPThz!Q+!_ko>2XYkJkXM($c&m*IM4%`TigAzCf?gqYrT>ihoB2bL~Bj9py zK2Se?QGIEDnLVJ}74XQJ8t`T088B^{lzyRo1WlW8 zklb|LOxv)t7FN2*3Gg=A^T=BPLbXqWWSY%a4~HG75pI>rgqhX?T9}>9H>!zUP;*o^ zHg?#YdpoagD3OR5(@?tIYKy~6AX+4hE@wIfQfc7_o0IUk6U8%Vsfqwfm5 zDa6TPDHao_dy1dqK1im5DeKF`8B)V4j9%ZC{e_cby6gn&3W`d`Tu;s(;Zz*og<=Jp zoosr!Gd>qsu#J?hY{7FLCRGhK`Q5RYiOwq zb5?6J?WuOITGPwgm>+H|r@JM7)zOL&S8m3PpSyZA%|opVRPdHCqMp@~i|3|x3tvlG zN;IWJdkBbOu3Cv3HO8PBPEkaDC4b;dn5fR{9q!CCsJK-g0%iP-gJj zpipgm7k3^Ij#;_tT&dlt&?i40?4gYarxX-BJ5r=3(nzV)1HRS$!=WC|Lk7jMyPSuY zQys|1324N{N&Y>u&{`V!Km0EL4#%L@7>(fYpyPdr%Ghi<$p{Xe?^nGr+2BBdo4nWM zwkK1tRa{{c&)+VRzK@mH+sK}qg9E!Zq;<`9lEyj zxaMZ7%)pK}4=ayro0Hr$o27!AoA+>MmbVbuvf6rjHM1UXJK}u=V>GXCR%x9l$5h0m%RVFTfnQ9rzxy|BJy3fX@Cu8Jq&lfo-40HP{D!f$S}r{34*c z_8tU&1x6NZHUDH z-8NL1#=nkk*Kwb~AhZP1qPN745F0!00(_?qYRc%iq9w5!0}@SC&Ox#;z%+%Y+5~=d7o6p4~!-ximk=@laIWa&Kjxw===` z`MR4Wf`7!&(3Oj&Vk19Z794EhS;Sv&EksE+ivV7 za$w}j9;w9ni?S|S4ElC;jV|>q=&*>ah$=D~aU)uXAC47MI!9T=ec`q!s!{HcNv7Lp z(G;uR*0FPP7NW=nWHlGX&9{sMHVfG1AW+s3Oj|68f3`w)OcXmlQ4NBn5iGK3ZQy^I z#umylhjNvPuR+0DNwcK!S%X;Ey{7s(W4iYAU&gmhOI zQ=Vy=oT|wsH^#9|Bn%(}gn#V+@!P+|V?T$t0T)2d&W>7X`pV$~>kd(huQErtx7`lI zCW@Hv-A+k;B2}U z(A;rOoi6pGfpiC^H5VwPQM;~~UPjX~TU=-y>v!k$eNTG}G;u}4&K{zPWIRbomUKs= z9dY$~Oh{GII@7k|?hSPgwJs$55}IV|rp<3eRSjd=4aic%9RwQF7-YnR z*@63RHGDaP@7M*toG#MCC`?=fyXfgQ`*O{Td#D_NvtriikkZ#$O9hN7UQJ%0GrTC-8u;i|<0xcmXTss6ZaB zQI2i7?)*QZa@V&dmtz0F(hH|wMZW(E_yaHu9s%wMUWHsg1CD?`aBm=A{~v?bfER!h zU@JHiybGEBr9kq&eEmm({QK_-&IES^iu-q4@XyHhH-J9^SA%el|2#h50elcy|2^Oj zz~jLla8K}M$@<{k;KiT>%rr}2zUfgtiCscB~SySU?&&>Tfrb006#|8@Bt8f_;>JG{rRo5u0i7~ zuz+7;;T0x{B1_{Q_8rBO1)U-t(jrk|cHls%`Nvem#uG(iuhn6D+rhY!M1G^6l z`TMIQLJb#f1zRGdC4&u@Cb^gmuy-+6gX9q-mMx1rfk`B{8S=HA4HFTiwHur^ZMbn4 z&m}vT$FMQaYW6VUKXu!a6zMK?SZq*o+a2}Uf#o84xbdWs)vjolPtyo<4})npUd3EJ zlHtdvSiiB6EK-Zx^fG&p!!DnEyu4tZJd!dFyPvada7$TojI2!-aqE+evw6g;;aSu$ z>;|>*My*tzEQu4sG8M8Z(BuYPf~6DF^pcGQ7>Ao6StETxla0jK>&hFdA@5#hA>WE=k*teOYEQ!(3$+ zGFM5lRLY!{F&H!XOlgg-+ii_@Q1O`Vt**HJMPf>JS+y}EyJgn>9CLRIPhXR`({)VB z9K|4Wl9_8wl8t5=^*wb}bEvkaMzSg|$D0p(hlQB=Me-T59$QaH(InmG$4B;$s!J)) zweqZXrD_HU(V*Ib(|;uEkIQ;O7XhnzN*YX}BI`K@Rs59>v2(GEv8jMa@p zTn$$@kGEt6m0Jf<>yYt`s0N*(90!vnaB*1Re?(y+@k2R zbW5L~7V3-BVh9UE?~8OhqrHd5cE>Y(Iz&Ngc30PURikF3J#4Rzv72%8u6}5piX`F% z&Nh94T@YYWw+TRc!z)8ZG-vq@Q1VV#7mgMyIwFZ+gcQk2lNPxh%Y>>W3bl;JJ!PUg z;ddh%hPRIP(<$0rozRe&_#X9M(5i)_+w^B+*cc{z<9+i<&=c`-bP4uyNNhg8Z`rlU zDLTRYkr+CH&ysjXo1?W_I(8p8v~!=uZMK4Z@BjZu;u9;8)$2Z+n!biMXPfEyX#?8X zLzPlPd+e~?$WR$R`ku!aSseezi zfM_r>PEyWQZIm`?Xr3Kg9~$QB$NQnVC@y<j$C3s}uiFcxy zQS|m$E&L89Js+hM+pFfB$&n}z8r|_k(}vaL|NlT_{_m6-N1I6*50}lsX;4{eZ z&jH7Q?%nGH5s;7no4~Vx+c0`12+Qs^$&oXk;~r=_Jg|v$>%zY|5)&7 zFbFn*jo=H&+_LjO3+TT2MNj}bgMSIoeR}5t#od#Po|ezgLpHwy_$;!wx}(f!8f4$*TF}@JHXq3`r<8MJ(sU@zR0^gI_cLhe45A^l8(g^YjOK`TQ^j$7O{*-W=@3h;s28@J_5Un zaywk_FvoJl==Mn{7czKvi;0(~7PBJ%0V`X>z1X53SXf`qVbuO=Ph! z9Ndag-L+8BsqI^nYR9JW=o-_8)~&B(=u9Agt{cP4xs7NZ$S=vpEy?Usc3X%mFI2J* zFfEKb@>e$*-<|8zrXit9BEkk1a;g(8nVc5Ttk*7a;`H%-c<437a&HqnZJ3N zzpMvDIdR}H8{945mf0fWw}~oGvZ_jHa+(e9*>~&bfJ6F3sTd*Xt6vLHGKYGDP6-{sEwB2Zw%C^-=&N-z6hFlRmjo0*I zQY@8sx+@jgMuFuf)Al|+Mn_M~ricQeS?MIPnE;!X4Mmlh;pk-M4!zVWRVz){w`(l7 zD~UPn`T5BF6i)J(?d;ZLL9rr2jfRJgixcnQ!@oC5E$ADkf&Uw5Hc7 zt!4bhT*-%IW{AgkvM#KNq#dYOM`b#5ED;#Pc!~=TLqbwQ#{H#rO-M-uN^R~g))Wn9 zwNxJcE;3PeF>d2JvtsVvk;ctw?L28#e7o7NrVXjxZnM`}hEnSul-8auGhzF*gvKkm zcpIHe1!iuJ)#@2@tCRfGza=xOpHfA`B!P7kTPe3i@NOY)qmB9m^{;~Nh3{x+=Ig~W z*X=pe^gNz86+3lkJ1>;To?bC;=>)?Z_ZZ1Yy=+E&+f8EN_pT+=v=E8*BR71=pFgAY4=)~lxYp0BV!H}P!AG=^W zchqu7)~i(Oyz$P|wG*My&eZ3&U~vqkwtmE8ez#zq6P#LN9hvzNCtFzUAX3&vb$Ezz ztnrtlNM}u9HZ!rzgd@Yvc#Ne{y#9iq`X?77FX`2gf68MOTEqNnwCe7s`>0Jqy zKmBk1|633=WiyujABBPay$yN)T5ut_0PFz&iJbpB@LKR1Pz8$je;@Em`Tv*To8ar@B?gYMqUg68&lR&Zm{|WpVcs_U@kdMGs;3T*dTmp80JA?0|cla*&4$!>-(oZPP zKpAWS(og&lUBll1-S_u$@K|s!@NeiF{uii$Dezn1Yv>o=4HV<=0&rh&FQ6C!XMi8l zr{4qL2Hyf-1YZE32d@Xu1{VPJ{dRE5f0^yIZM8A_F;5M<@ibek&(ul_@&VwM4pXNi z&ub!>E1}6_4?n*^kZY&4Wf--}_%4CVlog@7+lSzQkN23T4nomxCtO{G16#3niNdxL ze_CT05yX4L5ZWmv$cF$=atqVeR5O8D@Z5@Ql8X~xoLx_WX8MQYZCKb*_&p+3N#?O+ zE-TC1RKd$sLPlX+I~sH(UOVX4xUl-KeM9W3yJ5pA*V643Z>1VG?RJ_g6{w}Q#^eyi zAdn?HTct)`@93VB^t0b7Ip3U2*{x-$ST~UA zIPWBcFsiedPTZ%`7R(__crC%!EiQ;dQ$IEhehh2qUcwCEzR}>+bd}>~b&*DF$y_tn zD9xjbT%7CMcK-Q&-RE4^f6jdWIkQveTr_mf{-JXwyZag?X97s&!D6jq$XJt<_7Am1 zT_iN$8#Oc)l&dp^vNDcx8*SPl{DItdy}pWTy)LJ{_fH7-Th;e2l}^eId{vs{oA%~H}kEv0HzaHB?%`- zceVVSnm}DbOq80+<;@!h_*7_&9xJZpeK*gpZ2|Kx(>1=O>}O&F47v;UchT)=?{1VS+J4T<8J?B)u<}i%y)Jv70FBfbmb5 zGikf?hKR}Ga^1PSm$d01Yi^d=XdV|$yqRq#{d-F73(X@mg7K*`4^DTTIMBwZ^=nYB zTdUg51}zQ4k-}CH;xA-oMAv67M4;zW+v%mBXMCJ&71ME1tq(z~olZT#yiY`6d0S8m z*TIQ)RegI_I=MC6X;W;X@E!|6v(g&q&@|&*)sf6qJdw(qNAYY${Y2382D&+8qSFwc zt7+0y^&m6ZnJ;RpZ!&Fh`^9uKAcpY}^0~$;f_rDy2h?s~CxxWl^WOC}+X$2VZkdtOPfKTYrTS(p)Ez(FU+K ze}Rq{W?90>$iN=Tu3TwC>g~>yw7hLFteuqBfEE(D4V0Kh_J2ghuBzle<4aoV5`*#TJ1|#4?FbuYXJAn@(-~T;$DyV`Y zm3xMth z=mBSfGr&)g^Zylm1AG{K5PSgW9Kka{4J?2vh``;zuaNtH3Vs31BOMW6(>gNK9j zfqWb83GM{`6UO)?_yo}10#5?d;Bnvx=m*j>{0iRr1^6%UDezICSO|X&ZUDwxj;~e> zVAm`yA=mg2sa*?;)8*2Pf_t^jATCXQdl!LNPGCG8>TGlIFB* zu_2hBvepKWT_XQaZ6e(gGv?(Z#e~^tIrgMz6z@1YC5BicWKuvY^*U9|7Ss&o7AwtZ zt#QA8+O-z^e+~6ISIuuowC#wuP>EoW+ANO5M^#OI(Hj3hwb}G5V=M^Q^W2d@C)one zdFRv*{+wp}Kds9WN3mu9`8p|rv!>|&7Kk>FDzX*eV& z4SY)=hvGmw4w)E(W6W#n5i%Mvphjap1VIq?&1#>R0S0Xt2c_Y`8RyBxN z<^mZjac1+B0(Civ8yGp(!^IRz^ri8mES*zoAyQ=bd8=!IT&VMjq7G%dE9}B%OV%|< zR;S*x<7meSh-Mo@rqu9`mizh{ zeA0S_c5EuayY;z=;VJ!mID8;=l|ORS(=GZzV)xx^S7Sv}ay5?9gqQ3V97kA_YTDG) z=Dpt>S$xfA8>SS~?K$aIb-O@#VhX9~E>N3o8gAkB_)MOL6wVUTIO{b;H&a==T${w5 z+^lIDm7~9O=jveCG&4;^wc4n)r>c`Ku&XbNN~v20O7qi;MW^2~Z6>0YZL~@=&U+&z zAi255t_5;6TX~g9y_twi*@+oP(M|AM=W%q2;|}u0c!T zj>f9uK|$zTP}$RjMKRek?P2X18fx8f#UcJe(Pl|lalg)F(y{2&q1>b?oodsvBTk6t z$Z!gEY4~7)kUf1eIH`pE4@T;`GL=rnLN#+dBFc;{@osffK!gzD!vZ6quVxP9idB>U z5#PI>FMo67|Hpdy|I5huZvig^6>u>)3;c@2AD6rjmcf4T5YPoaj*NdJxCUGX4gmQ8 zhKNOq~wt=r98-E!{jy?|dg5BW3 z;2p@q1#m}jGxF{)fX?Q>1w0u%8t5GU-y-Y23%nEj6?i(B0$agtfMWB10elX87KrB8 zgY4feU?~ebndr;3G`fu*n{M0v^$!yT=6J4Jp5-9G92*ObMq6?0RTp@(R6pSD8M%6K zzQkNF`~9Zvo19_B6%zlV9c*))?u6M91d_s1Nkes}in=|IO4tG+$=FNW_Ayz%-3rrO zkXu_?>mTmgRwi1+sCYaFrzEUH1Q1_vzE_qr^QJccehZvz0^RiKreW9mka4O-<3w?{ zmb53iwa3w%ZLl3#a&1!WL%Xt6(c<3zH8zc%xWwqVs{F6HJ+=Qr&PnttVLjRn@tmP8 zqufsajH#QrzfA3YERA9(iE>W6p2wO)Uro!8*9DUf#$zK|F%2hUhRMU(x#A1sWnV8wXGUj@3@E>r#yF| zZ5xRoDJ6(Ny2Bd>Ffa31Kr0<5E#nBTZH+aP6xurxTbWT&!bfM;cPlHtJ(q-I+a8xq z5EQs9Gy6dM`>Z7`EaTg=kGEf=TY1aAT1kGvc{Nxav94QSt@v8a!9o9|=uOb!-*}&h z8TXnri+4&FB#HDMG~1e$FR+Z_`}cZVnh`XGt@kYs_Lh1FWAVN1>=dXG_Nt0a?K-Ov zt}KE>X=G-$ZLYe%&(h5Z@%5xz^<-(fFa2glY9&Ho%j+ejp|yQW{e(Q(+SV^_qSTImgUd}e&43E zHwEU>!1s)pdL!mROHW$XsU$9iPfs%wH}_q^dvvs-z~QxAD!2IZW|x~~r-_eKUAoi? zKc-aTuSI*iEm+oYHcS=q=;xpeU-hVeFl`JQ{d~ZCmQjOgi@Kti#!=8hiHCD|`Jhn(e=PzHy(c(?63-I90PVv{MkX`CelZRrLZ70K_XLU7iTOrhC%B+1jt?64PJdtbM9 zZ^vmX-J7e-Rle8ADn4bN#8ya8g}#ec$e*>;JiJO~TKI=n&q_VGN>1vj_8F}- z1Me>4Usd$sMLJ9aerwwyci-u$6W<-O(PoxB+>z;2kS*|OSC(@ zIp2)mE1OM&4%kiFX~pc&5X#uN#EgOn9b))_GgK)vRCsE-l(_BIJUrzfmzFxU)BVri zW*fI4pHs|rNMOUe%{g;vZu6NiS*so{Z+#^=@r0Wi;-hs}t77hg-PS6(Q(#uH(6RoJ zWB?z=bKxE2ZxD|%_p)~duf9}4TY8%O`dn3#qq->lof#qRqSo4Rz229v zT^Vt4aar=^S-qgpvF@@AYk1-;*wU@m!`O{-$t6kVF2T&;swc;#E$X2`XA*seNqwb*Ia)sU3#pV?FEibd-Y(X2&5 zy?F}W$d;G8C*17+cR=3$b0GOY@si4ku2{9G7n~>vw_!|TU|Ou_x+jTRR*|(s zE*D(QWA1mQ4NGy9*wfAf&$)$K^(ZIxbpn11l2fb^%iIaiFQ#1VB!?D=-sUq{LH<)F zUeP&Is?Fe%U&|BCg}{9~%*H?L{AKfwBDr(>od1sL1)Z!HD6?Oo`HmKI;rqS=d-Lv| zkWBQNZaD<{_*xi-?C=|5qG!2ROQj;!yZiEDXV*>LJ<(=48U_yRa&R2H4YRZ60nb8@3g#1lk1 V=H(pUlEV_Ta?;w@8`+(K{~zXvbLs#9 literal 0 HcmV?d00001 diff --git a/src/ifcparse/IfcFile.h b/src/ifcparse/IfcFile.h index fe927eb9f6e..1758c46d05a 100644 --- a/src/ifcparse/IfcFile.h +++ b/src/ifcparse/IfcFile.h @@ -106,7 +106,7 @@ class IFC_PARSE_API IfcFile { /// attributes as a flat list. NB: includes the root instance specified /// in the first function argument. IfcEntityList::ptr traverse(IfcUtil::IfcBaseClass* instance, int max_level=-1); - + #ifdef USE_MMAP bool Init(const std::string& fn, bool mmap=false); #else @@ -115,6 +115,8 @@ class IFC_PARSE_API IfcFile { bool Init(std::istream& fn, int len); bool Init(void* data, int len); bool Init(IfcParse::IfcSpfStream* f); + + //bool Dup(const std::string& data); IfcEntityList::ptr getInverse(int instance_id, IfcSchema::Type::Enum type, int attribute_index); @@ -142,4 +144,4 @@ class IFC_PARSE_API IfcFile { } -#endif \ No newline at end of file +#endif diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index e5f3a6ebcea..c26f9b8a97f 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -108,6 +108,19 @@ void init_locale() { #endif +IfcSpfStream::IfcSpfStream() + : stream(0) + , buffer(0) + , valid(false) + , eof(false) +{ + ptr = 0; + len = 0; + valid = false; + eof = false; + size = 0; +} + // // Opens the file and gets the filesize // @@ -208,6 +221,18 @@ IfcSpfStream::IfcSpfStream(void* data, int l) len = l; } +IfcSpfStream::IfcSpfStream(const std::string& data, unsigned int x) + : stream(0) + , buffer(0) +{ + eof = false; + size = (unsigned int) data.length(); + buffer = data.c_str(); + valid = true; + ptr = 0; + len = (unsigned int) data.length(); +} + IfcSpfStream::~IfcSpfStream() { Close(); @@ -1219,16 +1244,22 @@ void IfcEntityInstanceData::setArgument(unsigned int i, Argument* a, IfcUtil::Ar // Parses the IFC file in fn // Creates the maps // +/* + * bool IfcFile::Dup(const std::string& data) { + * return IfcFile::Init(new IfcSpfStream(data, (unsigned int) 0)); + * } + */ + #ifdef USE_MMAP bool IfcFile::Init(const std::string& fn, bool mmap) { return IfcFile::Init(new IfcSpfStream(fn, mmap)); } #else bool IfcFile::Init(const std::string& fn) { + return IfcFile::Init(new IfcSpfStream(fn, (unsigned int) 0)); return IfcFile::Init(new IfcSpfStream(fn)); } #endif - bool IfcFile::Init(std::istream& f, int len) { return IfcFile::Init(new IfcSpfStream(f,len)); } @@ -1237,6 +1268,7 @@ bool IfcFile::Init(void* data, int len) { return IfcFile::Init(new IfcSpfStream(data,len)); } + bool IfcFile::Init(IfcParse::IfcSpfStream* s) { // Initialize a "C" locale for locale-independent // number parsing. See comment above on line 41. diff --git a/src/ifcparse/IfcSpfStream.h b/src/ifcparse/IfcSpfStream.h index 820b69d275a..5ca3fa53038 100644 --- a/src/ifcparse/IfcSpfStream.h +++ b/src/ifcparse/IfcSpfStream.h @@ -53,6 +53,7 @@ namespace IfcParse { bool valid; bool eof; unsigned int size; + IfcSpfStream(); #ifdef USE_MMAP IfcSpfStream(const std::string& fn, bool mmap=false); #else @@ -61,6 +62,7 @@ namespace IfcParse { IfcSpfStream(std::istream& f, int len); IfcSpfStream(void* data, int len); ~IfcSpfStream(); + IfcSpfStream(const std::string& data, unsigned int x); /// Returns the character at the cursor char Peek(); /// Returns the character at specified offset diff --git a/src/ifcwrap/IfcParseWrapper.i b/src/ifcwrap/IfcParseWrapper.i index 96aafd62373..f09f93794c9 100644 --- a/src/ifcwrap/IfcParseWrapper.i +++ b/src/ifcwrap/IfcParseWrapper.i @@ -377,14 +377,21 @@ private: // The IfcFile* returned by open() is to be freed by SWIG/Python %newobject open; +//%newobject read; %inline %{ - IfcParse::IfcFile* open(const std::string& s) { + IfcParse::IfcFile* open(const std::string& fn) { IfcParse::IfcFile* f = new IfcParse::IfcFile(); - f->Init(s); + f->Init(fn); return f; } - +/* + IfcParse::IfcFile* read(const std::string& fn) { + IfcParse::IfcFile* f = new IfcParse::IfcFile(); + f->Dup(fn); + return f; + } +*/ const char* schema_identifier() { return IfcSchema::Identifier; } @@ -410,4 +417,4 @@ private: IfcSchema::Type::PopulateDerivedFields(data); return IfcSchema::SchemaEntity(data); } -%} \ No newline at end of file +%} From 71b0e22aa8dc8c29b28045e68bdccf6af4ccade8 Mon Sep 17 00:00:00 2001 From: Luke Brooks Date: Thu, 10 Aug 2017 12:30:14 +0100 Subject: [PATCH 2/5] Removes .swp files. --- src/ifcparse/.IfcFile.h.swp | Bin 16384 -> 0 bytes src/ifcparse/.IfcParse.cpp.swp | Bin 77824 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/ifcparse/.IfcFile.h.swp delete mode 100644 src/ifcparse/.IfcParse.cpp.swp diff --git a/src/ifcparse/.IfcFile.h.swp b/src/ifcparse/.IfcFile.h.swp deleted file mode 100644 index 0e15dcd88625258f12b1aa4709a19122c0d590e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeHNO^h5z8Lb2eOu#k-=SLh+VN0vs&3eX;kx0htMYHQ!d!*g*GBX?FfHbO^uAV8} z)7^Ae?|Lu}2RMKTNN~svIFJwoC`TWnHMG#6#SyzrM_V=}zXUG}I8Mq?` zB5j{|{17|+*r}70|M;;F@%KNleMd#}OgRHN133dZ133dZ133dZ133dZ18)rmw0|%A z9GY@((wwJ~^F34Nw^0!`!0&*Yz}JDV0iOk~0VjcfzKgM!f!_e1 z2hISmzLT-<04^Yb!@wcn@AzKfZ@?dbUjQ!vUjcf64SWpP0-gXK2Oa?)295xKeFtN= zfR})u12=#l0iOa+14n^dZ)faTUVer$D47Id4-Cp9h2PdzJf$zw2Y^hLt_M9&p)Ip{?LG`YxF;W{fA6p|)Tb*>ml-YS=!l%IK5?ixqNQ;3bibuJw= z@)~}o79y8ySZykOVnu|@t(AF`SJ`}iJaNGko6#HNnfTePbxG&Iu{B48;rs$wo$2p% z5mS?vU{7etm%CJ)w^sg-doydys4okw(DmF1QEfJPwce_=F1Ks-W~)+PtG4Tv&FaEruu*7&JRK7}9FMmpL>Z#m54?`( zI7kXj*qMle)G+k`bH&o>^el>l& zsRJnni##-E5Idb=Ltd4^BG=v(>4s;RA9WnnEn}?hc%VC!`kb^y zOJ_(w(iBX3ZKMU#Hc2>7rO*H~N%SL48&a9X8rfonj^{a?zBR*FYwfN_6P1>2N-?v6 zw858EF2ko~@U^X#WB6Rf6lq5D;u6iCGw!b>u{P08uo|cx3}#G*sr^wy$+2>IYA{S* zq9JLy%&&2lmtuE!WETTzc|2u>CmxM6H_M!{iy#3ZrfumH1?lie(d|miwAvd@1z?S44S|Q{`WmM=HKoiGF*cqQ#xqgwU?OwS6GE#l&0{;# zRnqNBZbxpH9%gv_p}HLrD9kxB#5)WgU7;_K1zwq93%A&D<#wG24jn5NOKR+!$ZWI~ z`^WaqW$aLnu`ICCrf`>S;j78CWeo9^QPyR|{0fR%(pE0~T3=hQZB*MAki&LybLBCs;M4Df!wJu!TZt+U}GQU)5 zG*H3iGp4sZq+(RXZ;1+%v;xDsA_xRt+KA)H!&t;X%04Qlr@Dprx0kr5P3{Z~cc?#>aWQ>JGgq;GR#@!UCp+AzoDQBE&I=gt+wvJu&To zu}B232VlDC*%}Pt%8T$;Pv)1nMC6Zb^V7wXS%Ai2xI|r<9mXQ4fdP~v)9`GNz3lHF zR{}3q6y{+cq<4m#&+HkS{0$R-%R~t8VxkS?sLMFKz?4}sacU_Wrjo;0OfL@PY%H3I zou+vT9ZZ;-h#C*6H_gq3-esyYgarNENDO)K|F)uoci)Qc-~T+f^FEljY&vTCVV()O2TD z{zp!_Mf$(dtI~^+?O5UAU5J8OwiM(C4Vius2w7125xO7a}H zv7#h5<7~;$9?Lz$Ih)4SaoT$suXkp~C2kxWK!!SNW4B6DNoAArv<(GsbF;E#*qF(> z4j{(ROtMD=q}>oVU?8rx9q0?r*%POT5z+&*Eh$pwQ{8TC3(925ItYRu{?#{FMqJyL44}baX)PeZ__}{0-VsQeAs|P@`&}V$yiA)L<&6%y3b_NM!Cw91!8T1|B_tj$wr`FRK1Bu))0 zMcO{tdz`KgF-lClzsU+zVtRTQ8J95DSBDL0%Yf9>J?y{n#v(Qf;?hRW*uOR!m$RsQ I3vR0Z8zM(lYXATM diff --git a/src/ifcparse/.IfcParse.cpp.swp b/src/ifcparse/.IfcParse.cpp.swp deleted file mode 100644 index c8070fe716d1390ffa48ff4fe76df1c0684dc601..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77824 zcmeIb34EMab@#6T1q_6;x9m?uVvl4kwv({Pj)H8cA&b{|pW|3qk@PGS$q)&eF z%rp17%em(+XSwH2Z@FY_fAp|{^Sb!ETUXb|N1k)pOL~5FM%V4Ty2^{ki+a4;U%gQ{ zTB;mfEm_wSmEmB$HZwT0urN3_H*;X2SeZOlESK$JX>MkrP^%a9%Rzk@Ala&!t|wTh zz&Zt1r@&%kuK(d@cAdLz>lP(`NcUOMJ@0X7_4n3OtW#i}0_zl5r@%S|)+w+~fprS3 zQ(&C}|IbjMv2gdUC()YQ_!cetf6r+8_qY7_clv)%H2sdc!2X`?|2@}d5c0W$fBsbe z@4K3QzoUO%_y6wl6$Hj_FcJ4!X-+%2o?0&mZsq9rGO$^1rKp{sjN;Yny)e1c$&QK?Ht^94}e^2jKhQTi{>8o4{Xy>%sHDNiYE(4Yq?J z@Cyk0L-0B9Ch!{Ya&R4Z4A>7Y29E-}!7i{3JP_Om+yvLp z7+u|UqFS1bN|jP0@3ZXTA#N#+(o7Vx@gFETmGgG$SE|gE7iWvn4wrJ^*l?(O^3%!G zZ>71};#`!^j~qO>Z#17*3n5%r7phNz9)LZ6Pll&yN&1RKFTm*euhqH6a(8NoM=qghVOhz7%$o)Dy+nLaoQB?#m{)( zTAOOf{>feWOGYPpx&{X$c|y^1Fm<$l@{(QKwrt%J72v2+BPuK`6!|r3RHNx)G`~1= zEUK5QOU2qiq&IoISTE9pbbl$`|9oAEW%{D&#YWUPR;(4H0;n%eH_F9EsaRJflyl4} zJyEHyLT0T>g{W3!dMH+AiYlBOG=M{!Nm-q46x3Cb@*aq$NKhy@inR*k^F&d3DR&BS zd`!!Z6&lg80>5qQ+Y}Y*QGs5aDa{wkQN0Ld3XLj_B_9f|QdJdMsaC|bmDxgVHp-`} zI%v6%=*MI_h0|SGll=s}WljruAVe9GYVr6#VSht^{ z;=-EKpVySy&2TDjY|kz^z6R!p_CP%rM%1h-=sajd$(o$u%xJsE<{4@0|)T&2oh4}%7EprItyIy1~aIDc-7#bX0T3Q-7T3H;Z){YLA zOEbkvy;vU{9*AqC3@@uLM)hOW#WM4ormR|VrpUC$+{og;upCwAY@*p$tk;=i_KqKl z_7*F}8q>}}R$?|N`&`DBsWQA(|CHhCMQb*k*GxKFWU4OLlNPpAMj5hK+jY^%_|(YG zv3+Axmqon2XKZSGbaFDcA_;Y}7A)#F%oK^0=9VNG2smCIU9S=8nh%YCgGW}n=`Z>nLAf|sj{wWw;- zRS!$)a->PS7M&=v_A`U6y%c4rHtnfF1M2Wi(?5$|wZaA;hEKAN&K=kiGp1v| zKJ{Y!rwkzr@AHy!re5=`923!EPgCX!w=mi$RgTWc# z!{`Q{2`&T=0N+6u@CvX9=D_2@5cm(|{+EEm;1|gEp8_ucmw^dzZ}1P)_k-X~;E%y1 z*a!B25pV$*0%rrY?JThVw@!g|3anFLodW9=SUUw0wVu=N<*lzWJ{ha)#?pt6|E2{KUIU7W5xM`Q`wFkqVV3HNcxM}ylO(zlvyOLW+b(1@>BnC zsh-YY3N2nLo1RdUP!)8W%5jBa=NJ2jRfApC`Gsl)1&gUYRRNXU=GQe>A>CU8fecAg zTr0E0O1jA@i=5up=}Cuky{e6MS*o)A!_>LdSneM_T5OEejxNrt4O>hDt5#&Gy}wwf zFV>2evKcqBqrHPRWV@?c@w@ SAxmaXrCqw7=C-e~Yun@% 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 V=H(pUlEV_Ta?;w@8`+(K{~zXvbLs#9 From a421f48a73a0f28c92a689d05501951bd61ad781 Mon Sep 17 00:00:00 2001 From: Luke Brooks Date: Wed, 16 Aug 2017 09:57:29 +0100 Subject: [PATCH 3/5] Removes `IfcFile::Dup` in favour of accessing one of the `IfcFile::Init` methods via the Python wrapper. --- src/ifcparse/IfcFile.h | 4 ++-- src/ifcparse/IfcParse.cpp | 10 ++++------ src/ifcwrap/IfcParseWrapper.i | 10 +++++----- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/ifcparse/IfcFile.h b/src/ifcparse/IfcFile.h index 1758c46d05a..a994dccaabe 100644 --- a/src/ifcparse/IfcFile.h +++ b/src/ifcparse/IfcFile.h @@ -106,7 +106,7 @@ class IFC_PARSE_API IfcFile { /// attributes as a flat list. NB: includes the root instance specified /// in the first function argument. IfcEntityList::ptr traverse(IfcUtil::IfcBaseClass* instance, int max_level=-1); - + #ifdef USE_MMAP bool Init(const std::string& fn, bool mmap=false); #else @@ -116,7 +116,7 @@ class IFC_PARSE_API IfcFile { bool Init(void* data, int len); bool Init(IfcParse::IfcSpfStream* f); - //bool Dup(const std::string& data); + bool Init(const std::string& data, unsigned int unused); IfcEntityList::ptr getInverse(int instance_id, IfcSchema::Type::Enum type, int attribute_index); diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index ba1d8a5b8c0..ee6806ca477 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -1252,11 +1252,6 @@ void IfcEntityInstanceData::setArgument(unsigned int i, Argument* a, IfcUtil::Ar // Parses the IFC file in fn // Creates the maps // -/* - * bool IfcFile::Dup(const std::string& data) { - * return IfcFile::Init(new IfcSpfStream(data, (unsigned int) 0)); - * } - */ #ifdef USE_MMAP bool IfcFile::Init(const std::string& fn, bool mmap) { @@ -1264,7 +1259,7 @@ bool IfcFile::Init(const std::string& fn, bool mmap) { } #else bool IfcFile::Init(const std::string& fn) { - return IfcFile::Init(new IfcSpfStream(fn, (unsigned int) 0)); + //return IfcFile::Init(new IfcSpfStream(fn, (unsigned int) 0)); return IfcFile::Init(new IfcSpfStream(fn)); } #endif @@ -1275,6 +1270,9 @@ bool IfcFile::Init(std::istream& f, int len) { bool IfcFile::Init(void* data, int len) { return IfcFile::Init(new IfcSpfStream(data,len)); } +bool IfcFile::Init(const std::string& data, unsigned int unused) { + return IfcFile::Init(new IfcSpfStream(data, (unsigned int) 0)); +} bool IfcFile::Init(IfcParse::IfcSpfStream* s) { diff --git a/src/ifcwrap/IfcParseWrapper.i b/src/ifcwrap/IfcParseWrapper.i index 86e3a39e9d2..ccfeeb4e381 100644 --- a/src/ifcwrap/IfcParseWrapper.i +++ b/src/ifcwrap/IfcParseWrapper.i @@ -394,7 +394,7 @@ private: // The IfcFile* returned by open() is to be freed by SWIG/Python %newobject open; -//%newobject read; +%newobject read; %inline %{ IfcParse::IfcFile* open(const std::string& fn) { @@ -402,13 +402,13 @@ private: f->Init(fn); return f; } -/* - IfcParse::IfcFile* read(const std::string& fn) { + IfcParse::IfcFile* read(const std::string& data) { IfcParse::IfcFile* f = new IfcParse::IfcFile(); - f->Dup(fn); + std::string copiedData; + copiedData = data; + f->Init((void *)copiedData.c_str(), data.length()); return f; } -*/ const char* schema_identifier() { return IfcSchema::Identifier; } From 05442e33f24108edb31c5a6d96e73d2c947c2ce9 Mon Sep 17 00:00:00 2001 From: Luke Brooks Date: Mon, 21 Aug 2017 14:49:15 +0100 Subject: [PATCH 4/5] Updates the Python wrapper per Thomas Krijnens' suggestion regarding RAII. --- src/ifcwrap/IfcParseWrapper.i | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ifcwrap/IfcParseWrapper.i b/src/ifcwrap/IfcParseWrapper.i index ccfeeb4e381..92e60237ff5 100644 --- a/src/ifcwrap/IfcParseWrapper.i +++ b/src/ifcwrap/IfcParseWrapper.i @@ -403,10 +403,10 @@ private: return f; } IfcParse::IfcFile* read(const std::string& data) { + char* copiedData = new char[data.length()]; + memcpy(copiedData, data.c_str(), data.length()); IfcParse::IfcFile* f = new IfcParse::IfcFile(); - std::string copiedData; - copiedData = data; - f->Init((void *)copiedData.c_str(), data.length()); + f->Init((void *)copiedData, data.length()); return f; } const char* schema_identifier() { From bf5c9852ec6cc1cd9430d64a6bf2adb6f7e8ca5c Mon Sep 17 00:00:00 2001 From: Luke Brooks Date: Mon, 21 Aug 2017 15:21:16 +0100 Subject: [PATCH 5/5] Merge changes with upstream. --- src/ifcwrap/IfcParseWrapper.i | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/ifcwrap/IfcParseWrapper.i b/src/ifcwrap/IfcParseWrapper.i index 92e60237ff5..0e7d64d1f3b 100644 --- a/src/ifcwrap/IfcParseWrapper.i +++ b/src/ifcwrap/IfcParseWrapper.i @@ -42,6 +42,8 @@ private: %ignore IfcParse::IfcSpfHeader::stream; %ignore IfcParse::HeaderEntity::is; +%ignore IfcParse::IfcFile::type_iterator; + %ignore IfcUtil::IfcBaseClass::is; %rename("by_id") entityById; @@ -80,6 +82,22 @@ private: return keys; } + std::vector types() const { + const size_t n = std::distance($self->types_begin(), $self->types_end()); + std::vector ts; + ts.reserve(n); + std::transform($self->types_begin(), $self->types_end(), std::back_inserter(ts), IfcSchema::Type::ToString); + return ts; + } + + std::vector types_with_super() const { + const size_t n = std::distance($self->types_incl_super_begin(), $self->types_incl_super_end()); + std::vector ts; + ts.reserve(n); + std::transform($self->types_incl_super_begin(), $self->types_incl_super_end(), std::back_inserter(ts), IfcSchema::Type::ToString); + return ts; + } + %pythoncode %{ if _newclass: # Hide the getters with read-only property implementations @@ -435,3 +453,17 @@ private: return IfcSchema::SchemaEntity(data); } %} + +%{ + static std::stringstream ifcopenshell_log_stream; +%} +%init %{ + Logger::SetOutput(0, &ifcopenshell_log_stream); +%} +%inline %{ + std::string get_log() { + std::string log = ifcopenshell_log_stream.str(); + ifcopenshell_log_stream.str(""); + return log; + } +%}