ó
<xTc           @   s9  d  d l  m Z d  d l Z d d  Z d d  Z d   Z d e f d     YZ d   Z	 d	 e f d
     YZ
 d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d d  Z d d d d d d d d d d d d  Z d   Z e d k r5e   n  d S(   i˙˙˙˙(   t   divisionNc         C   s&   |  d  k r t j }  n  |  d IJd  S(   Ns   <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE jvx-model SYSTEM "http://www.javaview.de/rsrc/jvx.dtd">
<jvx-model>
<geometries>(   t   Nonet   syst   stdout(   t   f(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   head   s     c         C   s&   |  d  k r t j }  n  |  d IJd  S(   Ns   </geometries>
</jvx-model>(   R   R   R   (   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   tail   s     c         C   sF   |  | d IJx# | D] } |  | d | j  IJq W|  | d IJd  S(   Ns   <colors>s     <c>%d %d %d</c>s	   </colors>(   t   color(   R   t   indentt   itemst   item(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   jvx_item_colors   s    t   pointc           B   s   e  Z d d  Z RS(   i˙   i    c         C   s"   t  |  |  _ t  |  |  _ d  S(   N(   t   tuplet   vertexR   (   t   selfR   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   __init__   s    (   i˙   i    i    (   t   __name__t
   __module__R   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR      s   c         C   s
   t  |   S(   N(   R   (   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt
   make_point   s    t   pointSetc           B   sM   e  Z d  d  Z d   Z d   Z d   Z d   Z d   Z d d  Z	 RS(	   i   c         C   s(   | |  _  g  |  _ i  |  _ d |  _ d  S(   Nt   show(   t	   thicknesst   pointst
   point_dictt   show_points(   R   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   #   s    			c         C   s   t  |  j  S(   N(   t   lenR   (   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   size)   s    c         C   s`   t  | d  s t |  } n  | j |  j k r\ t |  j  |  j | j <|  j j |  n  d  S(   NR   (   t   hasattrR   R   R   R   R   t   append(   R   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   ,   s
    c         C   s"   x | D] } |  j  |  q Wd  S(   N(   R   (   R   R   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   extend3   s    c         C   s.   t  | d  r |  j | j S|  j t |  S(   NR   (   R   R   R   R   (   R   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   index7   s    c         C   s   d |  _  |  S(   Nt   hide(   R   (   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   hide_points<   s    	c         C   sŞ   | d  k r t j } n  |  j   d k r. d  S| d |  j IJ| d IJx" |  j D] } | d | j IJqS Wt | d |  j  | d |  j IJ| d IJ| d IJd  S(	   Ni    s*   <pointSet dim="3" point="%s" color="show">s
     <points>s       <p>%g %g %g</p>s       s       <thickness>%g</thickness>s     </points>s   </pointSet>(	   R   R   R   R   R   R   R   R   R   (   R   R   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   jvx@   s      

N(
   R   R   R   R   R   R   R   R!   R   R"   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   !   s   					t   linec           B   s   e  Z d d  Z RS(   i    c         C   s"   t  |  |  _ t  |  |  _ d  S(   N(   R   t   verticesR   (   R   R$   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   N   s    (   i    i    i    (   R   R   R   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR#   L   s   t   lineSetc           B   s2   e  Z d  d  Z d   Z d   Z d d  Z RS(   i   c         C   s   | |  _  g  |  _ d  S(   N(   R   t   lines(   R   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   T   s    	c         C   s   t  |  j  S(   N(   R   R&   (   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   X   s    c         C   s   |  j  j |  d  S(   N(   R&   R   (   R   R#   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   [   s    c         C   sŽ   | d  k r t j } n  | d IJ| d IJxC |  j D]8 } | d Ix | j D] } | | IqP W| d IJq6 Wt | d |  j  | d |  j IJ| d IJ| d IJd  S(	   Ns"   <lineSet line="show" color="show">s	     <lines>s       <l>s   </l>s       s       <thickness>%g</thickness>s
     </lines>s
   </lineSet>(   R   R   R   R&   R$   R   R   (   R   R   R#   t   v(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR"   ^   s     


 
N(   R   R   R   R   R   R   R"   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR%   R   s   		t   facec           B   s   e  Z d d  Z RS(   i˙   i    c         C   s"   t  |  |  _ t  |  |  _ d  S(   N(   R   R$   R   (   R   R$   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   m   s    (   i˙   i    i˙   (   R   R   R   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR(   k   s   t   faceSetc           B   s2   e  Z d  d  Z d   Z d   Z d d  Z RS(   R    c         C   s   | |  _  g  |  _ d  S(   N(   t   backfacet   faces(   R   R*   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   s   s    	c         C   s   t  |  j  S(   N(   R   R+   (   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   w   s    c         C   s   |  j  j |  d  S(   N(   R+   R   (   R   R(   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR   z   s    c         C   s¤   | d  k r t j } n  | d |  j IJ| d IJxC |  j D]8 } | d Ix | j D] } | | IqW W| d IJq= Wt | d |  j  | d IJ| d IJd  S(   Ns<   <faceSet face="show" edge="hide" backface="%s" color="show">s	     <faces>s       <f>s   </f>s       s
     </faces>s
   </faceSet>(   R   R   R   R*   R+   R$   R   (   R   R   R(   R'   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR"   }   s     


 
N(   R   R   R   R   R   R   R"   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR)   q   s   		t   geometryc           B   s    e  Z d  d  Z d d  Z RS(   R    c         C   s7   | |  _  t   |  _ t   |  _ t d |  |  _ d  S(   NR*   (   t   nameR   R   R%   R&   R)   R+   (   R   R-   R*   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR      s    	c         C   sŻ   | d  k r t j } n  | d |  j IJ|  j j   d k rQ |  j j |  n  |  j j   d k ry |  j j |  n  |  j j   d k rĄ |  j j |  n  | d IJd  S(   Ns   <geometry name="%s">i    s   </geometry>(	   R   R   R   R-   R   R   R"   R&   R+   (   R   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR"      s        N(   R   R   R   R   R"   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyR,      s   c         C   sd   | d  k r t j } n  | d  k	 r5 | d | In  | d |  IJ| d  k	 r\ | d In  | Jd  S(   Ns   [<a href="%s">s   %ss   </a>](   R   R   R   (   t   textt   htmlR   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   bracketed_link   s     t   JavaViewc         C   sk  |
 d  k r t j }
 n  d d l m } |
 | d |  IJ|
 d IJ| d  k	 rb |
 d | IJn  | d  k	 r |
 d | IJ|
 d IJn  |
 d t   IJ| d  k	 rź t d	 | d
 |
 n  | d  k	 sÔ | d  k	 rý t d | d
 |
 t d | d
 |
 n  | d  k	 rt | | d
 |
 n  |	 d  k	 rS|
 d IJx |	 D] } |
 | IJq<Wn  |
 d IJ|
 d IJd  S(   Ni˙˙˙˙(   t   html_head_titlet   titles   <body>
s   <h2>%s</h2>s   %ss   <p>sţ   <APPLET alt="JavaView applet"
        archive="%(jars_url)s/javaview.jar,%(jars_url)s/jvx.jar"
        name="javaview"
        code="javaview.class"
        width="400"
        height="400">
  <PARAM NAME="Model" VALUE="%(jvx_file_name)s">
</APPLET>
<p>
t   IndexR   t   Previoust   Nexts   <hr>s[   This visualisation is using
<a href="http://www.javaview.de">JavaView</a>.

</body>
</html>(   R   R   R   t   cctbx.web.asu_galleryR2   t   varsR0   (   t   jvx_file_nameR3   t   headert
   sub_headert
   index_htmlt	   prev_htmlt	   next_htmlt   alternative_labelt   alternative_htmlt   legendR   t   jars_urlR2   R#   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   html_loader¤   s6     


c    	      C   s  d d l  m }  t   t d  } | j } x t d d  D]n } xe t d d  D]T } xK t d d  D]: } | | | f d	 k rh | j t | | | f   qh qh WqR Wq< W|  j d  j	   } | j
 } xş | D]˛ } | j t | j | d
  | j | d  | j | d  | j | d  f d   | j t | j | d  | j | d  | j | d  | j | d  f d   qÓ W| j   t   d  S(   Ni˙˙˙˙(   t   sgtbxt   dominoi   i    s   P 2 3i˙   i   (   i    i    i    (   i˙˙˙˙i˙˙˙˙i˙˙˙˙(   i˙˙˙˙i    i˙˙˙˙(   i    i    i˙˙˙˙(   i    i˙˙˙˙i˙˙˙˙(   i˙   i    i    (   i    i˙˙˙˙i˙˙˙˙(   i    i    i˙˙˙˙(   i   i    i˙˙˙˙(   i   i˙˙˙˙i˙˙˙˙(   i    i    i˙   (   t   cctbxRD   R   R,   R   t   xrangeR   R   t   space_group_infot   groupR+   R(   R   R"   R   (	   RD   t   gt   pt   it   jt   kt   point_groupR   t   s(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   runŮ   s,    	+	!
t   __main__(   t
   __future__R    R   R   R   R   R   t   objectR   R   R   R#   R%   R(   R)   R,   R0   RC   RQ   R   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/asu_gallery/jvx.pyt   <module>   s6   		+
*	