o
    h:d                  
   @   s   d dl mZmZ zd dlZW n eefy   d dlmZ Y nw ejZdgZ	G dd deZ
edkrYd dlmZmZmZ eddd	efd
efded fdee fded fg dS dS )    )BasePenOpenContourErrorN)cython
MomentsPenc                   @   s  e Zd ZdddZdd Zdd Zdd	 Zejej	d
ejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	ej	dejej	ej	ddd Z
ejej	d
ejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	d ejej	d!ejej	d"ejej	d#ejej	d$ejej	d%ejej	d&ejej	d'ejej	d(ejej	d)ejej	d*ejej	d+ejej	d,ejej	d-ejej	d.ejej	d/ejej	d0ejej	d1ejej	d2ejej	d3ejej	d4ejej	d5ejej	d6ejej	d7ejej	d8ejej	d9ejej	d:ejej	d;ejej	d<ejej	d=ejej	d>ejej	d?ejej	d@ejej	dAejej	dBejej	dCejej	ej	dejej	ej	dejej	ej	dDdEdF Zejej	d
ejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	d ejej	d!ejej	d"ejej	d#ejej	d$ejej	d%ejej	d&ejej	d'ejej	d(ejej	d)ejej	d*ejej	d+ejej	d,ejej	d-ejej	d.ejej	d/ejej	d0ejej	d1ejej	d2ejej	d3ejej	d4ejej	d5ejej	d6ejej	d7ejej	d8ejej	d9ejej	d:ejej	d;ejej	d<ejej	d=ejej	d>ejej	d?ejej	d@ejej	dAejej	dBejej	dCejej	dGejej	dHejej	dIejej	dJejej	dKejej	dLejej	dMejej	dNejej	dOejej	dPejej	dQejej	dRejej	dSejej	dTejej	dUejej	dVejej	dWejej	dXejej	dYejej	dZejej	d[ejej	d\ejej	d]ejej	d^ejej	d_ejej	d`ejej	daejej	dbejej	dcejej	ddejej	deejej	dfejej	dgejej	dhejej	diejej	djejej	dkejej	dlejej	dmejej	dnejej	doejej	dpejej	dqejej	drejej	dsejej	dtejej	duejej	dvejej	dwejej	dxejej	dyejej	dzejej	d{ejej	d|ejej	d}ejej	d~ejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	dejej	ej	dejej	ej	dejej	ej	dDejej	ej	ddd ZdS )r   Nc                 C   s4   t | | d| _d| _d| _d| _d| _d| _d S )Nr   )r   __init__areamomentXmomentYmomentXXmomentXYmomentYY)selfglyphset r   m/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/fontTools/pens/momentsPen.pyr      s   
zMomentsPen.__init__c                 C   s
   || _ d S N)_startPointr   p0r   r   r   _moveTo   s   
zMomentsPen._moveToc                 C   s&   |   }|| jkr| | j d S d S r   )_getCurrentPointr   _lineTor   r   r   r   
_closePath   s   
zMomentsPen._closePathc                 C   s   |   }|| jkrtdd S )Nz1Glyph statistics is not defined on open contours.)r   r   r   r   r   r   r   _endPath"   s   
zMomentsPen._endPath)r0)r1)r2)r3)r4)r5)r6)r7)r8)r9)r10)r11)r12)x0y0)x1y1c                 C   sD  |   \}}|\}}|| }|| }|d }|| }	|| }
|
| }|d }d| }|d }|d }|d }|d }|d }|  j| d |d  |||  d  7  _|  j| | d |	d  || d  |||  d  7  _|  j| | d || d  || d  ||| ||   d  7  _|  j| | d || d  || d  |
| | d  |d d| |  d  7  _|  j| | d || d  |	| d  ||| d|  |  d  || ||  d  7  _|  j| | d || d  || d  || d  ||| ||  ||   d  7  _d S )N                     r   r   r   r	   r
   r   r   )r   p1r'   r(   r)   r*   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r   r   r   r   '   sj   ,<<







