source: sasview/_modules/sas/guiframe/local_perspectives/plotting/masking.html @ a462c6a

gh-pages
Last change on this file since a462c6a was a462c6a, checked in by ajj, 9 years ago

Rebuild to fix index and modules docs

  • Property mode set to 100644
File size: 143.0 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>sas.guiframe.local_perspectives.plotting.masking &mdash; SasView 3.0.0 documentation</title>
10   
11    <link rel="stylesheet" href="../../../../../_static/default.css" type="text/css" />
12    <link rel="stylesheet" href="../../../../../_static/pygments.css" type="text/css" />
13   
14    <script type="text/javascript">
15      var DOCUMENTATION_OPTIONS = {
16        URL_ROOT:    '../../../../../',
17        VERSION:     '3.0.0',
18        COLLAPSE_INDEX: false,
19        FILE_SUFFIX: '.html',
20        HAS_SOURCE:  true
21      };
22    </script>
23    <script type="text/javascript" src="../../../../../_static/jquery.js"></script>
24    <script type="text/javascript" src="../../../../../_static/underscore.js"></script>
25    <script type="text/javascript" src="../../../../../_static/doctools.js"></script>
26    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27    <link rel="top" title="SasView 3.0.0 documentation" href="../../../../../index.html" />
28    <link rel="up" title="sas.guiframe" href="../../../guiframe.html" /> 
29  </head>
30  <body>
31    <div class="related">
32      <h3>Navigation</h3>
33      <ul>
34        <li class="right" style="margin-right: 10px">
35          <a href="../../../../../genindex.html" title="General Index"
36             accesskey="I">index</a></li>
37        <li class="right" >
38          <a href="../../../../../py-modindex.html" title="Python Module Index"
39             >modules</a> |</li>
40        <li><a href="../../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
41          <li><a href="../../../../index.html" >Module code</a> &raquo;</li>
42          <li><a href="../../../guiframe.html" accesskey="U">sas.guiframe</a> &raquo;</li> 
43      </ul>
44    </div> 
45
46    <div class="document">
47      <div class="documentwrapper">
48        <div class="bodywrapper">
49          <div class="body">
50           
51  <h1>Source code for sas.guiframe.local_perspectives.plotting.masking</h1><div class="highlight"><pre>
52<span class="sd">&quot;&quot;&quot;</span>
53<span class="sd">    Mask editor</span>
54<span class="sd">&quot;&quot;&quot;</span>
55<span class="c">################################################################################</span>
56<span class="c">#This software was developed by the University of Tennessee as part of the</span>
57<span class="c">#Distributed Data Analysis of Neutron Scattering Experiments (DANSE)</span>
58<span class="c">#project funded by the US National Science Foundation. </span>
59<span class="c">#</span>
60<span class="c">#If you use DANSE applications to do scientific research that leads to </span>
61<span class="c">#publication, we ask that you acknowledge the use of the software with the </span>
62<span class="c">#following sentence:</span>
63<span class="c">#</span>
64<span class="c">#This work benefited from DANSE software developed under NSF award DMR-0520547. </span>
65<span class="c">#</span>
66<span class="c">#copyright 2008, University of Tennessee</span>
67<span class="c">################################################################################</span>
68
69
70<span class="c">##Todo: cleaning up, improving the maskplotpanel initialization, and testing.</span>
71<span class="kn">import</span> <span class="nn">wx</span>
72<span class="kn">import</span> <span class="nn">sys</span>
73<span class="kn">import</span> <span class="nn">time</span>
74<span class="kn">import</span> <span class="nn">matplotlib.cm</span> <span class="kn">as</span> <span class="nn">cm</span>
75<span class="kn">import</span> <span class="nn">math</span>
76<span class="kn">import</span> <span class="nn">copy</span>
77<span class="kn">import</span> <span class="nn">numpy</span>
78<span class="kn">from</span> <span class="nn">sas.plottools.PlotPanel</span> <span class="kn">import</span> <span class="n">PlotPanel</span>
79<span class="kn">from</span> <span class="nn">sas.plottools.plottables</span> <span class="kn">import</span> <span class="n">Graph</span>
80<span class="kn">from</span> <span class="nn">binder</span> <span class="kn">import</span> <span class="n">BindArtist</span>
81<span class="kn">from</span> <span class="nn">sas.guiframe.dataFitting</span> <span class="kn">import</span> <span class="n">Data1D</span><span class="p">,</span> <span class="n">Data2D</span>
82<span class="kn">from</span> <span class="nn">boxMask</span> <span class="kn">import</span> <span class="n">BoxMask</span>
83<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">SlicerEvent</span>
84<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span>
85<span class="p">(</span><span class="n">InternalEvent</span><span class="p">,</span> <span class="n">EVT_INTERNAL</span><span class="p">)</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">lib</span><span class="o">.</span><span class="n">newevent</span><span class="o">.</span><span class="n">NewEvent</span><span class="p">()</span>
86
87<span class="n">DEFAULT_CMAP</span> <span class="o">=</span> <span class="n">cm</span><span class="o">.</span><span class="n">get_cmap</span><span class="p">(</span><span class="s">&#39;jet&#39;</span><span class="p">)</span>
88<span class="n">_BOX_WIDTH</span> <span class="o">=</span> <span class="mi">76</span>
89<span class="n">_SCALE</span> <span class="o">=</span> <span class="mf">1e-6</span>
90<span class="n">_STATICBOX_WIDTH</span> <span class="o">=</span> <span class="mi">380</span>
91
92<span class="c">#SLD panel size </span>
93<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;win32&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
94    <span class="n">PANEL_SIZE</span> <span class="o">=</span> <span class="mi">350</span>
95    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">0</span>
96<span class="k">else</span><span class="p">:</span>
97    <span class="n">PANEL_SIZE</span> <span class="o">=</span> <span class="mi">300</span>
98    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">1</span>
99   
100<span class="kn">from</span> <span class="nn">sas.data_util.calcthread</span> <span class="kn">import</span> <span class="n">CalcThread</span>
101
102<div class="viewcode-block" id="CalcPlot"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.CalcPlot">[docs]</a><span class="k">class</span> <span class="nc">CalcPlot</span><span class="p">(</span><span class="n">CalcThread</span><span class="p">):</span>
103    <span class="sd">&quot;&quot;&quot;</span>
104<span class="sd">    Compute Resolution</span>
105<span class="sd">    &quot;&quot;&quot;</span>
106    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
107                 <span class="nb">id</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>
108                 <span class="n">panel</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
109                 <span class="n">image</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
110                 <span class="n">completefn</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
111                 <span class="n">updatefn</span>   <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
112                 <span class="n">elapsed</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
113                 <span class="n">yieldtime</span>  <span class="o">=</span> <span class="mf">0.01</span><span class="p">,</span>
114                 <span class="n">worktime</span>   <span class="o">=</span> <span class="mf">0.01</span>
115                 <span class="p">):</span>
116        <span class="sd">&quot;&quot;&quot;</span>
117<span class="sd">        &quot;&quot;&quot;</span>
118        <span class="n">CalcThread</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">completefn</span><span class="p">,</span>
119                 <span class="n">updatefn</span><span class="p">,</span>
120                 <span class="n">yieldtime</span><span class="p">,</span>
121                 <span class="n">worktime</span><span class="p">)</span>
122        <span class="bp">self</span><span class="o">.</span><span class="n">starttime</span> <span class="o">=</span> <span class="mi">0</span>
123        <span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="nb">id</span> 
124        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span> <span class="o">=</span> <span class="n">panel</span>
125        <span class="bp">self</span><span class="o">.</span><span class="n">image</span> <span class="o">=</span> <span class="n">image</span>
126       
127       
128<div class="viewcode-block" id="CalcPlot.compute"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.CalcPlot.compute">[docs]</a>    <span class="k">def</span> <span class="nf">compute</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
129        <span class="sd">&quot;&quot;&quot;</span>
130<span class="sd">        excuting computation</span>
131<span class="sd">        &quot;&quot;&quot;</span>
132        <span class="n">elapsed</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">starttime</span>
133       
134        <span class="bp">self</span><span class="o">.</span><span class="n">complete</span><span class="p">(</span><span class="n">panel</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span> <span class="n">image</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">image</span><span class="p">,</span> <span class="n">elapsed</span><span class="o">=</span><span class="n">elapsed</span><span class="p">)</span>
135       
136        </div></div>
137<div class="viewcode-block" id="MaskPanel"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel">[docs]</a><span class="k">class</span> <span class="nc">MaskPanel</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>
138    <span class="sd">&quot;&quot;&quot;</span>
139<span class="sd">    Provides the Mask Editor GUI.</span>
140<span class="sd">    &quot;&quot;&quot;</span>
141    <span class="c">## Internal nickname for the window, used by the AUI manager</span>
142    <span class="n">window_name</span> <span class="o">=</span> <span class="s">&quot;Mask Editor&quot;</span>
143    <span class="c">## Name to appear on the window title bar</span>
144    <span class="n">window_caption</span> <span class="o">=</span> <span class="s">&quot;Mask Editor&quot;</span>
145    <span class="c">## Flag to tell the AUI manager to put this panel in the center pane</span>
146    <span class="n">CENTER_PANE</span> <span class="o">=</span> <span class="bp">True</span>
147    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">base</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> 
148                 <span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="nb">id</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">):</span>
149        <span class="n">kwds</span><span class="p">[</span><span class="s">&quot;style&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">DEFAULT_DIALOG_STYLE</span>
150        <span class="n">kwds</span><span class="p">[</span><span class="s">&quot;size&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Size</span><span class="p">(</span><span class="n">_STATICBOX_WIDTH</span><span class="o">*</span><span class="mf">0.8</span><span class="p">,</span> <span class="n">PANEL_SIZE</span><span class="p">)</span> 
151        <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">,</span>  <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">)</span>
152       
153        <span class="k">if</span> <span class="n">data</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
154            <span class="c">#Font size </span>
155            <span class="n">kwds</span> <span class="o">=</span> <span class="p">[]</span>
156            <span class="bp">self</span><span class="o">.</span><span class="n">SetWindowVariant</span><span class="p">(</span><span class="n">variant</span><span class="o">=</span><span class="n">FONT_VARIANT</span><span class="p">)</span>
157            <span class="bp">self</span><span class="o">.</span><span class="n">SetTitle</span><span class="p">(</span><span class="s">&quot;Mask Editor for &quot;</span> <span class="o">+</span> <span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
158            <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">base</span>
159            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">data</span>
160            <span class="bp">self</span><span class="o">.</span><span class="n">str</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">__str__</span><span class="p">()</span>
161            <span class="c">## mask for 2D</span>
162            <span class="bp">self</span><span class="o">.</span><span class="n">mask</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">mask</span>
163            <span class="bp">self</span><span class="o">.</span><span class="n">default_mask</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">mask</span><span class="p">)</span>
164            <span class="c">## masked data from GUI</span>
165            <span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span> <span class="o">=</span> <span class="bp">None</span>
166            <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span> <span class="bp">None</span>
167            <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">=</span> <span class="mi">5</span>
168            <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">interactive</span> <span class="o">=</span> <span class="bp">True</span>
169            <span class="c">## when 2 data have the same id override the 1 st plotted</span>
170            <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span>
171            <span class="c"># Panel for 2D plot</span>
172            <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span> <span class="o">=</span> <span class="n">Maskplotpanel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>
173                                           <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TRANSPARENT_WINDOW</span><span class="p">)</span>
174            <span class="bp">self</span><span class="o">.</span><span class="n">cmap</span> <span class="o">=</span> <span class="n">DEFAULT_CMAP</span>
175            <span class="c">## Create Artist and bind it</span>
176            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">subplot</span>
177            <span class="bp">self</span><span class="o">.</span><span class="n">connect</span> <span class="o">=</span> <span class="n">BindArtist</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="p">)</span>
178            <span class="bp">self</span><span class="o">.</span><span class="n">_setup_layout</span><span class="p">()</span>
179            <span class="bp">self</span><span class="o">.</span><span class="n">newplot</span> <span class="o">=</span> <span class="n">Data2D</span><span class="p">(</span><span class="n">image</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
180            <span class="bp">self</span><span class="o">.</span><span class="n">newplot</span><span class="o">.</span><span class="n">setValues</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
181            <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">add_image</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">newplot</span><span class="p">)</span> 
182            <span class="bp">self</span><span class="o">.</span><span class="n">_update_mask</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mask</span><span class="p">)</span>
183            <span class="bp">self</span><span class="o">.</span><span class="n">Centre</span><span class="p">()</span>
184            <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
185            <span class="c"># bind evt_close to _draw in fitpage</span>
186            <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_CLOSE</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnClose</span><span class="p">)</span>
187           
188<div class="viewcode-block" id="MaskPanel.ShowMessage"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.ShowMessage">[docs]</a>    <span class="k">def</span> <span class="nf">ShowMessage</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">):</span>
189        <span class="sd">&quot;&quot;&quot;</span>
190<span class="sd">        Show error message when mask covers whole data area</span>
191<span class="sd">        &quot;&quot;&quot;</span>
192        <span class="n">mssg</span> <span class="o">=</span> <span class="s">&#39;Erase, redraw or clear the mask. </span><span class="se">\n\r</span><span class="s">&#39;</span>
193        <span class="n">mssg</span> <span class="o">+=</span> <span class="s">&#39;The data range can not be completely masked... </span><span class="se">\n\r</span><span class="s">&#39;</span>
194        <span class="n">mssg</span> <span class="o">+=</span> <span class="n">msg</span>
195        <span class="n">wx</span><span class="o">.</span><span class="n">MessageBox</span><span class="p">(</span><span class="n">mssg</span><span class="p">,</span> <span class="s">&#39;Error&#39;</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">ICON_ERROR</span><span class="p">)</span>
196    </div>
197    <span class="k">def</span> <span class="nf">_setup_layout</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
198        <span class="sd">&quot;&quot;&quot;</span>
199<span class="sd">        Set up the layout</span>
200<span class="sd">        &quot;&quot;&quot;</span>
201        <span class="n">note</span> <span class="o">=</span> <span class="s">&quot;Note: This masking applies</span><span class="se">\n</span><span class="s">     only to </span><span class="si">%s</span><span class="s">.&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span>
202        <span class="n">note_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">note</span><span class="p">)</span> 
203        <span class="n">note_txt</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">RED</span><span class="p">)</span>
204        <span class="n">shape</span> <span class="o">=</span> <span class="s">&quot;Select a Shape for Masking:&quot;</span>
205        <span class="c">#  panel</span>
206        <span class="n">sizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
207        <span class="c">#---------inputs----------------</span>
208        <span class="n">shape_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">shape</span><span class="p">)</span> 
209        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">shape_txt</span><span class="p">,</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
210        <span class="bp">self</span><span class="o">.</span><span class="n">innersector_rb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Double Wings&quot;</span><span class="p">)</span>
211        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_RADIOBUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onInnerSectorMask</span><span class="p">,</span>
212                  <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">innersector_rb</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
213        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">innersector_rb</span><span class="p">,</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> 
214                  <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
215        <span class="bp">self</span><span class="o">.</span><span class="n">innercircle_rb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Circular Disk&quot;</span><span class="p">)</span>
216        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_RADIOBUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onInnerRingMask</span><span class="p">,</span>
217                  <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">innercircle_rb</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
218        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">innercircle_rb</span><span class="p">,</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
219                   <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
220       
221        <span class="bp">self</span><span class="o">.</span><span class="n">innerbox_rb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Rectangular Disk&quot;</span><span class="p">)</span>
222        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_RADIOBUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onInnerBoxMask</span><span class="p">,</span>
223                  <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">innerbox_rb</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
224        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">innerbox_rb</span><span class="p">,</span> <span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
225
226        <span class="bp">self</span><span class="o">.</span><span class="n">outersector_rb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Double Wing Window&quot;</span><span class="p">)</span>
227        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_RADIOBUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onOuterSectorMask</span><span class="p">,</span> 
228                  <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">outersector_rb</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
229        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">outersector_rb</span><span class="p">,</span> <span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
230                  <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
231       
232        <span class="c">#outersector_y_txt = wx.StaticText(self, -1, &#39;Outer Sector&#39;)</span>
233        <span class="bp">self</span><span class="o">.</span><span class="n">outercircle_rb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Circular Window&quot;</span><span class="p">)</span>
234        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_RADIOBUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onOuterRingMask</span><span class="p">,</span>
235                  <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">outercircle_rb</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
236        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">outercircle_rb</span><span class="p">,</span> <span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> 
237                  <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
238        <span class="c">#outerbox_txt = wx.StaticText(self, -1, &#39;Outer Box&#39;)</span>
239        <span class="bp">self</span><span class="o">.</span><span class="n">outerbox_rb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Rectangular Window&quot;</span><span class="p">)</span>
240        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_RADIOBUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onOuterBoxMask</span><span class="p">,</span> 
241                  <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">outerbox_rb</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
242        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">outerbox_rb</span><span class="p">,</span> <span class="p">(</span><span class="mi">7</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
243        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">note_txt</span><span class="p">,</span> <span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
244        <span class="bp">self</span><span class="o">.</span><span class="n">innercircle_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
245        <span class="bp">self</span><span class="o">.</span><span class="n">outercircle_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>       
246        <span class="bp">self</span><span class="o">.</span><span class="n">innerbox_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
247        <span class="bp">self</span><span class="o">.</span><span class="n">outerbox_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
248        <span class="bp">self</span><span class="o">.</span><span class="n">innersector_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
249        <span class="bp">self</span><span class="o">.</span><span class="n">outersector_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
250        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="p">,</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">13</span><span class="p">,</span> <span class="mi">13</span><span class="p">),</span> 
251                  <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
252
253        <span class="c">#-----Buttons------------1</span>
254        <span class="n">id_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
255        <span class="n">button_add</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">id_button</span><span class="p">,</span> <span class="s">&quot;Add&quot;</span><span class="p">)</span>
256        <span class="n">button_add</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Add the mask drawn.&quot;</span><span class="p">)</span>
257        <span class="n">button_add</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onAddMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">button_add</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span> 
258        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button_add</span><span class="p">,</span> <span class="p">(</span><span class="mi">13</span><span class="p">,</span> <span class="mi">7</span><span class="p">))</span>
259        <span class="n">id_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
260        <span class="n">button_erase</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">id_button</span><span class="p">,</span> <span class="s">&quot;Erase&quot;</span><span class="p">)</span>
261        <span class="n">button_erase</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Erase the mask drawn.&quot;</span><span class="p">)</span>
262        <span class="n">button_erase</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onEraseMask</span><span class="p">,</span>
263                          <span class="nb">id</span><span class="o">=</span><span class="n">button_erase</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span> 
264        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button_erase</span><span class="p">,</span> <span class="p">(</span><span class="mi">13</span><span class="p">,</span> <span class="mi">8</span><span class="p">))</span>
265        <span class="n">id_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
266        <span class="n">button_reset</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">id_button</span><span class="p">,</span> <span class="s">&quot;Reset&quot;</span><span class="p">)</span>
267        <span class="n">button_reset</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Reset the mask.&quot;</span><span class="p">)</span>
268        <span class="n">button_reset</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onResetMask</span><span class="p">,</span>
269                          <span class="nb">id</span><span class="o">=</span><span class="n">button_reset</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span> 
270        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button_reset</span><span class="p">,</span> <span class="p">(</span><span class="mi">13</span><span class="p">,</span> <span class="mi">9</span><span class="p">),</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">15</span><span class="p">)</span>
271        <span class="n">id_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
272        <span class="n">button_reset</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">id_button</span><span class="p">,</span> <span class="s">&quot;Clear&quot;</span><span class="p">)</span>
273        <span class="n">button_reset</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Clear all mask.&quot;</span><span class="p">)</span>
274        <span class="n">button_reset</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onClearMask</span><span class="p">,</span>
275                          <span class="nb">id</span><span class="o">=</span><span class="n">button_reset</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span> 
276        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button_reset</span><span class="p">,</span> <span class="p">(</span><span class="mi">13</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">15</span><span class="p">)</span>
277        <span class="n">sizer</span><span class="o">.</span><span class="n">AddGrowableCol</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
278        <span class="n">sizer</span><span class="o">.</span><span class="n">AddGrowableRow</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
279        <span class="bp">self</span><span class="o">.</span><span class="n">SetSizerAndFit</span><span class="p">(</span><span class="n">sizer</span><span class="p">)</span>
280        <span class="bp">self</span><span class="o">.</span><span class="n">Centre</span><span class="p">()</span>
281        <span class="bp">self</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
282
283<div class="viewcode-block" id="MaskPanel.onInnerBoxMask"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onInnerBoxMask">[docs]</a>    <span class="k">def</span> <span class="nf">onInnerBoxMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
284        <span class="sd">&quot;&quot;&quot;</span>
285<span class="sd">        Call Draw Box Slicer and get mask inside of the box</span>
286<span class="sd">        &quot;&quot;&quot;</span>
287        <span class="c">#get ready for next evt</span>
288        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>       
289        <span class="c">#from boxMask import BoxMask</span>
290        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
291            <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>         
292        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">+=</span> <span class="mi">1</span>
293        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span>  <span class="n">BoxMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span>
294                               <span class="n">zorder</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
295        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
296        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>
297        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
298        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
299        </div>
300<div class="viewcode-block" id="MaskPanel.onOuterBoxMask"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onOuterBoxMask">[docs]</a>    <span class="k">def</span> <span class="nf">onOuterBoxMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
301        <span class="sd">&quot;&quot;&quot;</span>
302<span class="sd">        Call Draw Box Slicer and get mask outside of the box</span>
303<span class="sd">        &quot;&quot;&quot;</span>
304        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>       
305        <span class="c">#from boxMask import BoxMask</span>
306        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
307            <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>     
308        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">+=</span> <span class="mi">1</span>
309        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span>  <span class="n">BoxMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span>
310                               <span class="n">zorder</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
311        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
312        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>
313        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
314        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
315</div>
316<div class="viewcode-block" id="MaskPanel.onInnerSectorMask"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onInnerSectorMask">[docs]</a>    <span class="k">def</span> <span class="nf">onInnerSectorMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
317        <span class="sd">&quot;&quot;&quot;</span>
318<span class="sd">        Call Draw Sector Slicer and get mask inside of the sector</span>
319<span class="sd">        &quot;&quot;&quot;</span>
320        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
321        <span class="kn">from</span> <span class="nn">sectorMask</span> <span class="kn">import</span> <span class="n">SectorMask</span>
322        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
323            <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
324        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">+=</span> <span class="mi">1</span>
325        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span>  <span class="n">SectorMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span>
326                                  <span class="n">zorder</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
327        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
328        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>   
329        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
330        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">update</span><span class="p">()</span> 
331</div>
332<div class="viewcode-block" id="MaskPanel.onOuterSectorMask"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onOuterSectorMask">[docs]</a>    <span class="k">def</span> <span class="nf">onOuterSectorMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
333        <span class="sd">&quot;&quot;&quot;</span>
334<span class="sd">        Call Draw Sector Slicer and get mask outside of the sector</span>
335<span class="sd">        &quot;&quot;&quot;</span>
336        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
337        <span class="kn">from</span> <span class="nn">sectorMask</span> <span class="kn">import</span> <span class="n">SectorMask</span>
338        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
339            <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
340        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">+=</span> <span class="mi">1</span>
341        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span>  <span class="n">SectorMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span>
342                                  <span class="n">zorder</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
343        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
344        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>   
345        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>     
346        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>   
347</div>
348<div class="viewcode-block" id="MaskPanel.onInnerRingMask"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onInnerRingMask">[docs]</a>    <span class="k">def</span> <span class="nf">onInnerRingMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
349        <span class="sd">&quot;&quot;&quot;</span>
350<span class="sd">        Perform inner circular cut on Phi and draw circular slicer</span>
351<span class="sd">        &quot;&quot;&quot;</span>
352        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
353        <span class="kn">from</span> <span class="nn">AnnulusSlicer</span> <span class="kn">import</span> <span class="n">CircularMask</span>
354        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
355            <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
356        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">+=</span> <span class="mi">1</span>
357        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span> <span class="n">CircularMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span>
358                                   <span class="n">zorder</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
359        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
360        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>   
361        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
362        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">update</span><span class="p">()</span> 
363</div>
364<div class="viewcode-block" id="MaskPanel.onOuterRingMask"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onOuterRingMask">[docs]</a>    <span class="k">def</span> <span class="nf">onOuterRingMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
365        <span class="sd">&quot;&quot;&quot;</span>
366<span class="sd">        Perform outer circular cut on Phi and draw circular slicer</span>
367<span class="sd">        &quot;&quot;&quot;</span>
368        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
369        <span class="kn">from</span> <span class="nn">AnnulusSlicer</span> <span class="kn">import</span> <span class="n">CircularMask</span>
370        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
371            <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
372        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">+=</span> <span class="mi">1</span>
373        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span> <span class="n">CircularMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span>
374                                   <span class="n">zorder</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>   
375        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
376        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>
377        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
378        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>     
379        </div>
380<div class="viewcode-block" id="MaskPanel.onAddMask"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onAddMask">[docs]</a>    <span class="k">def</span> <span class="nf">onAddMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
381        <span class="sd">&quot;&quot;&quot;</span>
382<span class="sd">        Add new mask to old mask </span>
383<span class="sd">        &quot;&quot;&quot;</span>
384        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
385            <span class="n">data</span> <span class="o">=</span> <span class="n">Data2D</span><span class="p">()</span>
386            <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span>
387            <span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
388            <span class="n">data</span><span class="o">.</span><span class="n">mask</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">mask</span> <span class="o">&amp;</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span>
389            <span class="bp">self</span><span class="o">.</span><span class="n">_check_display_mask</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">mask</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span>
390            </div>
391    <span class="k">def</span> <span class="nf">_check_display_mask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mask</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
392        <span class="sd">&quot;&quot;&quot;</span>
393<span class="sd">        check if the mask valid and update the plot</span>
394<span class="sd">        </span>
395<span class="sd">        :param mask: mask data</span>
396<span class="sd">        &quot;&quot;&quot;</span>
397        <span class="c">## Redraw the current image</span>
398        <span class="bp">self</span><span class="o">.</span><span class="n">_update_mask</span><span class="p">(</span><span class="n">mask</span><span class="p">)</span>
399
400<div class="viewcode-block" id="MaskPanel.onEraseMask"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onEraseMask">[docs]</a>    <span class="k">def</span> <span class="nf">onEraseMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
401        <span class="sd">&quot;&quot;&quot;</span>
402<span class="sd">        Erase new mask from old mask</span>
403<span class="sd">        &quot;&quot;&quot;</span>
404        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
405            <span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
406            <span class="n">mask</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">mask</span>
407            <span class="n">mask</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_mask</span> <span class="o">==</span> <span class="bp">False</span><span class="p">]</span> <span class="o">=</span> <span class="bp">True</span>
408            <span class="bp">self</span><span class="o">.</span><span class="n">_check_display_mask</span><span class="p">(</span><span class="n">mask</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span>
409            </div>
410<div class="viewcode-block" id="MaskPanel.onResetMask"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onResetMask">[docs]</a>    <span class="k">def</span> <span class="nf">onResetMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
411        <span class="sd">&quot;&quot;&quot;</span>
412<span class="sd">        Reset mask to the original mask </span>
413<span class="sd">        &quot;&quot;&quot;</span>       
414        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">+=</span> <span class="mi">1</span>
415        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span>  <span class="n">BoxMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span> 
416                               <span class="n">zorder</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
417        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
418        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>   
419        <span class="n">mask</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">default_mask</span><span class="p">)</span>
420        <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">mask</span> <span class="o">=</span> <span class="n">mask</span>
421        <span class="c"># update mask plot</span>
422        <span class="bp">self</span><span class="o">.</span><span class="n">_check_display_mask</span><span class="p">(</span><span class="n">mask</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span>
423        </div>
424<div class="viewcode-block" id="MaskPanel.onClearMask"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onClearMask">[docs]</a>    <span class="k">def</span> <span class="nf">onClearMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
425        <span class="sd">&quot;&quot;&quot;</span>
426<span class="sd">        Clear mask</span>
427<span class="sd">        &quot;&quot;&quot;</span>           
428        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">+=</span> <span class="mi">1</span>
429        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span>  <span class="n">BoxMask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span>
430                               <span class="n">zorder</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
431        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
432        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>   
433        <span class="c">#mask = copy.deepcopy(self.default_mask)</span>
434        <span class="n">mask</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">ones</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">mask</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">bool</span><span class="p">)</span>
435        <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">mask</span> <span class="o">=</span> <span class="n">mask</span>
436        <span class="c"># update mask plot</span>
437        <span class="bp">self</span><span class="o">.</span><span class="n">_check_display_mask</span><span class="p">(</span><span class="n">mask</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span>
438        </div>
439<div class="viewcode-block" id="MaskPanel.onClearSlicer"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onClearSlicer">[docs]</a>    <span class="k">def</span> <span class="nf">onClearSlicer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
440        <span class="sd">&quot;&quot;&quot;</span>
441<span class="sd">        Clear the slicer on the plot</span>
442<span class="sd">        &quot;&quot;&quot;</span>
443        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
444            <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
445            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
446            <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span> <span class="bp">None</span>
447</div>
448<div class="viewcode-block" id="MaskPanel.update"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.update">[docs]</a>    <span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">draw</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
449        <span class="sd">&quot;&quot;&quot;</span>
450<span class="sd">        Respond to changes in the model by recalculating the </span>
451<span class="sd">        profiles and resetting the widgets.</span>
452<span class="sd">        &quot;&quot;&quot;</span>
453        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
454        </div>
455    <span class="k">def</span> <span class="nf">_set_mask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mask</span><span class="p">):</span>
456        <span class="sd">&quot;&quot;&quot;</span>
457<span class="sd">        Set mask</span>
458<span class="sd">        &quot;&quot;&quot;</span>
459        <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">mask</span> <span class="o">=</span> <span class="n">mask</span>
460       
461<div class="viewcode-block" id="MaskPanel.set_plot_unfocus"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.set_plot_unfocus">[docs]</a>    <span class="k">def</span> <span class="nf">set_plot_unfocus</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
462        <span class="sd">&quot;&quot;&quot;</span>
463<span class="sd">        Not implemented</span>
464<span class="sd">        &quot;&quot;&quot;</span>
465        <span class="k">pass</span>
466    </div>
467    <span class="k">def</span> <span class="nf">_update_mask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mask</span><span class="p">):</span>
468        <span class="sd">&quot;&quot;&quot;</span>
469<span class="sd">        Respond to changes in masking</span>
470<span class="sd">        &quot;&quot;&quot;</span> 
471        <span class="c"># the case of liitle numbers of True points</span>
472        <span class="k">if</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">mask</span><span class="p">[</span><span class="n">mask</span><span class="p">])</span> <span class="o">&lt;</span> <span class="mi">10</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">):</span>
473            <span class="bp">self</span><span class="o">.</span><span class="n">ShowMessage</span><span class="p">()</span>
474            <span class="n">mask</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mask</span><span class="p">)</span>
475            <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">mask</span> <span class="o">=</span> <span class="n">mask</span>
476        <span class="k">else</span><span class="p">:</span>
477            <span class="bp">self</span><span class="o">.</span><span class="n">mask</span> <span class="o">=</span> <span class="n">mask</span>
478        <span class="c"># make temperary data to plot</span>
479        <span class="n">temp_mask</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">mask</span><span class="p">))</span>
480        <span class="n">temp_data</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
481        <span class="c"># temp_data default is None</span>
482        <span class="c"># This method is to distinguish between masked point and data point = 0.</span>
483        <span class="n">temp_mask</span> <span class="o">=</span> <span class="n">temp_mask</span><span class="o">/</span><span class="n">temp_mask</span>
484        <span class="n">temp_mask</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span> <span class="o">=</span> <span class="n">temp_data</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
485        <span class="c"># set temp_data value for self.mask==True, else still None </span>
486        <span class="c">#temp_mask[mask] = temp_data[mask]</span>
487       
488        <span class="c">#TODO: refactor this horrible logic </span>
489        <span class="n">temp_data</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">mask</span> <span class="o">==</span> <span class="bp">False</span><span class="p">]</span> <span class="o">=</span> <span class="n">temp_mask</span><span class="p">[</span><span class="n">mask</span> <span class="o">==</span> <span class="bp">False</span><span class="p">]</span>
490        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
491        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
492            <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
493            <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span> <span class="bp">None</span>
494        <span class="c"># Post slicer None event</span>
495        <span class="n">event</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_getEmptySlicerEvent</span><span class="p">()</span>
496        <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span>
497       
498        <span class="c">##use this method</span>
499        <span class="c">#set zmax and zmin to plot: Fix it w/ data.</span>
500        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">scale</span> <span class="o">==</span> <span class="s">&#39;log_{10}&#39;</span><span class="p">:</span>
501            <span class="n">zmax</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="o">&gt;</span><span class="mi">0</span><span class="p">]))</span>
502            <span class="n">zmin</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="o">&gt;</span><span class="mi">0</span><span class="p">]))</span>
503        <span class="k">else</span><span class="p">:</span>
504            <span class="n">zmax</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="o">&gt;</span><span class="mi">0</span><span class="p">])</span>
505            <span class="n">zmin</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="o">&gt;</span><span class="mi">0</span><span class="p">])</span>
506        <span class="c">#plot    </span>
507        <span class="n">plot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">image</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">temp_mask</span><span class="p">,</span>
508                       <span class="n">qx_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">qx_data</span><span class="p">,</span>
509                       <span class="n">qy_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">qy_data</span><span class="p">,</span>
510                       <span class="n">xmin</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span>
511                       <span class="n">xmax</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">xmax</span><span class="p">,</span>
512                       <span class="n">ymin</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span>
513                       <span class="n">ymax</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ymax</span><span class="p">,</span>
514                       <span class="n">zmin</span><span class="o">=</span><span class="n">zmin</span><span class="p">,</span>
515                       <span class="n">zmax</span><span class="o">=</span><span class="n">zmax</span><span class="p">,</span>
516                       <span class="n">cmap</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">cmap</span><span class="p">,</span>
517                       <span class="n">color</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
518        <span class="c"># axis labels</span>
519        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s">&#39;$</span><span class="se">\\</span><span class="s">rm{Q}_{x}(A^{-1})$&#39;</span><span class="p">)</span>
520        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s">&#39;$</span><span class="se">\\</span><span class="s">rm{Q}_{y}(A^{-1})$&#39;</span><span class="p">)</span>
521        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">render</span><span class="p">()</span>
522        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw_idle</span><span class="p">()</span>
523       
524    <span class="k">def</span> <span class="nf">_getEmptySlicerEvent</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
525        <span class="sd">&quot;&quot;&quot;</span>
526<span class="sd">        create an empty slicervent </span>
527<span class="sd">        &quot;&quot;&quot;</span>
528        <span class="bp">self</span><span class="o">.</span><span class="n">innerbox_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
529        <span class="bp">self</span><span class="o">.</span><span class="n">outerbox_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
530        <span class="bp">self</span><span class="o">.</span><span class="n">innersector_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
531        <span class="bp">self</span><span class="o">.</span><span class="n">outersector_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
532        <span class="bp">self</span><span class="o">.</span><span class="n">innercircle_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
533        <span class="bp">self</span><span class="o">.</span><span class="n">outercircle_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
534        <span class="k">return</span> <span class="n">SlicerEvent</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
535                           <span class="n">params</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
536                           <span class="n">obj_class</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span> 
537             
538    <span class="k">def</span> <span class="nf">_draw_model</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
539        <span class="sd">&quot;&quot;&quot;</span>
540<span class="sd">         on_close, update the model2d plot</span>
541<span class="sd">        &quot;&quot;&quot;</span>
542        <span class="k">pass</span>
543       
544<div class="viewcode-block" id="MaskPanel.freeze_axes"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.freeze_axes">[docs]</a>    <span class="k">def</span> <span class="nf">freeze_axes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
545        <span class="sd">&quot;&quot;&quot;</span>
546<span class="sd">        freeze axes</span>
547<span class="sd">        &quot;&quot;&quot;</span>
548        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">axes_frozen</span> <span class="o">=</span> <span class="bp">True</span>
549        </div>
550<div class="viewcode-block" id="MaskPanel.thaw_axes"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.thaw_axes">[docs]</a>    <span class="k">def</span> <span class="nf">thaw_axes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
551        <span class="sd">&quot;&quot;&quot;</span>
552<span class="sd">        thaw axes</span>
553<span class="sd">        &quot;&quot;&quot;</span>
554        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">axes_frozen</span> <span class="o">=</span> <span class="bp">False</span>       
555         </div>
556<div class="viewcode-block" id="MaskPanel.onMouseMotion"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onMouseMotion">[docs]</a>    <span class="k">def</span> <span class="nf">onMouseMotion</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
557        <span class="sd">&quot;&quot;&quot;</span>
558<span class="sd">        onMotion event</span>
559<span class="sd">        &quot;&quot;&quot;</span>
560        <span class="k">pass</span>
561    </div>
562<div class="viewcode-block" id="MaskPanel.onWheel"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.onWheel">[docs]</a>    <span class="k">def</span> <span class="nf">onWheel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
563        <span class="sd">&quot;&quot;&quot;</span>
564<span class="sd">        on wheel event</span>
565<span class="sd">        &quot;&quot;&quot;</span>
566        <span class="k">pass</span> 
567    </div>
568<div class="viewcode-block" id="MaskPanel.OnClose"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.MaskPanel.OnClose">[docs]</a>    <span class="k">def</span> <span class="nf">OnClose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
569        <span class="sd">&quot;&quot;&quot;</span>
570<span class="sd">            Processing close event</span>
571<span class="sd">        &quot;&quot;&quot;</span>
572        <span class="k">try</span><span class="p">:</span>
573            <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">_draw_masked_model</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
574        <span class="k">except</span><span class="p">:</span>
575            <span class="c"># when called by data panel</span>
576            <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
577            <span class="k">pass</span>   
578</div></div>
579<div class="viewcode-block" id="FloatPanel"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.FloatPanel">[docs]</a><span class="k">class</span> <span class="nc">FloatPanel</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>
580    <span class="sd">&quot;&quot;&quot;</span>
581<span class="sd">    Provides the Mask Editor GUI.</span>
582<span class="sd">    &quot;&quot;&quot;</span>
583    <span class="c">## Internal nickname for the window, used by the AUI manager</span>
584    <span class="n">window_name</span> <span class="o">=</span> <span class="s">&quot;Plot&quot;</span>
585    <span class="c">## Name to appear on the window title bar</span>
586    <span class="n">window_caption</span> <span class="o">=</span> <span class="s">&quot;Plot&quot;</span>
587    <span class="c">## Flag to tell the AUI manager to put this panel in the center pane</span>
588    <span class="n">CENTER_PANE</span> <span class="o">=</span> <span class="bp">False</span>
589    <span class="n">ID</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
590    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">base</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> 
591                 <span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dimension</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">ID</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">):</span>
592        <span class="n">kwds</span><span class="p">[</span><span class="s">&quot;style&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">DEFAULT_DIALOG_STYLE</span>
593        <span class="n">kwds</span><span class="p">[</span><span class="s">&quot;size&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Size</span><span class="p">(</span><span class="n">PANEL_SIZE</span><span class="o">*</span><span class="mf">1.5</span><span class="p">,</span> <span class="n">PANEL_SIZE</span><span class="o">*</span><span class="mf">1.5</span><span class="p">)</span> 
594        <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">,</span>  <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">)</span>
595       
596        <span class="k">if</span> <span class="n">data</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
597            <span class="c">#Font size </span>
598            <span class="n">kwds</span> <span class="o">=</span> <span class="p">[]</span>
599            <span class="bp">self</span><span class="o">.</span><span class="n">SetWindowVariant</span><span class="p">(</span><span class="n">variant</span><span class="o">=</span><span class="n">FONT_VARIANT</span><span class="p">)</span>
600            <span class="bp">self</span><span class="o">.</span><span class="n">SetTitle</span><span class="p">(</span><span class="s">&quot;Plot &quot;</span> <span class="o">+</span> <span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
601            <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">base</span>
602            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">data</span>
603            <span class="bp">self</span><span class="o">.</span><span class="n">str</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">__str__</span><span class="p">()</span>
604            <span class="c">## when 2 data have the same id override the 1 st plotted</span>
605            <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span>
606            <span class="bp">self</span><span class="o">.</span><span class="n">dimension</span> <span class="o">=</span> <span class="n">dimension</span>
607            <span class="c"># Panel for 2D plot</span>
608            <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span> <span class="o">=</span> <span class="n">Maskplotpanel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">dimension</span><span class="p">,</span>
609                                           <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TRANSPARENT_WINDOW</span><span class="p">)</span>
610            <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">_SetInitialSize</span><span class="p">()</span>
611            <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">prevXtrans</span> <span class="o">=</span> <span class="s">&quot;x&quot;</span>
612            <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">prevYtrans</span> <span class="o">=</span> <span class="s">&quot;y&quot;</span>
613           
614            <span class="bp">self</span><span class="o">.</span><span class="n">cmap</span> <span class="o">=</span> <span class="n">DEFAULT_CMAP</span>
615            <span class="c">## Create Artist and bind it</span>
616            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">subplot</span>
617            <span class="bp">self</span><span class="o">.</span><span class="n">_setup_layout</span><span class="p">()</span>
618            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dimension</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
619                <span class="bp">self</span><span class="o">.</span><span class="n">newplot</span> <span class="o">=</span> <span class="n">Data1D</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="n">y</span><span class="p">,</span> 
620                                      <span class="n">dx</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="n">dx</span><span class="p">,</span> <span class="n">dy</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="n">dy</span><span class="p">)</span>
621                <span class="bp">self</span><span class="o">.</span><span class="n">newplot</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">name</span>
622            <span class="k">else</span><span class="p">:</span>   
623                <span class="bp">self</span><span class="o">.</span><span class="n">newplot</span> <span class="o">=</span> <span class="n">Data2D</span><span class="p">(</span><span class="n">image</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
624                <span class="bp">self</span><span class="o">.</span><span class="n">newplot</span><span class="o">.</span><span class="n">setValues</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
625                    <span class="c"># Compute and get the image plot</span>
626            <span class="bp">self</span><span class="o">.</span><span class="n">get_plot</span><span class="p">()</span>
627            <span class="c">#self.plotpanel.add_image(self.newplot) </span>
628            <span class="bp">self</span><span class="o">.</span><span class="n">Centre</span><span class="p">()</span>
629            <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
630   
631<div class="viewcode-block" id="FloatPanel.get_plot"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.FloatPanel.get_plot">[docs]</a>    <span class="k">def</span> <span class="nf">get_plot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
632        <span class="sd">&quot;&quot;&quot;</span>
633<span class="sd">        Get Plot panel</span>
634<span class="sd">        &quot;&quot;&quot;</span>
635        <span class="n">cal_plot</span> <span class="o">=</span> <span class="n">CalcPlot</span><span class="p">(</span><span class="n">panel</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="p">,</span> 
636                                   <span class="n">image</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">newplot</span><span class="p">,</span> 
637                                   <span class="n">completefn</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">complete</span><span class="p">)</span>
638        <span class="n">cal_plot</span><span class="o">.</span><span class="n">queue</span><span class="p">()</span>
639    </div>
640<div class="viewcode-block" id="FloatPanel.complete"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.FloatPanel.complete">[docs]</a>    <span class="k">def</span> <span class="nf">complete</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">panel</span><span class="p">,</span> <span class="n">image</span><span class="p">,</span> <span class="n">elapsed</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
641        <span class="sd">&quot;&quot;&quot;</span>
642<span class="sd">        Plot image</span>
643<span class="sd">        </span>
644<span class="sd">        :param image: newplot [plotpanel]</span>
645<span class="sd">        &quot;&quot;&quot;</span>
646        <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">panel</span><span class="o">.</span><span class="n">add_image</span><span class="p">,</span> <span class="n">image</span><span class="p">)</span> 
647        </div>
648    <span class="k">def</span> <span class="nf">_setup_layout</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
649        <span class="sd">&quot;&quot;&quot;</span>
650<span class="sd">        Set up the layout</span>
651<span class="sd">        &quot;&quot;&quot;</span>
652        <span class="c">#  panel</span>
653        <span class="n">sizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
654        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dimension</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
655            <span class="n">note</span> <span class="o">=</span> <span class="s">&quot;Note: I am very SLOW.     Please be PATIENT...</span><span class="se">\n</span><span class="s">&quot;</span>
656            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">3600</span><span class="p">:</span>
657                <span class="n">note</span> <span class="o">+=</span> <span class="s">&quot;Rotation disabled for pixels &gt; 60x60.&quot;</span>
658            <span class="n">note_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">note</span><span class="p">)</span> 
659            <span class="n">note_txt</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">RED</span><span class="p">)</span>
660            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">note_txt</span><span class="p">,</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
661       
662        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="p">,</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">9</span><span class="p">,</span> <span class="mi">9</span><span class="p">),</span> 
663                  <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
664
665        <span class="n">sizer</span><span class="o">.</span><span class="n">AddGrowableCol</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
666        <span class="n">sizer</span><span class="o">.</span><span class="n">AddGrowableRow</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
667       
668        <span class="bp">self</span><span class="o">.</span><span class="n">SetSizerAndFit</span><span class="p">(</span><span class="n">sizer</span><span class="p">)</span>
669        <span class="bp">self</span><span class="o">.</span><span class="n">Centre</span><span class="p">()</span>
670        <span class="bp">self</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
671       
672<div class="viewcode-block" id="FloatPanel.set_plot_unfocus"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.FloatPanel.set_plot_unfocus">[docs]</a>    <span class="k">def</span> <span class="nf">set_plot_unfocus</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
673        <span class="sd">&quot;&quot;&quot;</span>
674<span class="sd">        Not implemented</span>
675<span class="sd">        &quot;&quot;&quot;</span>
676        <span class="k">pass</span>
677   
678</div>
679    <span class="k">def</span> <span class="nf">_draw_model</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
680        <span class="sd">&quot;&quot;&quot;</span>
681<span class="sd">         on_close, update the model2d plot</span>
682<span class="sd">        &quot;&quot;&quot;</span>
683        <span class="k">pass</span>
684       
685<div class="viewcode-block" id="FloatPanel.freeze_axes"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.FloatPanel.freeze_axes">[docs]</a>    <span class="k">def</span> <span class="nf">freeze_axes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
686        <span class="sd">&quot;&quot;&quot;</span>
687<span class="sd">        freeze axes</span>
688<span class="sd">        &quot;&quot;&quot;</span>
689        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">axes_frozen</span> <span class="o">=</span> <span class="bp">True</span>
690        </div>
691<div class="viewcode-block" id="FloatPanel.thaw_axes"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.FloatPanel.thaw_axes">[docs]</a>    <span class="k">def</span> <span class="nf">thaw_axes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
692        <span class="sd">&quot;&quot;&quot;</span>
693<span class="sd">        thaw axes</span>
694<span class="sd">        &quot;&quot;&quot;</span>
695        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">axes_frozen</span> <span class="o">=</span> <span class="bp">False</span>       
696    </div>
697<div class="viewcode-block" id="FloatPanel.OnClose"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.FloatPanel.OnClose">[docs]</a>    <span class="k">def</span> <span class="nf">OnClose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
698        <span class="sd">&quot;&quot;&quot;</span>
699<span class="sd">        &quot;&quot;&quot;</span>
700        <span class="k">try</span><span class="p">:</span>
701            <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">clf</span><span class="p">()</span>
702            <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
703        <span class="k">except</span><span class="p">:</span>
704            <span class="c"># when called by data panel</span>
705            <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
706            <span class="k">pass</span>
707
708                </div></div>
709<div class="viewcode-block" id="Maskplotpanel"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.Maskplotpanel">[docs]</a><span class="k">class</span> <span class="nc">Maskplotpanel</span><span class="p">(</span><span class="n">PlotPanel</span><span class="p">):</span>
710    <span class="sd">&quot;&quot;&quot;</span>
711<span class="sd">    PlotPanel for Quick plot and masking plot</span>
712<span class="sd">    &quot;&quot;&quot;</span>
713    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">dimension</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> 
714                                            <span class="n">dpi</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
715        <span class="sd">&quot;&quot;&quot;</span>
716<span class="sd">        &quot;&quot;&quot;</span>
717        <span class="n">PlotPanel</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> <span class="n">dpi</span><span class="o">=</span><span class="n">dpi</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
718       
719        <span class="c"># Keep track of the parent Frame</span>
720        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
721        <span class="c"># Internal list of plottable names (because graph </span>
722        <span class="c"># doesn&#39;t have a dictionary of handles for the plottables)</span>
723        <span class="bp">self</span><span class="o">.</span><span class="n">dimension</span> <span class="o">=</span> <span class="n">dimension</span>
724        <span class="bp">self</span><span class="o">.</span><span class="n">plots</span> <span class="o">=</span> <span class="p">{}</span>
725        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span> <span class="o">=</span> <span class="n">Graph</span><span class="p">()</span>
726        <span class="c">#add axis labels</span>
727        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\\</span><span class="s">rm{x} &#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
728        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\\</span><span class="s">rm{y} &#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
729       
730<div class="viewcode-block" id="Maskplotpanel.add_toolbar"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.Maskplotpanel.add_toolbar">[docs]</a>    <span class="k">def</span> <span class="nf">add_toolbar</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
731        <span class="sd">&quot;&quot;&quot; </span>
732<span class="sd">        Add toolbar</span>
733<span class="sd">        &quot;&quot;&quot;</span>
734        <span class="c"># Not implemented</span>
735        <span class="k">pass</span>
736    </div>
737<div class="viewcode-block" id="Maskplotpanel.on_set_focus"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.Maskplotpanel.on_set_focus">[docs]</a>    <span class="k">def</span> <span class="nf">on_set_focus</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
738        <span class="sd">&quot;&quot;&quot;</span>
739<span class="sd">        send to the parenet the current panel on focus</span>
740<span class="sd">        &quot;&quot;&quot;</span>
741        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dimension</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
742            <span class="k">pass</span>
743        <span class="k">else</span><span class="p">:</span>
744            <span class="bp">self</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>   
745         </div>
746<div class="viewcode-block" id="Maskplotpanel.add_image"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.Maskplotpanel.add_image">[docs]</a>    <span class="k">def</span> <span class="nf">add_image</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">plot</span><span class="p">):</span>
747        <span class="sd">&quot;&quot;&quot;</span>
748<span class="sd">        Add Image</span>
749<span class="sd">        &quot;&quot;&quot;</span>
750        <span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="p">[</span><span class="n">plot</span><span class="o">.</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">plot</span>
751        <span class="c">#init graph</span>
752        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span> <span class="o">=</span> <span class="n">Graph</span><span class="p">()</span>
753        <span class="c">#add plot</span>
754        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">plot</span><span class="p">)</span>
755        <span class="c">#add axes</span>
756        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dimension</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
757            <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_label</span> <span class="o">=</span> <span class="s">&#39;</span><span class="se">\\</span><span class="s">rm{x} &#39;</span>
758            <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_unit</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
759            <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_label</span> <span class="o">=</span> <span class="s">&#39;</span><span class="se">\\</span><span class="s">rm{y} &#39;</span>
760            <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_unit</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
761        <span class="c">#draw</span>
762        <span class="c"># message</span>
763        <span class="n">status_type</span> <span class="o">=</span> <span class="s">&#39;progress&#39;</span> 
764        <span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;Plotting...&#39;</span>
765        <span class="bp">self</span><span class="o">.</span><span class="n">_status_info</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">status_type</span><span class="p">)</span>
766        <span class="n">status_type</span> <span class="o">=</span> <span class="s">&#39;stop&#39;</span>           
767        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
768        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">resizing</span> <span class="o">=</span> <span class="bp">False</span>
769        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dimension</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">:</span>
770            <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
771            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
772        <span class="k">elif</span> <span class="n">FONT_VARIANT</span><span class="p">:</span>
773            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
774        <span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;Plotting Completed.&#39;</span>
775        <span class="bp">self</span><span class="o">.</span><span class="n">_status_info</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">status_type</span><span class="p">)</span>
776        </div>
777<div class="viewcode-block" id="Maskplotpanel.onMouseMotion"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.Maskplotpanel.onMouseMotion">[docs]</a>    <span class="k">def</span> <span class="nf">onMouseMotion</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
778        <span class="sd">&quot;&quot;&quot;</span>
779<span class="sd">        Disable dragging 2D image</span>
780<span class="sd">        &quot;&quot;&quot;</span>
781        <span class="k">pass</span>
782    </div>
783<div class="viewcode-block" id="Maskplotpanel.onWheel"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.Maskplotpanel.onWheel">[docs]</a>    <span class="k">def</span> <span class="nf">onWheel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
784        <span class="sd">&quot;&quot;&quot;</span>
785<span class="sd">        &quot;&quot;&quot;</span>
786        <span class="k">pass</span> 
787     </div>
788<div class="viewcode-block" id="Maskplotpanel.onLeftDown"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.Maskplotpanel.onLeftDown">[docs]</a>    <span class="k">def</span> <span class="nf">onLeftDown</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
789        <span class="sd">&quot;&quot;&quot;</span>
790<span class="sd">        Disables LeftDown</span>
791<span class="sd">        &quot;&quot;&quot;</span>
792        <span class="k">pass</span>
793    </div>
794<div class="viewcode-block" id="Maskplotpanel.onPick"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.Maskplotpanel.onPick">[docs]</a>    <span class="k">def</span> <span class="nf">onPick</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
795        <span class="sd">&quot;&quot;&quot;</span>
796<span class="sd">        Disables OnPick</span>
797<span class="sd">        &quot;&quot;&quot;</span>
798        <span class="k">pass</span>
799    </div>
800<div class="viewcode-block" id="Maskplotpanel.draw"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.Maskplotpanel.draw">[docs]</a>    <span class="k">def</span> <span class="nf">draw</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
801        <span class="sd">&quot;&quot;&quot;</span>
802<span class="sd">        Draw</span>
803<span class="sd">        &quot;&quot;&quot;</span>
804        <span class="c"># message</span>
805        <span class="n">status_type</span> <span class="o">=</span> <span class="s">&#39;progress&#39;</span> 
806        <span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;Plotting...&#39;</span>
807        <span class="bp">self</span><span class="o">.</span><span class="n">_status_info</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">status_type</span><span class="p">)</span>
808        <span class="n">status_type</span> <span class="o">=</span> <span class="s">&#39;stop&#39;</span>           
809       
810        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dimension</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
811            <span class="k">pass</span>
812        <span class="k">else</span><span class="p">:</span>
813            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw_idle</span><span class="p">()</span> 
814       
815        <span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;Plotting Completed.&#39;</span>
816        <span class="bp">self</span><span class="o">.</span><span class="n">_status_info</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">status_type</span><span class="p">)</span>
817       </div>
818<div class="viewcode-block" id="Maskplotpanel.onContextMenu"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.Maskplotpanel.onContextMenu">[docs]</a>    <span class="k">def</span> <span class="nf">onContextMenu</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
819        <span class="sd">&quot;&quot;&quot;</span>
820<span class="sd">        Default context menu for a plot panel</span>
821<span class="sd">        &quot;&quot;&quot;</span>
822        <span class="c"># Selective Slicer plot popup menu</span>
823        <span class="n">slicerpop</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Menu</span><span class="p">()</span>
824       
825        <span class="nb">id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
826        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Print Image&#39;</span><span class="p">,</span> <span class="s">&#39;Print image&#39;</span><span class="p">)</span>
827        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onPrint</span><span class="p">)</span>
828
829        <span class="nb">id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
830        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Copy to Clipboard&#39;</span><span class="p">,</span> <span class="s">&#39;Copy to the clipboard&#39;</span><span class="p">)</span>
831        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnCopyFigureMenu</span><span class="p">)</span>
832       
833        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dimension</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
834            <span class="nb">id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
835            <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Change Scale&#39;</span><span class="p">)</span>
836            <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onProperties</span><span class="p">)</span>
837        <span class="k">else</span><span class="p">:</span>
838            <span class="n">slicerpop</span><span class="o">.</span><span class="n">AppendSeparator</span><span class="p">()</span>
839            <span class="n">id_cm</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
840            <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="n">id_cm</span><span class="p">,</span> <span class="s">&#39;&amp;Toggle Linear/Log scale&#39;</span><span class="p">)</span>
841            <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">id_cm</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onToggleScale</span><span class="p">)</span>
842               
843        <span class="n">pos</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetPosition</span><span class="p">()</span>
844        <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ScreenToClient</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
845        <span class="bp">self</span><span class="o">.</span><span class="n">PopupMenu</span><span class="p">(</span><span class="n">slicerpop</span><span class="p">,</span> <span class="n">pos</span><span class="p">)</span>
846        </div>
847    <span class="k">def</span> <span class="nf">_status_info</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="nb">type</span> <span class="o">=</span> <span class="s">&quot;update&quot;</span><span class="p">):</span>
848        <span class="sd">&quot;&quot;&quot;</span>
849<span class="sd">        Status msg</span>
850<span class="sd">        &quot;&quot;&quot;</span>
851        <span class="k">if</span> <span class="nb">type</span> <span class="o">==</span> <span class="s">&quot;stop&quot;</span><span class="p">:</span>
852            <span class="n">label</span> <span class="o">=</span> <span class="s">&quot;Plotting...&quot;</span>
853            <span class="n">able</span> <span class="o">=</span> <span class="bp">True</span>
854        <span class="k">else</span><span class="p">:</span>   
855            <span class="n">label</span> <span class="o">=</span> <span class="s">&quot;Wait...&quot;</span>
856            <span class="n">able</span> <span class="o">=</span> <span class="bp">False</span>
857        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
858                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> 
859                             <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span> <span class="o">=</span> <span class="n">msg</span><span class="p">,</span> <span class="nb">type</span> <span class="o">=</span> <span class="nb">type</span> <span class="p">))</span>
860</div>
861<div class="viewcode-block" id="ViewerFrame"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.ViewerFrame">[docs]</a><span class="k">class</span> <span class="nc">ViewerFrame</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Frame</span><span class="p">):</span>
862    <span class="sd">&quot;&quot;&quot;</span>
863<span class="sd">    Add comment</span>
864<span class="sd">    &quot;&quot;&quot;</span>
865    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">title</span><span class="p">):</span>
866        <span class="sd">&quot;&quot;&quot;</span>
867<span class="sd">        comment</span>
868<span class="sd">        :param parent: parent panel/container</span>
869<span class="sd">        &quot;&quot;&quot;</span>
870        <span class="c"># Initialize the Frame object</span>
871        <span class="n">wx</span><span class="o">.</span><span class="n">Frame</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span>
872                          <span class="n">wx</span><span class="o">.</span><span class="n">DefaultPosition</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">Size</span><span class="p">(</span><span class="mi">950</span><span class="p">,</span> <span class="mi">850</span><span class="p">))</span>
873        <span class="c"># Panel for 1D plot</span>
874        <span class="bp">self</span><span class="o">.</span><span class="n">plotpanel</span> <span class="o">=</span> <span class="n">Maskplotpanel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RAISED_BORDER</span><span class="p">)</span>
875</div>
876<div class="viewcode-block" id="ViewApp"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.ViewApp">[docs]</a><span class="k">class</span> <span class="nc">ViewApp</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">App</span><span class="p">):</span>
877<div class="viewcode-block" id="ViewApp.OnInit"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.masking.ViewApp.OnInit">[docs]</a>    <span class="k">def</span> <span class="nf">OnInit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
878        <span class="n">frame</span> <span class="o">=</span> <span class="n">ViewerFrame</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;testView&#39;</span><span class="p">)</span>   
879        <span class="n">frame</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
880        <span class="c">#self.SetTopWindow(frame)</span>
881       
882        <span class="k">return</span> <span class="bp">True</span>
883               </div></div>
884<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span> 
885    <span class="n">app</span> <span class="o">=</span> <span class="n">ViewApp</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
886    <span class="n">app</span><span class="o">.</span><span class="n">MainLoop</span><span class="p">()</span>     
887</pre></div>
888
889          </div>
890        </div>
891      </div>
892      <div class="sphinxsidebar">
893        <div class="sphinxsidebarwrapper">
894<div id="searchbox" style="display: none">
895  <h3>Quick search</h3>
896    <form class="search" action="../../../../../search.html" method="get">
897      <input type="text" name="q" />
898      <input type="submit" value="Go" />
899      <input type="hidden" name="check_keywords" value="yes" />
900      <input type="hidden" name="area" value="default" />
901    </form>
902    <p class="searchtip" style="font-size: 90%">
903    Enter search terms or a module, class or function name.
904    </p>
905</div>
906<script type="text/javascript">$('#searchbox').show(0);</script>
907        </div>
908      </div>
909      <div class="clearer"></div>
910    </div>
911    <div class="related">
912      <h3>Navigation</h3>
913      <ul>
914        <li class="right" style="margin-right: 10px">
915          <a href="../../../../../genindex.html" title="General Index"
916             >index</a></li>
917        <li class="right" >
918          <a href="../../../../../py-modindex.html" title="Python Module Index"
919             >modules</a> |</li>
920        <li><a href="../../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
921          <li><a href="../../../../index.html" >Module code</a> &raquo;</li>
922          <li><a href="../../../guiframe.html" >sas.guiframe</a> &raquo;</li> 
923      </ul>
924    </div>
925    <div class="footer">
926        &copy; Copyright 2013, The SasView Project.
927      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
928    </div>
929  </body>
930</html>
Note: See TracBrowser for help on using the repository browser.