U
    '1e¤  ã                   @   s„   d Z dZddlmZmZmZmZ dd„ Zdd„ Zdd	„ Z	d
d„ Z
dd„ Z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-109iniqw/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   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|ƒ}||| |ddfS r   )r   r   r   )ÚangleÚ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È   | 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   6   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	   =   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
   A   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>F   s     z#transformPoints.<locals>.<listcomp>)Ú
isinstancer"   )r(   ÚVÚrr   r'   r   r   E   s    
 r   c                 C   s   t t| fdd„|ƒƒS )Nc                 S   s
   t || ƒS )N)r	   )Úxr(   r   r   r   Ú<lambda>K   ó    z"zTransformPoints.<locals>.<lambda>)ÚlistÚmap)r(   r+   r   r   r   r   J   s    r   N)Ú__doc__Ú__all__Úmathr   r   r   r   r   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   Ú<module>   s   