Ë
    ÛvžjÖŒ  ã            @       ó*  — d Z ddlZddlZddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZmZmZmZmZmZ ddl
mZmZmZmZ ddlmZmZmZmZmZm Z m!Z!m"Z"m#Z# dd	l$m%Z%m&Z&m'Z' dd
l(m)Z)m*Z* ejV                  jY                  d«      dk(  rddl-m.Z.m/Z/m0Z0 dZ1nddl2m.Z.m/Z/m0Z0 dZ1ddl3m4Z4m5Z5 ddl2m6Z6 ddl3m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< g d¢Z=g g g g dœa>da?dddddœd„Z@dddddœd„ZA G d„ d«      ZBd'd„ZCd„ ZDddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddœ?d„ZEd „ ZFd!„ ZG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d(d"„ZHd#„ ZId$„ ZJ	 	 	 	 d)d%„ZKd*d&„ZLy)+z&Show CAD objects in Visual Studio Codeé    N)ÚEnum)ÚLogger)ÚOcpGroup)Ú	OCP_EdgesÚ	OCP_FacesÚOCP_PartÚOCP_PartGroupÚOCP_VerticesÚ
OcpWrapper)Úcombined_bbÚget_normal_lenÚtessellate_groupÚto_ocpgroup)	Úis_build123dÚis_cadqueryÚis_cadquery_assemblyÚis_cadquery_sketchÚis_toploc_locationÚis_topods_compoundÚis_topods_shapeÚ	is_vectorÚ
is_wrapped)ÚColorÚTimerÚnumpy_to_buffer_json)ÚBaseColorMapÚget_colormapÚJUPYTER_CADQUERYÚ1)Úsend_backendÚsend_commandÚ	send_dataTF)Úcombined_configÚget_changed_config)Ú	is_pytest)ÚCameraÚCollapseÚcheck_deprecatedÚget_defaultÚget_defaultsÚpreset)	ÚshowÚshow_objectÚ_showÚ_show_objectÚ
reset_showÚshow_allÚ
show_clearÚsave_screenshotÚnone_filter©ÚobjsÚnamesÚcolorsÚalphasÚother©r7   r8   r9   Úprogressc                 óŠ  — |j                  d«      }|j                  d«      }t        ||¬«      }|j                  d«      dk(  rt        j                  }	n |j                  dt        j                  «      }	|	j                  |d<   |j                  dt
        j                  «      }
|
j                  |d<   |j                  d«      �%t        |d   «      j                  t        _
        |d= n<t        |j                  dt        j                  «      «      j                  t        _
        |j                  d	«      �%t        |d	   «      j                  t        _        |d	= n<t        |j                  d	t        j                  «      «      j                  t        _        |j                  d
«      �%t        |d
   «      j                  t        _        |d
= n<t        |j                  d
t        j                  «      «      j                  t        _        |	t        j                  k(  s#|j                  d«      t        j                  k(  �rt        «       j                  «       D ��ci c]  \  }}|j                  d«      sŒ||“Œ }}}|j                  d«      �|d= |j                  d«      �|d= |j                  d«      �|d= |j                  d«      �g d¢|d<   |j                  d«      �g d¢|d<   |j                  d«      �g d¢|d<   |j                  d«      �d|d<   |j                  d«      �d|d<   |j                  d«      �d|d<   |j!                  |«       t#        d|j                  d«      «      }|€d}|€t%        dD �cg c]  }|‘Œ c}«      }t'        |ddd«      5  t)        «       }t+        || |||j                  d|j                  d«      «      |j                  d|j                  d«      «      |j                  d |j                  d «      «      |j                  d!|j                  d!«      «      |j                  d"|j                  d"«      «      |j                  d#|j                  d#«      «      |d$œ
Ž\  }}t-        |j.                  «      dk(  rLt1        |j.                  d%   t2        «      r/|j4                  }|j.                  d%   }||j4                  z  |_        d d d «       |j                  «       D ��ci c]  \  }}|d&v st6        s|d'v s||“Œ }}}|j                  «       D ]f  \  }}t6        s|d(v rt9        d)|› d*�«       Œ t6        s|d+v rt9        d)|› d,�«       Œ:|€Œ=|dk(  r |j                  d«      du rt9        ||«       Œb|||<   Œh d|d<   |j                  d-«      �|d-   rt9        d.|«       t'        |dd/d«      5  t;        |||j                  d«      «      \  }}}d d d «       t=        t#        d0|j                  d0«      «      t#        d1|j                  d1«      «      «      |d2<   t'        |dd3d«      5  t?        |«      }|€tA        d4d4d4d5d5d5¬6«      }n|jC                  «       }d d d «       |d3<   ||jE                  «       fS c c}}w c c}w # 1 sw Y   �ŒÁxY wc c}}w # 1 sw Y   ŒÉxY w# 1 sw Y   ŒMxY w)7NÚviewerÚport)r>   r?   Ú_splashTÚreset_cameraÚcollapseÚdefault_facecolorÚdefault_thickedgecolorÚdefault_vertexcolorÚclipÚclip_slider_0Úclip_slider_1Úclip_slider_2Úclip_normal_0)éÿÿÿÿr   r   Úclip_normal_1)r   rK   r   Úclip_normal_2)r   r   rK   Úclip_intersectionFÚclip_planesÚclip_object_colorsÚtimeitú-+cÚ r   é   Úrender_matesÚrender_jointsÚhelper_scaleÚdefault_colorÚshow_parentÚshow_sketch_local)
r7   r8   r9   rU   rV   rW   rX   rY   rZ   r<   r   )ÚpositionÚrotationÚtarget)Ú	cad_widthÚheightÚ
tree_widthÚtheme)r^   r_   zSetting z9 cannot be set, it is determined by the VSCode panel size)r`   ra   z! can only be set in VSCode configÚdebugz
tessellation parameters:
Ú
tessellateÚrender_normalsÚ	deviationÚ
normal_lenÚbbg�íµ ÷Æ°¾g�íµ ÷Æ°>)ÚxminÚyminÚzminÚxmaxÚymaxÚzmax)#Úgetr#   r&   ÚRESETÚvaluer'   ÚROOTr   Ú
percentageÚocÚ
FACE_COLORÚTHICK_EDGE_COLORÚVERTEX_COLORr*   ÚitemsÚ
startswithÚupdater+   ÚProgressr   r$   r   ÚlenÚobjectsÚ
isinstancer   ÚlocÚis_jupyter_cadqueryÚprintr   r   r   ÚdictÚto_dictÚcount_shapes)r7   r8   r9   r<   Úcad_objsÚkwargsr>   r?   ÚconfrA   rB   ÚkÚvÚclip_defaultsrQ   ÚcÚchanged_configÚ
part_groupÚ	instancesr~   ÚparamsÚshapesÚmappingrg   s                           ú`/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/ocp_vscode/show.pyÚ_tessellater’   d   sZ  € ð �Z‰Z˜Ó!€FØ�:‰:�fÓ€Dä &¨tÔ4€DØ‡x�x�	Ó˜dÒ"Ü—|‘|‰à—x‘x ´·±Ó=ˆà'×-Ñ-€DˆÑà�x‰x˜
¤H§M¡MÓ2€HØ—~‘~€DˆÑà‡z�zÐ%Ó&Ð2Ü˜fÐ%8Ñ9Ó:×EÑEŒŒØÐ&Ñ'ä˜dŸh™hÐ':¼B¿M¹MÓJÓK×VÑVŒŒà‡z�zÐ*Ó+Ð7Ü# FÐ+CÑ$DÓE×PÑPŒÔØÐ+Ñ,ä#Ø�H‰HÐ-¬r×/BÑ/BÓCó
ç
‰*ô 	Ôð ‡z�zÐ'Ó(Ð4Ü Ð'<Ñ =Ó>×IÑIŒŒØÐ(Ñ)äØ�H‰HÐ*¬B¯O©OÓ<ó
ç
‰*ô 	Œð
 ”v—|‘|Ò# v§z¡z°.Ó'AÄVÇ\Á\Ó'Qä)›^×1Ñ1Ô3ô
