Ë
    :vžjú	  ã                   óD   — d Z ddlZddlmZmZ ddlmZ ddlm	Z	 d„ Z
d„ Zy)	zr
objects.py
--------------

Deal with objects which hold visual properties, like
ColorVisuals and TextureVisuals.
é    Né   )ÚColorVisualsÚcolor_to_uv)Úpack)ÚTextureVisualsc                  ó   — t        di | ¤ŽS )aP  
    Create Visuals object from keyword arguments.

    Parameters
    -----------
    face_colors : (n, 3|4) uint8
      Face colors
    vertex_colors : (n, 3|4) uint8
      Vertex colors
    mesh : trimesh.Trimesh
      Mesh object

    Returns
    ----------
    visuals : ColorVisuals
      Visual object created from arguments
    © )r   )Úkwargss    úg/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/trimesh/visual/objects.pyÚcreate_visualr      s   € ô$ Ñ!˜&Ñ!Ð!ó    c                 óØ  — t        |«      dkD  rt        j                  | |«      } nt        j                  | «      } t	        d„ | D «       «      rüg }g }| D ]Ö  }|j
                  dk(  rŠ|j                  |j                  «       |j                  €G|j                  t        j                  t        |j                  j                  «      df«      dz   «       Œ€|j                  |j                  «       Œœt        |j                  ¬«      \  }}|j                  |«       |j                  |«       ŒØ t        ||¬«      \  }}t        ||¬	«      S t        d
„ | D «       d«      }	|	dk(  r9t        j                   | D �cg c]  }|j"                  ‘Œ c}«      }
t%        |
¬«      S |	dk(  r9t        j                   | D �cg c]  }|j                  ‘Œ c}«      }
t%        |
¬«      S t%        «       S c c}w c c}w )a  
    Concatenate multiple visual objects.

    Parameters
    ----------
    visuals : ColorVisuals or list
      Visuals to concatenate
    *args :  ColorVisuals or list
      More visuals to concatenate

    Returns
    ----------
    concat : Visuals
      If all are color
    r   c              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)ÚtextureN©Úkind©Ú.0Úvs     r   Ú	<genexpr>zconcatenate.<locals>.<genexpr><   s   è ø€ Ð
0© 1ˆ1�6‰6�YÕ©ùs   ‚r   Né   g      à?)Úvertex_colors)Ú	materialsÚuvs)ÚmaterialÚuvc              3   óN   K  — | ]  }|j                   €Œ|j                   –— Œ y ­w)Nr   r   s     r   r   zconcatenate.<locals>.<genexpr>T   s   è ø€ Ð?¡˜A¨A¯F©FÑ,>�—•¡ùs   ‚%”%Úface)Úface_colorsÚvertex)ÚlenÚnpÚappendÚarrayÚanyr   r   r   ÚzerosÚmeshÚverticesr   r   r   r   ÚnextÚvstackr   r   )ÚvisualsÚargsÚmatsr   r   Ú	color_matÚcolor_uvÚnew_matÚnew_uvr   Úcolorss              r   Úconcatenater3   %   s�  € ô" ˆ4ƒy�1‚}Ü—)‘)˜G TÓ*‰ä—(‘(˜7Ó#ˆô Ñ
0©Ó
0Ô0àˆØˆÛˆAØ�v‰v˜Ò"Ø—‘˜AŸJ™JÔ'Ø—4‘4�<à—J‘JœrŸx™x¬¨Q¯V©V¯_©_Ó)=¸qÐ(AÓBÀSÑHÕIð —J‘J˜qŸt™tÕ$ô '2ÀÇÁÔ&PÑ#�	˜8Ø—‘˜IÔ&Ø—
‘
˜8Õ$ð ô  ¨°3Ô7‰ˆ�Ü w°6Ô:Ð:ô Ñ?¡Ó?ÀÓF€DØˆv‚~Ü—‘±7Ó;±7¨a˜AŸM›M°7Ñ;Ó<ˆÜ¨Ô/Ð/Ø	�Ò	Ü—‘±WÓ=±W°˜AŸO›O°WÑ=Ó>ˆÜ¨&Ô1Ð1ä‹>Ðùò <ùò >s   Å4G"Æ2G')Ú__doc__Únumpyr"   Úcolorr   r   r   r   r   r   r   r3   r	   r   r   Ú<module>r7      s"   ðñó ç ,Ý Ý #ò"ó*7r   