HEX
Server: LiteSpeed
System: Linux standart9.isimtescil.net 3.10.0-962.3.2.lve1.5.26.7.el7.x86_64 #1 SMP Wed Oct 2 07:53:12 EDT 2019 x86_64
User: karalev (5310)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyo
�
[�3Lc@s6dZddlmZmZmZmZddl	m
Z
mZmZm
Z
ddlmZddlmZddlmZddlmZddlZddlZddlZddlZd	�Zd
�Zd�Zdejfd
��YZddd�Z dej!fd��YZ"ddd�Z#ddd�Z$ddd�Z%defd��YZ&ddd�Z'defd��YZ(de(fd��YZ)d�Z*ddd�Z+ddd�Z,d e
fd!��YZ-ddd"�Z.d#efd$��YZ/ddd%�Z0d&�Z1d'�Z2d(�Z3d)�Z4d*�Z5dS(+sx
Module containing 3D artist code and functions to convert 2D
artists into 3D versions which can be added to an Axes3D.
i����(tlinesttexttpathtcolors(t
CollectiontLineCollectiontPolyCollectiontPatchCollection(tScalarMappable(tPatch(t	Normalize(titerableNcCs+|dd}|dkr'|d}n|S(s"Return angle between -180 and +180ihi�((ta((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyt
norm_angles
cCs+|dd}|dkr'|d}n|S(s Return angle between -90 and +90i�iZ((R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytnorm_text_angles
cCs�|dkrtjd�S|dkr2tjd	�S|dkrKtjd
�S|dkrdtjd�St|�r�t|�dkr�|Std��dS(Ntxiitytzis2'x', 'y', 'z', None or vector of length 3 expected(iii(iii(iii(iii(tnptarraytNoneRtlent
ValueError(tzdir((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytget_dir_vector&s



tText3DcBs>eZdZdddddd�Zddd�Zd�ZRS(sE
    Text object with 3D position and (in the future) direction.
    itRcKs0tjj|||||�|j||�dS(s�
        *x*, *y*, *z*  Position of text
        *text*         Text string to display
        *zdir*         Direction of text

        Keyword arguments are passed onto :func:`~matplotlib.text.Text`.
        N(tmtexttTextt__init__tset_3d_properties(tselfRRRRRtkwargs((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR9scCs@|j�\}}tj|||f�|_t|�|_dS(N(tget_positionRRt_position3dRt_dir_vec(RRRRR((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRDscCs�tj|j|j|jg|j�}|dd|dd}|dd|dd}|dkr}|dkr}d}ntjtj||��}|j|dd|ddf�|j	t
|��tjj
||�dS(Niig(tproj3dtproj_trans_pointsR"R#tMtmathtdegreestatan2tset_positiontset_rotationRRRtdraw(Rtrenderertprojtdxtdytangle((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR,Is	#(t__name__t
__module__t__doc__RRR,(((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR4siRcCst|_|j||�dS(s"Convert a Text to a Text3D object.N(Rt	__class__R(tobjRR((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyt
text_2d_to_3dWs	tLine3DcBs/eZdZd�Zddd�Zd�ZRS(s
    3D line object.
    cOs2tjj|gg||�|||f|_dS(sU
        Keyword arguments are passed onto :func:`~matplotlib.lines.Line2D`.
        N(RtLine2DRt_verts3d(RtxstystzstargsR ((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRasiRcCsg|j�}|j�}y)t|�}g|D]}|^q.}WnnXt||||�|_dS(N(t	get_xdatat	get_ydatatfloattjuggle_axesR:(RR=RR;R<R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRhscCs]|j\}}}tj||||j�\}}}|j||�tjj||�dS(N(R:R$tproj_transformR&tset_dataRR9R,(RR-txs3dtys3dtzs3dR;R<R=((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR,ss$(R2R3R4RRR,(((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR8\s	cCst|_|j||�dS(s"
    Convert a 2D line to 3D.
    N(R8R5R(tlineR=R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyt
line_2d_to_3dys	c
Cs�t|�s(tjt|��|}ng}|jdtdt�}x?t||�D].\\\}}}}|j|||f�qVWg|D]$\}}}t||||�^q�}	|	S(sConvert a path to a 3D segment.tsimplifytcurves(	RRtonesRt
iter_segmentstFalsetziptappendRB(
RR=RtsegtpathsegsRRtcodeRtseg3d((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytpath_to_3d_segment�s(1cCskt|�s(tjt|��|}ng}x6t||�D]%\}}|jt|||��q>W|S(s@
    Convert paths from a collection object to 3D segments.
    (RRRLRRORPRU(tpathsR=RtsegmentsRtpathz((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytpaths_to_3d_segments�stLine3DCollectioncBs5eZdZd�Zd�Zd�Zed�ZRS(s#
    A collection of 3D lines.
    cOstj||||�dS(sc
        Keyword arguments are passed onto :func:`~matplotlib.collections.LineCollection`.
        N(RR(RRWR>R ((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR�scCs||_tj|g�dS(s!
        Set 3D segments
        N(t_segments3dRtset_segments(RRW((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR\�s	c	Cs�g|jD]}tj||j�^q
}g|D]\}}}t||�^q2}tj||�d}x,|D]$\}}}t|t|��}qsW|S(sB
        Project the points according to renderer matrix.
        ge��A(R[R$R%R&RORR\tmin(	RR-tpointstxyslistR;R<R=tsegments_2dtminz((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytdo_3d_projection�s(+cCs*|r|j|�ntj||�dS(N(RbRR,(RR-tproject((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR,�s(R2R3R4RR\RbRNR,(((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRZ�s
			cCs2t|j�||�}t|_|j|�dS(s6Convert a LineCollection to a Line3DCollection object.N(RYt	get_pathsRZR5R\(tcolR=Rt
segments3d((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytline_collection_2d_to_3d�s	tPatch3DcBsJeZdZd�Zddd�Zd�Zd�Zd�Zd�ZRS(	s
    3D patch object.
    cOsK|jdg�}|jdd�}tj|||�|j||�dS(NR=RR(tpopR	RR(RR>R R=R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR�siRcCs~t|�s(tjt|��|}ngt||�D]'\\}}}t||||�^q8|_tj|�|_	dS(N(
RRRLRRORBt
_segment3dR	t
get_facecolort_facecolor3d(RtvertsR=RRRR((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR�s
=cCs|jS(N(t_path2d(R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytget_path�scCs|jS(N(t_facecolor2d(R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRk�sc
Csv|j}t|�\}}}tj||||j�\}}}}	tjt||��|_|j|_	t
|�S(N(RjROR$tproj_transform_clipR&tmpathtPathRnRlRpR](
RR-tsR;R<R=tvxstvystvzstvis((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRb�s	'cCstj||�dS(N(R	R,(RR-((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR,�s(	R2R3R4RRRoRkRbR,(((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRh�s					tPathPatch3DcBs/eZdZd�Zddd�Zd�ZRS(s
    3D PathPatch object.
    cKsK|jdg�}|jdd�}tj||�|j|||�dS(NR=RR(RiR	RR(RRR R=R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR�siRcCs/tj||jd|d|�|j|_dS(NR=R(RhRtverticestcodest_code3d(RRR=R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR�sc
Cs||j}t|�\}}}tj||||j�\}}}}	tjt||�|j�|_|j	|_
t|�S(N(RjROR$RqR&RrRsR|RnRlRpR](
RR-RtR;R<R=RuRvRwRx((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRb�s	'!(R2R3R4RRRb(((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRy�s	cCsC|j�}|j�}|j|�}t|�r;|dSgSdS(s2Return a list of vertices for the path of a patch.iN(tget_patch_transformRotto_polygonsR(tpatchttransRtpolygons((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytget_patch_vertsscCs,t|�}t|_|j|||�dS(s$Convert a Patch to a Patch3D object.N(R�RhR5R(RRRRm((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytpatch_2d_to_3ds	cCsG|j�}|j�}|j|�}t|_|j|||�dS(s,Convert a PathPatch to a PathPatch3D object.N(RoR}ttransform_pathRyR5R(t	pathpatchRRRR�Rr((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytpathpatch_2d_to_3ds
	tPatch3DCollectioncBs2eZdZd�Zd�Zd�Zd�ZRS(s%
    A collection of 3D patches.
    cs)tj�||��fd��_dS(Ncstj�|�S(N(RR,(R(R(sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyt<lambda>$s(RRt	_old_draw(RR>R ((RsM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR"scCsRt|j��\}}t||||�|_|j�|_|j�|_dS(N(ROtget_offsetsRBt
_offsets3dRkRlt
get_edgecolort_edgecolor3d(RR=RR;R<((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR&sc	Cs�|j\}}}tj||||j�\}}}}d|_|jt|j|��|j	t|j
|��tj|t
||��t|�S(N(R�R$RqR&Rt_alphatset_facecolorstzalphaRltset_edgecolorsR�Rtset_offsetsROR](	RR-R;R<R=RuRvRwRx((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRb,s'	cCs|j|�dS(N(R�(RR-((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR,7s(R2R3R4RRRbR,(((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR�s
			cCs)|j|_t|_|j||�dS(s8Convert a PatchCollection to a Patch3DCollection object.N(R,R�R�R5R(ReR=R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytpatch_collection_2d_to_3d:s	tPoly3DCollectioncBs�eZdZd�Ziejd6ejd6ejd6Zd�Z	d�Z
ed�Zd�Z
d	�Zd
�Zd�ZeZd�ZeZd
�ZeZd�ZeZd�ZRS(s&
    A collection of 3D polygons.
    cOs3|j|jdt��tj||||�dS(s

        Create a Poly3DCollection.

        *verts* should contain 3D coordinates.

        Keyword arguments:
        zsort, see set_zsort for options.

        Note that this class does a bit of magic with the _facecolors
        and _edgecolors properties.
        tzsortN(t	set_zsortRitTrueRR(RRmR>R ((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRIs
taverageR]tmaxcCsl|tkrd}n|tk	rG||jkr@|j|}qMtSnd}||_d|_||_dS(s�
        Set z-sorting behaviour:
            boolean: if True use default 'average'
            string: 'average', 'min' or 'max'
        R�N(R�RNt_zsort_functionsRt_zsortt
_sort_zpost
_zsortfunc(RR�t	zsortfunc((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR�`s			cCs�d}d}g}g}xD|D]<}|j|�|t|�}|j||f�|}qWt|�\}}}	tjt|��}
tj|||	|
g�|_||_dS(sOptimize points for projectioniN(	textendRRPRORRLRt_vect_segis(RRftsiteitsegisR^tpR;R<R=RL((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyt
get_vectorvs


cCs$|j|�tj|g|�dS(sSet 3D vertices.N(R�Rt	set_verts(RRmtclosed((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR��s
cCs>d|_|jt�tj|�|_tj|�|_dS(N(	RR�R�R�Rtget_facecolorst
_facecolors3dtget_edgecolorst
_edgecolors3d(R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR�s	
cCs
||_dS(s&Set the position to use for z-sorting.N(R�(Rtval((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyt
set_sort_zpos�scCs�|jdk	r(|j�|j|_ntj|j|j�\}}}g|j	D]0\}}|||!|||!|||!f^qS}|j}|j
}	t|�t|�kr�|jt|�dd�}nt|	�t|�kr"t|	�dkr|}	n|	jt|�dd�}	n|j
r�gt|||	�D]<\\}
}}}
}|j|�t|
|�|
|f^q>}|jdd��n	td�g|D]\}}}
}|^q�}tj||�g|D]\}}}
}|
^q�|_t|j
�t|�krBg|D]\}}}
}|^q|_n|j
|_|jdk	r�tjdgdg|jgdgg�}tj||j�}|ddStj|�SdS(	s<
        Perform the 3D projection for this object.
        taxisitcmpcSst|d|d�S(Ni(R�(RR((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR��stwhoopsiiN(t_ARtupdate_scalarmappablet_facecolorsR�R$tproj_transform_vecR�R&R�R�RtrepeatR�ROR�tsortRRR�t
_facecolors2dt
_edgecolors2dR�RRR](RR-ttxsttysttzsR�R�txyzlisttcfacetcedgeR;R<R=tfctect
z_segments_2dRRtR`tzvectztrans((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRb�s<
!=				R	%(+*cCs&tj||�tj|�|_dS(N(Rt
set_facecolorRkR�(RR((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR��scCs&tj||�tj|�|_dS(N(Rt
set_edgecolorR�R�(RR((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR��scCs|jS(N(R�(R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR��scCs|jS(N(R�(R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR��scCstj||�S(N(RR,(RR-((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR,�s(R2R3R4RRR�R]R�R�R�R�R�R�RR�RbR�R�R�R�R�RkR�R�R,(((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR�Ds*	


					0				cCs<t|j�||�}t|_|j|�|j�dS(s6Convert a PolyCollection to a Poly3DCollection object.N(RYRdR�R5R�R(ReR=Rtsegments_3d((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytpoly_collection_2d_to_3d�s	
cCsf|dkr|||fS|dkr2|||fS|ddkrUt||||�S|||fSdS(s�
    Reorder coordinates so that 2D xs, ys can be plotted in the plane
    orthogonal to zdir. zdir is normally x, y or z. However, if zdir
    starts with a '-' it is interpreted as a compensation for rotate_axes.
    RRit-N(trotate_axes(R;R<R=R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyRB�s

cCsu|dkr|||fS|dkr2|||fS|dkrK|||fS|dkrd|||fS|||fSdS(s�
    Reorder coordinates so that the axes are rotated with zdir along
    the original z axis. Prepending the axis with a '-' does the
    inverse transform, so zdir can be x, -x, y, -y, z or -z
    Rs-xRs-yN((R;R<R=R((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR��s



cCseyVt|�dks't|�dkrUt|d�r;tSt|dd�rUtSnWntSXtS(Niiit	__float__(RRRNthasattrR�(tc((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pytiscolors$cCs�t|�td�kr-tjj|�}nt|�rD|g|St|�|krZ|St|�rq|g|St|�dkr�ddddgg|St|d�r�|dg|Std|�dS(s=Stretch the color argument to provide the required number numtstringisunknown color format %sN(ttypetmcolorstcolorConvertertto_rgbaR�RR(R�tnum((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyt
get_colorsscCs�t|t|��}tt|�t|��}d||�d}gt||�D]2\}}|d|d|d|d|f^qT}|S(s6Modify the alphas of the color list according to depthigffffff�?iii(R�RR
R]R�RO(RR=tnormtsatsR�Rt((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyR�"s
H(6R4t
matplotlibRRRRRrRR�tmatplotlib.collectionsRRRRt
matplotlib.cmRtmatplotlib.patchesR	tmatplotlib.colorsR
tmatplotlib.cbookRtwarningstnumpyRR'R$R
RRRRR7R9R8RIRURYRZRgRhRyR�R�R�R�R�R�R�RBR�R�R�R�(((sM/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/art3d.pyt<module>	sF""			#

&&	
	