Ù3‘T�Q˜°q·|±|ÀFÕ7KˆAˆq‰DÐ3ð 	ñ 
ð �8‰8�OÓ$Ð0Ø�_Ð%Ø�8‰8�OÓ$Ð0Ø�_Ð%Ø�8‰8�OÓ$Ð0Ø�_Ð%Ø�8‰8�OÓ$Ð0Ú$.ˆD�Ñ!Ø�8‰8�OÓ$Ð0Ú$.ˆD�Ñ!Ø�8‰8�OÓ$Ð0Ú$.ˆD�Ñ!Ø�8‰8Ð'Ó(Ð4Ø(-ˆDÐ$Ñ%Ø�8‰8�MÓ"Ð.Ø"'ˆD�ÑØ�8‰8Ð(Ó)Ð5Ø).ˆDÐ%Ñ&à�‰�MÔ"ä�H˜fŸj™j¨Ó2Ó3€Fà€~ØˆàÐÜ©Ó.© 1šQ¨Ñ.Ó/ˆä	ˆv�r˜=¨!Õ	,Ü+Ó-ˆÜ +ØØØØØŸ™ N°N×4FÑ4FÀ~Ó4VÓWØ Ÿ*™*Ø ×!3Ñ!3°OÓ!Dóð  Ÿ™ N°N×4FÑ4FÀ~Ó4VÓWØ Ÿ*™*Ø ×!3Ñ!3°OÓ!Dóð Ÿ
™
 =°.×2DÑ2DÀ]Ó2SÓTØ$Ÿj™jØ# ^×%7Ñ%7Ð8KÓ%Lóð ò#!
Ñˆ
�Iô( ˆz×!Ñ!Ó" aÒ'¬J°z×7IÑ7IÈ!Ñ7LÌhÔ,WØ—.‘.ˆCØ#×+Ñ+¨AÑ.ˆJØ  :§>¡>Ñ1ˆJŒN÷3 
-ð: —J‘J”Lôá ‰DˆAˆqàÐ3Ñ3å'Øðñð 	
ˆ1‰Ø ð ñ ð( —‘–‰ˆˆ1Ý" qÐ,CÑ'CÜØ˜1˜#ÐVÐWõõ %¨ð /
ñ *
ô �H˜Q˜CÐ@ÐAÕBà‰]Ø�NÒ" v§z¡z°)Ó'<ÀÑ'DÜ�a˜”àØˆF�1ŠIð# ð& €Fˆ9Ñà‡z�z�'ÓÐ&¨6°'ª?ÜÐ,¨fÔ5ä	ˆv�r˜<¨Õ	+Ü%5Ø˜	 6¨8°V·Z±ZÀÓ5Ió&
Ñ"ˆ	�6˜7÷ 
,ô
 *ÜÐ §¡Ð,<Ó!=Ó>ØÜˆ{˜FŸJ™J {Ó3Ó4ó€Fˆ<Ñô 
ˆv�r˜4 Õ	#Ü˜Ó ˆØˆ:ÜØ ¨U¸ÀDÈtô‰Bð —‘“ˆB÷ 
$ð €Fˆ4�Là�f˜f j×&=Ñ&=Ó&?ÀÐHÐHùó}
ùò< /ç	,Ñ	,üó6÷X 
,Ð	+ú÷ 
$Ð	#ús=   ÉZÉ4ZÍ=	ZÎE ZÓ6Z'×#Z-Ø=0Z9ÚZ$Ú-Z6Ú9[c                 ó:  — t        d|j                  d«      «      }|€t        dD �cg c]  }|‘Œ c}«      }t        || |||dœ|¤Ž\  }}	}
}}|
j                  d«      �d|
d<   n|
j                  d«      �|
d   rdnd|
d	<   |
j                  d
«      �|
d
   rt	        d|
