ó
u™xTc           @   sÍ   d  d l  m Z d  d l m Z d  d l m Z m Z d  d l m Z d  d l	 m
 Z
 d  d l Z d  d l Z d e
 j f d „  ƒ  YZ d	 e
 j f d
 „  ƒ  YZ d „  Z e d k rÉ e e j d ƒ n  d S(   iÿÿÿÿ(   t   division(   t   revolute_simulation(   t   minimum_covering_spheret	   sphere_3d(   t   flex(   t	   wx_viewerNt   viewerc           B   s2   e  Z d  „  Z d „  Z d „  Z e e d „ Z RS(   c         O   s   t  t |  ƒ j | | Ž  d  S(   N(   t   superR   t   __init__(   t   selft   argst   kwds(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyR      s    c         C   sª   |  j  j ƒ  x– t |  j j |  j j ƒ D]y \ } } |  j  j | | j j ƒ |  j  j | | j j | j	 | j j
 ƒ x% | j D] } |  j  j | | ƒ q„ Wq) Wd  S(   N(   t   pointst   cleart   zipt   simt   bodiest   AJA_accut   appendt   At   pivott   rt   normalt   sites(   R	   t   Bt   AJAt   s(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyt
   set_points   s    (+c            sz  d } t  d d  d | d d ƒ ˆ  _ t j ƒ  ˆ  _ ˆ  j ƒ  ˆ  j j ƒ  | d k s\ t ‚ ‡  f d †  } g  ˆ  _	 d \ } } } x‰ t
 | ƒ D]{ } ˆ  j	 j d
 | d | d | g ƒ | | | d ƒ | | | d ƒ | | | d ƒ | d | d | d } } } q� Wt ˆ  j d d ƒ} t d | j ƒ  d | j ƒ  d ƒ ˆ  _ t ˆ  _ t ˆ  _ d ˆ  _ d GHd GHd GHd  S(   Ni   t   mersenne_twistert   NBt   configt   zigzagc            s-   |  | f } ˆ  j  j | ƒ | ˆ  j | <d  S(   N(   t   line_i_seqsR   t   line_colors(   t   it   jt   colort   line(   R	   (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyt   add_line   s    i    i   i   s   p%ds   n%ds   s%dt   epsilong{®Gáz„?t   centert   radiusgÍÌÌÌÌÌô?i   s-   Press and hold Tab key to run the simulation.s"   Press Shift-Tab to increase speed.s"   Press Ctrl-Tab  to decrease speed.(   i    i   i   (   i   i    i    (   i    i   i    (   i    i    i   (   R   t   NoneR   R   t   vec3_doubleR   R   t   sizet   AssertionErrort   labelst   xranget   extendR   R   R(   R)   t   Falset!   flag_show_minimum_covering_spheret   flag_show_rotation_centert   steps_per_tab(   R	   R   R&   t   pt   nR   t   ibt   mcs(    (   R	   sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyt   set_points_and_lines   s4    
	%$"			c         C   s�   | s | rW | r. t  d |  j d ƒ |  _ n t d |  j d ƒ |  _ d G|  j GHd  S|  j j d d ƒ |  j ƒ  d  |  _ d  |  _ d  |  _	 |  j
 ƒ  d  S(   Ni   i   i   s   Steps per Tab:t   delta_tgš™™™™™¹?(   t   minR4   t   maxR   t   dynamics_stepR   R*   t   labels_display_listt   lines_display_listt   points_display_listt   OnRedraw(   R	   t
   shift_downt   control_down(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyt   tab_callback5   s    
			(   t   __name__t
   __module__R   R   R9   R1   RD   (    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyR   	   s   			t   Appc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s5   t  | ƒ d k s t ‚ t t |  ƒ j d d ƒ d  S(   Ni    t   titlet	   joint_lib(   t   lenR-   R   RG   R   (   R	   R
   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyR   F   s    c         C   sw   t  j t  j ƒ } t |  j d d ƒ|  _ |  j j ƒ  | j |  j t  j t  j ƒ |  j j	 | ƒ | j
 |  j ƒ d  S(   NR,   iX  (   iX  iX  (   t   wxt   BoxSizert   VERTICALR   t   framet   view_objectsR9   t   Addt   EXPANDt   SetSizert   SetSizeHints(   R	   t   box(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyt   init_view_objectsJ   s    (   RE   RF   R   RU   (    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyRG   D   s   	c         C   s   t  |  ƒ j ƒ  d  S(   N(   RG   t   MainLoop(   R
   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyt   runR   s    t   __main__i   (   t
   __future__R    t%   scitbx.rigid_body.proto.tst_joint_libR   t   scitbx.mathR   R   t   scitbx.array_familyR   t   gltbxR   RK   t   syst   show_points_and_lines_mixinR   RG   RW   RE   t   argv(    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/rigid_body/proto/wx_joint_lib.pyt   <module>   s   ;	