Ë
    ¯·g+@  ã                   óž   — d Z ddlmZ ddlZddlZddlZddlmZmZm	Z	 ddl
Z
ddlmZ  G d„ de
j                  «      Zd	„ Zed
k(  r e«        yy)aì  
A simple vtkTkRenderWidget for tkinter.

Created by David Gobbi, April 1999

May ??, 1999  - Modifications performed by Heather Drury,
                to rewrite _pan to match method in TkInteractor.tcl
May 11, 1999  - Major rewrite by David Gobbi to make the
                interactor bindings identical to the TkInteractor.tcl
                bindings.
July 14, 1999 - Added modification by Ken Martin for VTK 2.4, to
                use vtk widgets instead of Togl.
Aug 29, 1999  - Renamed file to vtkRenderWidget.py
Nov 14, 1999  - Added support for keyword 'rw'
Mar 23, 2000  - Extensive but backwards compatible changes,
                improved documentation

A few important notes:

This class is meant to be used as a base-class widget for
doing VTK rendering in Python.

In VTK (and C++) there is a very important distinction between
public ivars (attributes in pythonspeak), protected ivars, and
private ivars.  When you write a python class that you want
to 'look and feel' like a VTK class, you should follow these rules.

1) Attributes should never be public.  Attributes should always be
   either protected (prefixed with a single underscore) or private
   (prefixed with a double underscore).  You can provide access to
   attributes through public Set/Get methods (same as VTK).

2) Use a single underscore to denote a protected attribute, e.g.
   self._RenderWindow is protected (can be accessed from this
   class or a derived class).

3) Use a double underscore to denote a private attribute, e.g.
   self.__InExpose cannot be accessed outside of this class.

All attributes should be 'declared' in the __init__() function
i.e. set to some initial value.  Don't forget that 'None' means
'NULL' - the python/vtk wrappers guarantee their equivalence.
é    )Úabsolute_importN)ÚvtkCellPickerÚvtkPropertyÚvtkRenderWindowé   )ÚvtkLoadPythonTkWidgetsc                   óª   — e Zd ZdZi fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚvtkTkRenderWidgeta4  
    A vtkTkRenderWidget for Python.

    Use GetRenderWindow() to get the vtkRenderWindow.

    Create with the keyword stereo=1 in order to generate a
    stereo-capable window.

    Create with the keyword focus_on_enter=1 to enable
    focus-follows-mouse.  The default is for a click-to-focus mode.
    c                 óÎ  — t        |j                  «       	 |d   }	 |d   r|j	                  «        |d= |j                  d«      rd| _        |d= nd| _        |j                  d«      |d<   t        j                  j                  | |d||«       d| _        d| _        d	| _        d| _        d| _        d| _        t#        «       | _        d| _        t)        «       | _        | j*                  j-                  ddd«       d| _        d| _        d
