+
    ŒvjJ
  ã                   óŠ   € R t Rt^ RIHtHtHtHt R tRR ltRR lt	RR lt
R tR tRR ltR	 tR
 tR tR tR tR tR tR# )z'functions for 2D affine transformations)ÚcosÚsinÚtanÚradiansc                  ó   € R# )é   )r   é    r   r   r   r   © r	   ó    Ú`/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/reportlab/graphics/transform.pyÚnullTransformr      s   € ØÐr
   c                 ó   € ^^ ^ ^W3# ©r   r	   )ÚdxÚdys   &&r   Ú	translater      s   € Øˆq�!�Q˜ÐÐr
   c                 ó   € V ^ ^ V^ ^ 3# ©r   r	   )ÚsxÚsys   &&r   Úscaler      s   € Ø��1�b˜!˜QÐÐr
   c                 óR   € \        V 4      p\        V4      p\        V4      pWTV) WQV3# ©N)r   r   r   )ÚangleÚcxÚcyÚaÚsinaÚcosas   &&&   r   Úrotater      s.   € Ü�‹€AÜˆq‹6€DÜˆq‹6€DØ˜˜˜t¨Ð,Ð,r
   c                 ó6   € ^^ \        \        V 4      4      ^^ ^ 3# r   ©r   r   ©r   s   &r   ÚskewXr#   #   s   € Øˆq”#”g˜e“nÓ% q¨!¨QÐ/Ð/r
   c                 ó6   € ^\        \        V 4      4      ^ ^^ ^ 3# r   r!   r"   s   &r   ÚskewYr%   &   s   € ØŒs”7˜5“>Ó" A q¨!¨QÐ/Ð/r
   c                 ód   € V'       d   \        \        V 4      \        V4      4      # \        V 4      # r   )Úmmultr#   r%   )ÚaxÚays   &&r   Úskewr*   )   s$   € ß	Ü”U˜2“Yœu R›yÓ)Ð)ä�R‹yÐr
   c           	     ó–  € V ^ ,          V^ ,          ,          V ^,          V^,          ,          ,           V ^,          V^ ,          ,          V ^,          V^,          ,          ,           V ^ ,          V^,          ,          V ^,          V^,          ,          ,           V ^,          V^,          ,          V ^,          V^,          ,          ,           V ^ ,          V^,          ,          V ^,          V^,          ,          ,           V ^,          ,           V ^,          V^,          ,          V ^,          V^,          ,          ,           V ^,          ,           3# )zA postmultiplied by Br	   )ÚAÚBs   &&r   r'   r'   /   sà   € ð ˆa�D��1•�I˜˜!�˜Q˜q�T�	Õ!Øˆa�D��1•�I˜˜!�˜Q˜q�T�	Õ!Øˆa�D��1•�I˜˜!�˜Q˜q�T�	Õ!Øˆa�D��1•�I˜˜!�˜Q˜q�T�	Õ!Øˆa�D��1•�I˜˜!�˜Q˜q�T�	Õ! A a¥DÕ(Øˆa�D��1•�I˜˜!�˜Q˜q�T�	Õ! A a¥DÕ(ð*ð *r
   c                 ó   € \        V 4      pV^8X  d   \        V ^,          V ^ ,          4      # V^8”  d3   \        \        V R,          !  \        V ^,          V ^ ,          4      4      # V^8X  d
   V ^ ,          # \        4       # )zñ
given transform matrices in the order they should be applied generate
a combined transform.

combineTransforms(T0,T1,T2) == mmult(T2,mmult(T1,T0))
                            == T2*T1*T0
so that T0 is applied first, then T1 and finally T2.
:é   NN)Úlenr'   ÚcombineTransformsr   )ÚTÚnTs   * r   r1   r1   =   sx   € ô 
ˆQ‹€Bà " A¤ŒE�!�A•$�q˜•tÓðàGIÈ!Ät”Ô(¨!¨B­%Ñ0´%¸¸!½¸Q¸q½TÓ2BÓCðð ˜Qœ��1•ðô “ð	r
   c                óè  € \        V ^ ,          V ^,          ,          V ^,          V ^,          ,          ,
          4      pV ^,          V,          V ^,          ) V,          V ^,          ) V,          V ^ ,          V,          .p\        W"^ ,          ) V ^,          ,          V^,          V ^,          ,          ,
          V^,          ) V ^,          ,          V^,          V ^,          ,          ,
          .,           4      # )zBFor A affine 2D represented as 6vec return 6vec version of A**(-1))ÚfloatÚtuple)r,   ÚdetÚRs   &  r   Úinverser9   N   s®   € ô ��!•�Q�q•T•	˜A˜a�D  1¥�IÕ%Ó
&€CØ	
ˆ1�ˆc��A�a•D�5˜•9˜q �t˜e C�i¨¨1­¨c­Ð2€AÜ��q•T�E˜!˜A�$•J˜q �t A a¥D�yÕ(¨!¨A­$¨¨q°­t­°A°aµD¸¸1½µIÕ)=Ð>Õ>Ó?Ð?r
   c                óÎ   € V ^ ,          V^ ,          ,          V ^,          V^,          ,          ,           V ^,          V^ ,          ,          V ^,          V^,          ,          ,           3# )zBApply the homogenous part of atransformation a to vector v --> A*vr	   ©r,   Úvs   &&r   ÚzTransformPointr=   U   sG   € àˆa�D��1•�I�a˜•d˜1˜Q�4•iÕ  !¥ Q q¥T¥	¨!¨A­$¨q°­t­)Õ 3Ð4Ð4r
   c                ó  € V ^ ,          V^ ,          ,          V ^,          V^,          ,          ,           V ^,          ,           V ^,          V^ ,          ,          V ^,          V^,          ,          ,           V ^,          ,           3# )z*Apply transformation a to vector v --> A*vr	   r;   s   &&r   ÚtransformPointr?   Y   sY   € àˆa�D��1•�I�a˜•d˜1˜Q�4•iÕ  !¥Õ$ Q q¥T¨!¨A­$¥Y¨q°­t°A°aµD­yÕ%8¸¸1½Õ%=Ð>Ð>r
   c                 ó†   € V Uu. uF  p\        W4      NK  	  pp\        V\        4      '       d   \        V4      pV# u upi r   )r?   Ú
isinstancer6   )ÚmatrixÚVr<   Úrs   &&  r   ÚtransformPointsrE   ]   s:   € Ù+,Ó-©1 aŒ˜Ö	!©1€AÐ-Ü�!”E×Ò¤ a£˜AØ€Hùò 	.s   …>c                 ó4   € \        \        V 3R  lV4      4      # )c                 ó   € \        W4      # r   )r=   )ÚxrB   s   &&r   Ú<lambda>Ú"zTransformPoints.<locals>.<lambda>c   s	   € ¬O¸FÔ,Er
   )ÚlistÚmap)rB   rC   s   &&r   ÚzTransformPointsrM   b   s   € Ü” FÓEÀqÓIÓJÐJr
   N)r   r   r   r   r#   r%   r'   r1   r9   r=   r?   rE   rM   r   r   )r   r   )Ú__doc__Ú__all__Úmathr   r   r   r   r   r   r   r   r#   r%   r*   r'   r1   r9   r=   r?   rE   rM   r	   r
   r   Ú<module>rQ      s_   ðÙ -ð€÷ (Ó 'òô ô ô-ò0ò0ôò*òò"@ò5ò?òô
Kr
   