
    e                     0   d Z ddlZddlZ ej
                  d        ej                  de      Zdeddddf<   d	ed
ddf<   d	eddd
f<   d	edddf<   d	edddf<   dedddf<   dedddf<   e ej                   ej                  ddd            j                  dd      z  Zeej                  j                  d      z  Zdedddf<   deddddf<   deddddf<    ej                  d      Z ej                   ddd      Zej%                  d       dZej)                  dd      Zej-                  edd      Zej1                  ddd       Zej1                  d!dd       Z ej6                  e      Zej;                  e        ej6                         Zej;                  e       ej?                  d"       ej?                  d"       ejA                          ejA                          g Z!e!jE                   ejF                  ddgddgd#$             e!d%   jI                  ddgd&d&g       e!jE                   ejJ                  dd'gdd(gd	d)*             e!jE                   ejL                  d(dgdd+$             e!jE                   ejN                  dd,gdd'gd'd,ggd	d-*             e!jE                   ejP                  d'dgd.dgd/$             e!jE                   ejR                  d(dgddgd0$             e!jE                   ejT                  d(d'gd,d.gd'd1ggd2d3             d4 Z+e!D ].  Z,e,jZ                  j]                  e+       ej;                  e,       0  e+e!d%          d5Zej)                  dd      Z/e/j-                  edd      Z0e/j1                  ddd       Z1 ejT                  ddgddgdd.gd.dggd6      Z2e1j;                  e2        ejT                  dd7gdd8gdd9ggd:6      Z3e1j;                  e3       e1j?                  d"       e1jA                          d;Zej)                  dd      Z4e4j-                  edd      Z5e4j1                  ddd       Z6 ejn                  ddgddg      Z8e6j;                  e8       e8js                  dd&gd&d&g       e8js                  dd&gd&d&g       e8js                  d&dgd&dg       e8js                  d&dgd&dg       e8js                  ddgddg       e8js                  ddgddg        ejn                  ddgddg      Z:e6j;                  e:       e:jI                  ddgd&d&g       e:jI                  ddgd&d&g       e:jI                  ddgddg       e:jI                  ddgddg       e:jw                  dd&gd&d&g       e:jw                  d<dgd=d>g       e6j?                  d"       e6jA                          d?Zej)                  dd      Z<e<j-                  edd      Z=e<j1                  ddd       Z> ej~                         Z@e>j;                  e@        ejn                  ddgddgd:d@      ZAeAjI                  ddgd&d&g       eAjI                  ddgd&d&g        ej6                  e      ZBe>j;                  eA       eBj                  eA       e>j?                  d"       e>jA                          dA ZDeAj                  j]                  eD       eFdBk(  r ej                          yy)Cz
Demonstrates a variety of uses for ROI. This class provides a user-adjustable
region of interest marker. It is possible to customize the layout and 
function of the scale/rotate handles in very flexible ways. 
    Nz	row-major)imageAxisOrder)d   r   )dtype-   7         K   
   2      r      )size	      ,   0         .   zROI ExamplesT)i  i   )showr   borderzpyqtgraph example: ROI ExampleszData Selection From Image.<br>

Drag an ROI or its handles to update the selected image.<br>
Hold CTRL while dragging to snap to pixel boundaries<br>
and 15-degree rotation angles.
)rowcol)r   r   
lockAspect   xy)r   r   )peng      ?<   P   )r   r   )widthr   )r   r   Z   )r   r      )   r   )   r   (   )   r   )r   closedc                     t         j                  | j                  t        t              dt        j                         f       t        j                          y )Nr   )levels)img1bsetImagegetArrayRegionarrimg1amaxv1b	autoRange)rois    @/usr/lib/python3/dist-packages/pyqtgraph/examples/ROIExamples.pyupdater6   A   s2    	NN3%%c511cggi.NIMMO    ziUser-Modifiable ROIs<br>
Click on a line segment to add a new handle.
Right click on a handle to remove.
)r)   iiiFzBuilding custom ROI types<Br>
ROIs can be built with a variety of different handle types<br>
that scale and rotate the roi around an arbitrary center location
g333333?g?gffffff?zTransforming objects with ROI)	resizable	removablec                  6    t         j                  t               y )N)v4
removeItemr4 r7   r5   remover?      s    MM"r7   __main__)H__doc__numpynp	pyqtgraphpgsetConfigOptionsonesfloatr/   sinlinspacereshaperandomnormalmkQAppappGraphicsLayoutWidgetwsetWindowTitletext	addLayoutw1addLabellabel1
addViewBoxv1ar2   	ImageItemr0   addItemr,   disableAutoRanger3   roisappendRectROIaddRotateHandleLineROITriangleROIMultiRectROI
EllipseROI	CircleROIPolyLineROIr6   r4   sigRegionChangedconnectw2label2v2ar2ar2bw3label3v3ROIr3aaddScaleHandler3baddScaleRotateHandlew4label4r;   GridItemgr=   img4setParentItemr?   sigRemoveRequested__name__execr>   r7   r5   <module>r      s-       ; / bggj&BrE2b5L BE
ArE
BE
ArE
BE
ArE
 vrvvkbkk!R%&..q#6 6 ryyY' ' BGAbD"R%K AbD"R%K  biiBJtD   2 3
 [[QA[	Tqa	(mmqTm2mmqTm2S E  E    T    T   	 JBJJBx"bu5 6 R  !Ac
 + JBJJ2wRu= > NBNNB8RV4 5 OBOOb"XBx"b:!O P MBMM2r(RH%8 9 LBLL"bB87 8 NBNNRHr2hR9uTR S  C  (KK tBx  [[QA[	Tqa	(mmqTm2bnnqebWr"g2w7E C bnnqg3x"S25A C    T   [[QA[	Tqa	(]]qaD]1bffaURG 

3   As8c3Z (   As8c3Z (   C8c1X &   C8c1X &   Aq6Aq6 "   Aq6Aq6 "bffbVbW 

3   QFS#J '   QFS#J '   QFQF #   QFQF #   !SC: .   #qC: .   D   +[[QA[	Tqa	(]]qaD]1BKKM 

1RVVQqEC9>   Aa53* %   Aa53* %r||C 

2   2    D       f %zBGGI r7   