| _        d| _        d| _        d| _        d| _        | j=                  «        y# t        $ r t        «       }Y �Œ7w xY w# t        $ r Y �Œ.w xY w)a}  
        Constructor.

        Keyword arguments:

          rw -- Use passed render window instead of creating a new one.

          stereo -- If True, generate a stereo-capable window.
          Defaults to False.

          focus_on_enter -- If True, use a focus-follows-mouse mode.
          Defaults to False where the widget will use a click-to-focus
          mode.
        ÚrwÚstereoÚfocus_on_enterr   r   r   r
   Nç      ð?é   g-Cëâ6?)r   ÚtkÚKeyErrorr   ÚStereoCapableWindowOnÚgetÚ_FocusOnEnterÚGetAddressAsStringÚtkinterÚWidgetÚ__init__Ú_CurrentRendererÚ_CurrentCameraÚ_CurrentZoomÚ_CurrentLightÚ_ViewportCenterXÚ_ViewportCenterYr   Ú_PickerÚ_PickedAssemblyr   Ú_PickedPropertyÚSetColorÚ_PrePickedPropertyÚ	_OldFocusÚ_DesiredUpdateRateÚ_StillUpdateRateÚ_LastXÚ_LastYÚ_vtkTkRenderWidget__InExposeÚBindTkRenderWidget)ÚselfÚmasterÚcnfÚkwÚrenderWindows        ú?lib/python3.12/site-packages/vtkmodules/tk/vtkTkRenderWidget.pyr   zvtkTkRenderWidget.__init__A   sm  € ô  	˜vŸy™yÔ)ð	-Ø˜d™8ˆLð	Ø�(Š|Ø×1Ñ1Ô3Ø�h�<ð
 �6‰6Ð"Ô#Ø!"ˆDÔØÐ#Ñ$à!"ˆDÔà×2Ñ2Ð3DÓEˆˆ4‰Ü�‰×Ñ  fÐ.AÀ3ÈÔKà $ˆÔØ"ˆÔØˆÔØ!ˆÔà !ˆÔØ !ˆÔä$“ˆŒØ#ˆÔÜ*›}ˆÔØ×Ñ×%Ñ% a¨¨!Ô,Ø"&ˆÔàˆŒð #%ˆÔØ &ˆÔð ˆŒØˆŒð ˆŒð 	×ÑÕ!øôa ò 	-Ü*Ó,‹Lð	-ûô ò 	Úð	ús"   —D= �E Ä=EÅEÅ	E$Å#E$c                 óv   — |dk(  r| j                  «       S t        | j                  j                  dz   |z   «      ‚)NÚ_RenderWindowz has no attribute named )ÚGetRenderWindowÚAttributeErrorÚ	__class__Ú__name__)r,   Úattrs     r1   Ú__getattr__zvtkTkRenderWidget.__getattr__‡   sD   € ð
 �?Ò"Ø×'Ñ'Ó)Ð)Ü˜TŸ^™^×4Ñ4Ø(ñ)Ø+/ñ0ó 1ð 	1ó    c                 ó”  — | j                  d| fd„«       | j                  d| fd„«       | j                  d| fd„«       | j                  d| fd„«       | j                  d	| fd
„«       | j                  d| fd„«       | j                  d| fd„«       | j                  d| fd„«       | j                  d| fd„«       | j                  d| fd„«       | j                  d| fd„«       | j                  r+| j                  d| fd„«       | j                  d| fd„«       n| j                  d| fd„«       | j                  d| fd„«       y)z,
        Bind some default actions.
        z<ButtonPress>c                 óN   — |j                  | j                  | j                  «      S ©N)ÚStartMotionÚxÚy©ÚeÚss     r1   Ú<lambda>z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>–   s   €  1§=¡=°·±°Q·S±SÔ#9r:   z<ButtonRelease>c                 óN   — |j                  | j                  | j                  «      S r=   )Ú	EndMotionr?   r@   rA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>˜   ó   €  1§;¡;¨q¯s©s°1·3±3Ô#7r:   z<B1-Motion>c                 óN   — |j                  | j                  | j                  «      S r=   )ÚRotater?   r@   rA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>š   s   €  1§8¡8¨A¯C©C°·±Ô#4r:   z<B2-Motion>c                 óN   — |j                  | j                  | j                  «      S r=   ©ÚPanr?   r@   rA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>œ   ó   €  1§5¡5¨¯©¨Q¯S©S¤>r:   z<B3-Motion>c                 óN   — |j                  | j                  | j                  «      S r=   )ÚZoomr?   r@   rA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>ž   s   €  1§6¡6¨!¯#©#¨a¯c©c¤?r:   z<Shift-B1-Motion>c                 óN   — |j                  | j                  | j                  «      S r=   rK   rA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>    rM   r:   z<KeyPress-r>c                 óN   — |j                  | j                  | j                  «      S r=   )ÚResetr?   r@   rA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>¢   s   €  1§7¡7¨1¯3©3¨q¯s©sÔ#3r:   z<KeyPress-u>c                 ó"   — |j                  «       S r=   )Ú	deiconifyrA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>¤   ó
   €  1§;¡;¤=r:   z<KeyPress-w>c                 ó"   — |j                  «       S r=   )Ú	WireframerA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>¦   rU   r:   z<KeyPress-s>c                 ó"   — |j                  «       S r=   )ÚSurfacerA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>¨   s
   €  1§9¡9¤;r:   z<KeyPress-p>c                 óN   — |j                  | j                  | j                  «      S r=   )Ú	PickActorr?   r@   rA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>ª   rG   r:   z<Enter>c                 óN   — |j                  | j                  | j                  «      S r=   ©ÚEnterr?   r@   rA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>­   ó   €  q§w¡w¨q¯s©s°1·3±3Ô'7r:   z<Leave>c                 óN   — |j                  | j                  | j                  «      S r=   )ÚLeaver?   r@   rA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>¯   r_   r:   c                 óN   — |j                  | j                  | j                  «      S r=   r]   rA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>²   r_   r:   z<Expose>c                 ó"   — |j                  «       S r=   )ÚExposerA   s     r1   rD   z6vtkTkRenderWidget.BindTkRenderWidget.<locals>.<lambda>´   s
   €  1§8¡8¤:r:   N)Úbindr   ©r,   s    r1   r+   z$vtkTkRenderWidget.BindTkRenderWidget‘   s=  € ð 	�	‰	�/Ø!Ò9ô	;à�	‰	Ð#Ø!Ò7ô	9à�	‰	�-Ø!Ò4ô	6à�	‰	�-Ø!Ò1ô	3à�	‰	�-Ø!Ò2ô	4à�	‰	Ð%Ø!Ò1ô	3à�	‰	�.Ø!Ò3ô	5à�	‰	�.Ø!Ò0ô	2à�	‰	�.Ø!Ò0ô	2à�	‰	�.Ø!Ò.ô	0à�	‰	�.Ø!Ò7ô	9à×ÒØ�I‰I�iØ!%Ò7ô9à�I‰I�iØ!%Ò7õ9ð �I‰I�oØ!%Ò7ô9à�	‰	�*Ø!Ò-õ	/r:   c                 ó   — | j                   S r=   )r   rf   s    r1   ÚGetZoomFactorzvtkTkRenderWidget.GetZoomFactor¶   s   € Ø× Ñ Ð r:   c                 ó   — || _         y©úKMirrors the method with the same name in
        vtkRenderWindowInteractor.N©r&   ©r,   Úrates     r1   ÚSetDesiredUpdateRatez&vtkTkRenderWidget.SetDesiredUpdateRate¹   s   € ð #'ˆÕr:   c                 ó   — | j                   S ©rk   rl   rf   s    r1   ÚGetDesiredUpdateRatez&vtkTkRenderWidget.GetDesiredUpdateRate¾   s   € ð ×&Ñ&Ð&r:   c                 ó   — || _         yrj   ©r'   rm   s     r1   ÚSetStillUpdateRatez$vtkTkRenderWidget.SetStillUpdateRateÃ   s   € ð !%ˆÕr:   c                 ó   — | j                   S rq   rt   rf   s    r1   ÚGetStillUpdateRatez$vtkTkRenderWidget.GetStillUpdateRateÈ   s   € ð ×$Ñ$Ð$r:   c                 óp   — | j                   j                  | j                  d«      dd  }t        d|z  «      S )Nr4   é   z_%s_vtkRenderWindow_p)r   ÚcallÚ_wr   )r,   Úaddrs     r1   r4   z!vtkTkRenderWidget.GetRenderWindowÍ   s3   € Ø�w‰w�|‰|˜DŸG™GÐ%6Ó7¸¸Ð;ˆÜÐ6¸Ñ=Ó>Ð>r:   c                 ó   — | j                   S r=   )r    rf   s    r1   Ú	GetPickerzvtkTkRenderWidget.GetPickerÑ   s   € Ø�|‰|Ðr:   c                 óÄ   — | j                   sTd| _         | j                  j                  d«      s| j                  «        | j                  j	                  «        d| _         y y )Nr   ÚvtkCocoaRenderWindowr   )r*   r3   ÚIsAÚupdateÚRenderrf   s    r1   rd   zvtkTkRenderWidget.ExposeÔ   sL   € Ø—’ØˆDŒOØ×&Ñ&×*Ñ*Ð+AÔBØ—‘”Ø×Ñ×%Ñ%Ô'ØˆD�Oð  r:   c                 ó  — | j                   r^| j                   }|j                  | j                  j                  «       «       |j	                  | j                  j                  «       «       | j                  j                  «        y r=   )r   ÚSetPositionr   ÚGetPositionÚSetFocalPointÚGetFocalPointr3   rƒ   )r,   Úlights     r1   rƒ   zvtkTkRenderWidget.RenderÜ   sb   € Ø×ÒØ×&Ñ&ˆEØ×Ñ˜d×1Ñ1×=Ñ=Ó?Ô@Ø×Ñ × 3Ñ 3× AÑ AÓ CÔDà×Ñ×!Ñ!Õ#r:   c                 ó*  — | j                  «       }| j                  «       }| j                  j                  «       }|j	                  «       }d| _        |j                  «        t        d|«      D �]  }|j                  «       }d\  }	}
