
    <`                     8    d Z ddlmZ dgZ G d de          ZdS )zCalculate the area of a glyph.    )BasePenAreaPenc                   :    e Zd Zd	dZd Zd Zd Zd Zd Zd Z	dS )
r   Nc                 >    t          j        | |           d| _        d S )Nr   )r   __init__value)selfglyphsets     6lib/python3.11/site-packages/fontTools/pens/areaPen.pyr   zAreaPen.__init__   s     	4"""$***    c                 "    |x| _         | _        d S N)_p0_startPoint)r	   p0s     r   _moveTozAreaPen._moveTo   s     ""$(Tr   c                 j    | j         \  }}|\  }}| xj        ||z
  ||z   z  dz  z  c_        || _         d S )Ng      ?)r   r   )r	   p1x0y0x1y1s         r   _lineTozAreaPen._lineTo   sC    8&"b&"b**bR"W%****$(((r   c                     | j         }|d         |d         }}|d         |z
  |d         |z
  }}|d         |z
  |d         |z
  }	}| xj        ||z  ||	z  z
  dz  z  c_        |                     |           || _         d S )Nr         r   r   r   )
r	   r   p2r   r   r   r   r   x2y2s
             r   _qCurveToOnezAreaPen._qCurveToOne   s    x"a5"Q%b"a52:r!urzb"a52:r!urzb"**b27"a''**,,r$(((r   c                 T   | j         }|d         |d         }}|d         |z
  |d         |z
  }}|d         |z
  |d         |z
  }
}	|d         |z
  |d         |z
  }}| xj        ||
 |z
  z  |	|d|z  z
  z  z   ||d|
z  z   z  z   dz  z  c_        |                     |           || _         d S )Nr   r      g333333?r   )r	   r   r   p3r   r   r   r   r   r   r    x3y3s                r   _curveToOnezAreaPen._curveToOne"   s    x"a5"Q%b"a52:r!urzb"a52:r!urzb"a52:r!urzb"**V]"ad
"qt) 	 **
 ,,r$(((r   c                 B    |                      | j                   | `| `d S r   )r   r   r   r	   s    r   
_closePathzAreaPen._closePath1   s'    ,,t   
h   r   c                 <    | j         | j        k    rt          | ` | `d S r   )r   r   NotImplementedErrorr)   s    r   _endPathzAreaPen._endPath5   s(    	X!!!	
h   r   r   )
__name__
__module____qualname__r   r   r   r!   r'   r*   r-    r   r   r   r   	   s           # # #      ! ! !! ! ! ! !r   N)__doc__fontTools.pens.basePenr   __all__r   r1   r   r   <module>r5      sZ    $ $ * * * * * * +0! 0! 0! 0! 0!g 0! 0! 0! 0! 0!r   