ó
gbc           @   sŁ   d  Z  d d l Z d Z d d d     YZ d d d     YZ d d d	     YZ d
 d d     YZ d d d     YZ d   Z d   Z	 e
 d k r e	   n  d S(   sW  SVG.py - Construct/display SVG scenes.

The following code is a lightweight wrapper around SVG files. The metaphor
is to construct a scene, add objects to it, and then write it to a file
to display it.

This program uses ImageMagick to display the SVG files. ImageMagick also 
does a remarkable job of converting SVG files into other formats.
i˙˙˙˙Nt   displayt   Scenec           B   sD   e  Z d  d d d  Z d   Z d   Z d d  Z e d  Z RS(   t   svgi  c         C   s(   | |  _  g  |  _ | |  _ | |  _ d  S(   N(   t   namet   itemst   heightt   width(   t   selfR   R   R   (    (    s+   lib/python2.7/site-packages/obitools/svg.pyt   __init__   s
    				c         C   s   |  j  j |  d  S(   N(   R   t   append(   R   t   item(    (    s+   lib/python2.7/site-packages/obitools/svg.pyt   add   s    c         C   sW   d d |  j  |  j f d d g } x! |  j D] } | | j   7} q, W| d g 7} | S(   Ns   <?xml version="1.0"?>
s   <svg height="%d" width="%d" >
s+    <g style="fill-opacity:1.0; stroke:black;
s     stroke-width:1;">
s    </g>
</svg>
(   R   R   R   t   strarray(   R   t   varR
   (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR      s    	 c         C   sU   | r | |  _  n |  j d |  _  t |  j  d  } | j |  j    | j   d  S(   Ns   .svgt   w(   t   svgnameR   t   opent
   writelinesR   t   close(   R   t   filenamet   file(    (    s+   lib/python2.7/site-packages/obitools/svg.pyt	   write_svg#   s    
c         C   s   t  j d | |  j f  d  S(   Ns   %s %s(   t   ost   systemR   (   R   t   prog(    (    s+   lib/python2.7/site-packages/obitools/svg.pyR    -   s    N(	   t   __name__t
   __module__R   R   R   t   NoneR   t   display_progR    (    (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR      s
   			
t   Linec           B   s   e  Z d    Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   startt   end(   R   R   R   (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR   3   s    		c         C   s3   d |  j  d |  j  d |  j d |  j d f g S(   Ns+     <line x1="%d" y1="%d" x2="%d" y2="%d" />
i    i   (   R   R   (   R   (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR   8   s    (   R   R   R   R   (    (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR   2   s   	t   Circlec           B   s   e  Z d    Z d   Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   t   centert   radiust   color(   R   R!   R"   R#   (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR   >   s    			c         C   s5   d |  j  d |  j  d |  j f d t |  j  g S(   Ns!     <circle cx="%d" cy="%d" r="%d"
i    i   s       style="fill:%s;"  />
(   R!   R"   t   colorstrR#   (   R   (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR   D   s    (   R   R   R   R   (    (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR    =   s   	t	   Rectanglec           B   s   e  Z d    Z d   Z RS(   c         C   s(   | |  _  | |  _ | |  _ | |  _ d  S(   N(   t   originR   R   R#   (   R   R&   R   R   R#   (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR   J   s
    				c         C   s>   d |  j  d |  j  d |  j f d |  j t |  j  f g S(   Ns"     <rect x="%d" y="%d" height="%d"
i    i   s#       width="%d" style="fill:%s;" />
(   R&   R   R   R$   R#   (   R   (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR   Q   s    (   R   R   R   R   (    (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR%   I   s   	t   Textc           B   s   e  Z d  d  Z d   Z RS(   i   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   R&   t   textt   size(   R   R&   R(   R)   (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR   X   s    			c         C   s2   d |  j  d |  j  d |  j f d |  j d g S(   Ns&     <text x="%d" y="%d" font-size="%d">
i    i   s      %s
s
     </text>
(   R&   R)   R(   (   R   (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR   ^   s    
(   R   R   R   R   (    (    (    s+   lib/python2.7/site-packages/obitools/svg.pyR'   W   s   c         C   s)   d |  d d |  d d |  d d f S(   Ns   #%x%x%xi    i   i   i   (    (   t   rgb(    (    s+   lib/python2.7/site-packages/obitools/svg.pyR$   e   s    c          C   s+  t  d  }  |  j t d
 d d d   |  j t d d   |  j t d d   |  j t d d   |  j t d d   |  j t d d d   |  j t d d d   |  j t d d d   |  j t d d d   |  j t d d d   |  j t d d	   |  j   |  j   d  S(   Nt   testid   iČ   i    i˙   i,  i   i2   s   Testing SVG(   id   id   (   i    i˙   i˙   (   iČ   iČ   (   iČ   i,  (   iČ   iČ   (   i,  iČ   (   iČ   iČ   (   id   iČ   (   iČ   iČ   (   iČ   id   (   iČ   iČ   (   i    i    i˙   (   iČ   i,  (   i    i˙   i    (   i,  iČ   (   i˙   i    i    (   id   iČ   (   i˙   i˙   i    (   iČ   id   (   i˙   i    i˙   (   i2   i2   (   R   R   R%   R   R    R'   R   R    (   t   scene(    (    s+   lib/python2.7/site-packages/obitools/svg.pyR+   g   s    

t   __main__(    (    (    (    (    (   t   __doc__R   R   R   R   R    R%   R'   R$   R+   R   (    (    (    s+   lib/python2.7/site-packages/obitools/svg.pyt   <module>   s   "		 