o
    h#                     @   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   ^/var/www/html/optinet_system/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   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|}||| |||fS N)r   r   r   )anglecxcy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   |rt t| t|S t| S r   )r   r   r   )ax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,   detRr   r   r   r   <   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	   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   r2   r   r   r   r
   G   s   Pr
   c                    s(    fdd|D }t |trt|}|S )Nc                    s   g | ]}t  |qS r   )r
   ).0r3   matrixr   r   
<listcomp>L   s    z#transformPoints.<locals>.<listcomp>)
isinstancer/   )r6   Vrr   r5   r   r   K   s   r   c                 C   s   t t| fdd|S )Nc                 S   s
   t || S r   )r	   )xr6   r   r   r   <lambda>Q   s   
 z"zTransformPoints.<locals>.<lambda>)listmap)r6   r9   r   r   r   r   P   s   r   N)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     



