§
    ÷‹ájº  ã                   ón   — d Z ddlmZ ddlZddlZd\  ZZZdZ	dZ
dZd„ Zd	„ Zed
k    r e¦   «          dS dS )ab  A loaf-pan-like open box (replaces the ObjectFolder loaf pan, whose mesh is full of slivers): the loaf pan's outer size
275.5 x 158.4 x 81.9 mm, vertical corners rounded (outer radius R), walls and floor T thick, open top. Meshed by marching
cubes of its signed distance at VOXEL mm (well-shaped triangles: manifold3d's triangulation of the flat faces is all
slivers, which the noise step cannot move, as with the loaf pan); edges chamfered at about a voxel. Writes
../meshes/open_box.ply.

    env -u PYTHONPATH PYTHONWARNINGS=ignore .venv/bin/python ~/code/data/meshes/fcp_2710_tests/scripts/make_openbox.py
é    )ÚPathN)g     8q@gÍÌÌÌÌÌc@gš™™™™yT@g      @g      .@g      ð?c                 óD  — t          j        | ¦  «        |dz  |z
  z
  t          j        |¦  «        |dz  |z
  z
  }}t          j        t          j        |d¦  «        t          j        |d¦  «        ¦  «        t          j        t          j        ||¦  «        d¦  «        z   |z
  S )zZSigned distance to a rounded rectangle centred at 0 (w x d, corner radius r) in the plane.é   r   )ÚnpÚabsÚhypotÚmaximumÚminimum)ÚxÚyÚwÚdÚrÚqxÚqys          úB/home/joao/code/data/meshes/fcp_2710_tests/scripts/make_openbox.pyÚ	sdf_rrectr      s…   € åŒV�A‰YŒY˜!˜a™% !™)Ñ$¥b¤f¨Q¡i¤i°1°q±5¸1±9Ñ&=ˆ€BÝŒ8•B”J˜r 1Ñ%Ô%¥r¤z°"°aÑ'8Ô'8Ñ9Ô9½B¼JÅrÄzÐRTÐVXÑGYÔGYÐ[\Ñ<]Ô<]Ñ]Ð`aÑaÐaó    c                  óê  — ddl m}  dt          z  }t          j        t
           dz  |z
  t
          dz  |z   t          ¦  «        }t          j        t           dz  |z
  t          dz  |z   t          ¦  «        }t          j        | t          |z   t          ¦  «        }t          j        ||d¬¦  «        \  }}t          ||t
          t          t          ¦  «        d d …d d …d f         }t          ||t
          dt          z  z
  t          dt          z  z
  t          t          z
  ¦  «        d d …d d …d f         }|d d d d …f         }	t          j        |t          j        |	 |	t          z
  ¦  «        ¦  «        }
t          j        |t          |	z
  ¦  «        }t          j        |
| ¦  «                             t          j        ¦  «        }|                      |dt          fdz  ¬¦  «        \  }}}}|t          j        |d         |d         |d         g¦  «        z  }t#          j        ||d d …d d d	…f         d
¬¦  «        }|j        dk     r|                     ¦   «          |j        r|j        dk    sJ ‚t-          t.          ¦  «                             ¦   «         j        j        dz  dz  }|                     |¦  «         t7          ||j        |j                             d¦  «        t=          |j        ¦  «        d¦  «         d S )Nr   )Úmeasureé   r   Úij)Úindexingg        )ÚspacingéÿÿÿÿT)ÚprocessÚmesheszopen_box.plyé   Úfaces) Úskimager   ÚVOXELr   ÚarangeÚWÚDÚHÚmeshgridr   ÚRÚTr	   ÚastypeÚfloat32Úmarching_cubesÚarrayÚtrimeshÚTrimeshÚvolumeÚinvertÚis_watertightr   Ú__file__ÚresolveÚparentÚexportÚprintÚextentsÚroundÚlenr   )r   ÚpadÚxsÚysÚzsÚXÚYÚsoÚsiÚZÚouterÚcavityÚfÚvr   Ú_ÚtÚouts                     r   ÚmainrJ      s}  € ØÐÐÐÐÐà
�e‰)€CÝ	Œ•A�2˜‘6˜C‘<¥ Q¡¨¡­eÑ	4Ô	4€BÝ	Œ•A�2˜‘6˜C‘<¥ Q¡¨¡­eÑ	4Ô	4€BÝ	Œ�C�4�˜S™¥%Ñ	(Ô	(€BÝŒ;�r˜2¨Ð-Ñ-Ô-�D€A€qÝ	�1�a��A�qÑ	!Ô	! ! ! ! Q Q Q¨ *Ô	-€BÝ	�1�a�˜Q¥™U™¥A¨­A©¡I­qµ1©uÑ	5Ô	5°a°a°a¸¸¸¸D°jÔ	A€BØ
ˆ4��q�q�qˆ=Ô€AÝŒJ�r�2œ: q b¨!­a©%Ñ0Ô0Ñ1Ô1€EÝŒZ˜�A ™EÑ"Ô"€FÝ
Œ
�5˜6˜'Ñ"Ô"×)Ò)­"¬*Ñ5Ô5€AØ×+Ò+¨A¨s½U¸HÀq¹LÐ+ÑIÔI�N€A€uˆa�Ø�Œ�2�a”5˜"˜Qœ%  A¤Ð'Ñ	(Ô	(Ñ(€AÝŒ˜˜5    D D b D œ>°4Ð8Ñ8Ô8€AØ„x�!‚|€|Ø	�Š‰
Œ
ˆ
ØŒ?Ð+˜qœx¨!š|˜|˜|Ð+Ý
�x‰.Œ.×
 Ò
 Ñ
"Ô
"Ô
)Ô
0°8Ñ
;¸nÑ
L€CØ‡H‚HˆS�M„M€MÝ	ˆ#ˆqŒ ¤	§¢°Ñ 2Ô 2µC¸¼±L´LÀ'ÑJÔJÐJÐJÐJr   Ú__main__)Ú__doc__Úpathlibr   Únumpyr   r-   r#   r$   r%   r(   r'   r!   r   rJ   Ú__name__© r   r   ú<module>rQ      sœ   ððð ð Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€à
�€€1€aØ€Ø€ð 	€ðbð bð bðKð Kð Kð2 ˆzÒÐØ€D�F„F€F€F€Fð Ðr   