«       |j                  d«      �|d   |
d<   t        |ddd«      5  t        «       r||	|
|f|fcd d d «       S t        t        ||	¬«      «      d|
|dœ|fcd d d «       S c c}w # 1 sw Y   y xY w)NrQ   rR   r;   Údarkra   Úorbit_controlÚorbitÚ	trackballÚcontrolrb   z	
config:
ÚexploderS   zcreate data objrT   )r�   r�   Údata)rš   ÚtypeÚconfigÚcount)	r+   rn   rz   r’   r€   r   r%   r   r�   )r7   r8   r9   r<   r„   r…   rQ   rŠ   r�   r�   rœ   rƒ   r�   s                r‘   Ú_convertrž     sP  € ô �H˜fŸj™j¨Ó2Ó3€FàÐÜ©Ó.© 1šQ¨Ñ.Ó/ˆä7BØ	ØØØØñ8ð ñ8Ñ4€Iˆv�v˜|¨Wð ‡z�z�&ÓÐ%Ø ˆˆwŠØ	�‰�OÓ	$Ð	0Ø'-¨oÒ'>™GÀKˆˆyÑà‡z�z�'ÓÐ&¨6°'ª?Üˆm˜VÔ$à‡z�z�)ÓÐ(Ø" 9Ñ-ˆˆyÑä	ˆv�rÐ,¨aÕ	0ÜŒ;Ø˜v v¨|Ð<¸gÐE÷ 
1Ñ	0ô
 )Ü˜y°Ô8óð ØØ!ñ
ð ð÷	 
1Ñ	0ùò- /÷, 
1Ð	0ús   §	DÃ
DÃ&DÄDc                   ó    — e Zd ZdZdd„Zdd„Zy)rz   z#Progress indicator for tessellationNc                 ó(   — |€	dg| _         y || _         y )Nz+c-*)Úlevels)Úselfr¡   s     r‘   Ú__init__zProgress.__init__@  s   € Øˆ>Ø!˜(ˆD�Kà ˆD�Kó    c                 ó>   — || j                   v rt        |dd¬«       yy)zUpdate progress indicatorrS   T)ÚendÚflushN)r¡   r€   )r¢   Úmarks     r‘   ry   zProgress.updateF  s   € à�4—;‘;ÑÜ�$˜B dÖ+ð r¤   ©N)Ú+)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r£   ry   © r¤   r‘   rz   rz   =  s   „ Ù-ó!ô,r¤   rz   c                 óÜ   — | €
|rdg|z  S dS t        | «      |k  r-t        d|› d�«       t        | «      |g|t        | «      z
  z  z   S t        | «      |kD  rt        d|› d|› �«       | d| S | S )z.Align attributes to the length of the cad_objsNzToo few z, using defaults to fillz	Too many z, trimming to length )r{   r€   Úlist)Ú	attr_listÚlengthÚdefaultÚtagr™   s        r‘   Úalign_attrsr¶   L  s�   € àÐÙ")�ˆv˜‰Ð3¨tÐ3Ü	ˆY‹˜&Ò	 Ü�˜˜Ð5Ð6Ô7Ü�I‹ ' ¨f´s¸9³~Ñ.EÑ!FÑFÐFÜ	ˆY‹˜&Ò	 Ü�	˜#˜Ð3°F°8Ð<Ô=Ø˜˜&Ð!Ð!àÐr¤   c                 ó€   — |€g }t        | «      j                  «       D ��ci c]  \  }}|€Œ	||vsŒ||“Œ c}}S c c}}w r©   )r�   rw   )ÚdÚexcludesr‡   rˆ   s       r‘   r4   r4   Z  sB   € ØÐØˆÜ! !›WŸ]™]œ_ÔT™_‘T�Q˜°±À!È8ÒBSˆAˆq‰D˜_ÒTÐTùÓTs   ¡
