
    h	                    p    S SK Jr  S SKJr  S SKJr  S SKJr  SSKJ	r	  \(       a  S SK
Jr   " S S	\	5      rg
)    )annotations)TYPE_CHECKING)fonts)FontMeasurements   )TextRenderer)NumpyPath2dc                      \ rS rSrSrSS jrSS jrSS jr S     SS jjr S       SS jjr	 S       SS jjr
 S       SS	 jjrS
rg)UnifiedTextRenderer   zThis text renderer supports .ttf, .ttc, .otf, .shx, .shp and .lff fonts.

The resolving order for .shx fonts is applied in the RenderContext.add_text_style()
method.

c                "    [        5       U l        g N)dict_font_cache)selfs    \/var/www/html/env/lib/python3.13/site-packages/ezdxf/addons/drawing/unified_text_renderer.py__init__UnifiedTextRenderer.__init__   s    :>&    c                   UR                   (       dS  UR                  (       aB  [        R                  " UR                  UR                  (       a  SOSUR
                  S9nUb  UnUR                   R                  5       n U R                  U   $ ! [         a     Of = f[        R                  " UR                   S5      nX@R                  U'   U$ )Ni  i  )familyweightitalic      ?)
filenamer   r   find_best_matchis_bold	is_italiclowerr   KeyError	make_font)r   	font_facefoundkeyabstract_fonts        r   get_fontUnifiedTextRenderer.get_font   s    !!i&6&6)) '''//sS **E
  !	  &&(	##C(( 			(:(:C@ -s    B 
BBc                r    U R                  U5      nUR                  [        R                  R                  :H  $ r   )r&   font_render_typer   FontRenderTypeSTROKE)r   r"   r%   s      r   is_stroke_font"UnifiedTextRenderer.is_stroke_font+   s-    i0--1E1E1L1LLLr   c                Z    U R                  U5      nUR                  R                  U5      $ r   )r&   measurementsscale)r   r"   
cap_heightr%   s       r   get_font_measurements)UnifiedTextRenderer.get_font_measurements/   s)     i0))//
;;r   c                F    U R                  U5      nUR                  X5      $ r   )r&   text_path_exr   textr"   r1   r%   s        r   get_text_path!UnifiedTextRenderer.get_text_path5   s#     i0))$;;r   c                F    U R                  U5      nUR                  X5      $ r   )r&   text_glyph_pathsr6   s        r   get_text_glyph_paths(UnifiedTextRenderer.get_text_glyph_paths;   s#     i0--d??r   c                F    U R                  U5      nUR                  X5      $ r   )r&   text_width_exr6   s        r   get_text_line_width'UnifiedTextRenderer.get_text_line_widthA   s#     i0**4<<r   )r   N)returnNone)r"   fonts.FontFacerB   zfonts.AbstractFont)r"   rD   rB   bool)r   )r"   rD   r1   floatrB   r   )r7   strr"   rD   r1   rF   rB   r	   )r7   rG   r"   rD   r1   rF   rB   zlist[NumpyPath2d])r7   rG   r"   rD   r1   rF   rB   rF   )__name__
__module____qualname____firstlineno____doc__r   r&   r,   r2   r8   r<   r@   __static_attributes__ r   r   r   r      s    A$M
 >A<'<5:<	< IL<<$2<@E<	< IL@@$2@@E@	@  	== "= 	=
 
= =r   r   N)
__future__r   typingr   ezdxf.fontsr   ezdxf.fonts.font_measurementsr   text_rendererr   ezdxf.npshapesr	   r   rN   r   r   <module>rU      s(    #    : '*:=, :=r   