|dkD  rt        |«      |dz
  z  }	|dkD  r|t        |«      z
  dz
  |dz
  z  }
|j                  «       \  }}}}|	|k\  sŒf|	|k  sŒl|
|k\  sŒr|
|k  sŒx|| _        t        |«      ||z
  z  dz  |z   | _        t        |«      ||z
  z  dz  |z   | _        | j
                  j                  «       | _        | j
                  j                  «       }|j                  «        |j                  «       | _         n || _        || _        y)z“
        UpdateRenderer will identify the renderer under the mouse and set
        up _CurrentRenderer, _CurrentCamera, and _CurrentLight.
        Nr   )r   r   r   g       @)Úwinfo_widthÚwinfo_heightr3   ÚGetRenderersÚGetNumberOfItemsr   ÚInitTraversalÚrangeÚGetNextItemÚfloatÚGetViewportr   r   ÚGetActiveCamerar   Ú	GetLightsr   r(   r)   )r,   r?   r@   ÚwindowXÚwindowYÚ	renderersÚnumRenderersÚiÚrendererÚvxÚvyÚvpxminÚvpyminÚvpxmaxÚvpymaxÚlightss                   r1   ÚUpdateRendererz vtkTkRenderWidget.UpdateRendererä   s’  € ð
 ×"Ñ"Ó$ˆØ×#Ñ#Ó%ˆà×&Ñ&×3Ñ3Ó5ˆ	Ø ×1Ñ1Ó3ˆà $ˆÔØ×ÑÔ!Ü�q˜×&ˆAØ ×,Ñ,Ó.ˆHØ‰EˆBˆrØ˜!’Ü˜1“X˜w q™yÑ)�Ø˜!’Øœe A›hÑ& qÑ(¨7°1©9Ñ5�Ø,4×,@Ñ,@Ó,BÑ)ˆV�F˜6 &à�f“  v£Ø�f“  v£Ø(0�Ô%Ü(-¨g«¸¸v¹Ñ(FÀsÑ(JØ)/ñ)0�Ô%ä(-¨g«¸¸v¹Ñ(FÀsÑ(JØ)/ñ)0�Ô%à&*×&;Ñ&;×&KÑ&KÓ&M�Ô#Ø×.Ñ.×8Ñ8Ó:�Ø×$Ñ$Ô&Ø%+×%7Ñ%7Ó%9�Ô"Ùð) 'ð, ˆŒØˆ�r:   c                 ó   — | j                   S r=   )r   rf   s    r1   ÚGetCurrentRendererz$vtkTkRenderWidget.GetCurrentRenderer
  s   € Ø×$Ñ$Ð$r:   c                 ór   — | j                  «       | _        | j                  «        | j                  ||«       y r=   )Ú	focus_getr%   Úfocusr>   ©r,   r?   r@   s      r1   r^   zvtkTkRenderWidget.Enter  s)   € Ø—~‘~Ó'ˆŒØ�
