
    Ti                     x    d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlmZ ddl	m
Z
 ddlmZ  G d d	          ZdS )
    N)Template)CalledProcessErrorcheck_output)NamedTemporaryFile   )exchange)logc                   (    e Zd ZddZd Zd Zd ZdS )	
MeshScriptstlFc                 L    || _         || _        || _        || _        || _        d S )N)debugkwargsmeshesscriptr   )selfr   r   r   r   r   s         T/DATA/AppData/hermes/venv/lib/python3.11/site-packages/trimesh/interfaces/generic.py__init__zMeshScript.__init__   s)    
     c                 :    t          t          t           j                                       fdt          t           j                            D              _        t          d j         dd           _        t          dd           _        t           j         j                  D ] \  }}|
                    |j                   !d	 t           j                  D              _        t          d
  j        D                        j        d<    j        j         j        d<    j        j         j        d<   t           j                                       j                  }t#          j                    dk    r|                    dd          } j                            |                    d                      j                                          j                                          j        D ]}|                                  S )Nc                     g | ]@}t          d j         t          |                                         ddd          AS )._wbF)suffixprefixmodedelete)r   r   strzfill).0idigit_countr   s     r   
<listcomp>z(MeshScript.__enter__.<locals>.<listcomp>   sk     
 
 
  *4=**a&&,,{33666	  
 
 
r   r   rbF)r   r   r   r   )r   r   )file_objc                 D    i | ]\  }}d t          |          z   |j        S )MESH_)r   name)r!   r"   ms      r   
<dictcomp>z(MeshScript.__enter__.<locals>.<dictcomp>,   s+    ZZZAGc!ff,afZZZr   c                     g | ]	}|j         
S  )r)   )r!   r"   s     r   r$   z(MeshScript.__enter__.<locals>.<listcomp>-   s    +J+J+JqAF+J+J+Jr   MESH_PRE	MESH_POSTSCRIPTWindows\z\\zutf-8)lenr   r   rangemesh_prer   r   	mesh_post
script_outzipexportr)   	enumeratereplacementr   r   
substituteplatformsystemreplacewriteencodeclose)r   meshr&   script_textr#   s   `   @r   	__enter__zMeshScript.__enter__   s   
 #c$+..//00
 
 
 
 
 3t{++,,
 
 
 ,&t}&&T%
 
 
 -$uEEE "$+t}== 	0 	0ND(KKK////ZZ4=AYAYZZZ'*+J+JDM+J+J+J'K'K$(,(;%%)_%9"t{++66t7GHH?	))%--dF;;Kk0099::: 	 	 	HNNr   c                    t          |                              | j                                                  }d }t	          j                    dk    r-t          j                    }|xj        t          j	        z  c_        | j
        r:t          j        d                    d                    |                               	 t          |t          j        |          }n8# t"          $ r+}t%          |j                                                  d }~ww xY w| j
        r&t          j        |                                           t+          j        j        | j        j        fi | j        }|S )Nr1   zexecuting: {} )stderrstartupinfo)r   r<   r;   splitr=   r>   
subprocessSTARTUPINFOdwFlagsSTARTF_USESHOWWINDOWr   r	   infoformatjoinr   STDOUTr   RuntimeErroroutputdecoder   load	load_meshr6   r)   r   )r   commandcommand_runrI   rT   Emesh_resultss          r   runzMeshScript.run=   sK   w''2243CDDJJLL?	))$022K:#BB: 	DH_++CHH[,A,ABBCCC	2!J$5;  FF " 	2 	2 	2qx00111	2 : 	&HV]]__%%%  }.t~/BRRdkRRs   C 
D)&DDc                    | j         r#t          j        d| j        j                    d S t          j        | j        j                   | j        D ]}t          j        |j                   t          j        | j        j                   d S )NzMeshScript.debug: not deleting )	r   r	   rO   r7   r)   osremover5   r6   )r   argsr   r&   s       r   __exit__zMeshScript.__exit__X   s    : 	HMt7KMMNNNF 		$/&''' 	% 	%HIhm$$$$
	$.%&&&&&r   N)r   F)__name__
__module____qualname__r   rE   r\   ra   r-   r   r   r   r      sV        ! ! ! !' ' 'R  6	' 	' 	' 	' 	'r   r   )r^   r=   rK   stringr   r   r   tempfiler    r   utilr	   r   r-   r   r   <module>ri      s    				            7 7 7 7 7 7 7 7 ' ' ' ' ' '            U' U' U' U' U' U' U' U' U' U'r   