ó
ÉÝ{Tc           @   sÓ   d  Z  d d l Z d d l m Z d d l Z d d l Td d l m Z d d l Z d d l Z d d l	 Z	 d „  Z
 d d „ Z d	 e f d
 „  ƒ  YZ d e j e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d S(   s�  
     python/ui/VectorsDispobj.py: CCP4MG Molecular Graphics Program
     Copyright (C) 2001-2008 University of York, CCLRC
     Copyright (C) 2009-2010 University of York

     This library is free software: you can redistribute it and/or
     modify it under the terms of the GNU Lesser General Public License
     version 3, modified in accordance with the provisions of the 
     license to address the requirements of UK law.
 
     You should have received a copy of the modified GNU Lesser General 
     Public License along with this library.  If not, copies may be 
     downloaded from http://www.ccp4.ac.uk/ccp4license.php
 
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU Lesser General Public License for more details.
iÿÿÿÿN(   t   QtCore(   t   *(   t   graphicsmodelc         C   s6   |  j  | | ƒ } t | ƒ t k r. d | f S| Sd  S(   Nt    (   t	   GetStringt   typet   int(   t   Loopt   argt   rowt   res(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   GetLoopString   s    
R   c         C   sÎ   t  d |  ƒ } | j r1 | j | j d ƒ } n  | d r] t ƒ  j | d ƒ | j ƒ  d  St | ƒ d k rÊ | d r¯ xK | d D]$ } t d | j	 d | d d ƒ } q„ WqÊ t d | j	 d d ƒ } n  | S(   Nt   filenamei   i    i   t   parentt   paramst   visible(
   t   VectorsDataR   t   loaddatat   MGGUIt   WarningMessaget   deletet   Nonet   lent   VectorsDispobjt   name(   R   t   mt   rvt   parst   s(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   openvectorfile$   s    	 


%t   Vectorsgraphicsmodelc           B   se   e  Z d  „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d d „ Z d	 d
 „ Z	 d d „ Z
 RS(   c         C   s#   t  j |  ƒ d  |  _ d  |  _ d  S(   N(   R   t   __init__R   t	   MGVectorst   line(   t   self(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR   =   s    	c         C   s   d  S(   N(    (   R"   t   contained_volume(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   GetAtomsInVolumeB   s    i   c         C   s‚   d d  l  } |  j s# |  j j r< d d d d g |  _ d  S| j |  j |  j j | | ƒ } | j | j | j | j	 g |  _ d  S(   Niÿÿÿÿg     ˆÃ@(
   t   cprimR    t	   connectedR!   t   FindLinet   objt   firstt   secondt   distt   symm(   R"   t   xyzboxt   neart   fart   symmetryR%   R!   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   GetClickedLinesAndPointsE   s    c         C   s´   |  j  } | d d k  rE | d d k rE |  j j | d d ƒ } n@ | d d k r� | d d k  r� |  j j | d d ƒ } n d  S| r° | } | j ƒ  | j ƒ  | j ƒ  g Sd  S(   Ni    i   i   (   R!   R    t   GetCoordinatet   get_xt   get_yt   get_z(   R"   R!   t   connt   xyz(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   ClickedPrimitiveCoordsP   s    	  c         C   s¸   |  j  d d k  s& |  j  d d k  r* d  Sg  } xk t d d ƒ D]Z } |  j j t  | | d ƒ } | r@ | } | j | j ƒ  | j ƒ  | j ƒ  g ƒ q@ q@ Wt | ƒ d k r´ | Sd  S(   Ni    i   i   (	   R!   t   rangeR    R2   t   appendR3   R4   R5   R   (   R"   t   coordt   llR6   R7   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   ClickedLineCoords\   s    & / c         C   s   |  j  ƒ  d  S(   N(   t   AddLabel(   R"   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   AddLineLabelf   s    R   c         C   sý   d d  l  } |  j j ƒ  } | j | j | j g j | ƒ r� |  j d d k r� |  j j |  j d d ƒ } | rŠ t	 ƒ  j
 d | ƒ qŠ q� n  | j | j g j | ƒ rù |  j d d k rù |  j j |  j d d ƒ } | rö t	 ƒ  j
 d | ƒ qö qù n  d  S(   Niÿÿÿÿi    i   t   atm_ptri   (   t   mmutR    t   DataModet   CONN_ATOM_ATOMt   CONN_ATOM_POINTt   CONN_ATOM_DISPt   countR!   t   GetAtomt	   PICKLABELt   draw_atom_labelt   CONN_POINT_ATOM(   R"   t
   text_labelRA   t   modet   at(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR>   i   s    !  i    c         C   s0   d d  l  } t |  j d ƒ t |  j d ƒ g S(   Niÿÿÿÿi    i   (   t	   atom_utilt   strR!   (   R"   t   user_definedRN   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   GetPrimitiveLabelu   s    c         C   s   |  j  j j j | ƒ } | S(   N(   t   uiR   t   molHndt   AtomLabel_atom1(   R"   t   atomPtrRP   RK   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   GetAtomLabelz   s    (   t   __name__t
   __module__R   R$   R1   R8   R=   R?   R>   RQ   RV   (    (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR   <   s   				
	R   c           B   sÕ  e  Z i  Z i d  d  g d 6d  d  g d 6Z i	 d d d g d 6d d d g d 6d d d g d 6d  d 6d  d 6e d 6e d	 6d
 d 6d  d 6Z d  g  i  d d „ Z d „  Z d „  Z d „  Z	 d d
 d „ Z
 d „  Z d „  Z d  d d „ Z d  d „ Z d  d „ Z d  d  d „ Z d  d „ Z d  d g  d „ Z d  d d  d „ Z i  d „ Z d „  Z d  d  d „ Z d „  Z d  „  Z d
 i  d
 d! „ Z d" „  Z d# „  Z d$ „  Z d% „  Z d& „  Z d' „  Z d( „  Z  d) „  Z! RS(*   R   t
   start_atomt   end_atomg      ð?t	   end_d_xyzg        t	   start_xyzt   end_xyzt	   start_molt   end_moliÿÿÿÿt   tagt   labeli    c         K   s×   t  j j |  ƒ | r3 | j d ƒ r3 | d } n  | rJ | rJ d } n  t j j |  d d | d d d | d | ƒ|  j d ƒ g  |  _ g  |  _ d	 |  _	 g  |  _
 g  |  _ d
 |  _ d |  _ d |  _ d |  _ d  S(   NR   t   VectorsR   R   t   moduleR   t
   dataparamst   createR   i    t   1i   iÿÿÿÿ(   R    t   QObjectR   t   has_keyt   dataobjt   DataObjt   update_dependentst
   MolData_idt   MolDataR    t   taglistt	   tagannotet   editedt   export_selectiont   transform_modet   transform_vector(   R"   R   R   Rd   t   restore_from_versiont   kw(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR   •   s"     									c         C   s7   |  j  s d S|  j  j ƒ  } | t j k r/ d Sd Sd  S(   NR   t   atomst   points(   R    RB   RA   RC   (   R"   RL   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   getDataMode®   s    	c         C   sI   | d k r* t  j t j d d ƒ |  _ n t  j t j d d ƒ |  _ d  S(   NRv   i    i   (   t   mgappR    RA   RC   t   CONN_POINT_POINT(   R"   RL   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   setDataModeº   s    c         C   s   |  j  j ƒ  S(   N(   R    t   GetNofConnections(   R"   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   GetNofVectorsÃ   s    c         C   s;  g  } |  j  s g  S|  j  j ƒ  } |  j  j ƒ  } | s; g  S| d k  sS | | k r\ | } n  xØt | | ƒ D]Ç} t j t j t j g j | ƒ r¯ |  j  j	 | d ƒ d } ng t j
 g j | ƒ r|  j  j | d ƒ } | r| }	 d |	 j ƒ  |	 j ƒ  |	 j ƒ  f } qd } n  t j g j | ƒ rK| |  j  j	 | d ƒ d } nW |  j  j | d ƒ } | r˜| }	 | d |	 j ƒ  |	 j ƒ  |	 j ƒ  f } n
 | d } |  j r|  j  j | ƒ }
 |
 d k rý|
 t |  j ƒ k  rý|  j |
 d d d !d	 } qd
 } n d } | | |  j  j | ƒ } | j | ƒ ql W| S(   Ni    i   s     s   %.1f  %.1f  %.1f  s                        i   s         i   t    s          R   (   R    RB   R|   R9   RA   RC   RE   RD   RF   t	   GetAtomIDRz   R2   R3   R4   R5   Rn   t   GetTagR   t   GetLabelR:   (   R"   R)   t   lastt   vector_listRL   t   nVt   iVRa   R6   R7   t   iTR`   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   getVectorMenuÈ   sD    	   	!(	 ,
	!	c         C   s   d g } | j  |  j ƒ | S(   Nt   UNTAGGED(   t   extendRn   (   R"   R<   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt
   getTagListó   s    	c         K   s3   |  j  r |  j d d ƒ n  t j j |  ƒ ~  d  S(   Nt   blocki   (   Rp   t	   save_fileRi   Rj   R   (   R"   t   keywords(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR   ú   s    	 c         K   se   |  j  d | ƒ \ } } | sa d d  l } | j | d | d d ƒ| j | ƒ |  _ d |  _ n  d  S(   NRq   iÿÿÿÿt   textt   warningi   i    (   t   export_datat   utilst   saveFilet   get_projectR   Rp   (   R"   t   vector_fileRq   R�   t   statusRŽ   R‘   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyRŒ     s    c   3      K   sè  d d  l  } d d  l } d d  l } d d  l } | sF |  j d } n  | sV d d g S| j ƒ  } | j | ƒ } | r¡ | j | ƒ }	 d G| G|	 GHd d |	 g Sg  }
 | j d ƒ } | j	 d ƒ } | ród d  l
 } | j ƒ  } d } x| | k  rìd	 } d	 } t | d
 | ƒ \ } } t | d | ƒ \ } } d } xŒ t d d ƒ D]{ } | j d | k sˆ| j | ƒ | j | j d ƒ k rJ|  j j | ƒ rJ|  j j | ƒ |  j j | ƒ d } PqJqJW| sß|
 j | ƒ n  | d } qì W~ n  | j	 d ƒ } | rµd } | j ƒ  } x˜ | | k  r±t | d | ƒ \ } } | s¤t | d | ƒ \ } } | s¤|  j j | ƒ | rŽ|  j j | ƒ q¡|  j j d ƒ q¤n  | d } qWn  ~ g  } | j	 d ƒ } | r˜d } | j ƒ  } x°| | k  r”i  } g  | d <x" |  j D] } | d j | ƒ qWi  } | j t j ƒ i  } t | d | ƒ \ } } | ré| j | j | ƒ ƒ | d <xg | d D]X } | j | ƒ } | d k rŠ|  j j | ƒ rŠ|  j j | ƒ |  j j | ƒ qŠqŠWn  | d s d | d <n  xÀ d d d g d d d g d d d g d d d  g d! d" d# g g D]| } t | | d | ƒ \ } } t t | d ƒ j | ƒ rCt t | d ƒ j | ƒ } t t | d ƒ | | | d <qCqCWxQ d$ d% g D]C } t | | | ƒ \ } } t ƒ  j | ƒ d k rÐ| | | <qÐqÐWxL d& d' d( d) g D]8 } t | | | ƒ \ } } | j | | | ƒ | | <q*W| j t | d* | ƒ d | d* ƒ | d* <i  } x= d+ d, d- d. d/ g D]& } t | d0 | | ƒ \ | | <} q¬Wt ƒ  j  d ƒ } i  | d1 <xD d d$ d* d& d d d' d( d) d! d d% g D] } | | | d1 | <qWi  | d2 <x4 d+ d, d- d. d/ g D] } | j! | ƒ | d2 | <qYW| j | ƒ | d } qèWn  ~ | j	 d3 ƒ } | sºd d4 g S| j ƒ  } d } d } | j" d5 ƒ }  | j" d5 ƒ }! xÕ| | k  rÇd }" d	 }# g  }$ d	 }% g  }& g  }' d	 }( t | d6 | ƒ \ }) } | sN|) rWd }" nG |  j j |) ƒ sŒ|  j j |) ƒ |  j j |) ƒ n  |  j j |) ƒ }" t | d7 | ƒ \ }# } | s×t | d8 | ƒ \ }* } n |  j# | | d9 ƒ \ }+ }$ t | d: | ƒ \ }% } | s+t | d; | ƒ \ }, } n? |  j# | | d< ƒ \ }+ }& |+ rj|  j# | | d= ƒ \ }- }& n  t | d> | ƒ \ }( } |( s‘d }( n  | d k r¥	|# s©|% rê|  j s¹|
 rê|
 rÙd d? d@ |
 d dA g Sd d? dB g Sn  |# r)	|% r	t$ j% }. qr	|& r	t$ j& }. qr	|' rr	t$ j' }. qr	nI |$ rh	|& rA	t$ j( }. qr	|' rS	t$ j) }. qr	|% rr	t$ j* }. qr	n
 d dC g Sd }/ |  j+ rŠ	|  `+ n  t, j+ |. d |/ ƒ |  _+ n  |. t$ j% k r
|  j- |# dD |* ƒ}0 |  j- |% dD |, ƒ}1 |0 r
|1 r
|  j+ j. |0 |1 |( |" ƒ qº| d } n§|. t$ j( k s1
|. t$ j) k r©
x+ t/ d d5 ƒ D] }2 t0 |$ |2 ƒ |  |2 <qA
Wx+ t/ d d5 ƒ D] }2 t0 |& |2 ƒ |! |2 <qo
W|  j+ j. |  |! |( |" ƒ n|. t$ j& k sÇ
|. t$ j' k r9|  j- |# dD |* ƒ}0 |0 r,x+ t/ d d5 ƒ D] }2 t0 |& |2 ƒ |! |2 <qò
W|  j+ j. |0 |! |( |" ƒ qº| d } n� |. t$ j* k rº|  j- |% dD |, ƒ}1 |1 r­x+ t/ d d5 ƒ D] }2 t0 |$ |2 ƒ |  |2 <qsW|  j+ j. |1 |  |( |" ƒ qº| d } n  | d } qóWd |  _1 |  j2 ƒ  d d	 | g S(E   Niÿÿÿÿi   i   s   No vector file specifieds   Error reading vectors CIFs   Error reading file: t   _modeli    R   t   idR   t   object_typeRm   t   _tagsR   t
   annotationR~   t   _display_objectst	   selectiont   allt
   line_stylet   line_style_menut   line_style_aliast
   label_modet   label_mode_menut   label_mode_aliast	   cone_modet   cone_mode_menut   cone_mode_aliast
   arrow_headt   arrow_head_menut   arrow_head_aliast   dash_endt   dash_end_menut   dash_end_aliast   line_colourt   label_colourt   cylinder_radiust   cone_radiust   cone_fractiont   dash_lengtht
   line_widtht   familyt   weightt   sizet   slantt	   underlinet   font_t   stylet   fontt   _vectors   No vectors defined in filei   R`   RY   t   start_model_idt   start_RZ   t   end_model_idt   end_t   end_d_Ra   s   Can not draw vectors from file s   because the molecule file s    is not loadeds)   because no molecule file is not specifieds@   Vector data does not have reasonable start and end atom or pointt   mol(3   R‘   t
   pygl_coordt   mmdb2t   stringR   t   Datat   ReadMMCIFDatat   GetErrorDescriptiont   intat   GetLoopt   ost   GetLoopLengthR   t   get_dataobjt   fileRootRm   RF   R:   Rl   Rn   Ro   t   updateR   t   style_initialisationt   splitt   stript   getattrt   indext   MGCOLOURt	   safeFloatt   safeIntt   FONTMANAGERt   getFontt   gett   doubleat   get_cif_xyzRA   RC   RD   RE   Rz   t   CONN_POINT_DISPRJ   R    Ry   t   interpretAtomIDt   AddConnectionR9   t   floatRp   t   make_dependencies(3   R"   R   R�   R‘   RÃ   t   mmdbRÅ   t   CIFt   RCt   errt
   needs_filet   RC_ptrR   RË   t   maxVR	   R—   t
   found_filet   modt   maxRt   annotet   display_objectsR   t   itemt   dataR»   t   selet   item0t   inpt   iit   datt   failed_interpretAtomIDt   xyz1t   xyz2t   tagnoRY   R\   RZ   R]   R[   Ra   R`   R^   R   R_   t   rv1t	   data_modet   taggedt   pAtom1t   pAtom2t   i(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR     s”     
% 
  
 & 	*$

 
	  	
	 	    	
c         C   s�   | r@ |  j  | d d d d g |  j |  j |  j |  j g ƒ nK xH |  j D]= } |  j  | d d d d g |  j |  j |  j |  j g ƒ qJ Wd  S(   NR   t	   transformt   reconfiguret   edit(   t   add_dependencyt   handle_dependencyRm   (   R"   RÂ   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyRá     s    c         K   s€   g  } x! |  j  D] } | j | j ƒ q W| d k rR | j | ƒ rR |  j ƒ  n* |  j j ƒ  x |  j D] } d | _ qi Wd  S(   NR   i   (	   Rm   R:   R   RF   R   R    t   UpdateCoordinatest   objinstst	   do_redraw(   R"   t   mastert	   attributeR�   t   moldata_namesRî   R(   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR    s     c         C   sQ   | r- |  j  j | ƒ r- |  j  j | ƒ } n d } |  j | j |  j | | ƒ S(   Ni    (   Rl   RF   RÔ   Rm   RÞ   (   R"   t   atomidRÂ   Ró   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyRÞ   '  s    c         C   s   d d  l  } |  j j ƒ  } |  j j ƒ  } d } |  j rF | d } n  t j t j t j g j	 | ƒ rt | d } n
 | d } t j t j
 g j	 | ƒ r¦ | d } n2 t j t j g j	 | ƒ rÎ | d } n
 | d } | d	 } xƒt d
 | ƒ D]r} |  j | ƒ }	 |	 rPn  |  j r‚|	 d d
 k oR|	 d t |  j ƒ k  oR|  j |	 d ru| d |  j |	 d d } n
 | d } n  t j t j t j g j	 | ƒ rð|	 d rÇ|	 d j }
 |	 d } n d }
 d } | d |
 d | d } nH | t |	 d d
 ƒ d t |	 d d ƒ d t |	 d d ƒ d } t j t j
 g j	 | ƒ r |	 d rw|	 d j }
 |	 d } n d }
 d } | d |
 d | d } n® t j t j g j	 | ƒ r| t |	 d d
 ƒ d t |	 d d ƒ d t |	 d d ƒ d } nH | t |	 d d
 ƒ d t |	 d d ƒ d t |	 d d ƒ d } | d |	 d d } qò Wd d | j | j | j  ƒ  ƒ ƒ d  } | d! } x  | D] } | d" | d  } q£W| d# } |  j r!| d$ } x5 |  j D]* } | d | j d | j d d% } qæW| d# } n  |  j rœ| d& } xX t d
 t |  j ƒ ƒ D]> } |  j | r‹| d |  j | d |  j | d% } n  qMW| d# } n  | o´t |  j ƒ d
 k r’| d } |  j r×| d' } n  | d( } x¡|  j D]–} |  j rOd) } | j d* k rd* } n" x | j D] } | | d } q"W| d | d } n  | d | j d+ d, t | j d- ƒ d, t | j d. ƒ d, t | j d/ ƒ d, | j d0 d, | j d1 d, t | j d2 ƒ d, t | j d3 ƒ d, t | j d4 ƒ d, | j d5 d, t d, t | j d6 ƒ d, | j d7 d, t | j d8 ƒ d, | j d9 d, | j d: d, | j d; d% } qëW| d# } n  d
 | | g S(<   Niÿÿÿÿs   loop_
s   _vector.tag
s*   _vector.start_model_id
_vector.start_atom
s0   _vector.start_x
_vector.start_y
_vector.start_z
s&   _vector.end_model_id
_vector.end_atom
s*   _vector.end_x
_vector.end_y
_vector.end_z
s0   _vector.end_d_x
_vector.end_d_y
_vector.end_d_z
s   _vector.label
i    R`   t   "s   " s   . R^   RY   t   .s   "  "R\   R~   i   i   R_   RZ   s   "  R]   R[   Ra   s   " 
s/   #Definition of vectors for display with CCP4mg
s   #Created on s   
s   
data_VECTORS
s   # s   

s    loop_
_model.id
_model.filename
s   "
s"   loop_
_tags.name
_tags.annotation
s   _display_objects.selection
së  _display_objects.line_style
_display_objects.line_colour
_display_objects.line_width
_display_objects.cylinder_radius
_display_objects.arrow_head
_display_objects.cone_mode
_display_objects.cone_radius
_display_objects.cone_fraction
_display_objects.dash_length
_display_objects.dash_end
_display_objects.label_mode
_display_objects.label_colour
_display_objects.font_family
_display_objects.font_size
_display_objects.font_weight
_display_objects.font_slant
_display_objects.font_underline
R   R�   Rž   s   " "R­   R³   R¯   R§   R¤   R°   R±   R²   Rª   R®   R´   R¶   Rµ   R·   R¸   (   t   timeR    R|   RB   Rn   RA   RC   RD   RE   RF   RJ   Rz   R9   t   get_vector_dataR   R   RO   t   asctimet	   localtimeRm   R   Ro   R  Rœ   Rº   R¡   R»   (   R"   R   Rq   t   commentsR  R„   RL   RŽ   R…   t   vectort   model_idR
  t   headRî   Rþ   R(   t   selected_tags(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR�   0  s¨    	 !



 	) !
H
KH*

	(	/
	 		ÿ 7c         C   sÐ   d d  l  } d } d } d } t | | d | ƒ \ } }	 |	 rJ d g  g St | | d | ƒ \ }
 }	 |	 rv d g  g St | | d | ƒ \ } }	 |	 r¢ d g  g Sd | j | ƒ | j |
 ƒ | j | ƒ g g S(   NiÿÿÿÿR   t   xi   t   yt   zi    (   R‘   R   RÖ   (   R"   t   loopR	   t   prependR‘   R  R  R  t   xxRç   t   yyt   zz(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyRÜ   È  s     
 
 
c         K   s   t  |  j d d d | ƒ} | S(   NR   i   R   (   R   R   (   R"   R   R�   t   dobj(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt
   add_objectØ  s    c         C   sM   | d k rE | t  |  j ƒ k  rE t |  j | ƒ t |  j | ƒ f Sd Sd  S(   Ni    R   (   R   R   (   R   Rn   RO   Ro   (   R"   RÔ   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   get_tagß  s    !$c   
      K   s?  d d  l  } d } d } | d k  rH |  j j | ƒ |  j j | ƒ d  S| t |  j ƒ k  r� | |  j | k r€ |  j | } n  | |  j | <| |  j | <n d  S| rxk |  j D]] } | j j | ƒ r± | j j | ƒ }	 | j j	 |	 ƒ | j j
 |	 |  j | ƒ d } q± q± Wn  | r;x |  j D] } d | _ q%Wn  d  S(   Niÿÿÿÿi    R   i   (   R‘   Rn   R:   Ro   R   R  Rœ   RF   RÔ   t   popt   insertR  (
   R"   RÔ   R   Rš   R�   R‘   RÏ   t   oldtagR(   Ró   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   edit_tagè  s.      c         C   s\  | d k  s! | t  |  j ƒ k r% d  Sd } |  j | } |  j j | ƒ |  j j | ƒ |  j j ƒ  } xz t | ƒ D]l } |  j j | ƒ } | | k r´ |  j j | d ƒ d } n  | | k rt |  j j | | d ƒ d } qt qt WxK |  j	 D]@ } | j
 d k rî | j
 j | ƒ rî | j
 j | ƒ d } qî qî W| rXx |  j	 D] } d | _ qBWn  d  S(   Ni    iÿÿÿÿi   R�   (   R   Rn   R!  Ro   R    R|   R9   R€   t   SetTagR  Rœ   RF   t   removeR  (   R"   RÔ   RÏ   R#  R„   R…   R`   R(   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt
   delete_tag  s,    ! 	! c         C   sö  d d  l  } i  } | j t j ƒ | d k rò|  j j ƒ  } |  j j | ƒ | d <|  j j | ƒ | d <| j g j	 | ƒ rd  | d <|  j j | d ƒ } | r| j | ƒ } x: t d d ƒ D]) } | j j ƒ  | k rÂ | | d	 <PqÂ qÂ W|  j j | d ƒ | d
 <qn|  j j | d ƒ } | r‘| j | ƒ } x: t d d ƒ D]) } | j j ƒ  | k rH| | d <PqHqHW|  j j | d ƒ | d <n  |  j j | d ƒ } | r| j | ƒ } x: t d d ƒ D]) } | j j ƒ  | k rË| | d	 <PqËqËW|  j j | d ƒ | d
 <n  |  j j | d ƒ }	 |	 r]|	 }
 |
 j ƒ  |
 j ƒ  |
 j ƒ  g | d <n  |  j j | d ƒ }	 |	 r¦|	 }
 |
 j ƒ  |
 j ƒ  |
 j ƒ  g | d <n  |  j j | d ƒ }	 |	 rò|	 }
 |
 j ƒ  |
 j ƒ  |
 j ƒ  g | d <qòn  | S(   Niÿÿÿÿi    Ra   R`   RY   i   R˜   Rm   R_   RZ   R^   i   R\   R]   i   R[   (   RA   RÏ   R   t   initialise_vectorR    RB   R�   R€   RJ   RF   R   RG   t   GetMMANManagerAddressRÍ   RS   t
   GetAddressR   R2   R3   R4   R5   (   R"   R…   RA   R  RL   RZ   t   theAddrR   RY   R6   R7   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR  $  s\    



((+c         C   s÷  d d  l  } d d  l } d d  l } | j d ƒ } | j d ƒ } | d k  r` |  j j ƒ  } n  | j d ƒ s{ | d rˆ d | d <n  | d }	 t |	 | j ƒ r-| j	 |	 ƒ }	 t
 |	 ƒ d k r-|  j j |	 ƒ rð |  j j |	 ƒ | d <q*|  j j |	 ƒ |  j j d ƒ t
 |  j ƒ d | d <q-n  | d rft | d | j ƒ rft j t | d ƒ }
 n  | t j k rú| d ró| d ró| d k  rÁ|  j j | d | d | d	 | d ƒ q÷|  j j t | | d | d | d	 | d ƒ qGd SnMt j t j g j | ƒ rÓx/ t d d ƒ D] } t | d
 | ƒ | | <q%Wx/ t d d ƒ D] } t | d | ƒ | | <qWW| d k  r©|  j j | | | d	 | d ƒ qG|  j j t | | | | d	 | d ƒ ntt j t j g j | ƒ r“| d rŒx/ t d d ƒ D] } t | d | ƒ | | <qW| d k  r^|  j j | d | | d	 | d ƒ q�|  j j t | | d | | d	 | d ƒ qGd Sn´ | t j k rG| d r@x/ t d d ƒ D] } t | d
 | ƒ | | <q¼W| d k  r|  j j | d | | d	 | d ƒ qD|  j j t | | d | | d	 | d ƒ qGd Sn  d |  _ xe d d g D]W } | j | d  ƒ r]|  j! j | | ƒ r]|  j! j | | ƒ |  j" | | ƒ q]q]W|  j d |  _ |  j# ƒ  | d k râ| S|  j j$ ƒ  d Sd  S(   Niÿÿÿÿi   i    R`   R   i   RY   RZ   Ra   R\   R]   R^   R_   (%   t   typesRÅ   RÃ   RÛ   R    RB   Rh   t
   isinstancet
   StringTypeRÒ   R   Rn   RF   RÔ   R:   Ro   t   start_mdRÞ   RA   RC   Rß   t   InsertConnectiont   TrueRz   RÝ   R9   Rà   RD   RE   RJ   Rp   RÚ   R   Rm   Rá   t   set_do_redrawR|   (   R"   R…   R  Rú   R,  RÅ   RÃ   Rö   R÷   R`   t   pAtomRþ   Rî   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   set_vector_datab  s†      
 	##  	
 	
 		)
