Ë
    :vžjŽ  ã                   ó^   — d dl Z d dlZddlmZ ddlmZmZmZ de	fd„Z
d	defd„Zde
iZdeiZy)
é    Né   )Útriangulate_quads)Úarray_to_stringÚcomment_stripÚdecode_textÚreturnc           	      óü  — | j                  «       }t        t        |«      «      j                  «       }t	        j
                  d|d¬«      \  }}}|j                  «       dvrt        d|› d�«      ‚t        j                  t        |«      «      D �cg c]  }|j                  «       ‘Œ }}|D �cg c]  }t        |«      dkD  sŒ|‘Œ }}|st        d«      ‚t        j                  |d   j                  «       t        j                  ¬	«      }|j                  d
k  rt        d«      ‚|dd
 \  }}	t        j                  |d|dz    D �cg c]  }|j                  «       dd ‘Œ c}t        j                   ¬	«      }
|
j#                  |df«      }
||dz   ||	z   dz    D �cg c]  }|j                  «       ‘Œ }}|D �cg c]  }|dt%        |d   «      dz    ‘Œ }}t'        |«      }|
|dœ}|S c c}w c c}w c c}w c c}w c c}w )zí
    Load an OFF file into the kwargs for a Trimesh constructor.

    Parameters
    ----------
    file_obj : file object
      Contains an OFF file

    Returns
    ----------
    loaded : dict
      kwargs for Trimesh constructor
    z
(COFF|OFF)é   )Úmaxsplit)ÚOFFÚCOFFzNot an OFF file! Header was: `Ú`r   z.OFF file is missing the vertex/face count line)Údtyper   z/OFF file has a malformed vertex/face count lineNé   )ÚverticesÚfaces)Úreadr   r   ÚstripÚreÚsplitÚupperÚ	NameErrorÚstrÚ
splitlinesÚlenÚ
ValueErrorÚnpÚarrayÚint64ÚsizeÚfloat64ÚreshapeÚintr   )Úfile_objÚkwargsÚtextÚ_ÚheaderÚrawÚiÚsplitsÚvertex_countÚ
face_countr   r   Úlines                úe/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/trimesh/exchange/off.pyÚload_offr0   	   sé  € ð �=‰=‹?€Dô œ TÓ*Ó+×1Ñ1Ó3€Dô —X‘X˜l¨D¸1Ô=�N€A€vˆsØ‡|�|ƒ~˜_Ñ,ÜÐ8¸¸ÀÐBÓCÐCô "%§¡´°C³Ô!9Ó:Ñ!9˜Aˆa�g‰g�iÐ!9€FÐ:áÓ.™�A¤3 q£6¨A£:Ša˜€FÐ.ñ ÜÐIÓJÐJÜ�X‰X�f˜Q‘i—o‘oÓ'¬r¯x©xÔ8€FØ‡{�{�Q‚ÜÐJÓKÐKØ% b q˜zÑ€L�*ä�x‰xØ & q¨<¸!Ñ+;Ñ <Ó=Ñ <˜1ˆ�‰‹�2�AŠÐ <Ñ=ÄRÇZÁZô€Hð
 ×Ñ ¨qÐ 1Ó2€Hð !' |°aÑ'7¸,ÈÑ:SÐVWÑ:WÑ XÓYÑ X˜1ˆQ�W‰W�YÐ X€EÐYá49Ó:±E¨DˆT�!”c˜$˜q™'“l QÑ&Ò'°E€EÐ:ä˜eÓ$€Eà"¨UÑ3€Fà€Mùò9 ;ùâ.ùò 	>ùò Zùâ:s$   ÂG%Â-G*ÃG*ÅG/ÆG4Æ6G9c           
      óÞ  — t        |«      }t        j                  t        j                  t	        | j
                  «      «      dz  | j
                  f«      j                  t        j                  «      }dj                  dt        t	        | j                  «      «      dz   t        t	        | j
                  «      «      z   dz   t        | j                  dd|¬«      t        |dd¬«      dg«      }|S )	a  
    Export a mesh as an OFF file, a simple text format

    Parameters
    -----------
    mesh : trimesh.Trimesh
      Geometry to export
    digits : int
      Number of digits to include on floats

    Returns
    -----------
    export : str
      OFF format output
    r   Ú
r   Ú z 0)Ú	col_delimÚ	row_delimÚdigits)r4   r5   Ú )r#   r   Úcolumn_stackÚonesr   r   Úastyper   Újoinr   r   r   )Úmeshr6   Úfaces_stackedÚexports       r/   Ú
export_offr?   A   sº   € ô" �‹[€Fä—O‘O¤R§W¡W¬S°·±«_Ó%=ÀÑ%AÀ4Ç:Á:Ð$NÓO×VÑVÜ
�‰ó€Mð �Y‰YàÜ”�D—M‘MÓ"Ó# cÑ)¬C´°D·J±J³Ó,@Ñ@À4ÑGÜ˜DŸM™M°SÀDÐQWÔXÜ˜M°SÀDÔIØð	
ó€Fð €Mó    Úoff)é
   )r   Únumpyr   Úgeometryr   Úutilr   r   r   Údictr0   r   r?   Ú_off_loadersÚ_off_exporters© r@   r/   Ú<module>rJ      sD   ðÛ 	ã å (ß >Ñ >ð5 Dó 5ñp! 3ó !ðH �xÐ €Ø˜Ð$�r@   