
    BPc                         d Z ddlZddlZddlmZ d Zd Zd Z G d dej                  Ze	d	k    r e            
                                 dS dS )
z
Greate perfect bound cover
    N)Guidec                     d| z  S )N    )calipers    3/usr/share/inkscape/extensions/perfectboundcover.pycaliper_to_ppir	      s    w;    c                 &    t          | dz            S )Ng-C6*?r	   )bond_weights    r   bond_weight_to_ppir   !   s    +.///r
   c                 &    t          | dz            S )Ng     @@r   )pointss    r   points_to_ppir   %   s    &6/***r
   c                       e Zd Zd Zd ZdS )PerfectBoundCoverc                    |                     dt          dd           |                     dt          dd           |                     dt          d	d
           |                     ddd           |                     dt          dd           |                     ddd           |                     dt          dd           |                     dt          dd           |                     dt          j        dd           d S )Nz--widthg      @zcover width (in))typedefaulthelpz--heightg      "@zcover height (in)z--pages@   znumber of pagesz--paperthicknessmeasurementppiaO  Measurement for determining the thickness of the spine.
                          Options: 'ppi': pages per inch; 'caliper': caliper (inches);
                            'points': caliper in points (1/1000 in);
                            'bond_weight': Bond (pounds);
                            'width': absolute width of spine (in))r   r   z--paperthicknessg        zpaper thicknessz--coverthicknessmeasurementznMeasurement for determining the thickness of the cover. For available options, see --paperthicknessmeasurementz--coverthicknesszcover thicknessz--bleedg      ?zcover bleed (in)z--removeguidesFzremove guide)add_argumentfloatintinkexBoolean)selfparss     r   add_argumentszPerfectBoundCover.add_arguments*   sT   )%CUVVV*5#DWXXX)#r@QRRR)E 	 	
 	
 	
 	UC>O 	 	
 	
 	
 	)A 	 	
 	
 	
 	UC>O 	 	
 	
 	
 	)%DVWWW5=%n 	 	
 	
 	
 	
 	
r
   c                    d t           t          t          d d}| j        j        dk    rP| j        j        dk    r| j        j        }n5| j        j         || j        j                 | j        j                  z  }nd}| j        j        dk    rF| j        j        dk    r| j        j        }n+d || j        j                 | j        j                  z  }nd}||z   }| j        j	        | j        j
        dz  z   |z   }| j        j	        dz  | j        j        z   }| j                                        }|                    dd|z             |                    d	d|z             g }|                    d
| j        j	        g           |                    d
|| j        j	        z
  g           |                    d| j        j	        g           |                    d|| j        j	        z
  g           |                    d|dz  |dz  z
  g           |                    d|dz  |dz  z   g           | j        j        }	|	| j        j        r+|	                                D ]}
|
                                 |D ]c}|	                    t-                                }|                    d|d                    |                    dd|d         dz  z             bd S d S )Nc                     | S Nr   xs    r   <lambda>z*PerfectBoundCover.effect.<locals>.<lambda>J   s    Q r
   c                     | S r$   r   r%   s    r   r'   z*PerfectBoundCover.effect.<locals>.<lambda>N   s    q r
   )r   r   r   r   widthr   r)   g      @r   z%sinheight
horizontalverticalorientationpositionz%f   `   )r	   r   r   optionspaperthicknesspaperthicknessmeasurementpagescoverthicknesscoverthicknessmeasurementbleedr)   r*   documentgetrootsetappendsvg	namedviewremoveguides
get_guidesdeleteaddr   )r   switchpaper_spinecover_spinespine_widthdocument_widthdocument_heightrootguidesr=   nodeguidenewguides                r   effectzPerfectBoundCover.effectH   s   ;%-# [
 
 <&**|5@@"l9"l0 46L:4,-4/ 4/ / K<&**|5@@"l9!$RF4<+Q$RL/% %  K!K/,,t|/AA/EET,,q04<3FF}$$&&&>12226O3444|T\%78999|_t|7I%IJKKKz4<#56777z>DL4F#FGHHHzNQ$6;?#KLMMMzNQ$6;?#KLMMMH&	 |( "%0022 " "DKKMMMM A A$==11]E!H555ZqB)?@@@@ ! A Ar
   N)__name__
__module____qualname__r!   rM   r   r
   r   r   r   )   s7        
 
 
<8A 8A 8A 8A 8Ar
   r   __main__)__doc__textwrapr   r   r	   r   r   EffectExtensionr   rN   runr   r
   r   <module>rV      s   (           0 0 0+ + +WA WA WA WA WA- WA WA WAt z r
   