Ë
    K�j’  ã                   óž  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZej                  j                  ej                  j                  ej                  j                  e«      d«      «      Zej                  Zej                  j                  ed«      Zej"                  ZdZd„ Zd„ Zd„ Zd„ Zed	k(  r ej2                   e«       «       yy)
é    Nz..Úsketchupg     Àb@c                 ód  — t        | dd¬«      5 }|j                  «       }ddd«       t        j                  ddd¬«      }t        j                  d	d
|d¬«      }d|vr|j	                  ddd«      }t        | dd¬«      5 }|j                  |«       ddd«       y# 1 sw Y   Œ{xY w# 1 sw Y   yxY w)uA   pycollada ê¸°ë³¸ unit(meter)/up_axis ë¥¼ mm / Z_UP ìœ¼ë¡œ êµ�ì •.Úrúutf-8©ÚencodingNz<unit[^/]*/>z'<unit meter="0.001" name="millimeter"/>é   )Úcountz<up_axis>[^<]*</up_axis>z<up_axis>Z_UP</up_axis>z<unit z<asset>z.<asset><unit meter="0.001" name="millimeter"/>Úw)ÚopenÚreadÚreÚsubÚreplaceÚwrite)ÚpathÚfÚxs      úobj2sketchup.pyÚpatch_assetr      sœ   € ä	ˆd�C 'Õ	*¨aØ�F‰F‹Hˆ÷ 
+ä
�‰ˆÐ IÈ1ÐTUÔV€AÜ
�‰Ð*Ð,EÀqÐPQÔR€AØ�qÑØ�I‰I�iÐ!QÐSTÓUˆÜ	ˆd�C 'Õ	*¨aØ	�‰�Œ
÷ 
+Ð	*÷ 
+Ð	*ú÷ 
+Ð	*ús   �BÁ?B&ÂB#Â&B/c           
      óH  — ddl }|j                  «       }d|j                  _        d|j                  _        |j
                  j                  j                  |j                  _        |j                  j                  dg ddd¬	«      }|j                  j                  d
d|«      }|j                  j                  |«       |j                  j                  |«       g }| j                  j!                  «       D �][  \  }}t#        j$                  ddt'        |«      «      }	t)        j*                  |j,                  t(        j.                  ¬«      j1                  «       }
t)        j*                  |j2                  t(        j.                  ¬«      j1                  «       }|j4                  j7                  |	dz   |
d«      }|j4                  j7                  |	dz   |d«      }|j                  j9                  ||	|	||g«      }|j4                  j;                  «       }|j=                  ddd|	z   dz   «       |j=                  ddd|	z   dz   «       t)        j*                  |j>                  t(        j@                  ¬«      j1                  «       }t)        jB                  ||g«      j1                  «       }|jD                  j                  |jG                  ||d«      «       |jH                  j                  |«       |jJ                  jM                  d|g ¬«      }|j                  |jJ                  jO                  |	|jJ                  jQ                  ||g«      g¬«      «       �Œ^ |jJ                  jS                  d|«      }|jT                  j                  |«       ||_%        |jW                  |«       y)uÉ   ë¶€ìž¬ë³„ ì�´ë¦„(ë�„ë²ˆ)ì�„ ê°€ì§„ ë‹¤ì¤‘ geometry/node ë¡œ Collada ì €ìž¥ (pycollada ì§�ì ‘ ì‚¬ìš©).
    trimesh ëŠ” Scene->dae ë‚´ë³´ë‚´ê¸°ë¥¼ ì§€ì›�í•˜ì§€ ì•Šìœ¼ë¯€ë¡œ ì—¬ê¸°ì„œ ì§�ì ‘ êµ¬ì„±í•œë‹¤.r   Ngü©ñÒMbP?Ú
