
    Ti                          d dl ZddlmZ d ZdS )    N   )is_ccwc                 *   t          |           dk    r| d                                         S d | D             }t          |          dk    rd | D             } t          j        d | D                       }t          j        dt          j        |                    dd                             t          j                  }g }g }i }t          | |          D ]\  }}	|	                    |j
                   |                    |j                                                   |j        D ];}
|
                                }|xj        |	z  c_        |                    |           < t          |          d
||t          j        |          d	|}|S )a(  
    Concatenate multiple paths into a single path.

    Parameters
    -------------
    paths : (n,) Path
      Path objects to concatenate
    kwargs
      Passed through to the path constructor

    Returns
    -------------
    concat : Path, Path2D, or Path3D
      Concatenated result
       r   c                 2    h | ]}|j         j        d          S )r   )verticesshape.0is     K/DATA/AppData/hermes/venv/lib/python3.11/site-packages/trimesh/path/util.py	<setcomp>zconcatenate.<locals>.<setcomp>   s"    555!!*"1%555    c                 Z    g | ](}t          |d           r|                                n|)S )to_3D)hasattrr   r
   s     r   
<listcomp>zconcatenate.<locals>.<listcomp>   s3    HHHQga118qHHHr   c                 6    g | ]}t          |j                  S  )lenr   r
   s     r   r   zconcatenate.<locals>.<listcomp>    s     888QQZ888r   g        N)metadataentitiesr   r   )r   copynparrayappendcumsumastypeint64zipupdater   r   r   pointstypevstack)pathskwargs
dimensionsvert_lenoffsetsr   r   r   pathoffsetentitycopiedconcats                r   concatenater0      s   " 5zzQQx}} 65u555J
:HH%HHH x88%88899HiRYx0011#2#6==bhGGG HHHE7++ $ $f&&&**,,---m 	$ 	$F[[]]FMMV#MMOOF####	$ T$ZZ Hry7J7J NT F Mr   )numpyr   utilr   r0   r   r   r   <module>r3      s<             5 5 5 5 5r   