§
    ÑVáj@  ã                   ó^  — d Z ddlZddlmZ ddlZddlZej                             d e	 ee
¦  «        j        ¦  «        ¦  «         ddlmZmZ ddlmZmZ dZedz  ZdZd	gd
„ eD ¦   «         z   d„ eD ¦   «         z   ddgz   Zd„ Zd„ Zd„ Zedk    r eej        dd…         pe¦  «         dS dS )a)  Point clouds of the report's objects, 10k and 2048 points, seeded. Writes ../pointclouds/<name>_<tag>_<n>.ply (points
only). Tags:
  clean, noise0p2, noise0p6, noise1   area-uniform samples of the clean mesh and of each noisy mesh (`make_noisy.py`:
                                      smooth bumps on the surface, so these are clean samples of a bumpy surface);
  pn0p12, pn0p6, pn1p2                PCPNet's protocol: area-uniform samples of the clean mesh, each point moved by
                                      isotropic Gaussian noise of sigma = 0.12 / 0.6 / 1.2 % of the bounding-box diagonal;
  dgrad, dstripe                      variable density (PCPNet-like), clean mesh: dgrad keeps a point with probability
                                      falling linearly from 1 to 0.1 along x; dstripe alternates stripes along y, a tenth
                                      of the extent wide, kept with probability 1 and 0.2.

    env -u PYTHONPATH PYTHONWARNINGS=ignore .venv/bin/python ~/code/data/meshes/fcp_2710_tests/scripts/make_clouds.py [tags...]
é    N)ÚPath)ÚSIGMASÚlabel)ÚOBJÚROOT)i'  i   Úpointclouds)ga2U0*©S?gú~j¼t“x?gú~j¼t“ˆ?Úcleanc                 ó2   — g | ]}d t          |¦  «        › �‘ŒS )Únoise©r   ©Ú.0Úss     úA/home/joao/code/data/meshes/fcp_2710_tests/scripts/make_clouds.pyú
<listcomp>r      s'   € Ð7Ð7Ð7¨1Ð&�E !™HœHÐ&Ð&Ð7Ð7Ð7ó    c                 ó2   — g | ]}d t          |¦  «        › �‘ŒS ©Úpnr   r   s     r   r   r      s$   € Ð:WÐ:WÐ:WÈq¸?ÅÀaÁÄ¸?¸?Ð:WÐ:WÐ:Wr   ÚdgradÚdstripec                 ó¦  — |                       d¦  «        |                      d¦  «        }}|dk    r;dd| d d …df         |d         z
  z  t          |d         |d         z
  d¦  «        z  z
  S | d d …df         |d         z
  t          |d         |d         z
  d¦  «        z  }t          j        t          j        |dz  ¦  «        dz  dk    dd	¦  «        S )
Nr   r   g      ð?gÍÌÌÌÌÌì?gê-�™—q=é   é
   é   gš™™™™™É?)ÚminÚmaxÚnpÚwhereÚfloor)ÚPÚtagÚloÚhiÚus        r   Ú	keep_probr&      sÇ   € Ø�UŠU�1‰XŒX�q—u’u˜Q‘x”xˆ€BØ
ˆg‚~€~Ø�S˜A˜a˜a˜a ˜dœG b¨¤e™OÑ,­s°2°a´5¸2¸a¼5±=À%Ñ/HÔ/HÑHÑHÐHØ	
ˆ1ˆ1ˆ1ˆaˆ4Œ�2�a”5‰�C  1¤¨¨1¬¡¨uÑ5Ô5Ñ5€AÝŒ8•B”H˜Q ™VÑ$Ô$ qÑ(¨AÒ-¨s°CÑ8Ô8Ð8r   c           	      óì  — |                      d¦  «        rNt          j        t          j        t
          dz  | › d|› d�z  d¬¦  «                             ||¬¦  «        ¦  «        S t          j        t          |          d¬¦  «        }|dk    r)t          j        |                     ||¬¦  «        ¦  «        S t          j         	                    |d	z   ¦  «        }|                      d