c         C   s!   x |  j  D] } d | _ q
 Wd  S(   Ni   (   R  R  (   R"   R(   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR2  »  s    c         C   s   | |  _  d  S(   N(   Rs   (   R"   R…   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   setTransformVectorÀ  s    c         C   s   |  j  S(   N(   Rr   (   R"   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   getTransformModeÃ  s    c         C   s   | |  _  d  S(   N(   Rr   (   R"   RL   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   setTransformModeÆ  s    c   	      C   s‰  |  j  d k s |  j d k  r" d Sd d l } | j ƒ  \ } } } |  j |  j ƒ } d d g j |  j  ƒ rÈ | j | | d d ƒ | j | | d d ƒ | j | | d d ƒ g } | | d <n  d d g j |  j  ƒ r;| j | | d d ƒ | j | | d d ƒ | j | | d d ƒ g } | | d <n  |  j d	 |  j d
 | ƒ |  j t	 j
 d ƒ | d | d f ƒ |  j ƒ  d S(   s_   
    Method invoked from atom_picking class handling movement
    of objects on the screen
    i    Niÿÿÿÿi   i   R\   i   R]   R…   R  t   DataChanged(   Rr   Rs   R‘   t   worldTranslateR  RF   t   roundR4  t   emitR    t   SIGNALR2  (	   R"   t   glwidgetR‘   t   dxt   dyt   dzR  R\   R]   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyRÿ   Ê  s$     'c         C   s_   | d k  s! | |  j  j ƒ  k r% d  S|  j  j | ƒ d |  _ x |  j D] } d | _ qH Wd  S(   Ni    i   (   R    R|   t   DeleteConnectionRp   R  R  (   R"   R…   R(   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   delete_vectorë  s    ! 	c         K   sÎ   |  j  s |  j  j ƒ  r g  Sd d  l } |  j  j ƒ  } d G| GHd G| d GH| j d ƒ } | j | ƒ } g  } | j | d | d d ƒ | j | d | d d ƒ | j | d	 | d
 d ƒ | S(   Niÿÿÿÿs   VectorsDispobj.centrei    i   i   g       @i   i   i   i   (   R    R|   RÃ   t   ExtentRÛ   t   frompointerR:   (   R"   R�   RÃ   t	   extentptrt   tmpt   extentt   com(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   centre  s     	c         K   sÆ   d d  l  } | j j |  j d ƒ s@ | j j |  j d ƒ r_ t ƒ  j d |  j d ƒ d  St d |  j d |  j	 ƒ  ƒ } | j
 ƒ  } | d d k rÂ t ƒ  j d |  j d ƒ | j ƒ  d  S| S(	   Niÿÿÿÿi   s   File no longer exists R   Rd   i    i   s   ERROR loading data from file (   RË   t   patht   existsR   t   isfileR   R   R   R   Rd   R   R   (   R"   R�   RË   R   R   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   clone  s    
("   RW   RX   t   class_dependentst	   edit_atomR   R(  R   Rx   R{   R}   R‡   RŠ   R   RŒ   R   Rá   R  RÞ   R�   RÜ   R  R   R$  R'  R  R4  R2  R5  R6  R7  Rÿ   RB  RI  RM  (    (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR   …   sR   
				+		ÿ 	˜				>Y					!		R   c           B   sI  e  Z i  Z d: Z i d  d g d 6Z g  Z g  Z d Z d d d d d d	 d
 d d d g
 Z	 e
 j e
 j e
 j e
 j e
 j e
 j e
 j e
 j e
 j e
 j g
 Z d d d g Z e j e j e j g Z d d g Z d d g Z d d g Z e j e j  g Z! d d d d g Z" e
 j# e
 j$ e
 j% e
 j& g Z' i d d 6d d 6d d 6d d  6d d! 6d d" 6d# d$ 6d% d& 6d' d( 6d d) 6d d* 6d d+ 6Z( d d d d  d! d" d$ d& d( d) d* d+ g Z) d, d d, d- d, d, i  d d d. „	 Z* d/ „  Z+ d0 „  Z, d- d1 „ Z- d2 „  Z. i  d, d3 „ Z/ d d4 „ Z0 d5 „  Z1 i  d6 „ Z2 d7 „  Z3 d: d: d8 d, d9 „ Z4 RS(;   R   s'   VectorsDispobj.define_vector_popup_menuR  i   s   no linet   solidt   dashedt   arrows   dashed arrowt   cylinders   cylinder arrows   dashed cylinders   dashed cylinder arrowt   conet   startt   endt   botht   dasht   gapi    i   t   fixedt   fractions   no labels   label centres   label starts	   label endRž   t
   complementR­   R³   gš™™™™™É?R¯   R§   R¤   gš™™™™™Ù?R°   g333333Ó?R±   g      à?R²   Rª   R¡   R®   R   R�   c
         K   sÙ  d d  l  } | |  _ i  |  _ |  j j t j ƒ i  |  _ |  j j t ƒ  j d ƒ ƒ t	 j
 |  _ d |  _ | j d ƒ rŽ | d } | d =n  | j d ƒ r» |  j j | d ƒ | d =n  | j d ƒ rè |  j j | d ƒ | d =n  xd d g D]ø } | j | ƒ rõ t | | | j ƒ r¸| d k rSd	 d
 d d d d d d d d g
 } n% | d k rnd d g } n
 g  | | <xo t d t | | ƒ ƒ D] } | | | |  j | | <q’Wqíy |  j j | | ƒ | | =Wqíd G| GHqíXqõ qõ W|  j j | ƒ |  j ƒ  t j j |  d | d | d | d | d | ƒt ƒ  |  _ |  j j |  j _ t ƒ  j |  j ƒ |  j j j |  j ƒ |  j | ƒ |  j d
 d |  j d	 |  _  |  j! d |  j" ƒ |  j# d ƒ d |  _$ d  S(    NiÿÿÿÿRš   g      ð?Rœ   t   line_parameterst   label_parameterst   colourRº   Rž   R­   R³   R¯   R§   R¤   R°   R±   R²   Rª   R¡   R®   i    s   Error restoring vector R   R   R   R   t   display_table_visibleR~   t
   visibilityRe   i   (%   R,  Rœ   Rº   RÏ   R   RÐ   R»   RØ   RÙ   Ry   t
   NO_SCALINGt   scaling_modet   scaleRh   R-  t   ListTypeR9   R   t   validate_styleRi   t   DispObjR   R   t   label_graphmodR   R    t   BUILDR:   R(   t   SetAlphat   opacityt   set_selectiont   style_labelt   set_visibilityR   Rk   R  (   R"   R   R   R   Rœ   R_  Rº   R   R`  Rt   R�   R,  Rî   t   ordert   n(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR   S  s^    				



	
  
c         C   sŠ  t  j j |  j d ƒ rC t  j t  j j |  j d ƒ |  j d <n  t  j j |  j d ƒ r† t  j t  j j |  j d ƒ |  j d <n  t  j j |  j d ƒ rÉ t  j	 t  j j |  j d ƒ |  j d <n  t  j
 j |  j d ƒ rt  j t  j
 j |  j d ƒ |  j d <n  t  j j |  j d ƒ rOt  j t  j j |  j d ƒ |  j d <n  x4 d d d d	 g D]  } t |  j | ƒ |  j | <qbWd  S(
   NR¡   Rž   R§   R¤   Rª   R¯   R°   R±   R²   (   R   R£   RF   Rº   R¢   RÔ   R    RŸ   R©   R¨   R¦   R¥   R¬   R«   Rà   (   R"   Rî   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyRf  ›  s    *****c         C   s   d S(   Ni   (    (   R"   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   canBeTransparent±  s    c         K   s½   | |  j  k r d |  _ n  | |  _  |  j  s9 d |  _ n€ |  j  d k rT d |  _ ne d |  _ xY |  j  D]N } | d k sŽ |  j j j | ƒ r¥ |  j | d |  _ qg |  j  j | ƒ qg Wd  S(   Ni   R   R�   t   AllR   Rˆ   R~   (   Rœ   R  t   selection_labelR   Rn   RF   R&  (   R"   Rœ   R�   Rî   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyRl  ¶  s     			!c         C   s�   x[ | j  ƒ  D]M \ } } |  j j | ƒ r |  j | | k rZ | |  j | <d |  _ qZ q q W|  j d d |  j d |  _ d  S(   Ni   R­   R~   Rž   (   t   itemsRº   Rh   R  Rm  (   R"   R   t   keyt   value(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt	   set_styleÊ  s    c         K   sL   | r- | |  j  k r- | |  _  d |  _ q- n  | rH | |  _ d |  _ n  d  S(   Ni   (   Rc  R  Rd  (   R"   Rd  Rc  R�   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   scale_vectors×  s    		c         C   s  t  j j |  d | ƒ} | j |  j ƒ xŠ d g D] } t |  | ƒ } i  } xW | j ƒ  D]I \ } } t | d ƒ r™ t | j	 ƒ r™ t
 | j	 ƒ  ƒ } n  | | | <qZ W| | | <q2 W| sÍ |  j t j k rú x* d d g D] } t |  | ƒ | | <qÚ Wn  |  j | d <| S(   NR�   R»   t   toUtf8Rd  Rc  Rœ   (   Ri   Rg  R   RÏ   Rº   RÓ   Rt  t   hasattrt   callableRy  RO   Rc  Ry   Rb  Rœ   (   R"   R�   R   Rî   t   fontst	   fonts_newt   kt   v(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR   ä  s    c         C   s  d d  l  } d } | j |  j ƒ  | j ƒ d } | r@ d } n  x† | j ƒ  D]x } | d k ry |  j d | j d ƒ qM | d k rŸ |  j d | j d ƒ qM | d k rM |  j d | j d ƒ qM qM Wt | t j j	 |  | ƒ ƒ } | r |  j
 d d g g Sg  Sd  S(	   Niÿÿÿÿi    i   R»   Rd  Rc  Rg  RÏ   (   R‘   t
   dict_diffsR   t   keyst   set_fontRx  t   maxRi   Rg  t   update_data_status0R   (   R"   t
   shadowdispR‘   R   t   diffsRu  (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   update_data_status÷  s      	c         C   s   |  j  j | ƒ d |  _ d  S(   Ni   (   R»   RÏ   R  (   R"   R   (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR‚    s    c         C   sœ  |  j  s! |  j s! |  j j rd |  j r] |  j j j |  j ƒ |  j	 j
 d ƒ d |  _ d Sd Sn  d d  l } d d  l } d d  l } t ƒ  j |  j d ƒ } | j | ƒ } g  } g  } |  j d k rÔ d } nv d } |  j rJxd |  j D]V }	 |  j j j |	 ƒ r'| j
 |  j j j |	 ƒ ƒ qí |	 d k rí | j
 d ƒ qí qí Wn  | j | ƒ }
 |  j t j k r¤|  j j d ƒ s�d |  j d <n  | j
 |  j d ƒ nb |  j t j k rxM |  j j D]< }	 |  j j |	 ƒ sëd |  j |	 <n  | j
 |  j |	 ƒ qÃWn  | j | ƒ } |  j j |  j _ t ƒ  j |  j ƒ sTt ƒ  j  d	 ƒ |  _ n  |  j j j! t" |  j d
 ƒ t" |  j d ƒ t" |  j d ƒ t" |  j d ƒ ƒ t# j$ j |  j d ƒ ràt# j% t# j$ j |  j d ƒ } n |  j d } t# j& j |  j d ƒ r)t# j' t# j& j |  j d ƒ } n |  j d } t# j( j |  j d ƒ rrt# j) t# j( j |  j d ƒ } n |  j d } t# j* j |  j d ƒ r»t# j+ t# j* j |  j d ƒ } n |  j d } t# j, j |  j d ƒ rt# j- t# j, j |  j d ƒ } n | j. |  j d d ƒ } |  j j j/ | |  j d ƒ |  j j j0 | ƒ |  j j j1 |  j d ƒ |  j j j2 |  j d ƒ |  j j j3 | ƒ |  j j j4 | |  j d |  j d ƒ |  j j j5 |  j d ƒ |  j j j6 | ƒ |  j j j7 | ƒ |  j j j8 |  j j |
 t9 | ƒ | |  j ƒ |  j j j: t; ƒ |  j j j< t; ƒ |  j j j= t; ƒ d |  j d k rùd |  j d k rùt> ƒ  } t? d ƒ } | j@ d ƒ } | rùtA | d ƒ rùtA | jB d ƒ rùtC | jB jD ƒ rùtA | jB jD ƒ  d ƒ rötC | jB jD ƒ  jE ƒ rötF } tG jH d  k r�tG jI j d! ƒ r�d d  lJ } | jK | jL ƒ } | j@ d" ƒ } | s�d# | k r�d$ GHt; } q�q�n  | jB jD ƒ  jE ƒ  tF k ró| rð|  j j j: tF ƒ |  j j j< tF ƒ |  j j j= tF ƒ qðqóqöqùn  |  j j jM t" |  j d
 ƒ t" |  j d ƒ t" |  j d ƒ tN |  j d ƒ tN |  j d% ƒ ƒ |  j j jO ƒ  |  j j j |  j ƒ |  j	 j
 d ƒ d |  _  d S(&   NRh  i    i   iÿÿÿÿR­   R�   Rˆ   g      ð?Rš   R´   Rµ   R·   R¶   R¡   Rž   R§   R¤   Rª   R®   R³   R¯   R°   R±   R²   RS  RT  t   render_qualityt   use_vbot   glWidgett   formatt   directRenderingt   win32s   -quitt   force_use_vat   IntelsL   Disabling use of VA on Windows with Intel GMA because of probable CCP4MG bugR¸   (P   R  R   R   R    t   do_update_opacityRh  R(   Rj  Rk  t   do_rebuildGLR:   R%   R‘   RÃ   RÕ   t   RGBRº   t   DoubleVectorRœ   Rn   RF   RÔ   t	   IntVectorRc  Ry   t	   SCALE_ALLRd  Rh   t   SCALE_BY_TAGSRØ   t   isValidFontR»   RÙ   t   SetFontRO   R   R¢   R£   RŸ   R    R¨   R©   R¥   R¦   R«   R¬   R×   t   SetLabelt   SetVectorStylet   SetLineWidtht   SetCylinderRadiust   SetArrowHeadt   SetConeRadiust   SetDashLengtht
   SetDashEndt   SetVectorColourt   Drawt   boolt   SetAnchoredt   Falset	   SetUseVBOt   SetUseVertexArrayst
   MAINWINDOWt   PMRÚ   Rz  RŠ  R{  R‹  RŒ  R1  t   syst   platformt   argvt   openglt   glGetStringt   GL_RENDERERt   SetTextFontR   t   rebuild(   R"   R%   R‘   RÃ   t   colt   colvt   selTagst   scaleFactorst	   apply_selRî   t   selTagsvt   scaleFactorsvR¡   Rž   R§   R¤   Rª   t   mainwint   rpmt	   useVBOoptt   useVAR­  t   gl_renderert   useVAopt(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   unthreadedDraw  s¼    !				  ,$#####.&	90"",4	g        c         C   sÝ  | rÙ| rÙd d  l  } | j | j | j ƒ d } xw| j ƒ  D]i} | d k rá | j d } | j d }	 i  |  _ x\ | j ƒ  D]N } |	 j | ƒ rÀ d | | | | |	 | |  j | <qƒ | | |  j | <qƒ Wd |  _ qA | d k rA | j d }
 | j d } |  j d d | |
 d | | d d d | |
 d | | d d d | |
 d | | d d d | |
 d | | d d	 d | |
 d	 | | d	 ƒ qA qA Wt j	 j
 |  d
 | d | d | d | ƒn  d  S(   Niÿÿÿÿi   Rd  Rº   R³   R¯   R°   R±   R²   t   initial_statust   final_statusR[  t   step(   R‘   R€  R   R�  Rd  Rh   R  Rw  Ri   Rg  t   movie_interpolation(   R"   RÀ  RÁ  R[  RÂ  R‘   R†  Rî   t	   ini_scalet	   fin_scalet   ini_colt   fin_col(    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyRÃ  �  s:    	(	N(5   RW   RX   RN  R   t   edit_make_vectort
   edge_popupt   last_picked_edget   last_picked_vertexR³   RŸ   R%   t   NOLINEt   LINEt   DASHLINEt   ARROWt	   DASHARROWt   CYLINDERt   CYLINDERARROWt   DASHCYLINDERt   DASHCYLINDERARROWt   CONER    R¨   Ry   t   ARROW_HEAD_STARTt   ARROW_HEAD_ENDt   ARROW_HEAD_BOTHR©   R«   R¬   R¥   t   CONE_RADIUS_FIXEDt   CONE_RADIUS_FRACTIONR¦   R¢   t   NOTLABELLEDt   LABELLEDCENTREt   LABELLEDSTARTt   LABELLEDENDR£   RÐ   t   style_initialisation_orderR   Rf  Rq  Rl  Rw  Rx  R   R‡  R‚  R¿  RÃ  (    (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyR   (  s`   $B
			F					|(   t   __doc__Rª  t   PyQt4R    Ri   t   global_definitionsR   R%   Ry   RA   R   R   R   Rj   Rg   R   Rg  R   (    (    (    sE   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/VectorsDispobj.pyt   <module>   s   
$	Iÿ ÿ ÿ ¦