
    kf                        d dl mZmZmZ d7dZd7dZ	 	 d8dZ G d d	          Zd
 Z	 	 	 d9dZ	d dl
mZ edz  Zdez  Zdez  Zd Zd Zd Zd ZdZdez
  Z G d d          Zd Zd:dZedk    rd dl mZ d dlmZmZ  edd          Z eedddd d!d!ee"	  	          eed#d$dd%d!d!ee"	  	         e                    d&gd'd()            e eg d*g d+g d,g                      e ed-d.gd/d0gg                      e ed1d.gd2d0gg                      e ed3d4gd0d5gg                      e eg d*d3d4gg d6g                     dS dS );    )DrawingPolygonLineN皙?c                 8    |ddl m} | r || d|z
            }|S )Nr   )Blacker   )reportlab.lib.colorsr   )colshdshadingr   s       a/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/reportlab/graphics/charts/utils3d.py
_getShadedr      s8    
{000000,ggc!G),,J    c                 8    |ddl m} | r || d|z
            }|S )Nr   )Whiterr	   )r
   r   )r   r   lightingr   s       r   _getLitr   	   s8    
{//////,ffS8,,Jr   r	   c                    t          |d |          }t          |d |dz            }| |	|
|fd}t          ||          }|s|r*||k    r ||||||||            ||||||||           |                     t          ||||||||f|	|
|d                     |s|r,|                     t	          |||||
|	p|                     d S d S )Ng       @c
                 |    |                     t          | || |z   ||z   ||z   ||z   ||f|||	d                     d S )Nr	   )strokeWidthstrokeColor	fillColorstrokeLineJoin)addr   )
x1x2y1y2xoffyoffGr   r   r   s
             r   _add_3d_barz!_draw_3d_bar.<locals>._add_3d_bar   sh    	gr"bgbgr$wr$w2F#	abd d d 	e 	e 	e 	e 	er   )r   r	   )r   r   r   r   )r   r   )r   maxr   r   r   )r"   r   r   y0yhighxdepthydepthr   fillColorShadedr   r   r   fillColorShadedTopr#   usds                  r   _draw_3d_barr,      sS    !488O#Id73;?? K[T]e e e e
 b%..C T Tu99KRUFFoVVVVBCff@RSSSSEE'2bBr%51[I]^` ` ` a a a  l l	dBR+;KiZijjjkkkkkl lr   c                       e Zd ZddZdS )_YStripr   c                 j    || _         || _        || _        || _        t	          |||          | _        d S N)r%   r   sloper   r   r)   )selfr%   r   r1   r   r)   r   s          r   __init__z_YStrip.__init__)   s8    
"))OGLLr   N)r   )__name__
__module____qualname__r3    r   r   r.   r.   (   s.        M M M M M Mr   r.   c                 .    | || |z   ||z   ||z   ||z   ||gS r0   r7   )x0r   r%   r   r    r!   s         r   _ystrip_polyr:   0   s)    r"T'"T'"T'"T'"R88r   c                    t          ||z
            }||z  }||z  }|dk    rdp| t          |          z  }t          ||z
            }|dk    rdp||z
  |z  }||k    rt          |	|
|          p|	}||z  }||z  }d}|||fg}n||z
  dz  ||z
  dz  z   dz  }||z  }||k     r||fg}nt          |t          |          z            dz   }t          ||z
            |z  }t          ||z
            |z  }g }|j        }t          d|          D ]}  |||| z  z   ||| z  z   f           | j        }||z   }!||z   }"|D ]I\  }}#||z   }$|#|z   }%t          t          |!|$|"|%||          |||          }& |d|||!|"|&f           |$}!|%}"Jd S )Nr   gP.5_g333333?         ?r	   )r   r   r   )	absfloatr   intappendranger   r   r:   )'r"   r9   r   r%   r   z0z1theta_xtheta_yr   r)   	tileWidthr   r   strokeDashArrayr   zwidthr'   r(   depth_slopexr1   czy0zx0tileStrokeWidthDTndxdyaix_0y_0yx_1y_1Ps'                                          r   _make_3d_line_infor]   4   s*   
 BZZFG^FG^F19&?6'%--*?KbeAqDNU'r"uaiEkKj?7KKXyA
W*C
W*COWIeaZB
"S(9$Y;;R	AAAeI&&&'')Ar"uaBr"uaBAA1QZZ % %2bd72bd7#$$$$	A
S&C
S&C  !eeLc3VVDD !qoO O O	1R3s1
 r   )pir=   r<   g     f@c                     | t           z  S r0   _180_pi)angles    r   _2radrc   g   s    =r   c                 :    | t           z  } | dk     r