:¬:±:ú-+*c)?r7   r8   r9   r?   r<   ÚglassÚtoolsr`   ÚaxesÚaxes0ÚgridÚorthoÚtransparentÚdefault_opacityÚblack_edgesr•   r˜   rB   r™   ÚticksÚcenter_gridÚupÚtabÚzoomr[   Ú
quaternionr]   rA   rG   rH   rI   rJ   rL   rM   rN   rO   rP   Ú	pan_speedÚrotate_speedÚ
zoom_speedre   Úangular_toleranceÚedge_accuracyrX   Údefault_edgecolorrC   rD   rE   Úambient_intensityÚdirect_intensityÚ	metalnessÚ	roughnessÚrender_edgesrd   rU   rV   rY   rZ   rW   Ú
mate_scalerb   rQ   Ú_force_in_debugc        ?         ó>   — t        |?i t        t        «       dg«      ¤ŽS )a˜  Show CAD objects in Visual Studio Code
    Parameters
        cad_objs:                All cad objects that should be shown as positional parameters

    Keywords for show:
        names:                   List of names for the cad_objs. Needs to have the same length as cad_objs
        colors:                  List of colors for the cad_objs. Needs to have the same length as cad_objs
        alphas:                  List of alpha values for the cad_objs. Needs to have the same length as cad_objs
        progress:                Show progress of tessellation with None is no progress indicator. (default="-+*c")
                                 for object: "-": is reference,
                                             "+": gets tessellated with Python code,
                                             "*": gets tessellated with native code,
                                             "c": from cache
        port:                    The port the viewer listens to. Typically use 'set_port(port)' instead

    Valid keywords to configure the viewer (**kwargs):
    - UI
        glass:                   Use glass mode where tree is an overlay over the cad object (default=False)
        tools:                   Show tools (default=True)
        tree_width:              Width of the object tree (default=240)

    - Viewer
        axes:                    Show axes (default=False)
        axes0:                   Show axes at (0,0,0) (default=False)
        grid:                    Show grid (default=False)
        ortho:                   Use orthographic projections (default=True)
        transparent:             Show objects transparent (default=False)
        default_opacity:         Opacity value for transparent objects (default=0.5)
        black_edges:             Show edges in black color (default=False)
        orbit_control:           Mouse control use "orbit" control instead of "trackball" control (default=False)
        collapse:                Collapse.LEAVES: collapse all single leaf nodes,
                                 Collapse.ROOT: expand root only,
                                 Collapse.ALL: collapse all nodes,
                                 Collapse.NONE: expand all nodes
                                 (default=Collapse.ROOT)
        ticks:                   Hint for the number of ticks in both directions (default=10)
        center_grid:             Center the grid at the origin or center of mass (default=False)
        up:                      Use z-axis ('Z') or y-axis ('Y') as up direction for the camera (default="Z")
        explode:                 Turn on explode mode (default=False)

        zoom:                    Zoom factor of view (default=1.0)
        position:                Camera position
        quaternion:              Camera orientation as quaternion
        target:                  Camera look at target
        reset_camera:            Camera.RESET: Reset camera position, rotation, zoom and target
                                 Camera.CENTER: Keep camera position, rotation, zoom, but look at center
                                 Camera.KEEP: Keep camera position, rotation, zoom, and target
                                 (default=Camera.RESET)

        clip_slider_0:           Setting of clipping slider 0 (default=None)
        clip_slider_1:           Setting of clipping slider 1 (default=None)
        clip_slider_2:           Setting of clipping slider 2 (default=None)
        clip_normal_0:           Setting of clipping normal 0 (default=None)
        clip_normal_1:           Setting of clipping normal 1 (default=None)
        clip_normal_2:           Setting of clipping normal 2 (default=None)
        clip_intersection:       Use clipping intersection mode (default=False)
        clip_planes:             Show clipping plane helpers (default=False)
        clip_object_colors:      Use object color for clipping caps (default=False)

        pan_speed:               Speed of mouse panning (default=1)
        rotate_speed:            Speed of mouse rotate (default=1)
        zoom_speed:              Speed of mouse zoom (default=1)

    - Renderer
        deviation:               Shapes: Deviation from linear deflection value (default=0.1)
        angular_tolerance:       Shapes: Angular deflection in radians for tessellation (default=0.2)
        edge_accuracy:           Edges: Precision of edge discretization (default: mesh quality / 100)

        default_color:           Default mesh color (default=(232, 176, 36))
        default_edgecolor:       Default color of the edges of a mesh (default=#707070)
        default_facecolor:       Default color of the edges of a mesh (default=#ee82ee)
        default_thickedgecolor:  Default color of the edges of a mesh (default=#ba55d3)
        default_vertexcolor:     Default color of the edges of a mesh (default=#ba55d3)
        ambient_intensity:       Intensity of ambient light (default=1.00)
        direct_intensity:        Intensity of direct light (default=1.10)
        metalness:               Metalness property of the default material (default=0.30)
        roughness:               Roughness property of the default material (default=0.65)

        render_edges:            Render edges  (default=True)
        render_normals:          Render normals (default=False)
        render_mates:            Render mates for MAssemblies (default=False)
        render_joints:           Render build123d joints (default=False)
        show_parent:             Render parent of faces, edges or vertices as wireframe (default=False)
        show_sketch_local:       In build123d show local sketch in addition to relocate sketch (default=True)
        helper_scale:            Scale of rendered helpers (locations, axis, mates for MAssemblies) (default=1)

    - Debug
        debug:                   Show debug statements to the VS Code browser console (default=False)
        timeit:                  Show timing information from level 0-3 (default=False)
    r„   )r.   r4   Úlocals)@r7   r8   r9   r?   r<   r»   r¼   r`   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   r•   r˜   rB   r™   rÄ   rÅ   rÆ   rÇ   rÈ   r[   rÉ   r]   rA   rG   rH   rI   rJ   rL   rM   rN   rO   rP   rÊ   rË   rÌ   re   rÍ   rÎ   rX   rÏ   rC   rD   rE   rÐ   rÑ   rÒ   rÓ   rÔ   rd   rU   rV   rY   rZ   rW   rÕ   rb   rQ   rÖ   r„   s@                                                                   r‘   r,   r,   a  s    € ô| �(ÐBœk¬&«(°Z°LÓAÑBÐBr¤   c            	      óž  — |j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }	| �Ut        | «      d	k(  sGt        | «      d
k(  rE| d	   �4t        | d	   t        t        t
        t        f«      rt        | d	   «      d	k(  rt        d«       y |j                  «       D �
�ci c]  \  }
}|�|
dvr|
|“Œ }}
}t        |«      }|j                  d«      �t        |d   t        «      r|d   gdz  |d<   t        d|«      }t        |t        | «      d d«      }t        |t        «      r:t        t        | «      «      D �cg c]  }t        |«      ‘Œ }}d gt        | «      z  }n.t        |t        | «      d d«      }t        |t        | «      d d«      }d }t!        «       }|�*t        t        | «      «      D �cg c]  }t        |«      ‘Œ }}t        t        | «      «      D ]“  }||   €b|�&t#        ||   d d «      ||<   ||   �||   ||   _        t'        | |   d«      r<| |   j(                  �-t#        | |   j(                  «      ||<   nt#        ||   «      ||<   ||   €Œ�||   €Œ‡||   ||   _        Œ• |�t#        |«      }t+        |€g n|D �cg c]  }|‘Œ c}«      }t-        |dd«      5  t/        | ||||dœ|¤Ž\  }}|	sdandad d d «       |�
t        «        t3        «       rfS t-        |dd«      5  t5        ||¬«      }d d d «       t6        r&t9        dij:                  j<                  |¬«       |S t9        di||¬«       y c c}}
w c c}w c c}w c c}w # 1 sw Y   Œ™xY w# 1 sw Y   ŒgxY w)Nr?   rQ   r7   r8   r9   rÏ   r<   rÖ   r   rT   zshow: No CAD objects to show)r„   r7   r8   r9   r?   r<   Ú	LAST_CALLr¿   é   ÚcolorrS   Úoverallr;   r,   r:   Úsend)r?   rQ   Úmodel)Újcv_idrQ   )rn   r{   r}   r�   r±   ÚtupleÚsetr€   rw   r(   Úboolr+   r¶   r   ÚrangeÚnextr   r   ÚaÚhasattrrÜ   rz   r   rž   rÚ   r%   r"   r   r    ÚwidgetÚid)r„   r…   r?   rQ   r7   r8   r9   rÏ   r<   rÖ   r‡   rˆ   Ú_Ú
map_colorsÚcolormapÚirŠ   Útr�   r>   s                       r‘   r.   r.     sä  € ð �:‰:�fÓ€DØ�Z‰Z˜Ó!€FØ�J‰J�wÓ€EØ�Z‰Z˜Ó!€FØ�Z‰Z˜Ó!€FØŸ
™
Ð#6Ó7ÐØ�z‰z˜*Ó%€HØ—j‘jÐ!2Ó3€Oð 	ÐÜˆx‹=˜AÒä�‹M˜QÒà˜‘Ð#ä˜x¨™{¬T´4¼ÄÐ,DÔEÜ˜H Q™KÓ(¨AÒ-ô
 	Ð,Ô-Øð —L‘L”Nôá"‰DˆAˆqØˆ=Øð