zMomentsPen._lineTo)r13)r14)r15)r16)r17)r18)r19)r20)r21)r22)r23)r24)r25)r26)r27)r28)r29)r30)r31)r32)r33)r34)r35)r36)r37)r38)r39)r40)r41)r42)r43)r44)r45)r46)r47)r48)r49)r50)r51)r52)r53)x2y2c           ?      C   sT  |   \}}|\}}|\}}d| }	|	| }
|| }d| }d| }d| }|d }|d }d| }d| }d| }|| }|d }d| }|| }|| }d| }|	| | }|| }|d }d| }|d }|| }d| } |d }!|| }"d|! }#|d }$|d }%d| }&d| }'d| | }(d| })d| }*d| }+|| },|d	|,  }-d| }.d	| }/d
| | }0|)| }1d| }2d	| }3d| }4d| }5d| }6d| }7d| }8d
| | |  }9d
|d  }:|d };|d }<d| }=d| }>|  j|
 d |d  ||	| |  d  || d  |||  d  7  _|  j| | |  d ||| |  d  || d  || d  || d  ||| ||  |  d  ||d|  |  d  7  _|  j| d || d  | d  |!||  d  ||	| | | |" |# ||   d  || ||  d  ||
|  d  7  _|  j||
d|  |+|  |- ||   d d|$ | d  |%|& d  |%| d  |(|	d|   d  || |	|)  d  |d |'d|  |  d  ||	| ||.  ||.  |*|  |/|  |0 |1 ||   d  |d
|$ d|%  |( |*|   d  7  _|  j||| d|  d|!  |2|  |3 |7|   d || |4|5  d  || d
  |!|/|6|  d|   d  |2| | d  |3| d  || |)|  d  || | ||"  | ||8  |!|+  |#|  |,|7  |9  d  ||| |'|  |,|6  |0 |1  d  7  _|  j| |3 d ||& d  |!||- |=|   d  |:| d  |;| d  |<|8|  d  |||7 ||  ||=  |!|&  |"|>  |#|  |3|  |: d|;  d|<   d  || |4|5 ||   d  |||6 ||>  ||  |9  d  7  _d S )Nr+   r,   r/   
         r-   r.      r1   <      i  i      T   H     #   r2   )?r   r3   p2r'   r(   r)   r*   r]   r^   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r   r   r   _qCurveToOnec   s  :



	
&	&

"2

&


	"
zMomentsPen._qCurveToOne)r54)r55)r56)r57)r58)r59)r60)r61)r62)r63)r64)r65)r66)r67)r68)r69)r70)r71)r72)r73)r74)r75)r76)r77)r78)r79)r80)r81)r82)r83)r84)r85)r86)r87)r88)r89)r90)r91)r92)r93)r94)r95)r96)r97)r98)r99)r100)r101)r102)r103)r104)r105)r106)r107)r108)r109)r110)r111)r112)r113)r114)r115)r116)r117)r118)r119)r120)r121)r122)r123)r124)r125)r126)r127)r128)r129)r130)r131)r132)x3y3c                 C   s  |   \}}|\}}|\}}	|\}
}d|	 }||
 }d| }||
 }d| }d| }d| }d| }d|	 }|d }d| }|| }|
d }||	 }|| }d| }d|
 }|| }|d }d| }|d } d	| }!d| }"||
 }#d|	 }$|$| | }%d| }&|| }'|& | d|'  }(d| })d| }*d
|
 }+d| },d| }-||
 }.d| }/d| }0|0| }1d|
 }2d| }3d| }4|4|
 }5||	 }6d|6 }7d| }8|5|7 |8|  }9|	| }:|:|
 };|	d }<d|< }=|=|
 }>|d }?|?|
 }@|d }Ad|A }B|d }Cd	| }Dd| }E||	 }F|3|	 }Gd|< }H|| }Id| }J|0|	 }K|| }Ld|A }Md|? }N|d }O|
d }Pd|	 }Qd|
 }R|d }Sd| }Td| }U|U|
 }V||
 d|6  }Wd| }Xd|
 }Yd	|' }Zd| }[d| }\||	 }]d|6 }^|| }_|5|^ d|_  }`||
 }a|a| }b|'|
 }cd| }d|d|	 }ed| }fd| }gd| }hd| }i|| }jd| | }k|[|
 }ld|a }m|_|
 }nd|
 }od|
 }p|6| }q||	 d|  d| |  |]|o  }rd|< }sd| }t|t|	 }u|| }vd|	 }w|w| }x|| }yd|L }zd|A }{d|< }|d| }}|'|	 }~|}|< d|@  }|
