
    'jm                    b    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
  G d de          Zd	S )
    )annotations)Sequence   )Backend)Vec2Path)
Propertiesc                  :    e Zd Zd ZddZddZddZd ZddZdS )PolygonBufferc                :    t                      | _        d| _        d S NFr   pathstart_new_sub_polygonselfs    [/DATA/AppData/hermes/venv/lib/python3.11/site-packages/ezdxf/addons/hpgl2/polygon_buffer.py__init__zPolygonBuffer.__init__   s    FF	%*"""    
propertiesr	   pointsSequence[Vec2]returnNonec                   t          |          dk    rd S d}| j        rd| _        t          |          }| j        j                            ||                   r2|dz  }||k    rd S | j        j                            ||                   2| j                            ||                    ||dz   d          D ]}| j                            |           d S )Nr   Fr   )lenr   r   endisclosemove_toline_to)r   r   r   indexcountps         r   draw_polylinezPolygonBuffer.draw_polyline   s    v;;!F% 	-).D&KKE)-''u66 
E>>F )-''u66  IfUm,,,	$ 	! 	!AIa    	! 	!r   pathsSequence[Path]filledboolc                    |rt                      |D ]]}t          |          dk    r| j        r&d| _        | j                            |j                   | j                            |           ^d S )Nr   F)NotImplementedErrorr   r   r   r   startappend_path)r   r   r%   r'   r#   s        r   
draw_pathszPolygonBuffer.draw_paths   s      	(%''' 	% 	%A1vv{{) +-2*	!!!'***I!!!$$$$	% 	%r   c                N    t          | j                                                  S )N)listr   	sub_pathsr   s    r   	get_pathszPolygonBuffer.get_paths+   s    DI''))***r   c                r    t          | j                  r"| j                                         d| _        d S d S )NT)r   r   close_sub_pathr   r   s    r   
close_pathzPolygonBuffer.close_path.   s>    ty>> 	.I$$&&&)-D&&&	. 	.r   locationr   c                <    t          |          | _        d| _        d S r   r   )r   r5   s     r   resetzPolygonBuffer.reset3   s    NN	%*"""r   N)r   r	   r   r   r   r   )r   r	   r%   r&   r'   r(   r   r   )r   r&   )r5   r   r   r   )	__name__
__module____qualname__r   r$   r-   r1   r4   r7    r   r   r   r   
   s        + + +! ! ! !% % % %+ + + +. . .
+ + + + + +r   r   N)
__future__r   typingr   backendr   depsr   r   r   r	   r   r;   r   r   <module>r@      s    # " " " " "                     " " " " " "++ ++ ++ ++ ++G ++ ++ ++ ++ ++r   