‰
ŒØ×Ñ˜˜AÕr:   c                 óX   — | j                   d k7  r| j                   j                  «        y y r=   )r%   r¨   r©   s      r1   ra   zvtkTkRenderWidget.Leave  s#   € Ø�N‰N˜dÒ"Ø�N‰N× Ñ Õ"ð #r:   c                 óz   — | j                  «       j                  | j                  «       | j                  ||«       y r=   )r4   ro   r&   r£   r©   s      r1   r>   zvtkTkRenderWidget.StartMotion  s/   € Ø×ÑÓ×3Ñ3°D×4KÑ4KÔLØ×Ñ˜A˜aÕ r:   c                 ó�   — | j                  «       j                  | j                  «       | j                  r| j	                  «        y y r=   )r4   ro   r'   r   rƒ   r©   s      r1   rF   zvtkTkRenderWidget.EndMotion  s6   € Ø×ÑÓ×3Ñ3°D×4IÑ4IÔJØ× Ò Ø�K‰K�Mð !r:   c                 ób  — | j                   r£| j                  j                  | j                  |z
  «       | j                  j	                  || j
                  z
  «       | j                  j                  «        || _        || _        | j                   j                  «        | j                  «        y y r=   )	r   r   ÚAzimuthr(   Ú	Elevationr)   ÚOrthogonalizeViewUpÚResetCameraClippingRangerƒ   r©   s      r1   rI   zvtkTkRenderWidget.Rotate  sƒ   € Ø× Ò à×Ñ×'Ñ'¨¯©°a©Ô8Ø×Ñ×)Ñ)¨!¨d¯k©k©/Ô:Ø×Ñ×3Ñ3Ô5àˆDŒKØˆDŒKà×!Ñ!×:Ñ:Ô<Ø�K‰K�Mð !r:   c                 óÄ  — | j                   �rÓ| j                   }| j                  }|j                  «       \  }}}|j                  «       \  }}	}
