o
    >e                     @   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   ]/var/www/html/humari/django-venv/lib/python3.10/site-packages/reportlab/graphics/transform.pyr      s   r   c                 C   s   dddd| |fS Nr   r   r   )dxdyr   r   r   r         r   c                 C   s   | dd|ddfS Nr   r   )sxsyr   r   r   r      r   r   c                 C   s*   t | }t|}t|}||| |ddfS r   )r   r   r   )angleasina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   "      r   c                 C   s   dt t| ddddfS r   r    r!   r   r   r   r   %   r"   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'   detRr   r   r   r   6   s   $0L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   P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*   )r1   Vrr   r0   r   r   E   s   r   c                 C   s   t t| fdd|S )Nc                 S   s
   t || S )N)r	   )xr1   r   r   r   <lambda>K   s   
 z"zTransformPoints.<locals>.<lambda>)listmap)r1   r4   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    