millimeterÚeff0Úphong)ç333333ã?r   r   )çš™™™™™É?r   r   )ÚdiffuseÚspecularÚmat0Ústeelz[^A-Za-z0-9_.-]Ú_©Údtypez-v)ÚXÚYÚZz-nÚVERTEXÚ#r	   ÚNORMALÚref0)Úinputs)ÚchildrenÚscene0),ÚcolladaÚColladaÚ	assetInfoÚ	unitmeterÚunitnameÚassetÚUP_AXISÚZ_UPÚupaxisÚmaterialÚEffectÚMaterialÚeffectsÚappendÚ	materialsÚgeometryÚitemsr   r   ÚstrÚnpÚasarrayÚverticesÚfloat32ÚravelÚvertex_normalsÚsourceÚFloatSourceÚGeometryÚ	InputListÚaddInputÚfacesÚint32Úcolumn_stackÚ
primitivesÚcreateTriangleSetÚ
geometriesÚsceneÚMaterialNodeÚNodeÚGeometryNodeÚSceneÚscenesr   )rQ   r   r.   Úmesh_docÚeffectÚmatÚnodesÚnameÚgÚgidÚvertÚnormÚvsÚnsÚgeomÚilÚidxÚmatnodeÚmyscenes                      r   Úexport_multi_daerg      sÔ  € ó Ø�‰Ó €HØ#(€H×ÑÔ Ø".€H×ÑÔØ '§¡× 5Ñ 5× :Ñ :€H×ÑÔØ×Ñ×$Ñ$ V¨R°À/Ø.=ð %ó ?€Fà
×
Ñ
×
#Ñ
# F¨G°VÓ
<€CØ×Ñ×Ñ˜FÔ#Ø×Ñ×Ñ˜cÔ"Ø€EØ—>‘>×'Ñ'×)‰ˆˆaÜ�f‰fÐ'¨¬c°$«iÓ8ˆÜ�z‰z˜!Ÿ*™*¬B¯J©JÔ7×=Ñ=Ó?ˆÜ�z‰z˜!×*Ñ*´"·*±*Ô=×CÑCÓEˆØ�^‰^×'Ñ'¨¨d©
°D¸/ÓJˆØ�^‰^×'Ñ'¨¨d©
°D¸/ÓJˆØ×Ñ×(Ñ(¨°3¸¸bÀ"¸XÓFˆØ�^‰^×%Ñ%Ó'ˆØ
�‰�A�x  s¡¨TÑ!1Ô2Ø
�‰�A�x  s¡¨TÑ!1Ô2Ü�j‰j˜Ÿ™¬¯©Ô1×7Ñ7Ó9ˆÜ�o‰o˜s C˜jÓ)×/Ñ/Ó1ˆØ�‰×Ñ˜t×5Ñ5°c¸2¸vÓFÔGØ×Ñ×"Ñ" 4Ô(Ø—-‘-×,Ñ,¨V°SÀÐ,ÓDˆØ�‰�W—]‘]×'Ñ'Ø˜7Ÿ=™=×5Ñ5°d¸W¸IÓFÐGð (ó Iö 	Jð *ð" �m‰m×!Ñ! (¨EÓ2€GØ‡O�O×Ñ˜7Ô#Ø€H„NØ‡N�N�4Õó    c                  óf  — t        j                  t        t        j                  d¬«      «      d   } g }| D ]x  }|d   dz   |j                  dd«      z   j                  «       }t        j                  j                  d«      |vrŒNt        j                  d	|d   «      rŒh|j                  |«       Œz |S )
Nr   r   r>   ÚfileÚ r[   Ú r!   u   _êµ¬ë²„ì „|_ê²©ë¦¬)ÚjsonÚloadr   ÚproductÚMANIFESTÚgetÚlowerÚ
OBJ_PREFIXÚrstripr   Úsearchr;   )r>   ÚselÚitÚblobs       r   Úselect_itemsry   B   sœ   € Ü�I‰I”dœ7×+Ñ+°gÔ>Ó?ÀÑH€EØ
€CÛˆØ�6‘
˜SÑ  2§6¡6¨&°"Ó#5Ñ5×<Ñ<Ó>ˆÜ×Ñ×$Ñ$ SÓ)°Ñ5ØÜ�9‰9Ð*¨B¨v©JÔ7ØØ�
‰
�2�ð ð €Jrh   c            
      ó˜	  — t        j                  t        d¬«       t        «       } g g g }}}| D �]5  }t         j                  j                  t        |d   j                  dt         j                  «      «      }t        j                  |j                  dd«      «      }|r|j                  d«      n>t         j                  j                  t         j                  j                  |«      «      d   }	 t        j                   |dd	¬