|j	                  «       �rH|j                  ||	|
d«       |j                  «        |j                  «       \  }}}|j                  ||z
  | j                  z   ||z   | j                  z
  |«       |j                  «        |j                  «       \  }}}}|j                  |||«       |j                  |||d«       |j                  «        |j                  «       \  }}}|j                  ||z
  | j                  z   ||z   | j                  z
  |«       |j                  «        |j                  «       \  }}}}|j                  |||«       �n|j                  «       \  }}	}
|j                  ||	|
d«       |j                  «        |j                  «       }|d   }| j                  || j                  z
  z   }| j                   || j                  z
  z
  }|j                  |||«       |j                  «        |j                  «       \  }}}}|dk7  r||z  }||z  }||z  }|j                  ||z
  |z   |	|z
  |	z   |
|z
  |
z   «       |j                  ||z
  |z   |	|z
  |z   |
|z
  |z   «       || _	        || _
        | j#                  «        y y )Nr   é   ç        )r   r   r†   rˆ   ÚGetParallelProjectionÚSetWorldPointÚWorldToDisplayÚGetDisplayPointÚSetDisplayPointr(   r)   ÚDisplayToWorldÚGetWorldPointr‡   r…   r   r   rƒ   )r,   r?   r@   r›   ÚcameraÚpPoint0ÚpPoint1ÚpPoint2ÚfPoint0ÚfPoint1ÚfPoint2ÚfxÚfyÚfzÚfwÚdPointÚ
