
    ]Mh                     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     V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/pens/areaPen.pyr   zAreaPen.__init__
   s     x(((


    c                 "    |x| _         | _        d S N)_p0_startPoint)r	   p0s     r   _moveTozAreaPen._moveTo   s    &((4###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    BB

rBw27+c11

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A1BARURZBARURZB

rBwb(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A1BARURZBARURZBARURZB

rbS2XrAF{);;bBRK>PPTXXX

Rr   c                 B    |                      | j                   | `| `d S r   )r   r   r   r	   s    r   
_closePathzAreaPen._closePath,   s'    T%&&&Hd&&&r   c                 <    | j         | j        k    rt          | ` | `d S r   )r   r   NotImplementedErrorr)   s    r   _endPathzAreaPen._endPath0   s(    8t'''%%Hd&&&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    $ $ * * * * * * ++' +' +' +' +'g +' +' +' +' +'r   