«      }|j"                  rt%        d«      ‚||j&                  d<   t         j                  j                  t        |dz   «      }	|j)                  |	d¬«       t+        |	«       t-        j.                  |j0                  j2                  «      }
t-        j.                  t-        j4                  |j                  d«      xs g d¢t6        ¬«      «      }|j9                  «       r7t;        t-        j<                  t-        j>                  |
|z
  «      dk  «      «      nd }|jA                  |tC        |jD                  «      |
|||	f«       |jA                  ||f«       �Œ8 |�rvtC        |«      }tK        tM        jN                  tM        jP                  |«      «      «      }tS        d„ |D «       «      tT        z   }tS        d„ |D «       «      tT        z   }t        jV                  «       }tY        |«      D ]™  \  }\  }}|j[                  «       }|j]                  |j^                  d    «       t        j`                  jc                  ||z  |z  ||z  |z  dg«      }|je                  |«       ||j&                  d<   |jg                  |||¬«       Œ› t         j                  j                  t        th        jj                  dz   «      }tm        ||«       t+        |«       nd }to        d„ |D «       «      }tq        dtC        |«      tC        |«      fz  «       tq        d|tC        |«      fz  «       |D ]%  }|d   rŒ	tq        d|d   ›d|d   ›d|d   ›�«       Œ' |D ]  }tq        d |d   ›d!|d   ›�«       Œ |rtq        d"|d#tC        |«      z  «       |sdS d$S # tF        $ r(}|jA                  ||tI        |«      f«       Y d }~�Œ–d }~ww xY w)%NT)Úexist_okrj   Ú/r[   rl   r   ÚmeshF)ÚforceÚprocessz
empty meshz.daeÚdae)Ú	file_typeÚsize_mm)r   r   r   r"   g      à?c              3   óT   K  — | ]   }|d    j                   j                  d   –— Œ" y­w)r	   r   N©Úbounding_boxÚextents©Ú.0Úps     r   Ú	<genexpr>zmain.<locals>.<genexpr>k   ó&   è ø€ Ð=±u°!��1‘×"Ñ"×*Ñ*¨1Õ-±uùó   ‚&(c              3   óT   K  — | ]   }|d    j                   j                  d    –— Œ" y­w)r	   Nr„   r‡   s     r   rŠ   zmain.<locals>.<genexpr>l   r‹   rŒ   g        )Ú	geom_nameÚ	node_namec              3   ó,   K  — | ]  }|d    sŒ	d–— Œ y­w)é   r	   N© )rˆ   r   s     r   rŠ   zmain.<locals>.<genexpr>}   s   è ø€ Ð(™R˜ 1 Q£4”!™Rùs   ‚
�u   ë³€í™˜ ì„±ê³µ: %d / ì‹¤íŒ¨: %du    manifest size_mm ì�¼ì¹˜: %d / %dr‘   u     [ì¹˜ìˆ˜ë¶ˆì�¼ì¹˜] z  bbox=é   z  manifest=é   u     [ì‹¤íŒ¨] rk   u   ì¢…í•© íŒŒì�¼:u   (ë¶€ìž¬ %dê°œ)r	   )9ÚosÚmakedirsÚOUTry   r   ÚjoinÚROOTr   ÚsepÚDOWONru   rq   ÚgroupÚsplitextÚbasenameÚtrimeshrn   Úis_emptyÚ
ValueErrorÚmetadataÚexportr   r@   Úsortr…   r†   ÚarrayÚfloatÚanyÚboolÚallÚabsr;   ÚlenrB   Ú	ExceptionÚreprÚintÚmathÚceilÚsqrtÚmaxÚGAPrU   Ú	enumerateÚcopyÚapply_translationÚboundsÚtransformationsÚtranslation_matrixÚapply_transformÚadd_geometryro   ÚSKP_NAMErg   ÚsumÚprint)rv   ÚokÚfailÚpartsrw   ÚsrcÚmÚpidr}   ÚdstÚextÚrefÚmatchÚeÚnÚcolsÚcwÚchrQ   Úir\   ÚTÚcombÚmatchedr   r   s                             r   ÚmainrÒ   O   sÇ  € Ü‡K�K”˜dÕ#Ü
‹.€CØ˜"˜bˆeˆ€BÜˆÜ�g‰g�l‰lœ4  F¡×!3Ñ!3°C¼¿¹Ó!@ÓAˆÜ�L‰L˜Ÿ™ ¨Ó+Ó,ˆÙˆa�g‰g�aŒj¤2§7¡7×#3Ñ#3´B·G±G×4DÑ4DÀSÓ4IÓ#JÈ1Ñ#Mˆð	-Ü—<‘< ¨6¸5ÔAˆDØ�}Š}Ü  Ó.Ð.Ø$'ˆD�M‰M˜&Ñ!Ü—'‘'—,‘,œs C¨&¡LÓ1ˆCØ�K‰K˜ uˆKÔ-Ü˜ÔÜ—'‘'˜$×+Ñ+×3Ñ3Ó4ˆCÜ—'‘'œ"Ÿ(™( 2§6¡6¨)Ó#4Ò#Aº	ÌÔOÓPˆCØ>A¿g¹g¼i”DœŸ™¤§¡ s¨S¡yÓ 1°SÑ 8Ó9Ô:ÈTˆEØ�I‰I�sœC §¡Ó.°°S¸%ÀÐEÔFØ�L‰L˜#˜t˜Ö%ð! ò* Ü�‹JˆÜ”4—9‘9œTŸY™Y q›\Ó*Ó+ˆÜÑ=±uÓ=Ó=ÄÑCˆÜÑ=±uÓ=Ó=ÄÑCˆÜ—‘“ˆÜ'¨Ö.‰NˆA‰{��TØ—	‘	“ˆAØ×Ñ §¡¨!¡ Ô-Ü×'Ñ'×:Ñ:Ø�d‘(˜b‘ 1¨¡9°Ñ"2°CÐ8ó:ˆAà×Ñ˜aÔ Ø!$ˆA�J‰J�vÑØ×Ñ˜q¨C¸3ÐÕ?ð /ô �w‰w�|‰|œC¤×!1Ñ!1°FÑ!:Ó;ˆÜ˜ Ô%Ü�DÕàˆô Ñ(™RÓ(Ó(€GÜ	Ð
*¬c°"«g´s¸4³yÐ-AÑ
AÔBÜ	Ð
,°¼¸R»Ð/AÑ
AÔBÛˆØ�‹tÝÀAÀaÃDÈ!ÈAË$ÐPQÐRSÒPTÐUÕVð ó ˆÝ A a£D¨!¨Aª$Ð/Õ0ð áÜÐ Ð&6¼¸U»Ñ&CÔDÙˆ1Ð˜aÐøôG ò 	-Ø�K‰K˜˜c¤4¨£7Ð+×,Ò,ûð	-ús   Ã/E5RÒ	S	Ò!SÓS	Ú__main__)rm   r•   r   r¯   ÚsysÚnumpyr@   rŸ   ro   r   Úabspathr˜   ÚdirnameÚ__file__r™   ÚFABr—   ÚPNr›   r³   r   rg   ry   rÒ   Ú__name__Úexitr’   rh   r   Ú<module>rÝ      s§   ð÷
 × Ó Û Û ã Ø	‡w�w‡��r—w‘w—|‘| B§G¡G§O¡O°HÓ$=¸tÓDÓE€Ø‡k�k€Ø‡g�g‡l�l�3˜
Ó#€Ø�
‰
€Ø€ò	ò"òJ
ò8 ðv ˆzÒØ€C‡H�H‰T‹VÕð rh   