focalDepthÚaPoint0ÚaPoint1ÚrPoint0ÚrPoint1ÚrPoint2ÚrPoint3s                          r1   rL   zvtkTkRenderWidget.Pan,  së  € Ø× Ó à×,Ñ,ˆHØ×(Ñ(ˆFØ(.×(:Ñ(:Ó(<Ñ%ˆW�W˜WØ(.×(<Ñ(<Ó(>Ñ%ˆW�W˜Wà×,Ñ,Õ.Ø×&Ñ& w¨w°w¸sÔCØ×'Ñ'Ô)Ø#×3Ñ3Ó5‘��2�bØ×(Ñ(¨¨A©¨d¯k©kÑ)9Ø)+¨A©¨d¯k©kÑ)9Ø)+ô-ð ×'Ñ'Ô)Ø&×4Ñ4Ó6‘��2�b˜Ø×$Ñ$ R¨¨2Ô.à×&Ñ& w¨w°w¸sÔCØ×'Ñ'Ô)Ø#×3Ñ3Ó5‘��2�bØ×(Ñ(¨¨A©¨d¯k©kÑ)9Ø)+¨A©¨d¯k©kÑ)9Ø)+ô-ð ×'Ñ'Ô)Ø&×4Ñ4Ó6‘��2�b˜Ø×"Ñ" 2 b¨Ö,ð -3×,@Ñ,@Ó,BÑ)�˜ à×&Ñ& w¨w°w¸sÔCØ×'Ñ'Ô)à!×1Ñ1Ó3�Ø# A™Y�
à×/Ñ/°1°t·{±{±?ÑC�Ø×/Ñ/°1°t·{±{±?ÑC�à×(Ñ(¨°¸ÔDØ×'Ñ'Ô)à4<×4JÑ4JÓ4LÑ1�˜ ¨Ø˜s’NØ% g™o�GØ% g™o�GØ% g™o�Gà×$Ñ$ g°Ñ&7¸7Ñ%BØ&-°Ñ&7¸7Ñ%BØ&-°Ñ&7¸7Ñ%BôDð ×"Ñ" G¨gÑ$5¸Ñ#@Ø$+¨gÑ$5¸Ñ#@Ø$+¨gÑ$5¸Ñ#@ôBð ˆDŒKØˆDŒKà�K‰K�Mðy !r:   c                 óª  — | j                   rÇ| j                   }| j                  }t        j                  dd| j                  |z
  z  «      }| j
                  |z  | _        |j                  «       r%|j                  «       |z  }|j                  |«       n!|j                  |«       |j                  «        || _        || _        | j                  «        y y )NgR¸…ëQð?g      à?)r   r   ÚmathÚpowr)   r   rµ   ÚGetParallelScaleÚSetParallelScaleÚDollyr±   r(   rƒ   )r,   r?   r@   r›   r¼   Ú
zoomFactorÚparallelScales          r1   rO   zvtkTkRenderWidget.Zoomk  s²   € Ø× Ò à×,Ñ,ˆHØ×(Ñ(ˆFäŸ™ $¨¨T¯[©[¸1©_Ñ(=Ó?ˆJØ $× 1Ñ 1°JÑ >ˆDÔà×+Ñ+Ô-Ø &× 7Ñ 7Ó 9¸*Ñ D�Ø×'Ñ'¨Õ6à—‘˜ZÔ(Ø×1Ñ1Ô3àˆDŒKØˆDŒKà�K‰K�Mð% !r:   c                 óp   — | j                   r| j                   j                  «        | j                  «        y r=   )r   ÚResetCamerarƒ   r©   s      r1   rR   zvtkTkRenderWidget.Reset€  s&   € Ø× Ò Ø×!Ñ!×-Ñ-Ô/à�‰�r:   c                 ó  — | j                   j                  «       }|j                  «       }|j                  «        t	        d|«      D ]0  }|j                  «       }|j                  «       j                  «        Œ2 | j                  «        y ©Nr   )	r   Ú	GetActorsrŽ   r�   r�   r‘   ÚGetPropertyÚSetRepresentationToWireframerƒ   ©r,   ÚactorsÚ	numActorsrš   Úactors        r1   rW   zvtkTkRenderWidget.Wireframe†  so   € Ø×&Ñ&×0Ñ0Ó2ˆØ×+Ñ+Ó-ˆ	Ø×ÑÔÜ�q˜Ö#ˆAØ×&Ñ&Ó(ˆEØ×ÑÓ×<Ñ<Õ>ð $ð 	�‰�r:   c                 ó  — | j                   j                  «       }|j                  «       }|j                  «        t	        d|«      D ]0  }|j                  «       }|j                  «       j                  «        Œ2 | j                  «        y rÚ   )	r   rÛ   rŽ   r�   r�   r‘   rÜ   ÚSetRepresentationToSurfacerƒ   rÞ   s        r1   rY   zvtkTkRenderWidget.Surface�  so   € Ø×&Ñ&×0Ñ0Ó2ˆØ×+Ñ+Ó-ˆ	Ø×ÑÔÜ�q˜Ö#ˆAØ×&Ñ&Ó(ˆEØ×ÑÓ×:Ñ:Õ<ð $ð 	�‰�r:   c                 ó¬  — | j                   �rG| j                   }| j                  }| j                  «       }|j                  |||z
  dz
  d|«       |j	                  «       }| j
                  d k7  r`| j                  d k7  rQ| j
                  j                  | j                  «       | j                  j                  | j                  «       d | _        |d k7  rp|| _        | j
                  j                  «       | _        | j                  j                  | j                  «       | j
                  j                  | j                  «       | j                  «        y y )Nr   r´   )r   r    rŒ   ÚPickÚGetAssemblyr!   r$   ÚSetPropertyÚ
UnRegisterrÜ   ÚRegisterr"   rƒ   )r,   r?   r@   r›   Úpickerr—   Úassemblys          r1   r[   zvtkTkRenderWidget.PickActorš  s  € Ø× Ó à×,Ñ,ˆHØ—\‘\ˆFà×'Ñ'Ó)ˆGØ�K‰K˜˜7 Q™;¨™?¨C°Ô9Ø×)Ñ)Ó+ˆHà×$Ñ$¨Ò,Ø×'Ñ'¨4Ò/Ø×$Ñ$×0Ñ0°×1HÑ1HÔIà×'Ñ'×2Ñ2°4×3JÑ3JÔKØ*.�Ô'à˜DÒ Ø'/�Ô$Ø*.×*>Ñ*>×*JÑ*JÓ*L�Ô'à×'Ñ'×0Ñ0°×1HÑ1HÔIØ×$Ñ$×0Ñ0°×1EÑ1EÔFà�K‰K�Mð/ !r:   N)r7   Ú
__module__Ú__qualname__Ú__doc__r   r9   r+   rh   ro   rr   ru   rw   r4   r~   rd   rƒ   r£   r¥   r^   ra   r>   rF   rI   rL   rO   rR   rW   rY   r[   © r:   r1   r
   r
   5   sŽ   „ ñ
ð $&ó D"òL1ò#/òJ!ò'ò
'ò
%ò
%ò
?òò ò$ò$òL%òò
#ò!òò
ò=ò~ò*òòór:   r
   c                  óÒ  — ddl m}  ddlm}m}m} ddl}ddl}t        j                  «       }t        |dd¬«      } |«       }|j                  «       j                  |«        | «       }|j                  d«        |«       }	|	j                  |j                  «       «        |«       }
|
j!                  |	«       |j#                  |
«       |j%                  «        |j'                  «        y)z(Like it says, just a simple example
    r   )ÚvtkConeSource)ÚvtkActorÚvtkPolyDataMapperÚvtkRendererNi,  )ÚwidthÚheighté   )Úvtkmodules.vtkFiltersSourcesrñ   Úvtkmodules.vtkRenderingCorerò   ró   rô   Úvtkmodules.vtkRenderingOpenGL2Úvtkmodules.vtkInteractionStyler   ÚTkr
   r4   ÚAddRendererÚSetResolutionÚSetInputConnectionÚGetOutputPortÚ	SetMapperÚAddActorÚpackÚmainloop)rñ   rò   ró   rô   Ú
vtkmodulesÚrootÚpaneÚrenÚconeÚ
coneMapperÚ	coneActors              r1   ÚvtkRenderWidgetConeExampler  µ  s¹   € õ ;ßTÑTã)Û)ô �:‰:‹<€Dô ˜T¨°3Ô7€Dá
‹-€CØ×ÑÓ×&Ñ& sÔ+á‹?€DØ×Ñ�qÔá"Ó$€JØ×!Ñ! $×"4Ñ"4Ó"6Ô7á“
€IØ×Ñ˜
Ô#à‡L�L�Ôð 	‡I�I„Kð 	‡M�M…Or:   Ú__main__)rî   Ú
__future__r   rÐ   ÚosÚsysrù   r   r   r   r   r   r   r
   r  r7   rï   r:   r1   Ú<module>r     sP   ðñ*õX 'ß Ó ß SÑ Sã å :ô}˜Ÿ™ô }ò@"ðH ˆzÒÙÕ ð r:   