| t           z  } | S )Nư)_2pi)radianss    r   mod_2pirh   j   s!    nGu}}gogNr   c                     | t           z  S r0   r`   )os    r   _2degrk   o   s    W9r   c                 &    | dz  } | dk     r| dz  } | S )Nih  re   r7   rU   s    r   _360rn   r   s!    HAwwSHr   :0yE>c                   $    e Zd Zd Zd ZeZd ZdS )_Segmentc                 r   ||         }||dz
           d         }||dz
           d         }||         d         }||         d         }||k     r||||f\  }}}}t          ||z
            | _        t          ||z
            | _        || _        || _        || _        || _        || _        || _        || _	        d S )Nr	   r   )
r?   rU   br9   r   r%   r   seriesrV   s)	r2   ru   rV   dataSr9   r%   r   r   s	            r   r3   z_Segment.__init__z   s    GqsVAYqsVAYqT!WqT!Wb55R2+KBr"R r"ur"ur   c           	      H    d| j         d| j        d| j        d| j        d	S )Nz[(,z),(z)])r9   r%   r   r   )r2   s    r   __str__z_Segment.__str__   s+     &*gggdgggdgggdgggFFr   c                    | j         }|j         }||k    sJ || j        k    rdS |j        | j        k    r|j        | j        dz
  | j        dz   fv rdS | j        }| j        }|j        }|j        }||z  ||z  z
  }	d|	cxk     rdk     rn ndS ||z
  }
| j        |j        z
  }||z  ||
z  z
  |	z  }||z  ||
z  z
  |	z  }|dk     s|dk    s|dk     s|dk    rdS |||z  z   }| j        ||z  z   }t          |cxk     rt          k     r,n n)| j        | j        ||f}||vr|	                    |           t          |cxk     rt          k     r/n dS |j        |j        ||f}||vr|	                    |           dS dS dS )z4try to find an intersection with _Segment o
        r	   Ng:0yEro   r   )
r9   r   ru   rV   rU   rs   r%   _ZERO_ONErA   )r2   rj   Ir9   ox0rU   rs   oaobdetrS   rT   uourK   rY   ts                    r   	intersectz_Segment.intersect   s    Wd3wwwwtw;;qq3;;1346!8DF1H"555vvFFSSdRTk>>>>T>>>>>66#XWqt^URU]CdQrTk3Q33!A##AAvv1HGacM<<<<4<<<<<tva!Azz188A;;;====D======AC!AzzAHHQKKKKK =zr   N)r4   r5   r6   r3   rz   __repr__r   r7   r   r   rq   rq   y   sK          *G G G H( ( ( ( (r   rq   c                 N    | j         | j        | j        | j        | j        | j        fS r0   )r9   r   r%   r   ru   rV   rm   s    r   _segKeyr      s!    Dad14AC((r   c                 b   g }|j         }t          t          |                     D ]r}| |         }|st          |          }|dk    r#t          d|          D ]>}t          |||           }|j        t          |j                  z   |k    r ||           ?s|                    t                     g }	t          |          }t          d|dz
            D ]B}||         }t          |dz   |          D ]$}
|	                    ||
         |	          dk    r n%C|	                                 |	S )aV  
    data is a sequence of series
    each series is a list of (x,y) coordinates
    where x & y are ints or floats

    find_intersections returns a sequence of 4-tuples
        i, j, x, y

    where i is a data index j is an insertion position for data[i]
    and x, y are coordinates of an intersection of series data[i]
    with some other series. If correctly implemented we get all such
    intersections. We don't count endpoint intersections and consider
    parallel lines as non intersecting (even when coincident).
    We ignore segments that have an estimated size less than small.
    r	   )keyr   )
rA   rB   lenrq   rU   r>   rs   sortr   r   )rv   smallrw   rU   ru   dsrR   rV   segr~   js              r   find_intersectionsr      sD   $ 	A	A3t99 / /!W8GGa44q 	/ 	/A1Qt$$CuSZZ&&#	/ FFwF
AAA1QqS\\ - -aDqs1 	- 	-A{{1Q4""A%%uu%FFHHHHr   __main__)r   )	lightgreypinki,     
      2      )r   r      (   -   pdf.r,   )formatsoutDirfnRoot))r   r=   )r	   r=   )r=   r   )r=   r	   ))g:?皙?r   r   r   皙?r   r   r	   r	   )r   r	   r   r   r	   r   r   r   r   r   )r   r   r   g?r   r   r   )r   r   r   )Nr   )NNNr	   r   )Nr	   NNNr   )r   )reportlab.graphics.shapesr   r   r   r   r   r,   r.   r:   r]   mathr^   _pi_2rf   ra   rc   rh   rk   rn   r|   r}   rq   r   r   r4   r
   r   r   rP   saveprintr7   r   r   <module>r      sU   < < < < < < < < < <       159<l l l l0M M M M M M M M9 9 9 @AHL	, , , ,\      
3tR    
    
 	w5( 5( 5( 5( 5( 5( 5( 5(n) ) )$ $ $ $L Z11111144444444CALBBAqI4PPPPLBBAqI4PPPPFFE7#^F<<<	E

???@s@s@s  uN  uN  uN  O  P  P  Q  Q  Q	E

z:68LM
N
NOOO	E

z:6Z8PQ
R
RSSS	E

uUmYw,?@
A
ABBB	E

???uNkNkNkl
m
mnnnnn r   