Ë
    :vžj¥  ã                   ó<   — d Z ddlZddlmZ ddlmZ ddlmZ d	d„Zy)
zD
repair.py
--------------

Try to fix problems with closed regions.
é    N)ÚcKDTreeé   )Úutilé   )Úsegmentsc           	      ó$  — t        j                  t        | j                  j	                  «       «      j                  «       D ��cg c]  \  }}|dk7  sŒ|‘Œ c}}«      }t        |«      dk(  ryt        | j                  |   «      }|j                  |d¬«      }g }t        |«      dkD  r¯| j                  D �ch c]   }t        t        |j                  «      «      ’Œ" }	}t        j                  ||   d¬«      D �
ch c]  }
t        |
«      ’Œ }}
t        j                  t        |j!                  |	«      «      «      }t        |«      dkD  r| j                  |   }t#        |«      }t%        | j                  «      D �
�cg c].  \  }
}t        |j'                  |j                  «      «      dkD  r|
‘Œ0 }}
}g }t        j(                  t        | j                  «      t*        ¬«      }d}|D ]¶  }| j                  |   j,                  j.                  d	k7  rŒ*|€| j                  |   j,                  }| j                  |   j1                  | j                  «      }t3        j4                  t        j6                  t        |«      «      «      }|j9                  ||   «       d
||<   Œ¸ t3        j:                  t3        j:                  |«      |f«      }t        |«      dk(  ryt=        j>                  || j                  |   «      }t=        j@                  |«      }g }tC        t        |«      «      D ]I  }
|j9                   |t        j6                  d«      |
dz  z   t        | j                  «      z   ¬«      «       ŒK t        j8                  | j                  |   |«      | _
        t        jD                  | j                  t        jD                  |«      f«      | _        | jF                  jI                  «        | jK                  «        yc c}}w c c}w c c}
w c c}}
w )zé
    Find vertices without degree 2 and try to connect to
    other vertices. Operations are done in-place.

    Parameters
    ------------
    segments : trimesh.path.Path2D
       Line segments defined by start and end points
    r   r   NÚndarray)ÚrÚoutput_typer   )Úaxis)ÚdtypeÚLineF)Úpoints)&ÚnpÚarrayÚdictÚvertex_graphÚdegreeÚitemsÚlenr   ÚverticesÚquery_pairsÚentitiesÚtupleÚsortedÚ
end_pointsÚsortÚlistÚ
differenceÚsetÚ	enumerateÚintersectionÚonesÚboolÚ	__class__Ú__name__Údiscreter   Ústack_linesÚarangeÚappendÚvstack_emptyr   ÚsplitÚuniqueÚrangeÚvstackÚ_cacheÚclearÚprocess)ÚpathÚdistanceÚkÚdÚbrokenÚtreeÚpairsÚconnect_segÚer   ÚiÚpair_setÚmaskÚ
broken_setÚdangleÚsegsÚkeepÚ
line_classÚentity_indexr   Úseg_idxÚall_segsr,   Ú	final_segr   s                            úd/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/trimesh/path/repair.pyÚ	fill_gapsrI      sH  € ô �X‰X¤T¨$×*;Ñ*;×*BÑ*BÓ*DÓ%E×%KÑ%KÔ%MÔXÑ%M™T˜Q ÐQRÐVWÓQW’qÐ%MÒXÓY€Fô ˆ6ƒ{�aÒØô �4—=‘= Ñ(Ó)€DØ×Ñ˜x°YÐÓ?€Eà€KÜ
ˆ5ƒz�A‚~Ø;?¿=º=ÓI¹=°a”eœF 1§<¡<Ó0Õ1¸=ˆ
ÐIÜ&(§g¡g¨f°U©mÀ!Õ&DÓEÑ&D ”E˜!•HÐ&DˆÐEô �x‰xœ˜X×0Ñ0°Ó<Ó=Ó>ˆäˆt‹9�qŠ=ØŸ-™-¨Ñ-ˆKô �V“€Jô
 ˜dŸm™mÔ,ôá,‰DˆAˆqÜˆz×&Ñ& q§|¡|Ó4Ó5¸Ò9ò 	
Ø,ð ñ ð €Dä�7‰7”3�t—}‘}Ó%¬TÔ2€Dà€Jãˆà�=‰=˜Ñ&×0Ñ0×9Ñ9¸VÒCØàÐØŸ™ |Ñ4×>Ñ>ˆJð —‘˜|Ñ,×5Ñ5°d·m±mÓDˆä×"Ñ"¤2§9¡9¬S°«[Ó#9Ó:ˆà�‰�F˜7‘OÔ$à"ˆˆ\Òð ô$ × Ñ ¤$×"3Ñ"3°DÓ"9¸;Ð!GÓH€Hô ˆ8ƒ}˜ÒØô �N‰N˜8 T§]¡]°6Ñ%:Ó;€Eä—‘ Ó&€Ið €HÜ”3�y“>Ö"ˆØ�‰™
¬"¯)©)°A«,¸!¸a¹%Ñ*@Ä3ÀtÇ}Á}ÓCUÑ*UÔVÕWð #ô —I‘I˜dŸm™m¨DÑ1°8Ó<€D„MÜ—I‘I˜tŸ}™}¬b¯i©i¸	Ó.BÐCÓD€D„MØ‡K�K×ÑÔØ‡L�L…NùóY Yùò JùÚEùós   ÁO<
ÁO<
Â6%PÃ9PÅ:3P)gš™™™™™™?)	Ú__doc__Únumpyr   Úscipy.spatialr   Ú r   r   rI   © ó    rH   Ú<module>rP      s   ðñó Ý !å Ý ôXrO   