ñ	
ð 	
ˆ1‰Ø"ð ñ ô  ˜fÓ%€Fà‡z�z�&ÓÐ%Ü�f˜V‘n¤dÔ+Ø$ V™nÐ-°Ñ1ˆF�6‰Nä�H˜fÓ%€Fä˜œs 8›}¨d°GÓ<€Eô �&œ,Ô'Ü(-¬c°(«mÔ(<Ó=Ñ(< 1”$�v•,Ð(<ˆÐ=Ø�œ#˜h›-Ñ'‰ä˜V¤S¨£]°D¸(ÓCˆÜ˜V¤S¨£]°D¸(ÓCˆà€JÜ‹~€HØÐÜ.3´C¸³MÔ.BÓCÑ.B¨”d˜8•nÐ.Bˆ
ÐCä”3�x“=Ö!ˆØ�!‰9ÐØÐ%Ü! *¨Q¡-°°Ð"3Ó4��q‘	Ø˜!‘9Ð(Ø"(¨¡)�F˜1‘I”Kä�x ‘{ GÔ,°¸!±×1BÑ1BÐ1Nä! (¨1¡+×"3Ñ"3Ó4��q’	ä˜f Q™iÓ(ˆF�1‰Ià�!‰9Ñ  V¨A¡YÑ%:Ø  ™)ˆF�1‰I�Kð "ð  Ð$Ü!Ð"3Ó4Ðä˜hÐ.™ÁÓ4IÁ¸1²QÀÑ4IÓJ€Hä	ˆv�r˜9Õ	%ÜØØØØØñ
ð ñ
‰
ˆˆ7ñ Ø‰IàˆI÷ 
&ð ÐÜŒä„{Ø�'ˆzÐä	ˆv�r˜6Õ	"Ü˜1 4°Ô7ˆ÷ 
#õ Ü�g˜wÐ'°·±×0@Ñ0@ÈÕPØˆä�g˜wÐ'¨d¸6ÖBùósùò: >ùò Dùò* 5Jç	%Ð	%ú÷* 
#Ð	"ús0   Ã?N"ÆN(ÈN-Ë'	N2ÌN7ÍOÎ7O ÏOc                  ó   — g g g g dœa y)z&Reset the stack of objects to be shownr5   N)ÚOBJECTSr¯   r¤   r‘   r0   r0   {  s   € ð  B°"ÀÑC�Gr¤   c=                 ó@   — t        | fi t        t        «       dg«      ¤ŽS )a]  Incrementally show CAD objects in Visual Studio Code

    Parameters:
        obj:                     The CAD object to be shown

    Keywords for show_object:
        name:                    The name of the CAD object
        options:                 A dict of color and alpha value: {"alpha":0.5, "color": (64, 164, 223)}
                                 0 <= alpha <= 1.0 and color is a 3-tuple of values between 0 and 255
        parent:                  Add another object, usually the parent of e.g. edges or vertices with alpha=0.25
        clear:                   In interactice mode, clear the stack of objects to be shown
                                 (typically used for the first object)
        port:                    The port the viewer listens to. Typically use 'set_port(port)' instead
        progress:                Show progress of tessellation with None is no progress indicator. (default="-+*c")
                                 for object: "-": is reference,
                                             "+": gets tessellated with Python code,
                                             "*": gets tessellated with native code,
                                             "c": from cache


    Valid keywords to configure the viewer (**kwargs):
    - UI
        glass:                   Use glass mode where tree is an overlay over the cad object (default=False)
        tools:                   Show tools (default=True)
        tree_width:              Width of the object tree (default=240)

    - Viewer
        axes:                    Show axes (default=False)
        axes0:                   Show axes at (0,0,0) (default=False)
        grid:                    Show grid (default=False)
        ortho:                   Use orthographic projections (default=True)
        transparent:             Show objects transparent (default=False)
        default_opacity:         Opacity value for transparent objects (default=0.5)
        black_edges:             Show edges in black color (default=False)
        orbit_control:           Mouse control use "orbit" control instead of "trackball" control (default=False)
        collapse:                Collapse.LEAVES: collapse all single leaf nodes,
                                 Collapse.ROOT: expand root only,
                                 Collapse.ALL: collapse all nodes,
                                 Collapse.NONE: expand all nodes
                                 (default=Collapse.ROOT)
        ticks:                   Hint for the number of ticks in both directions (default=10)
        center_grid:             Center the grid at the origin or center of mass (default=False)
        up:                      Use z-axis ('Z') or y-axis ('Y') as up direction for the camera (default="Z")

        zoom:                    Zoom factor of view (default=1.0)
        position:                Camera position
        quaternion:              Camera orientation as quaternion
        target:                  Camera look at target
        reset_camera:            Camera.RESET: Reset camera position, rotation, zoom and target
                                 Camera.CENTER: Keep camera position, rotation, zoom, but look at center
                                 Camera.KEEP: Keep camera position, rotation, zoom, and target
                                 (default=Camera.RESET)

        clip_slider_0:           Setting of clipping slider 0 (default=None)
        clip_slider_1:           Setting of clipping slider 1 (default=None)
        clip_slider_2:           Setting of clipping slider 2 (default=None)
        clip_normal_0:           Setting of clipping normal 0 (default=[-1,0,0])
        clip_normal_1:           Setting of clipping normal 1 (default=[0,-1,0])
        clip_normal_2:           Setting of clipping normal 2 (default=[0,0,-1])
        clip_intersection:       Use clipping intersection mode (default=[False])
        clip_planes:             Show clipping plane helpers (default=False)
        clip_object_colors:      Use object color for clipping caps (default=False)

        pan_speed:               Speed of mouse panning (default=1)
        rotate_speed:            Speed of mouse rotate (default=1)
        zoom_speed:              Speed of mouse zoom (default=1)

    - Renderer
        deviation:               Shapes: Deviation from linear deflection value (default=0.1)
        angular_tolerance:       Shapes: Angular deflection in radians for tessellation (default=0.2)
        edge_accuracy:           Edges: Precision of edge discretization (default: mesh quality / 100)

        default_color:           Default mesh color (default=(232, 176, 36))
        default_edgecolor:       Default color of the edges of a mesh (default=(128, 128, 128))
        default_facecolor:       Default color of the edges of a mesh (default=#ee82ee / Violet)
        default_thickedgecolor:  Default color of the edges of a mesh (default=#ba55d3 / MediumOrchid)
        default_vertexcolor:     Default color of the edges of a mesh (default=#ba55d3 / MediumOrchid)
        ambient_intensity:       Intensity of ambient light (default=1.00)
        direct_intensity:        Intensity of direct light (default=1.10)
        metalness:               Metalness property of the default material (default=0.30)
        roughness:               Roughness property of the default material (default=0.65)


        render_edges:            Render edges  (default=True)
        render_normals:          Render normals (default=False)
        render_mates:            Render mates for MAssemblies (default=False)
        render_joints:           Render build123d joints (default=False)
        show_parent:             Render parent of faces, edges or vertices as wireframe (default=False)
        show_sketch_local:       In build123d show local sketch in addition to relocate sketch (default=True)
        helper_scale:            Scale of rendered helpers (locations, axis, mates for MAssemblies) (default=1)

    - Debug
        debug:                   Show debug statements to the VS Code browser console (default=False)
        imeit:                   Show timing information from level 0-3 (default=False)
    Úobj)r/   r4   rØ   )=rò   ÚnameÚoptionsÚparentÚclearr?   r<   r»   r¼   r`   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   r•   rB   rÄ   rÅ   rÆ   rÈ   r[   rÉ   r]   rA   rG   rH   rI   rJ   rL   rM   rN   rO   rP   rÊ   rË   rÌ   re   rÍ   rÎ   rX   rC   rD   rE   rÏ   rÐ   rÒ   rÓ   rÑ   rÔ   rd   rU   rV   rY   rZ   rW   rÕ   rb   rQ   s=                                                                r‘   r-   r-   ƒ  s    € ô~ ˜Ñ>œ{¬6«8°e°WÓ=Ñ>Ð>r¤   c           	      óð  — |j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  «       D ��	ci c]  \  }}	|	�|dvr||	“Œ }}}	|r
t        «        |�`t        d   j	                  |«       t        d	   j	                  d«       t        d
   j	                  d «       t        d   j	                  d «       d }
d }|€>t        «       }|�Ut        t        t        d	   «      dz   «      D ]  }t        |«      �^ }
}Œ n#|j                  d«      }
|j                  dd«      }t        d   j	                  | «       t        d	   j	                  |«       t        d
   j	                  |
