
    Og@                       d dl mZ d dlZd dlZd dlZd dlmZ  G d dej                        Z G d dej                        Z	 eddd      Z
 ed d d       Z ed	d	d	      Z ed
d
d
      Zej                   G d d             Z G d d      Zy)    )annotationsN)RGBc                  $    e Zd ZdZdZdZdZdZdZy)FillTypezFill type enumeration.r               N)	__name__
__module____qualname____doc__NONESOLIDHATCHINGCROSS_HATCHINGSHADING     b/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/ezdxf/addons/hpgl2/properties.pyr   r   
   s     DEHNGr   r   c                      e Zd ZdZdZdZy)
FillMethodzFill method enumeration.r   r   N)r   r   r   r   EVEN_ODDNON_ZERO_WINDINGr   r   r   r   r      s    "Hr   r         c                  0    e Zd ZU dZded<   ded<   ded<   y)	PenzRepresents a pen table entry.intindexfloatwidthr   colorN)r   r   r   r   __annotations__r   r   r   r   r   !   s    'JLJr   r   c                      e Zd ZdZ edde      ZddZddZddZ	d Z
ddZdd	Zdd
ZddZddZddZddZddZddZddZy)
Propertiesz Consolidated display properties.r   ffffff?c                    d| _         t        | _        d| _        t        j
                  | _        t        j                  | _	        d| _
        d| _        d| _        d| _        i | _        | j                          y )Nr   r(                 D@      Y@r   )	pen_indexRGB_NONE	pen_color	pen_widthr   r   	fill_typer   r   fill_methodfill_hatch_line_anglefill_hatch_line_spacingfill_shading_densitymax_pen_count	pen_tableresetselfs    r   __init__zProperties.__init__/   s`    ! $!%..,/".2$+0!"#)+

r   c           
         t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  f      S N)	hashr-   r/   r0   r1   r2   r3   r4   r5   r9   s    r   r>   zProperties.hash>   sT      **,,))	
 	
r   c                ,    t        j                   |       S r=   )copyr9   s    r   r@   zProperties.copyL   s    yyr   c           	     $   t        | j                        ry | j                  }| j                  j                  }t	        d|t        ddd            |d<   t	        d|t        ddd            |d<   t	        d|t        ddd            |d<   t	        d|t        ddd            |d<   t	        d|t        ddd            |d<   t	        d|t        ddd            |d<   t	        d|t        ddd            |d<   t	        d|t        ddd            |d	<   y )
Nr   r   r   r   r	   r
            )lenr7   DEFAULT_PENr#   r   r   )r:   pensr#   s      r   setup_default_pen_tablez"Properties.setup_default_pen_tableP   s    t~~~~  &&aCc 23QaAq!-QaCA/QaAsA/QaCa 01QaAq#/QaCC 01QaAsC 01Qr   c                `   d| _         | j                  j                  | _        | j                  j                  | _        | j                  j                  | _        i | _        t        j                  | _        t        j                  | _        d| _        d| _        d| _        | j%                          y )Nr   r*   r+   g      ?)r6   rF   r!   r-   r$   r/   r#   r0   r7   r   r   r1   r   r   r2   r3   r4   r5   rH   r9   s    r   r8   zProperties.reset^   s    ))//))//))//!%..%("'+$$'!$$&r   c                N    | j                   j                  || j                        S r=   )r7   getrF   )r:   r!   s     r   get_penzProperties.get_penk   s    ~~!!%)9)9::r   c                    || _         y r=   )r6   )r:   counts     r   set_max_pen_countzProperties.set_max_pen_countn   s
    "r   c                x    || _         | j                  |      }|j                  | _        |j                  | _        y r=   )r-   rL   r#   r0   r$   r/   )r:   r!   pens      r   set_current_penzProperties.set_current_penq   s-    ll5!r   c                    |dk(  r|| _         y | j                  j                  |t        ||| j                  j
                              }||_        y Nr   )r0   r7   
setdefaultr   rF   r$   r#   )r:   r!   r#   rQ   s       r   set_pen_widthzProperties.set_pen_widthw   sG    B;"DN..++s5%)9)9)?)?@C CIr   c                    |dk(  r|| _         y | j                  j                  |t        || j                  j
                  |            }||_        y rT   )r/   r7   rU   r   rF   r#   r$   )r:   r!   rgbrQ   s       r   set_pen_colorzProperties.set_pen_color   sG    B; DN..++s5$"2"2"8"8#>C CIr   c                   |dk(  r$t         j                  | _        || _        || _        y |dk(  r$t         j
                  | _        || _        || _        y |dk(  rt         j                  | _        || _        y t         j                  | _        y )Nr	   r
   
   )	r   r   r1   r4   r3   r   r   r5   r   )r:   r1   spacingangles       r   set_fill_typezProperties.set_fill_type   sq    >%..DN+2D().D&!^%44DN+2D().D&"_%--DN(/D%%^^DNr   c                $    t        |      | _        y r=   )r   r2   )r:   r2   s     r   set_fill_methodzProperties.set_fill_method   s    %k2r   c                    | j                   }|t        u r<| j                  j                  | j                  | j
                        }|j                  }|t        u rt        S |S )z Returns the final RGB pen color.)r/   r.   r7   rK   r-   rF   r$   	RGB_BLACK)r:   rX   rQ   s      r   resolve_pen_colorzProperties.resolve_pen_color   sM    nn(?..$$T^^T5E5EFC))C(?
r   c                N   | j                   }|t        j                  k(  r| j                         S |t        j                  k(  r2t        t        dd| j                  z
  z        d      }t        |||      S |t        j                  k(  s|t        j                  k(  rt        S t        S )z!Returns the final RGB fill color.gffffff@r,   r   )r1   r   r   rc   r   minr    r5   r   r   r   
LIGHT_GREY	RGB_WHITE)r:   ftgreys      r   resolve_fill_colorzProperties.resolve_fill_color   s    ^^))++8###s454+D+D#DEFLDtT4((8$$$h.E.E(Er   N)returnNone)rk   r    )rk   r'   )r!   r    rk   r   )rN   r    rk   rl   )r!   r    rk   rl   )r!   r    r#   r"   rk   rl   )r!   r    rX   r   rk   rl   )r1   r    r\   r"   r]   r"   )r2   r    rk   rl   )rk   r   )r   r   r   r   r   r.   rF   r;   r>   r@   rH   r8   rL   rO   rR   rV   rY   r^   r`   rc   rj   r   r   r   r'   r'   *   sY    *ax(K
2';##,3
r   r'   )
__future__r   dataclassesenumr@   ezdxf.colorsr   IntEnumr   r   r.   rb   rg   rf   	dataclassr   r'   r   r   r   <module>rs      s    #    t||   r2r?1aL	S#	c3
   E Er   