File: //usr/share/inkscape/extensions/render_gear_rack.pyc
�
��Yc @ s� d Z d d l Z d d l Z d d l m Z d d l Td � Z d � Z d � Z d e j f d � � YZ
e d
k r� e
� Z e j
� n d S( s�
Copyright (C) 2013 Brett Graham (hahahaha @ hahaha.org)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
i����N( t computePointInNode( t *c C sA t | � t | � } } t | d | d � | t | | � S( Ni ( t floatt sqrtt acos( t Rbt R( ( s2 /usr/share/inkscape/extensions/render_gear_rack.pyt involute_intersect_angle s c C s* | t | � } | t | � } | | f S( N( t cost sin( t radiust anglet xt y( ( s2 /usr/share/inkscape/extensions/render_gear_rack.pyt point_on_circle s c C sA | d } | d } d | } x | D] } | d | 7} q% W| S( s0
p: list of 2 tuples (x, y coordinates)
i i s
M%.3f,%.3fs
L%.3f,%.3f( ( t pt ft svgdR ( ( s2 /usr/share/inkscape/extensions/render_gear_rack.pyt points_to_svgd% s
t RackGearc B s e Z d � Z d � Z RS( c
C s� t j j | � | j j d d d d d d d d d d
d d �| j j d
d d d d d d d d d d d �| j j d d d d d d d d d d d d �d S( Ns -ls --lengtht actiont storet typeR t destt lengtht defaultg Y@t helps Rack Lengths -ss --spacingt spacingg $@s
Tooth Spacings -as --angleR g 4@s
Contact Angle( t inkext Effectt __init__t OptionParsert
add_option( t self( ( s2 /usr/share/inkscape/extensions/render_gear_rack.pyR 2 s c C s� | j t | j j � d � } | j t | j j � d � } t | j j � } g } d } t | � | } xz | | k r� | j | d f � | j | | | f � | j | | | f � | j | | | d f � | | d 7} qo Wt | � } t
t | j � | j
� } d t | d � d t | d � d } i d t | � t j d d
� 6| d 6}
t j j | j
d |
� } i d
d 6d d 6t | j d � � d 6} i t j | � d 6| d 6}
t j j | t j d d � |
� } d S( Nt pxi g @s
translate(t ,i t )R t labelt inkscapet transformt gs #000000t stroket nonet fillt 1pxs stroke-widtht stylet dt patht svg( t unittouut strt optionsR R t radiansR t tant appendR R t listt view_centert
current_layerR t addNSt etreet
SubElementt simplestylet formatStyle( R! R R R t pointsR t tasR/ R8 t tt g_attribsR( R- t gear_attribst gear( ( s2 /usr/share/inkscape/extensions/render_gear_rack.pyt effectD s2 *
*
( t __name__t
__module__R RE ( ( ( s2 /usr/share/inkscape/extensions/render_gear_rack.pyR 1 s t __main__( t __doc__R R= t simpletransformR t mathR R R R R RF t et affect( ( ( s2 /usr/share/inkscape/extensions/render_gear_rack.pyt <module> s
8