«       t        d   j	                  |«       t        t        d   t        d	   t        d
   t        d   ||dœ|¤ŽS c c}	}w )Nr?   ró   rö   rõ   rô   r<   )rò   ró   rô   rõ   rö   r?   r<   r6   r7   r8   r9   rT   rÜ   Úalphag      ð?)r7   r8   r9   r?   r<   )
rn   rw   r0   rð   Úappendr   rä   r{   rå   r,   )rò   r…   r?   ró   rö   rõ   rô   r<   r‡   rˆ   rÜ   rø   rì   rê   s                 r‘   r/   r/   %  sã  € Ø�:‰:�fÓ€DØ�:‰:�fÓ€DØ�J‰J�wÓ€EØ�Z‰Z˜Ó!€FØ�j‰j˜Ó#€GØ�z‰z˜*Ó%€Hð —L‘L”Nôá"‰DˆAˆqØˆ=ØÐVÑVð 	
ˆ1‰Ø"ð ñ ñ ÜŒàÐÜ�‰×Ñ˜vÔ&Ü�Ñ×Ñ Ô)Ü�Ñ× Ñ  Ô&Ü�Ñ× Ñ  Ô&à€EØ€EØ€Ü“>ˆØÐÜœ3œw wÑ/Ó0°1Ñ4Ö5�Ü $ X£‘�™ñ 6ð —‘˜GÓ$ˆØ—‘˜G SÓ)ˆäˆF�O×Ñ˜3ÔÜˆGÑ×Ñ˜DÔ!ÜˆHÑ×Ñ˜UÔ#ÜˆHÑ×Ñ˜UÔ#äÜ	�‰Ü�gÑÜ�xÑ Ü�xÑ ØØñð ñð ùóAs   Á:G2c                  ó"   — ddi} t        | «       y)zClear the viewerr›   rö   N)r"   )rš   s    r‘   r2   r2   X  s   € ð 	�ð€Dô ˆd…Or¤   c           	      óv  — ddl }|sda|rt        dk(  rdat        d«       y| €&|j                  «       }|j                  j
                  } |€g }g }g }| j                  «       D �]^  \  }	}
