
    'j                        d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
mZ ddlmZ ddlmZ dd	lmZmZ 	 	 d d!dZd"dZd#dZd$d%dZdS )&zxplayer = cross backend player.    )annotations)Callable)Vec2)RGB)BackendInterfaceBkPath2d)BackendProperties)api)
Properties
RecordType#ffffffNplayerhpgl2.Playerbackendr   bg_colorstroverride7Callable[[BackendProperties], BackendProperties] | NonereturnNonec                   |r|                     |           |                                 D ]\  }}}t          |          }|r ||          }|t          j        k    r|                                }t          |          }	|	dk    r|                    |d         |           y|	dk    r$|                    |d         |d         |           |	                    t          j        |          |           |t          j        k    r|                    ||           |t          j        k    r|D ]}
|	                    |
|            |                                 dS )zPReplays the recordings of the HPGL2 Recorder on a backend of the drawing add-on.   r      N)set_background
recordings _make_drawing_backend_propertiesHPGL2RecordTypePOLYLINEverticeslen
draw_point	draw_line	draw_pathr   from_verticesFILLED_PATHSdraw_filled_pathsOUTLINE_PATHSfinalize)r   r   r   r   record_type
propertiesrecord_databackend_propertiespointssizeps              N/DATA/AppData/hermes/venv/lib/python3.11/site-packages/ezdxf/addons/xplayer.pyhpgl2_to_drawingr1      s     )x(((060A0A0C0C 9 9,Z=jII 	>!)*<!=!=/222!,!5!5!7!7Fv;;Dqyy""6!9.@AAAA!!&)VAY8JKKKK!!("8"@"@BTUUUUO888%%k3EFFFFO999  9 9!!!%78888    r*   HPGL2Propertiesr	   c                l    t          | j                                        | j        d| j        d          S )z0Make BackendProperties() for the drawing add-on.0 color
lineweightlayerpenhandle)r	   	pen_colorto_hex	pen_width	pen_index)r*   s    r0   r   r   0   s=    "))++'    r2   r8   0Callable[[BackendProperties], BackendProperties]c                     d fd}|S )Nr*   r	   r   c                T    t          | j        | j        | j        | j                  S )Nr7   )r	   r9   r:   r;   r<   )r*   r8   s    r0   
_map_colorzmap_color.<locals>._map_color<   s4     !,"$
 
 
 	
r2   r*   r	   r   r	    )r8   rD   s   ` r0   	map_colorrG   ;   s)    
 
 
 
 
 
 r2   Tc                "     d fdd	fd}|S )
Nr8   r   r   c                    t          t          j        |           j        dz            }rd|z
  }t          |||                                          S )N   )roundr   from_hex	luminancer>   )r8   gray	dark_modes     r0   to_grayzmap_monochrome.<locals>.to_grayI   sQ    S\%((2S899 	:D4t$$++---r2   r*   r	   c                    | j         }|dd         }t           |d d                   |z   | j        | j        | j        | j                  S )N   	   r7   )r8   r	   r9   r:   r;   r<   )r*   r8   alpharP   s      r0   rD   z"map_monochrome.<locals>._map_colorO   s`     ac
 '%)$$u,!,"$
 
 
 	
r2   )r8   r   r   r   rE   rF   )rO   rD   rP   s   ` @r0   map_monochromerU   H   sH    . . . . . .	
 	
 	
 	
 	
 	
 r2   )r   N)
r   r   r   r   r   r   r   r   r   r   )r*   r3   r   r	   )r8   r   r   rA   )T)r   rA   )__doc__
__future__r   typingr   
ezdxf.mathr   ezdxf.colorsr   ezdxf.addons.drawing.backendr   r   ezdxf.addons.drawing.propertiesr	   ezdxf.addons.hpgl2r
   hpgl2ezdxf.addons.hpgl2.backendr   r3   r   r   r1   r   rG   rU   rF   r2   r0   <module>r`      s%   & % " " " " " "                   C C C C C C C C = = = = = = + + + + + +        HL	    <   
 
 
 
      r2   