
    cc                     6    d dl Z d dlZddlmZ  G d de      Zy)    N   )AbstractBrushc                   4     e Zd Zd Zd Z fdZd Zd Z xZS )
BrushHairyc                 D    t        d      }|r|dt        d      z   z  }|gS )NzHairy brushz - z$Width depends on the stylus pressure)_)selfuse_pressurebrush_directionlabels       5/usr/lib/python3/dist-packages/drawing/brush_hairy.py	_get_tipszBrushHairy._get_tips	   s+    
M
%EA<===5
.    c                     |j                  t        j                  j                         |j	                  t        j
                  j                          |j                  |d     t        | %  ||       y )Nrgba)
set_line_capcairoLineCapROUNDset_line_joinLineJoinBEVELset_source_rgbasuperdraw_preview)r	   	operationcairo_context	__class__s      r   r   zBrushHairy.draw_preview   sW    U]]001enn223-6!23'y-0r   c                 V    |d   r| j                  ||      S | j                  ||       y)zStraight-shaped brush, like an orientable feather pen. The width is
		pressure-sensitive but otherwise it's NOT speed sensitive.
is_previewN)r   operation_on_mask)r	   r   r   s      r   do_brush_operationzBrushHairy.do_brush_operation   s/     |


I}
55M2r   c                    |j                  t        j                  j                         |j	                  t        j
                  j                         |j                  d       t        dt        |d   dz              }g }t        j                  d       t        |dz        D ]D  }|j                  t        j                  d|z  |      t        j                  d|z  |      d       F |d   d   d   d u}d}|D ]l  }|j                          |d   D ]B  }	|r|	d   dkD  r|	d   dz  }|	d	   |d
   |z  z   }
|	d   |d   |z  z   }|j                  |
|       D |j!                          n y )Nr   
line_width   )dxdypathr   pxr'   yr(   )r   r   r   r   r   r   set_line_widthmaxintrandomseedrangeappendrandintnew_pathline_tostroke)r	   r   r   r$   matrixir
   pressurehairpointpxpys               r   do_masked_brush_opzBrushHairy.do_masked_brush_op    sm   U]]001enn223q!1c)L1A567*&++a.a  a	==
..j*
5
..j*
5  6"1%c*$6,( d&! "uc
Qc
QX	sd4j8+	+B	sd4j8+	+B"b!" r   )	__name__
__module____qualname____gtype_name__r   r   r"   r?   __classcell__)r   s   @r   r   r      s    13r   r   )r   r0   abstract_brushr   r    r   r   <module>rG      s     )5 5r   