t        |
t        «      �s|	|g d¢z   v sú|	j                  d«      sét        j                  d|	«      €Ót        j                  d	|	«      €½t        |
d
«      r|
j                  �¥t        |
«      sšt        |
t        t         t"        t$        t&        j(                  f«      sk|
�it        |
t*        «      sY|
j,                  j.                  dk(  r|
j,                  j0                  dk(  s't        |
t2        «      sdt#        |
j,                  «      v r�Œt        |
d«      r |
j4                  dkD  rt        d|	› d�«       �ŒI|�t        |
t7        |«      «      s�Œbt        |
d«      rt        |
d«      r|
j8                  }
t        |
d«      r|
j:                  }
t        |
d«      r?t=        |
j>                  «      s•tA        |
j>                  «      s€tC        |
j>                  «      sktE        |
«      s`tG        |
«      sUtI        |
«      sJtK        |
«      s?t        |
d«      rt        |
d«      rt        |
d«      st        |
tL        t6        tN        f«      r$|jQ                  |
«       |jQ                  |	«       �Œxt        |
tR        tT        tV        tX        tZ        f«      r+|jQ                  |
«       |	|
_.        |jQ                  |	«       �ŒÈt_        |
«      r=ta        |
g|	g¬«      \  }}|	|_.        |jQ                  |«       |jQ                  |	«       �Œt        |
tb        «      r$|jQ                  |
«       |jQ                  |	«       �ŒDt        dt        |
«      › d|	› d�«       �Œa te        |«      dkD  r1	 tg        ||th        jj                  |dœ|¤Ž}tm        «       stn        r|S ytm        «       ryts        «        y# tp        $ r}t        d|«       Y d}~yd}~ww xY w)a  
    Show all variables in the current scope

    Parameters:
        variables:     Only show objects with names in this list of variable names,
                       i.e. do not use all from locals()
        exclude:       List of variable names to exclude from "show_all"
        classes:       Only show objects which are instances of the classes in this list
        _visual_debug: private variable, do not use!

    Keywords for show_all:
        Valid keywords for "show_all" are the same as for "show"
    r   Nr:   r,   z.
Skip visual debug step after a show() command)rê   Ú__Ú___Ú_ihÚ_ohÚ_dhÚOutÚInrü   z^_i\d+z^_\d+Ú_objÚ_FeatureÚ
__future__zcad_viewer_widget.widgetÚareag.Ÿ‡¢®B}Tzinfinite face z skippedÚ	locationsÚlocal_locationsÚlocal_coord_systemÚwrappedr[   Ú	direction)r7   zshow_all: Type z
 for name z cannot be visualized)r7   rB   rÖ   z	show_all:):ÚinspectrÚ   r€   ÚcurrentframeÚf_backÚf_localsrw   r}   r›   rx   ÚreÚsearchrç   r  ÚcallableÚintÚfloatÚstrrã   ÚtypesÚ
ModuleTyper   Ú	__class__r«   r¬   r   r  rá   r  Úlocationr   r
  r   r   r   r   r   r   r±   r�   rù   r	   r   r   r   r
   ró   r   r   r   r{   r,   r'   rq   r%   r   Ú	Exceptionr2   )Ú	variablesÚexcludeÚclassesÚ_visual_debugr…   r  Úcfr|   r7   ró   rò   Úpgr�   ÚresultÚexs                  r‘   r1   r1   `  s{  € ó( ñ Øˆ	áœ fÒ,Øˆ	ÜÐ?Ô@ØàÐØ×!Ñ!Ó#ˆØ—I‘I×&Ñ&ˆ	à€Øˆà€GØ€EØ—_‘_×&‰	ˆˆcô �sœDÕ!Ø�wÒ!UÑUÑUØ�‰˜tÔ$Ü�y‰y˜ DÓ)Ð5Ü�y‰y˜ 4Ó(Ð4ä˜˜VÔ$¨¯©Ð)9Ü˜Œ}Ü˜#¤¤U¬C´´u×7GÑ7GÐHÔIØˆ{Ü˜#œtÔ$à—‘×&Ñ&¨*Ò4Ø—M‘M×,Ñ,°Ò<ä˜#œvÔ&Ø)¬S°·±Ó-?Ñ?áä�3˜Ô C§H¡H¨t¢OÜ�N 4 &¨Ð1Ô2Ùàˆ?œj¨¬e°G«nÖ=ä�s˜KÔ(¬W°SÐ:KÔ-LØ—m‘m�ä�sÐ0Ô1Ø—l‘l�ô ˜C Ô+ä'¨¯©Ô4Ü-¨c¯k©kÔ:Ü-¨c¯k©kÔ:ô ˜S”>Ü˜sÔ#Ü Ô$Ü'¨Ô,ä˜C Ô+Ü  ZÔ0Ü  [Ô1ä˜c¤D¬%´Ð#6Ô7à—‘˜sÔ#Ø—‘˜TÖ"äØ”m¤Y´	¼8Ä\ÐRôð —‘˜sÔ#Ø�”Ø—‘˜TÖ"ä# CÔ(Ü +¨S¨E¸$¸Ô @‘��IØ�”Ø—‘˜yÔ)Ø—‘˜TÖ"ä˜C¤Ô,Ø—‘˜sÔ#Ø—‘˜TÖ"ô Ø%¤d¨3£i [°
¸4¸&Ð@UÐVöðY 'ô` ˆ7ƒ|�aÒð	#ÜØØÜ!Ÿ™Ø -ñ	ð
 ñˆFô Œ{Õ1Ø�ð 2ô
 Œ;ØÜ�øô ò 	#Ü�+˜r×"Ñ"ûð	#ús   Ï.P Ð	P8Ð"P3Ð3P8c                 ó8  — | j                  t        j                  «      s2t        j                  d«      j                  «       }t        || z  «      }n| }t        j                  |«      }|j                  «       r|j                  «       j                  nd}t        d|› dœ|¬«       |rsd}t        d«      D ]T  }|j                  «       r-|j                  «       j                  |kD  rt        d|«       d	} nt        j                  d
«       ŒV |st        d«       yyy)z%Save a screenshot of the current viewÚ.r   Ú
screenshot)r›   Úfilename)r?   Fé   zScreenshot saved to Tgš™™™™™¹?z4Warning: Screenshot not found in 2 seconds, abortingN)rx   ÚosÚsepÚpathlibÚPathÚabsoluter  ÚexistsÚstatÚst_mtimer!   rä   r€   ÚtimeÚsleep)	r&  r?   ÚpollingÚprefixÚ	full_pathÚpÚmtimeÚdonerí   s	            r‘   r3   r3   í  sá   € à×ÑœrŸv™vÔ&Ü—‘˜cÓ"×+Ñ+Ó-ˆÜ˜ Ñ)Ó*‰	àˆ	Ü�‰�YÓ€AØ!"§¡¤ˆA�F‰F‹H×Ò°€Eä˜,°y°kÑCÈ$ÕOáØˆÜ�r–ˆAØ�x‰xŒz˜aŸf™f›h×/Ñ/°%Ò7ÜÐ,¨iÔ8Ø�ÙÜ�J‰J�s�Oð ñ ÜÐHÕIð ð r¤   )T)<NNNFNrº   NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)NNNF)NT)Mr®   r(  r*  r  r0  r  Úenumr   Úloggingr   Úocp_tessellate.convertÚconvertrs   Úocp_tessellater   Úocp_tessellate.cad_objectsr   r   r   r	   r
   r   r   r   r   r   Úocp_tessellate.ocp_utilsr   r   r   r   r   r   r   r   r   Úocp_tessellate.utilsr   r   r   Úocp_vscode.colorsr   r   Úenvironrn   Újupyter_cadquery.commsr    r!   r"   r   Úocp_vscode.commsÚocp_vscode.configr#   r$   r%   r&   r'   r(   r)   r*   r+   Ú__all__rð   rÚ   r’   rž   rz   r¶   r4   r,   r.   r0   r-   r/   r2   r1   r3   r¯   r¤   r‘   Ú<module>rF     s«  ðÙ ,ó$ 
Û Û 	Û Û Ý Ý å #Ý #÷÷ ÷ó ÷
÷ 
õ 
÷ DÑ Cç 8à‡:�:‡>�>Ð$Ó%¨Ò,ßLÑLàÑ÷ GÑFàÐ÷õ
 '÷÷ ò
€ð  ¨b¸BÑ
?€à€	ð  $¨t¸dôgIðX ØØØô,÷^,ñ ,óòUð ØØØ	ØØ
Ø
ØØ	Ø
Ø	Ø
ØØØØØØØØ
ØØØØ	ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ
ØØôA^CòBvCòrDð 
ØØØ
Ø	ØØ
Ø
ØØ	Ø
Ø	Ø
ØØØØØØ
ØØØ	ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ
Øó{_?òD0òfð ØØØó	JôZJr¤   