o
    h                     @   s*   d Z ddlmZ dgZG dd deZdS )zCalculate the area of a glyph.    )BasePenAreaPenc                   @   sF   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dS )r   Nc                 C   s   t | | d| _d S )Nr   )r   __init__value)selfglyphset r   X/var/www/html/optinet_system/venv/lib/python3.10/site-packages/fontTools/pens/areaPen.pyr   
   s   
zAreaPen.__init__c                 C   s   | | _ | _d S N)_p0_startPoint)r   p0r   r   r	   _moveTo   s   zAreaPen._moveToc                 C   s:   | j \}}|\}}|  j|| ||  d 8  _|| _ d S )Ng      ?)r   r   )r   p1x0y0x1y1r   r   r	   _lineTo   s   

zAreaPen._lineToc           
      C   s~   | j }|d |d }}|d | |d | }}|d | |d | }}	|  j|| ||	  d 8  _| | || _ d S )Nr         r   r   r   )
r   r   p2r   r   r   r   r   x2y2r   r   r	   _qCurveToOne   s   

zAreaPen._qCurveToOnec                 C   s   | j }|d |d }}|d | |d | }}|d | |d | }	}
|d | |d | }}|  j||
 |  |	|d|    ||d|
    d 8  _| | || _ d S )Nr   r      g333333?r   )r   r   r   p3r   r   r   r   r   r   r   x3y3r   r   r	   _curveToOne!   s   <

zAreaPen._curveToOnec                 C   s   |  | j | `| `d S r
   )r   r   r   r   r   r   r	   
_closePath,   s   zAreaPen._closePathc                 C   s   | j | jkrt| ` | `d S r
   )r   r   NotImplementedErrorr!   r   r   r	   _endPath0   s   zAreaPen._endPathr
   )
__name__
__module____qualname__r   r   r   r   r    r"   r$   r   r   r   r	   r   	   s    

N)__doc__fontTools.pens.basePenr   __all__r   r   r   r   r	   <module>   s    