
    OgS                        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
 ddlmZ ddlmZmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZ erd dlmZ  G d d      Zy)    )annotations)TYPE_CHECKINGOptional)UCS)DXFValueError)DimStyleOverride   )BaseDimensionRenderer)AngularDimensionAngular3PDimensionArcLengthDimensionDiameterDimensionLinearDimensionOrdinateDimensionRadiusDimension)	Dimensionc                      e Zd Z	 d	 	 	 	 	 ddZ	 	 d	 	 	 	 	 ddZ	 	 d	 	 	 	 	 ddZ	 	 d	 	 	 	 	 ddZ	 	 d	 	 	 	 	 ddZ	 	 d	 	 	 	 	 ddZ	 	 d	 	 	 	 	 ddZ		 	 d	 	 	 	 	 dd	Z
	 	 d	 	 	 	 	 dd
Zy)DimensionRendererNc                   |j                   }|j                  }|j                         }|dk(  r| j                  |||      S |dk(  r| j	                  |||      S |dv r| j                  |||      S |dk(  r| j                  |||      S |dk(  r| j                  |||      S |dk(  r| j                  |||      S |dk(  r| j                  |||      S |dk(  r| j                  |||      S t        d	|       )
NARC_DIMENSIONLARGE_RADIAL_DIMENSION)r   r	                  zUnknown DIMENSION type: )	dimensiondimtypedxftype
arc_lengthlarge_radiallinearangulardiameterradius	angular3pordinater   )selfoverrideucsr!   dim_typedxf_types         [/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/ezdxf/render/dimension.pydispatchzDimensionRenderer.dispatch   s    &&	$$$$&&??9c8<<11$$YX>>;;y#x88]<<	399]==C::];;y#x88]>>)S(;;]==C::":8* EFF    c                    t        |||      S )zJCall renderer for linear dimension lines: horizontal, vertical and rotatedr   r,   r!   r.   r-   s       r1   r&   zDimensionRenderer.linear0        y#x88r3   c                    t        |||      S )z9Call renderer for angular dimension defined by two lines.)r   r5   s       r1   r'   zDimensionRenderer.angular9   s      	399r3   c                    t        |||      S )z$Call renderer for diameter dimensionr   r5   s       r1   r(   zDimensionRenderer.diameterB        !C::r3   c                    t        |||      S )z"Call renderer for radius dimensionr   r5   s       r1   r)   zDimensionRenderer.radiusK   r6   r3   c                    t               )z(Call renderer for large radial dimension)NotImplementedErrorr5   s       r1   r%   zDimensionRenderer.large_radialT   s     "##r3   c                    t        |||      S )z<Call renderer for angular dimension defined by three points.)r   r5   s       r1   r*   zDimensionRenderer.angular3p]        ")S(;;r3   c                    t        |||      S )z%Call renderer for ordinate dimension.r   r5   s       r1   r+   zDimensionRenderer.ordinatef   r9   r3   c                    t        |||      S )z'Call renderer for arc length dimension.)r   r5   s       r1   r$   zDimensionRenderer.arc_lengtho   r>   r3   )N)r-   r   r.   Optional[UCS]returnr
   )NN)r!   r   r.   rA   r-   zOptional[DimStyleOverride])__name__
__module____qualname__r2   r&   r'   r(   r)   r%   r*   r+   r$    r3   r1   r   r      sn   ?CG(G/<G	G8 "/3	99 9 -	9 "/3	:: : -	: "/3	;; ; -	; "/3	99 9 -	9 "/3	$$ $ -	$ "/3	<< < -	< "/3	;; ; -	; "/3	<< < -	<r3   r   N)
__future__r   typingr   r   
ezdxf.mathr   ezdxf.lldxf.constr   ezdxf.entities.dimstyleoverrider   dim_baser
   
dim_curvedr   r   r   dim_diameterr   
dim_linearr   dim_ordinater   
dim_radiusr   ezdxf.entitiesr   r   rF   r3   r1   <module>rS      s?    # *  + < + P P + ' + ' (`< `<r3   