Ë
    ¹ÓÆjD  ã                   óþ  — d Z ddlZddlZddlZddlZddlmZ ddlmZm	Z	  ee
«      j                  «       j                  Zej                  j                  d ee«      «        e eedz  j'                  «       j)                  d«      d    eedz  «      d«      «       ddlZg d¢ZeD �]à  Zeej2                  j4                  v rŒej2                  j4                  j7                  e«      Zd	e_        ej<                  j>                  jA                  d
«      Z!e"e   d   jG                  «       D �]Y  \  Z$Zej<                  j>                  j7                  d«      Z%ej2                  jL                  jO                   eeez  «      d	¬«      e%_(        e$dk(  rdnde%jP                  jR                  _        e$dk(  rAej<                  jT                  j7                  e%jV                  d   e!jX                  d   «       ŒÉe$dk(  r§ej<                  j>                  j7                  d«      Z-ej<                  jT                  j7                  e%jV                  d   e-jX                  d   «       ej<                  jT                  j7                  e-jV                  d   e!jX                  d   «       �Œuej<                  j>                  j7                  d«      Z.ej<                  jT                  j7                  e%jV                  d   e.jX                  d   «       ej<                  jT                  j7                  e.jV                  d   e!jX                  d   «       ej<                  jT                  j7                  e.jV                  d   e!jX                  d   «       �Œ\ �Œã eD � cg c]  } ej2                  j4                  |    ‘Œ c} e_/        eD � cg c]
  } e"|    d   ‘Œ c} e_0        g Z1dxd„Z2 ejf                  d«      Z4dyd„Z5dD ]  \  Z6Z7 e5e6e7ddd d!dd"«       Œ  e5d#d$d%dd d!d«        e5d&d'dd(d d!d«        e5d&d'd)dd d!d«        e2d*d+dd!«        e2d,d-d(d!«       d.D ]  \  Z6Z7 e5e6e7d/d0d1d2d3d4«       Œ d5D ]#  \  Z6Z7 e5e6e7d/d6d1d2d7d4«        e5e6e7d8d0d1d2d7d4«       Œ% d9D ]  Z8 e5e8d:z
  e8d:z   dd;d<dd%d=d>«	       Œ d?D ]"  Z8d@D ]  \  Z6Z7 e5e8dAz
  e8dAz   e6e7d<dd%d"d>«	       Œ Œ$ dBD ]  Z9 e5dCd%e9e9d:z   d<dd%d=«       Œ  e2dDddEd«        e2dFdGdd«        e2dFdHdd«      Z:dIe:jv                  _8        dJD ]  Z8 e2dKe8ddL«       Œ dMD ]  Z8 e2dNe8dOd!«       Œ dPD ]  Z8 e2dQe8dOd!«       Œ  ejx                  dR«      Z=dSZ>dTe> ej~                  e=«      z  z   Z@dUZA e	j„                  e=dVdW«      ZC ejj                  e4de@e>d%z   ej~                  e=«      z  z
  dXz
  eAe>d%z   ejˆ                  e=«      z  z   fdYdZe>fd[deC«        eEd\«      D ]T  ZFd]D ]M  Z8 e2d^eFd%z  dk(  rd_nd`z   e8e@eFdaz   ej~                  e=«      z  z
  eAeFdaz   ejˆ                  e=«      z  z   e=«       ŒO ŒV  eEdb«      D ]  ZG e2dcddeGdez  z   e@dXz   eA«       Œ dMD ]  Z8 e2dfe8dgdh«       Œ  e2didjdkdl«        e2dmdnddo«        e2dpdqddr«       e4j‘                  «       ZIej”                  d%z  eIj–                  _8        e1j™                  eI«        eMdse1dtdu«        eMdve1dtdud	«        eNdw«       yc c} w c c} w )zz¦Small facade fixture: generated straight frame/infill, wall cuts and repeated atoms.
Not an additional exported master; renders the real kit in its assembly context.
é    N)ÚPath)ÚVectorÚMatrixzrender_kit.pyz(ROOT/'renders').mkdirÚexec)ÚRubble_stoneÚRubble_stone_darkÚ	Oak_frameÚOak_frame_greyÚPlaster_ochreÚPlaster_whiteÚPlaster_pinkÚ	Clay_tileÚClay_tile_darkÚDressed_limestoneÚWrought_ironÚLeaded_glassÚ
Door_paintÚ
Sign_paintTzPrincipled BSDFÚmapsÚShaderNodeTexImage)Úcheck_existingÚ	BaseColorÚsRGBz	Non-ColorÚColorz
Base ColorÚNormalÚShaderNodeNormalMapÚShaderNodeSeparateColorÚGreenÚ	RoughnessÚBlueÚMetallicÚtile_size_metresc                 óî  ‡— t         |    }|j                  «       }|j                  dk(  r|j                  j                  «       nd |_        t        j
                  j                  j                  j                  |«       d| z   |_	        || |f|_
        |j                  j                  d|«       |j                  j                  d|«       d|_        ˆfd„Š ‰||«       t        j                  |«       |S )NÚMESHÚFIXTURE_ÚXÚZFc                 óþ   •— | j                   D ]m  }|j                  «       }|j                  |_        ||_        t        j
                  j                  j                  j                  |«       d|_	         ‰||«       Œo y )NF)
ÚchildrenÚcopyÚdataÚparentÚbpyÚcontextÚ
collectionÚobjectsÚlinkÚhide_render)ÚsrcÚdstÚchildÚor)   s       €úassembly_check.pyr)   zinstance.<locals>.children   sf   ø€ Ø�|‰|ò ~€eØ
‡Z�Zƒ\€1˜Ÿ™�!”&¨S A¤H´·±×1GÑ1G×1OÑ1O×1TÑ1TÐUVÔ1WÐfkÐXYÔXeÑltÐuzÐ{|Õl}ñ~ó    )Úmastersr*   Útyper+   r-   r.   r/   r0   r1   ÚnameÚlocationÚrotation_eulerÚrotate_axisr2   ÚfixtureÚappend)	r;   ÚxÚyÚzÚrxÚryÚsourceÚrootr)   s	           @r7   ÚinstancerH      sk  ø€ Ü�‰€˜6Ÿ;™;›=�dÈÏÉÐV\ÒI\°6·;±;×3CÑ3CÔ3EÐbf¨¬Ôgj×grÑgr×g}Ñg}÷  hFñ  hF÷  hKñ  hKð  LPô  hQð  \fð  gkñ  \kð  RVô  R[ð  {|ð  ~ð  }ð  @Að  zBð  lpô  lyð  CG÷  CVñ  CV÷  Cbñ  Cbð  cfð  giô  Cjð  ko÷  k~ñ  k~÷  kJñ  kJð  KNð  OQô  kRð  dið  SWô  Scô~ñ 
ˆ&�Ô”w—~‘~ dÔ+°4¨Kr8   ÚFIXTURE_generated_frame_infillc	                 ó¨   — t        |«      t        _        t        j                  t        | |z   dz  ||z   dz  ||z   dz  f|| z
  ||z
  ||z
  f||«       y )Né   )r   ÚframeÚgrainÚGÚbox)	Úx0Úx1Úy0Úy1Úz0Úz1ÚmatÚbevelrM   s	            r7   rO   rO      sX   € Ü�E‹]„„œ1Ÿ5™5¤¨¨B©°©	°2°b±5¸!±)¸RÀ¹UÀA¹IÐ'FÈÈ2ÉÈbÐQSÉeÐTVÐWYÑTYÐGZÐ[^Ð_dÕer8   ))éþÿÿÿç333333÷¿)çÍÌÌÌÌÌÜ¿çÍÌÌÌÌÌä?)çš™™™™™õ?rK   ç333333@gš™™™™™é¿g333333Ó¿gú~j¼t“x?rY   rZ   rK   r[   r\   g333333ë?gš™™™™™ý?Ú
door_plankgffffffî¿Úwindow_leaded_stoneé   ))ç
×£p=
ÿ¿g)\�Âõ(Ü¿)g)\�Âõ(Ü?ç
×£p=
ÿ?g®Gáz®@çö(\�Âõ@gR¸…ëQÈ¿gš™™™™™™¿é   gü©ñÒMb`?))gffffffÖ¿çffffffÖ?g      @é   g\�Âõ(\@)ra   rb   g¸…ëQ¸®?ç333333@gš™™™™™É¿gyé&1¬|?)r   r`   r   )gHáz®GÙ¿gHáz®GÙ?))r]   ç\�Âõ(\@)g®Gáz.@rg   g
×£p=
§?)r]   rc   rX   Úwindow_leadedrh   Úbrace_storeyg×£p=
×ó¿g×£p=
×ó?éÿÿÿÿ)g      ø¿ç      à¿g      à?g      ø?Úbressummer_1mg{®Gáz”?)g      ü¿g      ô¿g      è¿g      Ð¿g      Ð?g      è?g      ô?g      ü?Ú	joist_endgq=
×£p@)g®Gázþ¿g®Gázþ?Újetty_bracketé7   g…ëQ¸ý?gHáz®G@rl   é   r&   gš™™™™™™?g{®Gáz@gìQ¸…ë¡?é   é   )g…ëQ¸õ¿r   g…ëQ¸õ?Útile_strip_ÚaÚbgš™™™™™¹?é   Úridge_tile_roundg�Âõ(\�þ¿gR¸…ëQÐ?Ú
rafter_endg\�Âõ(\@g�Âõ(\�Ò?Útavern_signg¤p=
×£ü?g333333@g¸…ëQ¸ž?Úbarrelg
×£p=
Àre   Ú
bench_woodgÍÌÌÌÌÌô?g�Âõ(\�â?zassembly_check.png)ç{®GázÔ?rk   r}   )i¤  iÜ  zassembly_clay.pngÚASSEMBLY_FIXTURE_COMPLETE)r   r   )r   )r`   r   r   )OÚ__doc__r-   ÚsysÚmathÚjsonÚpathlibr   Ú	mathutilsr   r   Ú__file__Úresolver,   ÚROOTÚpathÚinsertÚstrr   ÚcompileÚ	read_textÚsplitÚgeometryrN   Únamesr;   r+   Ú	materialsÚnewÚmÚ	use_nodesÚ	node_treeÚnodesÚgetÚbsÚSHELFÚitemsÚkindÚtexÚimagesÚloadÚimageÚcolorspace_settingsÚlinksÚoutputsÚinputsÚnormalÚsepÚMATSÚTILESr?   rH   ÚMeshrL   rO   ÚloÚhirA   rB   r6   ÚscaleÚradiansÚpÚlengthÚsinÚridgeYÚridgeZÚRotationÚrotÚcosÚrangeÚrowÚjÚfinishÚobÚpir=   r@   ÚrenderÚprint)Úns   0r7   ú<module>r½      s=  ðñ÷ × Ý ß #Ù	ˆ(ƒ^×ÑÓ×$Ñ$€ S§X¡X§_¡_°Q±s¸4³yÔ%AÙ �Wˆd�?Ñ"×-Ñ-Ó/×5Ñ5Ð6NÓOÐPQÑRÑSVÐW[Ð\kÑWkÓSlÐmsÓtÔ uÛ ò `€àó 	v€DØˆC�H‰H×ÑÑ˜xØ‡8�8×Ñ×Ñ˜$Ó€¨D ¤°A·K±K×4EÑ4E×4IÑ4IÐJ[Ó4\°Ø˜‘+˜fÑ%×+Ñ+Ó-ó v�Y€Tˆ$Ø‡k�k×Ñ×ÑÐ0Ó1€#¸C¿H¹H¿O¹O×<PÑ<PÑQTÐUYÐZ^ÑU^ÓQ_ÐosÐ<PÓ<t°#´)ð  cgð  itò  ctñ  Y_ð  zEÐux×u~Ñu~÷  vSñ  vSô  vXØ	ˆ;Ò�q—{‘{×(Ñ(×,Ñ,¨S¯[©[¸Ñ-AÀ"Ç)Á)ÈLÑBYÕZØˆX‚~Ø
�+‰+×
Ñ
×
Ñ
Ð 5Ó
6€6°q·{±{×7HÑ7H×7LÑ7LÈSÏ[É[ÐY`ÑMaÐbh×boÑboÐpqÑbrÔ7sÐtu×tÑt÷  uFñ  uF÷  uJñ  uJð  KQ÷  KYñ  KYð  Z[ñ  K\ð  ]_÷  ]fñ  ]fð  goñ  ]pö  uqà‡{�{×Ñ×ÑÐ6Ó7€3¸¿¹×8IÑ8I×8MÑ8MÈcÏkÉkÐZaÑNbÐcf×cmÑcmÐnoÑcpÔ8qÐrs×r}Ñr}÷  sDñ  sD÷  sHñ  sHð  IL÷  ITñ  ITð  U\ñ  I]ð  ^`÷  ^gñ  ^gð  hsñ  ^tô  suð  vw÷  vAñ  vA÷  vGñ  vG÷  vKñ  vKð  LO÷  LWñ  LWð  X^ñ  L_ð  `b÷  `iñ  `ið  jtñ  `uö  vvòvð	vð (-Ö- !ˆ�‰×Ñ˜1ÓÒ-€„Ð]bÖ6cÐXY°u¸Q±xÐ@RÓ7SÒ6c¨a¬gØ
€ó8ð €a‡f�fÐ-Ó.€ófð .Ò M�E€B€r©c°"°R¸¸#¸cÀ#ÀaÈÕ.MÐ MÙ €Eˆ$ˆq��S˜˜QÔ ¡ C¨¨Q¨s°3°s¸1Ô =¹cÀ#ÀdÈ4ÐPSÐTWÐX[Ð\]Ô>^Ù ˆ�d˜1˜SÔ !¡(Ð+@ÀÀ3ÀsÔ"Kà&Ò M�E€B€r¡s¨2¨b°°d¸4ÀÀaÈÕ'MÐ MØÒ f�E€B€r™#˜b  D¨¨T°%¸¸$Ô?ÁÀBÀrÈ$ÈtÐTXÐY^Ð_`ÐaeÕ@fÐ fØ	Ò C€A‘c˜!˜C™%  #¡ c¨#¨c°!°A°d¸7ÕCÐ CØ	ò V€AØ'ÒU�U€Rˆ©¨A¨d©F°1°T±6¸"¸RÀÀAÀaÈÈWÕ(UÑUðVà	Ò 2€A‘C˜˜1˜Q˜q ™u S¨¨1¨TÕ2Ð 2Ù ˆ˜˜5 Ô #Ù ˆ˜˜c !Ô $¡x°¸tÀCÈÓ'J QÐUWÈ1Ï7É7Ì9Ø	Ò >€A™8 O°A°c¸#Õ>Ð >Ø	2Ò S€A±8¸KÈÈ$ÈsÕ3SÐ SØ	Ò :€A‘h˜¨q°°cÕ:Ð :à€$‡,�,ˆrÓ€˜$�6 d¨6°(°$·(±(¸1³+Ñ+=Ñ&=˜vÀS¸fØ€F‡O�O�A�a˜Ó€˜U˜QŸU™U 5¨!¨F°6¸!±8¸H¸D¿H¹HÀQ»KÑ3GÑ,GÈÑ,LÈVÐTZÐ[\ÑT\Ð]eÐ]a×]eÑ]eÐfgÓ]hÑThÑMhÐ)iÐkoÐptÐu{Ðj|Ð}~ð  @Að  BEô  FÙ�‹9ò D€CØ
ò  D€Q™ -¸¸A¹¸qº±ÀcÑ"JÈ1ÈVÐTWÐXZÑTZÐ[cÐ[_×[cÑ[cÐdeÓ[fÑTfÑMfÐgmÐnqÐrtÑntÐu}Ðuy×u}Ñu}Ð~ó  vAñ  oAñ  hAð  BCõ  Dñ  DðDá	ˆr‹Ò O€A‘8Ð.¨u°Q°t±V©|¸FÀ4¹KÈÕOÐ OØ	2Ò T€A±8¸LÈÈ4ÐPSÕ3TÐ TÙ ˆ�t˜C Ô $¡X¨h°u¸Q¸sÔ%CÁHÈ\ÐZ]Ð^_Ð`cÔDdØ‡<�<ƒ>€ d§g¡g¨a¡i�"×#Ñ#Ô%°·±¸rÔ0BÙ Ð˜G L°Ô =Ù Ð˜7 <°¸DÔ AÙ Ð!Õ "ùòM .ùÒ6cs   Î [5Î=[: