
    tj)@                         d Z ddlm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
Z
ddlmZ  G d d	e
j                        Zd
 Zedk(  r e        yy)a  

A fully functional VTK widget for tkinter that uses
vtkGenericRenderWindowInteractor.  The widget is called
vtkTkRenderWindowInteractor.  The initialization part of this code is
similar to that of the vtkTkRenderWidget.

Created by Prabhu Ramachandran, April 2002

    )absolute_importN)vtkRenderWindow) vtkGenericRenderWindowInteractor   )vtkLoadPythonTkWidgetsc                       e Zd ZdZi fdZd Zd Zd Zd Zd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)vtkTkRenderWindowInteractora   A vtkTkRenderWidndowInteractor 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.

    __getattr__ is used to make the widget also behave like a
    vtkGenericRenderWindowInteractor.
    c                    t        |j                         	 |d   }	 |d   r|j	                          |d= |j                  d      rd| _        |d= nd| _        |j                  d      |d<   t        j                  j                  | |d||       t               | _        | j                  j                  | j                         | j                  j                  d| j                          | j                  j                  d	| j"                         d
| _        d| _        | j)                          y
# t        $ r t               }Y (w 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   vtkTkRenderWidgetCreateTimerEventDestroyTimerEventN)r   tkKeyErrorr   StereoCapableWindowOnget_FocusOnEnterGetAddressAsStringtkinterWidget__init__r   _IrenSetRenderWindow_RenderWindowAddObserverCreateTimerDestroyTimer	_OldFocus&_vtkTkRenderWindowInteractor__InExpose
BindEvents)selfmastercnfkwrenderWindows        V/DATA/.local/lib/python3.12/site-packages/vtkmodules/tk/vtkTkRenderWindowInteractor.pyr   z$vtkTkRenderWindowInteractor.__init__#   s6     	vyy)	-d8L	(|113h<
 66"#!"D#$!"D223DE4f.A3K57


""4#5#56

143C3CD

2D4E4EF  	A  	-*,L	-  		s"   D. E .EE	EEc                     |dk(  r| j                   fdS |dk(  r| j                         S t        | j                   |      rt        | j                   |      S t	        | j
                  j                  dz   |z         )N__vtk__c                     | S N )ts    r(   <lambda>z9vtkTkRenderWindowInteractor.__getattr__.<locals>.<lambda>`   s        r   z has no attribute named )r   GetRenderWindowhasattrgetattrAttributeError	__class____name__)r#   attrs     r(   __getattr__z'vtkTkRenderWindowInteractor.__getattr__Z   sx    
 9 JJ))_$''))TZZ&4::t,, !8!8,"-/3"4 5 5r0   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                  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                  d-| fd.       | j                  d/| fd0       | j                  d1| fd2       | j                  d3| fd4       | j                  d5| fd6       | j                  d7| fd8       t        j                  d9k(  rU| j                  d:| fd;       | j                  d<| fd=       | j                  d>| fd?       | j                  d@| fdA       n| j                  dB| fdC       | j                  dD| fdE       | j                  dF| fdG       | j                  dH| fdI       | j                  dJ| fdK       | j                  dL| fdM       | j                  dN| fdO       | j                  dP| fdQ       | j                  dR| fdS       | j                  dT| fdU       | j                  dV| fdW       | j                  dX| fdY       | j                  dZ| fd[       | j                  d\| fd]       | j                  d^| fd_       | j                  d`| fda       | j                  db| fdc       | j                  dd| fde       | j                  df| fdg       | j                  dh| fdi       | j                  dj| fdk       | j                  dl| fdm       | j                  dn| fdo       | j                  dp| fdq       | j                  dr| j                         | j                  ds| fdt       yu)vz Bind all the events.  z<Motion>c                 (    |j                  | dd      S Nr   MouseMoveEventess     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>l       A$4$4Q1$=r0   z<Control-Motion>c                 (    |j                  | dd      S Nr   r   r<   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>n   rA   r0   z<Shift-Motion>c                 (    |j                  | dd      S Nr   r<   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>p   rA   r0   z<Control-Shift-Motion>c                 (    |j                  | dd      S Nr   r   r<   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>r   rA   r0   z<ButtonPress-1>c                 (    |j                  | dd      S r;   LeftButtonPressEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>v       A$:$:1a$Cr0   z<Control-ButtonPress-1>c                 (    |j                  | dd      S rC   rI   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>x   rK   r0   z<Shift-ButtonPress-1>c                 (    |j                  | dd      S rG   rI   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>z   rK   r0   z<Control-Shift-ButtonPress-1>c                 (    |j                  | dd      S rE   rI   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>|   rK   r0   z<ButtonRelease-1>c                 (    |j                  | dd      S r;   LeftButtonReleaseEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>~       A$<$<Q1$Er0   z<Control-ButtonRelease-1>c                 (    |j                  | dd      S rC   rP   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rR   r0   z<Shift-ButtonRelease-1>c                 (    |j                  | dd      S rG   rP   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rR   r0   z<Control-Shift-ButtonRelease-1>c                 (    |j                  | dd      S rE   rP   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rR   r0   z<ButtonPress-2>c                 (    |j                  | dd      S r;   MiddleButtonPressEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rR   r0   z<Control-ButtonPress-2>c                 (    |j                  | dd      S rC   rW   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rR   r0   z<Shift-ButtonPress-2>c                 (    |j                  | dd      S rG   rW   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rR   r0   z<Control-Shift-ButtonPress-2>c                 (    |j                  | dd      S rE   rW   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rR   r0   z<ButtonRelease-2>c                 (    |j                  | dd      S r;   MiddleButtonReleaseEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>       A$>$>q!Q$Gr0   z<Control-ButtonRelease-2>c                 (    |j                  | dd      S rC   r]   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r_   r0   z<Shift-ButtonRelease-2>c                 (    |j                  | dd      S rG   r]   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r_   r0   z<Control-Shift-ButtonRelease-2>c                 (    |j                  | dd      S rE   r]   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r_   r0   z<ButtonPress-3>c                 (    |j                  | dd      S r;   RightButtonPressEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>       A$;$;Aq!$Dr0   z<Control-ButtonPress-3>c                 (    |j                  | dd      S rC   rd   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rf   r0   z<Shift-ButtonPress-3>c                 (    |j                  | dd      S rG   rd   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rf   r0   z<Control-Shift-ButtonPress-3>c                 (    |j                  | dd      S rE   rd   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rf   r0   z<ButtonRelease-3>c                 (    |j                  | dd      S r;   RightButtonReleaseEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>       A$=$=aA$Fr0   z<Control-ButtonRelease-3>c                 (    |j                  | dd      S rC   rk   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rm   r0   z<Shift-ButtonRelease-3>c                 (    |j                  | dd      S rG   rk   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rm   r0   z<Control-Shift-ButtonRelease-3>c                 (    |j                  | dd      S rE   rk   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   rm   r0   win32z<MouseWheel>c                 (    |j                  | dd      S r;   MouseWheelEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>       a&7&71a&@r0   z<Control-MouseWheel>c                 (    |j                  | dd      S rC   rs   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   ru   r0   z<Shift-MouseWheel>c                 (    |j                  | dd      S rG   rs   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   ru   r0   z<Control-Shift-MouseWheel>c                 (    |j                  | dd      S rE   rs   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   ru   r0   z<ButtonPress-4>c                 (    |j                  | dd      S r;   MouseWheelForwardEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>       a&>&>q!Q&Gr0   z<Control-ButtonPress-4>c                 (    |j                  | dd      S rC   rz   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r|   r0   z<Shift-ButtonPress-4>c                 (    |j                  | dd      S rG   rz   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r|   r0   z<Control-Shift-ButtonPress-4>c                 (    |j                  | dd      S rE   rz   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r|   r0   z<ButtonPress-5>c                 (    |j                  | dd      S r;   MouseWheelBackwardEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>       a&?&?1a&Hr0   z<Control-ButtonPress-5>c                 (    |j                  | dd      S rC   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Shift-ButtonPress-5>c                 (    |j                  | dd      S rG   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Control-Shift-ButtonPress-5>c                 (    |j                  | dd      S rE   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z
<KeyPress>c                 (    |j                  | dd      S r;   KeyPressEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>       AOOAq!$<r0   z<Control-KeyPress>c                 (    |j                  | dd      S rC   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Shift-KeyPress>c                 (    |j                  | dd      S rG   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Control-Shift-KeyPress>c                 (    |j                  | dd      S rE   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<KeyRelease>c                 (    |j                  | dd      S r;   KeyReleaseEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>       A$5$5aA$>r0   z<Control-KeyRelease>c                 (    |j                  | dd      S rC   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Shift-KeyRelease>c                 (    |j                  | dd      S rG   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Control-Shift-KeyRelease>c                 (    |j                  | dd      S rE   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Enter>c                 (    |j                  | dd      S r;   
EnterEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>       ALLAq$9r0   z<Control-Enter>c                 (    |j                  | dd      S rC   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Shift-Enter>c                 (    |j                  | dd      S rG   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Control-Shift-Enter>c                 (    |j                  | dd      S rE   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Leave>c                 (    |j                  | dd      S r;   
LeaveEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Control-Leave>c                 (    |j                  | dd      S rC   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Shift-Leave>c                 (    |j                  | dd      S rG   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Control-Shift-Leave>c                 (    |j                  | dd      S rE   r   r>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   r   r0   z<Configure>z<Expose>c                 "    |j                         S r,   )ExposeEventr>   s     r(   r/   z8vtkTkRenderWindowInteractor.BindEvents.<locals>.<lambda>   s
    ammor0   N)bindsysplatformConfigureEventr#   s    r(   r"   z&vtkTkRenderWindowInteractor.BindEventsi   s   		*"=	?		$"=	?		""=	?		*"=	? 			#"C	E		+"C	E		)"C	E		1"C	E		%"E	G		-"E	G		+"E	G		3"E	G 			#"E	G		+"E	G		)"E	G		1"E	G		%"G	I		-"G	I		+"G	I		3"G	I 			#"D	F		+"D	F		)"D	F		1"D	F		%"F	H		-"F	H		+"F	H		3"F	H <<7"
))N $@B
))* $@B
))( $@B
))0 $@B ))% $GI
))- $GI
))+ $GI
))3 $GI ))% $HJ
))- $HJ
))+ $HJ
))3 $HJ 			,"<	>		&"<	>		$"<	>		,"<	> 			.">	@		(">	@		&">	@		.">	@ 			)"9	;		#"9	;		/"9	;		)"9	;		)"9	;		#"9	;		/"9	;		)"9	; 			-!4!45		*=>r0   c                 P    | j                  d| j                  j                         y )N
   )afterr   
TimerEvent)r#   objevts      r(   r   z'vtkTkRenderWindowInteractor.CreateTimer   s    

2tzz,,-r0   c                      y)z;The timer is a one shot timer so will expire automatically.r   r-   )r#   r   events      r(   r   z(vtkTkRenderWindowInteractor.DestroyTimer   s    r0   c                 N    | j                         | _        | j                          y r,   )	focus_getr    focus)r#   enters     r(   
_GrabFocusz&vtkTkRenderWindowInteractor._GrabFocus   s    ~~'

r0   c           	          | j                   j                  |j                  |j                  ||t	        d      dd        | j                   j                          y r;   )r   SetEventInformationFlipYxychrr=   r#   r   ctrlshifts       r(   r=   z*vtkTkRenderWindowInteractor.MouseMoveEvent   s@    

++EGGUWWd,13q61d	D

!!#r0   c           	          | j                   j                  |j                  |j                  ||t	        d      dd        | j                   j                          | j                  s| j                          y y r;   )r   r   r   r   r   rJ   r   r   r   s       r(   rJ   z0vtkTkRenderWindowInteractor.LeftButtonPressEvent   sX    

++EGGUWWd,13q61d	D

'')!!OO "r0   c           	          | j                   j                  |j                  |j                  ||t	        d      dd        | j                   j                          y r;   )r   r   r   r   r   rQ   r   s       r(   rQ   z2vtkTkRenderWindowInteractor.LeftButtonReleaseEvent  @    

++EGGUWWd,13q61d	D

))+r0   c           	          | j                   j                  |j                  |j                  ||t	        d      dd        | j                   j                          | j                  s| j                          y y r;   )r   r   r   r   r   rX   r   r   r   s       r(   rX   z2vtkTkRenderWindowInteractor.MiddleButtonPressEvent  sX    

++EGGUWWd,13q61d	D

))+!!OO "r0   c           	          | j                   j                  |j                  |j                  ||t	        d      dd        | j                   j                          y r;   )r   r   r   r   r   r^   r   s       r(   r^   z4vtkTkRenderWindowInteractor.MiddleButtonReleaseEvent  s@    

++EGGUWWd,13q61d	D

++-r0   c           	          | j                   j                  |j                  |j                  ||t	        d      dd        | j                   j                          | j                  s| j                          y y r;   )r   r   r   r   r   re   r   r   r   s       r(   re   z1vtkTkRenderWindowInteractor.RightButtonPressEvent  sX    

++EGGUWWd,13q61d	D

((*!!OO "r0   c           	          | j                   j                  |j                  |j                  ||t	        d      dd        | j                   j                          y r;   )r   r   r   r   r   rl   r   s       r(   rl   z3vtkTkRenderWindowInteractor.RightButtonReleaseEvent  @    

++EGGUWWd,13q61d	D

**,r0   c           	         | j                   j                  |j                  |j                  ||t	        d      dd        |j
                  dkD  r| j                   j                          y | j                   j                          y r;   )r   r   r   r   r   deltar{   r   r   s       r(   rt   z+vtkTkRenderWindowInteractor.MouseWheelEvent#  s[    

++EGGUWWd,13q61d	D;;?
**
+
+
-
**
,
,
.r0   c           	          | j                   j                  |j                  |j                  ||t	        d      dd        | j                   j                          y r;   )r   r   r   r   r   r{   r   s       r(   r{   z2vtkTkRenderWindowInteractor.MouseWheelForwardEvent+  r   r0   c           	          | j                   j                  |j                  |j                  ||t	        d      dd        | j                   j                          y r;   )r   r   r   r   r   r   r   s       r(   r   z3vtkTkRenderWindowInteractor.MouseWheelBackwardEvent0  r   r0   c           	      H   t        d      }|j                  dk  rt        |j                        }| j                  j                  |j                  |j
                  |||d|j                         | j                  j                          | j                  j                          y Nr      )	r   
keysym_numr   r   r   r   keysymr   	CharEventr#   r   r   r   keys        r(   r   z)vtkTkRenderWindowInteractor.KeyPressEvent5  sw    !fc!e&&'C

++EGGUWWd,135<<	I

  "

r0   c           	         t        d      }|j                  dk  rt        |j                        }| j                  j                  |j                  |j
                  |||d|j                         | j                  j                          y r   )r   r   r   r   r   r   r   r   r   s        r(   r   z+vtkTkRenderWindowInteractor.KeyReleaseEvent>  sg    !fc!e&&'C

++EGGUWWd,135<<	I

""$r0   c                 J   | j                   j                         \  }}| j                   j                  |j                  |j                         | j                   j                          |j                  |k  r-|j                  |k  r| j                  d| j                         y y y r;   )r   GetSizeSetSizewidthheightr   r   Render)r#   r   oldwidth	oldheights       r(   r   z*vtkTkRenderWindowInteractor.ConfigureEventF  sy    "jj002)

5;;5

!!#;;("u||y'@ JJq$++& (A"r0   c           	          | j                   r| j                          | j                  j                  |j                  |j
                  ||t        d      dd        | j                  j                          y r;   )r   r   r   r   r   r   r   r   r   s       r(   r   z&vtkTkRenderWindowInteractor.EnterEventP  sR    OO

++EGGUWWdE,/FAt	=

r0   c           	         | j                   r)| j                  d k7  r| j                  j                          | j                  j	                  |j
                  |j                  ||t        d      dd        | j                  j                          y r;   )	r   r    r   r   r   r   r   r   r   r   s       r(   r   z&vtkTkRenderWindowInteractor.LeaveEventW  sc    4>>T#9NN  "

++EGGUWWdE,/FAt	=

r0   c                     | j                   sTd| _         | j                  j                  d      s| j                          | j                  j	                          d| _         y y )Nr   vtkCocoaRenderWindowr   )r!   r   IsAupdater   r   s    r(   r   z'vtkTkRenderWindowInteractor.ExposeEvent^  sL    DO&&**+AB%%'DO  r0   c                 p    | j                   j                  | j                  d      dd  }t        d|z        S )Nr1      z_%s_vtkRenderWindow_p)r   call_wr   )r#   addrs     r(   r1   z+vtkTkRenderWindowInteractor.GetRenderWindowf  s3    ww||DGG%67;6=>>r0   c                 8    | j                   j                          y r,   )r   r   r   s    r(   r   z"vtkTkRenderWindowInteractor.Renderj  s    !!#r0   N)r   )r6   
__module____qualname____doc__r   r8   r"   r   r   r   r=   rJ   rQ   rX   r^   re   rl   rt   r{   r   r   r   r   r   r   r   r1   r   r-   r0   r(   r	   r	      s     $& 4n5D?L.$
,
.
-
/,
-
%'   ?$r0   r	   c                  L   ddl m}  ddlm}m}m} ddl}ddl}t        j                         }t        |dd      }|j                          |fd}|j                  d|fd	        |       }|j                         j                  |        |        }	|	j                  d
        |       }
|
j!                  |	j#                                 |       }|j%                  |
       |j'                  |       |j)                  dd       |j+                          |j-                          y)z(Like it says, just a simple example
    r   )vtkConeSource)vtkActorvtkPolyDataMappervtkRendererNi,  )r   r   c                 $    | j                          y r,   )quit)r   s    r(   r   z2vtkRenderWindowInteractorConeExample.<locals>.quit  s    
r0   	ExitEventc                      |       S r,   r-   )or?   qs      r(   r/   z6vtkRenderWindowInteractorConeExample.<locals>.<lambda>  s    QSr0      bothr   )fillexpand)vtkmodules.vtkFiltersSourcesr   vtkmodules.vtkRenderingCorer   r   r   vtkmodules.vtkRenderingOpenGL2vtkmodules.vtkInteractionStyler   Tkr	   
Initializer   r1   AddRendererSetResolutionSetInputConnectionGetOutputPort	SetMapperAddActorpackStartmainloop)r   r   r   r   
vtkmodulesrootpaner   rencone
coneMapper	coneActors               r(   $vtkRenderWindowInteractorConeExampler  o  s     ;TT)) ::<D 't3sCDOO  	[t"89
-C&&s+?Dq"$J!!$"4"4"67
I
#LL 	II6!I$JJL 	MMOr0   __main__)r   
__future__r   mathosr   r   r   vtkmodules.vtkRenderingUIr   r   r   r   r	   r  r6   r-   r0   r(   <module>r     sO   	 '   7 F  :V$'.. V$t
)V z(* r0   