U
    9ßôg#  ã                   @   s”   d Z dZddlmZmZmZmZ dd„ Zd dd„Zd!d	d
„Z	d"dd„Z
dd„ Zdd„ Zd#dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )$z'functions for 2D affine transformations)ÚnullTransformÚ	translateÚscaleÚrotateÚskewXÚskewYÚmmultÚinverseÚzTransformPointÚtransformPointÚtransformPointsÚzTransformPointsé    )ÚcosÚsinÚtanÚradiansc                   C   s   dS )N)é   r   r   r   r   r   © r   r   r   ú@/tmp/pip-unpacked-wheel-w2r18j3o/reportlab/graphics/transform.pyr      s    r   c                 C   s   dddd| |fS ©Nr   r   r   )ZdxZdyr   r   r   r      s    r   r   c                 C   s   | dd|ddfS )Nr   r   )ZsxZsyr   r   r   r      s    r   c                 C   s*   t | ƒ}t|ƒ}t|ƒ}||| |||fS ©N)r   r   r   )ÚangleZcxÚcyÚaZsinaZcosar   r   r   r      s    r   c                 C   s   ddt t| ƒƒdddfS r   ©r   r   ©r   r   r   r   r   "   s    r   c                 C   s   dt t| ƒƒddddfS r   r   r   r   r   r   r   %   s    r   c                 C   s"   |rt t| ƒt|ƒƒS t| ƒS d S r   )r   r   r   )ZaxZayr   r   r   Úskew(   s    r   c              	   C   sÈ   | d |d  | d |d   | d |d  | d |d   | d |d  | d |d   | d |d  | d |d   | d |d  | d |d   | d  | d |d  | d |d   | d  fS )zA postmultiplied by Br   é   r   é   é   é   r   )ÚAÚBr   r   r   r   .   s    &&ûr   c                 C   s    t | d | d  | d | d   ƒ}| d | | d  | | d  | | d | g}t||d  | d  |d | d   |d  | d  |d | d   g ƒS )zBFor A affine 2D represented as 6vec return 6vec version of A**(-1)r   r   r   r   r   r    )ÚfloatÚtuple)r!   ZdetÚRr   r   r   r   <   s    $0r   c                 C   s@   | d |d  | d |d   | d |d  | d |d   fS )zBApply the homogenous part of atransformation a to vector v --> A*vr   r   r   r   r   ©r!   Úvr   r   r   r	   C   s    r	   c                 C   sP   | d |d  | d |d   | d  | d |d  | d |d   | d  fS )z*Apply transformation a to vector v --> A*vr   r   r   r   r   r    r   r&   r   r   r   r
   G   s    r
   c                    s(   ‡ fdd„|D ƒ}t |tƒr$t|ƒ}|S )Nc                    s   g | ]}t ˆ |ƒ‘qS r   )r
   )Ú.0r'   ©Úmatrixr   r   Ú
<listcomp>L   s     z#transformPoints.<locals>.<listcomp>)Ú
isinstancer$   )r*   ÚVÚrr   r)   r   r   K   s    
 r   c                 C   s   t t| fdd„|ƒƒS )Nc                 S   s
   t || ƒS r   )r	   )Úxr*   r   r   r   Ú<lambda>Q   ó    z"zTransformPoints.<locals>.<lambda>)ÚlistÚmap)r*   r-   r   r   r   r   P   s    r   N)r   )r   )r   r   )r   )Ú__doc__Ú__all__Úmathr   r   r   r   r   r   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   Ú<module>   s   