¦  «        rŒd„ t          D ¦   «         |         t          t          j                             |j        ¦  «        ¦  «        z  }t          j        |                     ||¬¦  «        ¦  «        |                     d||df¦  «        z   S t          j        |                     d|z  |¬¦  «        ¦  «        }t!          ||¦  «        }|                     t%          |¦  «        |d||                     ¦   «         z  ¬¦  «        }	||	         S )zThe tag's cloud of n points.r   ÚmeshesÚ_ú.plyÚmesh)Úforce)Úseedr	   iè  r   c                 ó4   — i | ]}d t          |¦  «        › �|“ŒS r   r   r   s     r   ú
<dictcomp>zcloud.<locals>.<dictcomp>.   s&   € Ð0Ð0Ð0¨�•e˜A‘h”h�� !Ð0Ð0Ð0r   g        é   é   F)ÚreplaceÚp)Ú
startswithr   ÚasarrayÚtrimeshÚloadr   Úsampler   ÚrandomÚdefault_rngÚPNÚfloatÚlinalgÚnormÚextentsÚnormalr&   ÚchoiceÚlenÚsum)
Únamer"   Únr-   ÚgÚrngÚsigmar!   r3   Úidxs
             r   ÚcloudrJ   %   s©  € à
‡~‚~�gÑÔð rÝŒz�'œ,¥t¨h¡¸DÐ9LÐ9LÀ3Ð9LÐ9LÐ9LÑ'LÐTZÐ[Ñ[Ô[×bÒbÐcdÐkoÐbÑpÔpÑqÔqÐqÝŒ•S˜”Y fÐ-Ñ-Ô-€AØ
ˆg‚~€~ÝŒz˜!Ÿ(š( 1¨4˜(Ñ0Ô0Ñ1Ô1Ð1Ý
Œ)×
Ò
  t¡Ñ
,Ô
,€CØ
‡~‚~�dÑÔð SØ0Ð0­RÐ0Ñ0Ô0°Ô5½½b¼i¿nºnÈQÌYÑ>WÔ>WÑ8XÔ8XÑXˆÝŒz˜!Ÿ(š( 1¨4˜(Ñ0Ô0Ñ1Ô1°C·J²J¸sÀEÈAÈqÈ6Ñ4RÔ4RÑRÐRÝ
Œ
�1—8’8˜B ™F¨�8Ñ.Ô.Ñ/Ô/€AÝ�!�SÑÔ€AØ
�*Š*•S˜‘V”V˜Q¨°°Q·U²U±W´W±ˆ*Ñ
=Ô
=€CØˆSŒ6€Mr   c                 óN  — t                                d¬¦  «         t          D ]�}| D ]j}t          t          ¦  «        D ]S\  }}t          j        t          |||d|z  dz   ¦  «        ¦  «                             t           |› d|› d|› d�z  ¦  «         ŒTŒkt          |dd¬¦  «         Œ‚d S )	NT)Úexist_okr   r   r)   r*   Údone)Úflush)
ÚOUTÚmkdirr   Ú	enumerateÚSIZESr6   Ú
PointCloudrJ   ÚexportÚprint)ÚtagsrD   r"   ÚkrE   s        r   ÚmainrX   6   sÔ   € Ý‡I‚I�t€IÑÔÐÝð (ð (ˆØð 	jð 	jˆCÝ!¥%Ñ(Ô(ð jð j‘��1ÝÔ"¥5¨¨s°A°r¸A±vÀ±zÑ#BÔ#BÑCÔC×JÒJÍ3ÐTXÐQhÐQhÐ[^ÐQhÐQhÐabÐQhÐQhÐQhÑKhÑiÔiÐiÐiðjåˆd�F $Ð'Ñ'Ô'Ð'Ð'ð	(ð (r   Ú__main__r   )Ú__doc__ÚsysÚpathlibr   Únumpyr   r6   ÚpathÚinsertÚstrÚ__file__ÚparentÚ
make_noisyr   r   Úparts_reportr   r   rR   rO   r;   ÚTAGSr&   rJ   rX   Ú__name__Úargv© r   r   ú<module>ri      sS  ððð ð €
€
€
Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€à „‡‚��3�3�t�t˜H‘~”~Ô,Ñ-Ô-Ñ .Ô .Ð .Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à€Ø
ˆ]Ñ€Ø€Ø€yÐ7Ð7°Ð7Ñ7Ô7Ñ7Ð:WÐ:WÐTVÐ:WÑ:WÔ:WÑWÐ[bÐdmÐZnÑn€ð9ð 9ð 9ðð ð ð"(ð (ð (ð ˆzÒÐØ€DˆŒ�!�"�"ŒÐ	˜ÑÔÐÐÐð Ðr   