| }d|6 }|?| }|?| }|<| }d	|
 }|L| }|]| }d|' | |=|  d|@  d|A |  }|	d }|d }|d }|d }|?|	 }||| |!|?  }d|A }d|	 }|  j| d |d  |||
  d  ||| d|  |  d  d| |	|  d  d| | d  ||| |
  d  7  _|  j|d |d  |d  || |  d  ||d|   d  | ||! d|  |  d  |)|# |% |(  d  |d| | |"  d  |d
|' |*|	  |. |/|  |1 |2|  |3|  ||
  |9  d  |||*|  |+|  |, |- d|   d  7  _|  j| |%|F  d |;d  |>d  |@d  |B|d|
   d  |C|D|E |
  d  ||/| |4|  |8|	  d|<  d|C  |G |K d
|L  |M |N  d  ||$| d|?  |G |H ||   d   || ||  d  ||| |+|	  |8|  |9 |I |J|   d  7  _|  j| |T |4 |  d! d| |(|. |2|  |W  d"  | |$|
 |T|  |X|  |Y|  |Z |[|  |\|  d#|]  |`  d!  |)||! d|  |8|  |U|  d|b  d$|c  |e |f  d!  |d%| | d|O  d|P  |V  d!  d|O | d&  |P|Q d!  |P| d'  |R| |J |	  d!  d|S |$|4  d"  |d |$|8 d(|  |  d)  ||p|' d*|q  |r | d| |  |'|g  |-|  |1|
  |7|
  |U|  |d|  |h|	  |i|  d|j  |k|  |l|  |m|  d|n  |o| |   d!  |||D ||\  |,|
  d|O  d|P  d|S  |V |a|g  d+| |  |h|   d!  7  _|  j|s | d, ||? d  d| |	 d-  d| |u||  d|:  d|<  d|?   d.  | d/|v |w|  |x d0|y  |z |{ || d|:  d1|C  |N  d,  |Bd| d|a  d|   d,  |C|-|U |i |k |l |m  d,  |d| |^|
  d0|c  |e |f  d,  d|a |<|N  d&  d| | |Jd|	   d2  || | d$|v |  |y|D  d|~  ||  d|  d	|  d3|  ||:  d|  d4|  | |!|
 |  |#|  |B|
  |C|T  |C|X  |C|Y  |E| |  |H|
  d$|] |  d|] |   d!  ||t|' |u|
  |}|A  d|~  | ||A  d0|;  |?|\   d"  |d|q |r ||  ||
  d	|  ||  |"|  |Z|
  d|_ |  d4|b  d3| |  d|j  d|n   d!  7  _|  j|s | d! ||R d!  ||
 d
  d| |&|2  d"  ||&|* |
  d)  ||||
 | d|  d$|;   d!  |@|Q d!  |B|F|I |W  d!  |C|p| ||	  |&|  |[|	  |` d#| |   d!  ||x| |z|  |{|  |||  d|  d|  d|  d5|  d|  | ||	  ||L  d+|< |  d|C |  d|C |	  d|C |  |K|  |M|  |N|   d!  |d| d|  d%|  | |3|A  |8|<  d|A |	  d|L |	   d"  d| | |<|N ||   d&  ||p|: d|~  d|  d|  d|  d|  | ||  ||
 |  d*|6 |  |> d|A |
  |L|o   d!  7  _d S )6Nr-   r_   r,   r+   -      rd   	   rf   r.   r`   re   ra      iv  ~   ?      *   iz     Z         6   rb   rh   r1   8         i  i$  i  ri   rg   F      r/      i        i0H  ,   i  i     i	  i  Q   rc   i  r2   )r   r3   rk   p3r'   r(   r)   r*   r]   r^   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   _curveToOne6  s   $(	*	&.&

 !"
	

9
	I
.	&
	




1=
	

P

"
.	




"

./

	


zMomentsPen._curveToOner   )__name__
__module____qualname__r   r   r   r   r   localsdoubler   rl   r   r   r   r   r   r      s   

&-z   __main__)xyprintGreenPen)r      r   r	   r
   r+   r   r   )fontTools.pens.basePenr   r   r   AttributeErrorImportErrorfontTools.misccompiledCOMPILED__all__r   r   fontTools.misc.symfontr   r   r   r   r   r   r   <module>   s8          Z


