Ë
    :vžjš  ã                   óZ  — d dl Z d dlmZ ddlmZ ddlmZ d„ Zdefd„Z	eed	œZ
i Z
	 d dlZej                  j                  «       D � ci c]  } | d
d e	“Œ
 c} Ze
j                  e«       	 d dlZej$                  e
d<   yc c} w # e$ r i ZY Œ#w xY w# e$ rZ ee«      e
d<   Y dZ[ydZ[ww xY w)é    N)ÚNamedTemporaryFileé   )Úutil)ÚExceptionWrapperc           	      óì  — | €t        d«      ‚t        j                  | d«      r| S t        | t        «      r4d| vrt        d«      ‚t        j                  | j                  d«      «      } n*t        j                  | «      rt        j                  | «      } dddddddœ}t        | t        «      st        d	t        | «      › d
�«      ‚i }t        j                  | d«      } |j                  «       D ]k  \  }}|| v sŒt        j                  | |   «      ||<   t        j                  ||   |«      rŒ@t        d|t	        ||   j                   «      t	        |«      «      ‚ t#        |«      dk(  rt        d«      ‚|S )a   
    Load multiple input types into kwargs for a Trimesh constructor.
    Tries to extract keys:
    'faces'
    'vertices'
    'face_normals'
    'vertex_normals'

    Parameters
    ----------
    file_obj : dict
    accepts multiple forms
          -dict: has keys for vertices and faces as (n,3) numpy arrays
          -dict: has keys for vertices/faces (n,3) arrays encoded as dicts/base64
                 with trimesh.util.array_to_encoded/trimesh.util.encoded_to_array
          -str:  json blob as dict with either straight array or base64 values
          -file object: json blob of dict
    file_type: not used

    Returns
    -----------
    loaded: dict with keys
            -vertices: (n,3) float
            -faces:    (n,3) int
            -face_normals: (n,3) float (optional)
    z&file_obj passed to load_dict was None!ÚTrimeshÚ{z(Object is not a JSON encoded dictionary!zutf-8)éÿÿÿÿé   )r
   )r   é   )ÚverticesÚfacesÚface_normalsÚface_colorsÚvertex_normalsÚvertex_colorsÚ`z` object passed to dict loader!zShape of %s is %s, not %s!r   z'Unable to extract a mesh from the dict!)Ú
ValueErrorr   Úis_instance_namedÚ
isinstanceÚstrÚjsonÚloadsÚdecodeÚis_fileÚloadÚdictÚtypeÚdecode_keysÚitemsÚencoded_to_arrayÚis_shapeÚshapeÚlen)Úfile_objÚkwargsÚmesh_file_objÚloadedÚkeyr#   s         úf/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/trimesh/exchange/misc.pyÚ	load_dictr+      se  € ð6 ÐÜÐAÓBÐBÜ×Ñ˜h¨	Ô2ØˆÜ�(œCÔ Ø�hÑÜÐGÓHÐHÜ—:‘:˜hŸo™o¨gÓ6Ó7‰Ü	�‰�hÔ	Ü—9‘9˜XÓ&ˆð ØØØ#Ø!Ø%ñ€Mô �h¤Ô%Ü˜1œT (›^Ð,Ð,KÐLÓMÐMà€FÜ×Ñ ¨'Ó2€HØ#×)Ñ)Ö+‰
ˆˆUØ�(Š?Ü×/Ñ/°¸±Ó>ˆF�3‰KÜ—=‘= ¨¡¨eÕ4Ü Ø0ØÜ˜˜s™×)Ñ)Ó*Ü˜“Jó	ð ð	 ,ô ˆ6ƒ{�aÒÜÐBÓCÐCà€Mó    Ú	file_typec                 óä  — ddl }|j                  dt        d¬«       t        j                  d|z      }d}g }t        d|› �¬«      5 }|j                  | j                  «       «       |j                  «        |D ]%  }	 t        j                  |j                  |¬«      } n ddd«       |€t        d	d
j                  |«      z   «      ‚i }
|
j                  |«       |j                   |
d<   	 |j#                  d«      |
d<   |
S # t        $ r$}	|j                  t        |	«      «       Y d}	~	Œ°d}	~	ww xY w# 1 sw Y   Œ‘xY w# t        $ r* t$        j&                  j)                  dd¬«       g |
d<   Y |
S w xY w)a4  
    Load a meshio-supported file into the kwargs for a Trimesh
    constructor.


    Parameters
    ----------
    file_obj : file object
      Contains a meshio file
    file_type : str
      File extension, aka 'vtk'

    Returns
    ----------
    loaded : dict
      kwargs for Trimesh constructor
    r   Nzt`meshio` loading is deprecated and will be removed after June 2027; use `meshio` directly if you need these formats.r   )ÚcategoryÚ
stacklevelÚ.)Úsuffix)Úfile_formatzFailed to load file:Ú
r   Útriangler   zunable to get facesT)Úexc_info)ÚwarningsÚwarnÚDeprecationWarningÚmeshioÚextension_to_filetypesr   ÚwriteÚreadÚflushÚnameÚBaseExceptionÚappendr   r   ÚjoinÚupdateÚpointsÚget_cells_typer   ÚlogÚwarning)r%   r-   r&   r7   Úfile_formatsÚmeshÚ
exceptionsÚtempr3   ÚEÚresults              r*   Úload_meshiorN   O   sc  € ó$ à‡M�Mð	=ä#Øð	 ô ô ×0Ñ0°°y±ÑA€Là€DØ€Jô 
 Q y k ?Õ	3°tØ�
‰
�8—=‘=“?Ô#Ø�
‰
Œã'ˆKð*Ü—{‘{ 4§9¡9¸+ÔF�Ùð (÷	 
4ð €|ÜÐ/°$·)±)¸JÓ2GÑGÓHÐHð €Fà
‡M�M�&ÔàŸ™€Fˆ:Ñðà×-Ñ-¨jÓ9ˆˆw‰ð
 €Møô' !ò *Ø×!Ñ!¤# a£&×)Ñ)ûð*ú÷ 
4Ð	3ûô. ò Ü�‰×ÑÐ.¸ÐÔ>ØˆˆwŠà€Mð	úsH   Á5D0Á<!D ÂD0Ã*D< Ä 	D-Ä	D(Ä#D0Ä(D-Ä-D0Ä0D9Ä</E/Å.E/)r   Údict64é   Úctm)r   Útempfiler   Ú r   rJ   r   r+   r   rN   Ú_misc_loadersr:   r;   ÚkeysÚ_meshio_loadersrC   r@   ÚopenctmÚload_ctmrL   )Úks   0r*   Ú<module>rZ      sÐ   ðÛ Ý 'å Ý )òDðN> Só >ðB #¨iÑ8€Ø€ðÛð 4:×3PÑ3P×3UÑ3UÔ3WÓXÑ3W¨a�q˜˜�u˜kÑ)Ð3WÑX€OØ×Ñ˜Ô)ð/Ûà"×+Ñ+€M�%Òùò Yøàò Ø‚Oðûð ò /Ù+¨AÓ.€M�%Öûð/ús;   ¨ B ÁA>ÁB Á*B Á>B ÂBÂBÂB*ÂB%Â%B*