
    BPc7                          d dl Z d dlZd dl mZ d dlmZ d dlZ	 	 	 	 	 ddZ G d	 d
ej                  Ze	dk    r e            
                                 dS dS )    N)pi)	math_evalcos(3*t)sin(5*t)FTc                 ^  ()*+ |r| dt           z  z  } |dt           z  z  }||z
  z  (|	*(*fd}||z
  z  )|
+)+fd}|rG)(k     r! |d          })(|	|z
  (z  |	|z   |z
  (z  }n  |d          }()||
z
  )z  |
|z   |z
  )z  }t          |d          }t          |d          }|| z
  |dz
  z  }|dz  }|dz  }g }|rdcxk    r|k    r>n n;|                    d	|	 |d          gg           |                    d
|dgg           dcxk    r|k    r?n n<|                    d	 |d          |
gg           |                    d
d| gg            ||           } ||           }| |z   } ||          } ||          }||z
  |z  }||z
  |z  } |                    d	 ||           ||          gg           t          t	          |dz
                      D ]}!|!dz   |z  | z   }||z
  }" ||          } ||"          }# ||          } ||"          }$||#z
  |z  }%||$z
  |z  }&|                    d ||||z  z              ||| |z  z              |||%|z  z
             |||&|z  z
             ||           ||          gg           |}'|}|}|%}|&} |S )N   c                     | z
  z  z   S N )xscalexxleftxoffs    ./usr/share/inkscape/extensions/param_curves.py<lambda>zdrawfunction.<locals>.<lambda>@   s    E	V+d2     c                     | z
  z  z   S r
   r   )yscaleyybottomyoffs    r   r   zdrawfunction.<locals>.<lambda>C   s    !v-4 r   r   t   g      @gMbP?MlC)r   r   appendrangeint),t_startt_endr   xrightr   ytopsampleswidthheightleftbottomfxfytimes2piisoscaledrawaxiscoordxcoordyxzeroyzerof1f2stepthirddsax0y0t1x1y1dx0dy0it2x2y2dx1dy1t0r   r   r   r   s,     ` `                                   @@@@r   drawfunctionrF   '   s   $  1r6R fun%FD222222Ftg~&FD444444F  6F??F1IIEFE\V+EUlU*f4FF F1IIEFv~/GVOe+v5D 
2s		B	2s		B GO!,D3JE	B
A 
*a4HHcD&&)),-...HHcE1:&'''AHHcFF1IIv./000HHcAw<()))
 
GB	GB 
2B	BB	BB7b.C7b.C HHcFF2JJr

+,---3w{##$$  !et^g%"WRVVRVVRVVRVV Bw"nBw"n 	
F2u-..F2u-..F2u-..F2u-..F2JJF2JJ
	
 	
 	
 Hr   c                       e Zd Zd Zd ZdS )ParamCurvesc                 P   |                     dt          dd           |                     dt          dd           |                     dt          j        d	d
           |                     dt          dd           |                     dt          dd           |                     dt          dd           |                     dt          dd           |                     ddt          dd           |                     ddd           |                     ddd           |                     dt          j        d	d            |                     d!t          j        d"d#           |                     d$t          j        d"%           |                     d&d'(           d S ))Nz	--t_startg        zStart t-value)typedefaulthelpz--t_endg      ?zEnd t-valuez
--times2piTzMultiply t-range by 2*piz--xleftg      zx-value of leftz--xrightzx-value of rightz	--ybottomzy-value of bottomz--ytopzy-value of topz-sz	--samples   Samplesz--fofxr   zfx(t) for plotting)rK   rL   z--fofyr   zfy(t) for plottingz--removezRemove rectanglez
--isoscaleFzIsotropic scalingz
--drawaxis)rJ   rK   z--tabsampling)rK   )add_argumentfloatinkexBooleanr   )selfparss     r   add_argumentszParamCurves.add_arguments   s   +E3_UUU)%=QQQ+	 	 	
 	
 	
 	)%DUVVV*5#DVWWWeT8K 	 	
 	
 	
 	(BRSSS$#r	RRR(J=QRRR(J=QRRRU]D?Q 	 	
 	
 	
 	u}eBU 	 	
 	
 	
 	,U]EJJJ':66666r   c                    | j         j        D ]}t          |t          j                  rt          j                    }t          |                    d                    }t          |                    d                    }t          |                    d                    }t          |                    d                    }|j        |_        |j	        |_	        t          | j        j        | j        j        | j        j        | j        j        | j        j        | j        j        | j        j        |||||z   | j        j        | j        j        | j        j        | j        j        | j        j                  |_        |                    d| j        j        dz   | j        j        z              |                                                    |           | j        j        r'|                                                    |           d S )Nr   r   r%   r&   title )svg	selection
isinstancerR   	RectanglePathElementrQ   getstyle	transformrF   optionsr    r!   r   r"   r   r#   r$   fofxfofyr+   r,   r-   pathset	getparentr   remove)rT   nodenewpathr   r   r%   r&   s          r   effectzParamCurves.effect   s   H& +	2 +	2D$00 *2+--$((3--(($((3--((dhhw//00txx1122 !%
$(N!  ,L(L&L&L'L(L%L(JL%L%L)L)L)!   $ GT\%6%<t|?P%PQQQ   ''000<& 2NN$$++D111W+	2 +	2r   N)__name__
__module____qualname__rV   rk   r   r   r   rH   rH      s2        7 7 76,2 ,2 ,2 ,2 ,2r   rH   __main__)r   r   FTT)mathrandomr   inkex.utilsr   rR   rF   EffectExtensionrH   rl   runr   r   r   <module>ru      s   >         ! ! ! ! ! !  !v v v vrH2 H2 H2 H2 H2%' H2 H2 H2V zKMM r   