
    e                     F   d Z ddlmZ ddlZddlmZmZmZm	Z	 ddl
mZmZ dZ G d dej                        Z ej                  d        e	       Zej#                          ej%                  d	       ej'                  d
dd        e       Zej+                  ee       ej-                  dd       ej/                  e        e       Zej+                  edz  edz  d       ej/                  e        e       Zej/                  e       edk(  r ej6                          yy)z=
Demonstrate using QPainter on a subclass of GLGraphicsItem.
    N)
GLAxisItemGLGraphicsItem
GLGridItemGLViewWidget)QtCoreQtGui    c                   0     e Zd Z fdZd Zd Zd Z xZS )GLPainterItemc                 h    t         |           |j                  dd      }| j                  |       y )N	glOptionsadditive)super__init__popsetGLOptions)selfkwdsglopts	__class__s      B/usr/lib/python3/dist-packages/pyqtgraph/examples/GLPainterItem.pyr   zGLPainterItem.__init__   s,    +z2&!    c                 P   t        j                  t         j                        }t        j                  t         j                        }|j                  |j                  z  }t        j                  |j                         j                               }t        j                  | j                         j                               }t        j                         }|j                  |j                         |j                         |j!                         |j#                                 ||z  S N)GLglGetDoublevGL_MODELVIEW_MATRIXGL_PROJECTION_MATRIXTr   
QMatrix4x4raveltolistr   QRectFviewrectviewportleftbottomwidthheight)r   	modelview
projectionmvpr%   ndc_to_viewports         r   compute_projectionz GLPainterItem.compute_projection   s    OOB$:$:;	__R%<%<=
llY[[(syy{1134 }}TYY[--/0**,  dkkmTZZ\DKKM>Z$$r   c                     | j                          t        j                  | j                               }| j	                  |       |j                          y r   )setupGLStater   QPainterr$   drawend)r   painters     r   paintzGLPainterItem.paint    s7    ..-		'r   c           	         |j                  t        j                  j                  j                         |j                  t        j                  j                  j                  t        j                  j                  j                  z         | j                         j                         }t        j                  j                  }|j                  ||j                  |j                   z  d       |j                  ||j"                  |j$                  z  d       |j                  ||j"                  |j                   z  d       | j                         j'                         }g }|d   }|j)                  d|j+                         dd|j-                         dd|j/                         dd       d	D ]  }|j)                  | d
||   d        | j                         j1                         }|j)                  d|j+                         dd|j-                         dd|j/                         dd       dj3                  |      }	|j                  ||j                  |j$                  z  |	       | j5                         }
t6        dz  }t9        | |dz         D ]m  }t9        | |dz         D ]X  }|| k(  r|| k(  rt        j:                  ||d      }|
j=                  |      j?                         }|jA                  |dd       Z o y )NTRBLBRcenterz
center : (z.1fz, ))distancefov	elevationazimuthz : zxyz : (
      r   )!setPenr   QtGlobalColorwhitesetRenderHintsr   r2   
RenderHintAntialiasingTextAntialiasingr$   r%   AlignmentFlagdrawTextAlignTop
AlignRightAlignBottom	AlignLeftcameraParamsappendxyzcameraPositionjoinr/   SIZErange	QVector3DmaptoPointFdrawEllipse)r   r5   r%   afoptslinesr;   keyxyzinfoprojecthsizexiyivec3poss                   r   r3   zGLPainterItem.draw'   su   vyy,,223u~~88EEHaHaHrHrrsyy{!YY$$r{{R]]:DAr~~<dCr~~=tDyy{'')hz&((*S!1FHHJs3C2fhhjQTEUUVWX> 	5CLLC5DIc?34	5iik((*wsuuwsm2ceegc]"SUUWSMKLyyr{{R\\94@))+	a( 	/BUFE!G, /%<B5&Lr2q1kk$'002##CA./	/r   )__name__
__module____qualname__r   r/   r6   r3   __classcell__)r   s   @r   r   r      s    "
% /r   r   zGLPainterItem Examplez pyqtgraph example: GLPainterItem2   Z   )r=   r?   r@   rC   rB   __main__)__doc__	OpenGL.GLr   	pyqtgraphpgpyqtgraph.openglr   r   r   r   pyqtgraph.Qtr   r   rY   r   mkQAppglvshowsetWindowTitlesetCameraPositiongriditemsetSize
setSpacingaddItemaxisitem	paintitemrk   exec r   r   <module>r      s     Q Q &	:/N11 :/z 
		
! "n 
   5 6   rR  ;<   t    Aq  H <   aa # H O	 I zBGGI r   