source: sasview/_modules/sas/guiframe/local_perspectives/plotting/boxSum.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: 140.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.boxSum &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.boxSum</h1><div class="highlight"><pre>
52<span class="sd">&quot;&quot;&quot;</span>
53<span class="sd">    Boxsum Class: determine 2 rectangular area to compute </span>
54<span class="sd">    the sum of pixel of a Data. </span>
55<span class="sd">&quot;&quot;&quot;</span>
56<span class="kn">import</span> <span class="nn">math</span>
57<span class="kn">import</span> <span class="nn">wx</span>
58<span class="kn">from</span> <span class="nn">BaseInteractor</span> <span class="kn">import</span> <span class="n">_BaseInteractor</span>
59<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">SlicerParamUpdateEvent</span>
60<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">EVT_SLICER_PARS</span>
61<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span>
62
63
64<div class="viewcode-block" id="BoxSum"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum">[docs]</a><span class="k">class</span> <span class="nc">BoxSum</span><span class="p">(</span><span class="n">_BaseInteractor</span><span class="p">):</span>
65    <span class="sd">&quot;&quot;&quot;</span>
66<span class="sd">        Boxsum Class: determine 2 rectangular area to compute </span>
67<span class="sd">        the sum of pixel of a Data. </span>
68<span class="sd">        Uses PointerInteractor , VerticalDoubleLine,HorizontalDoubleLine.</span>
69<span class="sd">        @param zorder:  Artists with lower zorder values are drawn first.</span>
70<span class="sd">        @param x_min: the minimum value of the x coordinate</span>
71<span class="sd">        @param x_max: the maximum value of the x coordinate</span>
72<span class="sd">        @param y_min: the minimum value of the y coordinate</span>
73<span class="sd">        @param y_max: the maximum value of the y coordinate</span>
74
75<span class="sd">    &quot;&quot;&quot;</span>
76    <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">base</span><span class="p">,</span> <span class="n">axes</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s">&#39;black&#39;</span><span class="p">,</span> <span class="n">zorder</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">x_min</span><span class="o">=</span><span class="mf">0.008</span><span class="p">,</span>
77                  <span class="n">x_max</span><span class="o">=</span><span class="mf">0.008</span><span class="p">,</span> <span class="n">y_min</span><span class="o">=</span><span class="mf">0.0025</span><span class="p">,</span> <span class="n">y_max</span><span class="o">=</span><span class="mf">0.0025</span><span class="p">):</span>
78        <span class="sd">&quot;&quot;&quot;</span>
79<span class="sd">        &quot;&quot;&quot;</span>
80        <span class="n">_BaseInteractor</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">base</span><span class="p">,</span> <span class="n">axes</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">)</span>
81        <span class="c">## class initialization</span>
82        <span class="c">## list of Boxsmun markers</span>
83        <span class="bp">self</span><span class="o">.</span><span class="n">markers</span> <span class="o">=</span> <span class="p">[]</span>
84        <span class="bp">self</span><span class="o">.</span><span class="n">axes</span> <span class="o">=</span> <span class="n">axes</span>
85        <span class="c">## connect the artist for the motion</span>
86        <span class="bp">self</span><span class="o">.</span><span class="n">connect</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">connect</span>
87        <span class="c">## when qmax is reached the selected line is reset the its previous value</span>
88        <span class="bp">self</span><span class="o">.</span><span class="n">qmax</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">base</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmax</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">)</span>
89        <span class="c">## Define the boxsum limits</span>
90        <span class="bp">self</span><span class="o">.</span><span class="n">xmin</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span> <span class="o">*</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="nb">min</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmax</span><span class="p">),</span>
91                                  <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">))</span>
92        <span class="bp">self</span><span class="o">.</span><span class="n">ymin</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span> <span class="o">*</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="nb">min</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmax</span><span class="p">),</span>
93                                  <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">))</span>
94        <span class="bp">self</span><span class="o">.</span><span class="n">xmax</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="nb">min</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmax</span><span class="p">),</span>
95                              <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">))</span>
96        <span class="bp">self</span><span class="o">.</span><span class="n">ymax</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="nb">min</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmax</span><span class="p">),</span>
97                              <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">))</span>
98        <span class="c">## center of the boxSum</span>
99        <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span> <span class="o">=</span> <span class="mf">0.0002</span>
100        <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span> <span class="o">=</span> <span class="mf">0.0003</span>
101        <span class="c">## Number of points on the plot</span>
102        <span class="bp">self</span><span class="o">.</span><span class="n">nbins</span> <span class="o">=</span> <span class="mi">20</span>
103        <span class="c">## Define initial result the summation </span>
104        <span class="bp">self</span><span class="o">.</span><span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
105        <span class="bp">self</span><span class="o">.</span><span class="n">error</span> <span class="o">=</span> <span class="mi">0</span>
106        <span class="bp">self</span><span class="o">.</span><span class="n">total</span> <span class="o">=</span> <span class="mi">0</span>
107        <span class="bp">self</span><span class="o">.</span><span class="n">totalerror</span> <span class="o">=</span> <span class="mi">0</span>
108        <span class="bp">self</span><span class="o">.</span><span class="n">points</span> <span class="o">=</span> <span class="mi">0</span>
109        <span class="c">## Flag to determine if the current figure has moved</span>
110        <span class="c">## set to False == no motion , set to True== motion</span>
111        <span class="bp">self</span><span class="o">.</span><span class="n">has_move</span> <span class="o">=</span> <span class="bp">False</span>
112        <span class="c">## Create Boxsum edges </span>
113        <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span> <span class="o">=</span> <span class="n">HorizontalDoubleLine</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
114                                                    <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span>
115                                                    <span class="n">color</span><span class="o">=</span><span class="s">&#39;blue&#39;</span><span class="p">,</span>
116                                                      <span class="n">zorder</span><span class="o">=</span><span class="n">zorder</span><span class="p">,</span>
117                                                      <span class="n">y</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">ymax</span><span class="p">,</span>
118                                                      <span class="n">x</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">xmax</span><span class="p">,</span>
119                                                      <span class="n">center_x</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">center_x</span><span class="p">,</span>
120                                                      <span class="n">center_y</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">center_y</span><span class="p">)</span>
121        <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">qmax</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">qmax</span>
122       
123        <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span> <span class="o">=</span> <span class="n">VerticalDoubleLine</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
124                                                <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span>
125                                                <span class="n">color</span><span class="o">=</span><span class="s">&#39;black&#39;</span><span class="p">,</span>
126                                                <span class="n">zorder</span><span class="o">=</span><span class="n">zorder</span><span class="p">,</span>
127                                                <span class="n">y</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">ymax</span><span class="p">,</span>
128                                                <span class="n">x</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">xmax</span><span class="p">,</span>
129                                                <span class="n">center_x</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">center_x</span><span class="p">,</span>
130                                                <span class="n">center_y</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">center_y</span><span class="p">)</span>
131        <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">qmax</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">qmax</span>
132       
133        <span class="bp">self</span><span class="o">.</span><span class="n">center</span> <span class="o">=</span> <span class="n">PointInteractor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
134                                     <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">subplot</span><span class="p">,</span><span class="n">color</span><span class="o">=</span><span class="s">&#39;grey&#39;</span><span class="p">,</span>
135                                    <span class="n">zorder</span><span class="o">=</span><span class="n">zorder</span><span class="p">,</span>
136                                    <span class="n">center_x</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span><span class="p">,</span>
137                                    <span class="n">center_y</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span><span class="p">)</span>
138        <span class="c">## Save the name of the slicer panel associate with this slicer </span>
139        <span class="bp">self</span><span class="o">.</span><span class="n">panel_name</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>   
140        <span class="c">## Update and post slicer parameters  </span>
141        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
142        <span class="bp">self</span><span class="o">.</span><span class="n">_post_data</span><span class="p">()</span>
143        <span class="c">## Bind to slice parameter events</span>
144        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">EVT_SLICER_PARS</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onEVT_SLICER_PARS</span><span class="p">)</span>
145       
146<div class="viewcode-block" id="BoxSum.set_panel_name"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.set_panel_name">[docs]</a>    <span class="k">def</span> <span class="nf">set_panel_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
147        <span class="sd">&quot;&quot;&quot;</span>
148<span class="sd">            Store the name of the panel associated to this slicer</span>
149<span class="sd">            @param name: the name of this panel</span>
150<span class="sd">        &quot;&quot;&quot;</span>
151        <span class="bp">self</span><span class="o">.</span><span class="n">panel_name</span> <span class="o">=</span> <span class="n">name</span>
152        </div>
153    <span class="k">def</span> <span class="nf">_onEVT_SLICER_PARS</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
154        <span class="sd">&quot;&quot;&quot;</span>
155<span class="sd">            receive an event containing parameters values to reset the slicer</span>
156<span class="sd">            @param event: event of type SlicerParameterEvent with params as </span>
157<span class="sd">            attribute</span>
158<span class="sd">        &quot;&quot;&quot;</span>
159        <span class="c">## Post e message to declare what kind of event has being received</span>
160        <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">base</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span>
161                     <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="s">&quot;Boxsum._onEVT_SLICER_PARS&quot;</span><span class="p">))</span>
162        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
163        <span class="c">## reset the slicer with the values contains the event.params dictionary</span>
164        <span class="k">if</span> <span class="n">event</span><span class="o">.</span><span class="n">type</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span><span class="p">:</span>
165            <span class="bp">self</span><span class="o">.</span><span class="n">set_params</span><span class="p">(</span><span class="n">event</span><span class="o">.</span><span class="n">params</span><span class="p">)</span>
166            <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
167
168<div class="viewcode-block" id="BoxSum.set_layer"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.set_layer">[docs]</a>    <span class="k">def</span> <span class="nf">set_layer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
169        <span class="sd">&quot;&quot;&quot;</span>
170<span class="sd">        Allow adding plot to the same panel</span>
171<span class="sd">        :param n: the number of layer</span>
172<span class="sd">        &quot;&quot;&quot;</span>
173        <span class="bp">self</span><span class="o">.</span><span class="n">layernum</span> <span class="o">=</span> <span class="n">n</span>
174        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
175        </div>
176<div class="viewcode-block" id="BoxSum.clear"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.clear">[docs]</a>    <span class="k">def</span> <span class="nf">clear</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
177        <span class="sd">&quot;&quot;&quot;</span>
178<span class="sd">        Clear the slicer and all connected events related to this slicer</span>
179<span class="sd">        &quot;&quot;&quot;</span>
180        <span class="bp">self</span><span class="o">.</span><span class="n">clear_markers</span><span class="p">()</span>
181        <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
182        <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
183        <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
184        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">connect</span><span class="o">.</span><span class="n">clearall</span><span class="p">()</span>
185        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">Unbind</span><span class="p">(</span><span class="n">EVT_SLICER_PARS</span><span class="p">)</span>
186        </div>
187<div class="viewcode-block" id="BoxSum.update"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.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>
188        <span class="sd">&quot;&quot;&quot;</span>
189<span class="sd">        Respond to changes in the model by recalculating the profiles and</span>
190<span class="sd">        resetting the widgets.</span>
191<span class="sd">        &quot;&quot;&quot;</span>
192        <span class="c">## check if the center point has moved and update the figure accordingly </span>
193        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="o">.</span><span class="n">has_move</span><span class="p">:</span>
194            <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
195            <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">update</span><span class="p">(</span> <span class="n">center</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="p">)</span>
196            <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">update</span><span class="p">(</span> <span class="n">center</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="p">)</span>
197        <span class="c">## check if the horizontal lines have moved and </span>
198        <span class="c">#update the figure accordingly    </span>
199        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">has_move</span><span class="p">:</span>
200            <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
201            <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">y1</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">y1</span><span class="p">,</span>
202                                       <span class="n">y2</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">y2</span><span class="p">,</span>
203                                       <span class="n">height</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">half_height</span><span class="p">)</span>
204        <span class="c">## check if the vertical lines have moved and </span>
205        <span class="c">#update the figure accordingly    </span>
206        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">has_move</span><span class="p">:</span>
207            <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
208            <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">x1</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">x1</span><span class="p">,</span>
209                                         <span class="n">x2</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">x2</span><span class="p">,</span>
210                                         <span class="n">width</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">half_width</span><span class="p">)</span>
211            </div>
212<div class="viewcode-block" id="BoxSum.save"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.save">[docs]</a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
213        <span class="sd">&quot;&quot;&quot;</span>
214<span class="sd">        Remember the roughness for this layer and the next so that we</span>
215<span class="sd">        can restore on Esc.</span>
216<span class="sd">        &quot;&quot;&quot;</span>
217        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">freeze_axes</span><span class="p">()</span>
218        <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">ev</span><span class="p">)</span>
219        <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">ev</span><span class="p">)</span>
220        <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">ev</span><span class="p">)</span>
221        </div>
222    <span class="k">def</span> <span class="nf">_post_data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
223        <span class="sd">&quot;&quot;&quot;</span>
224<span class="sd">        Get the limits of the boxsum and compute the sum of the pixel</span>
225<span class="sd">        contained in that region and the error on that sum</span>
226<span class="sd">        &quot;&quot;&quot;</span>
227        <span class="c">## Data 2D for which the pixel will be summed</span>
228        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span>
229        <span class="c">## the region of the summation</span>
230        <span class="n">x_min</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">x2</span> 
231        <span class="n">x_max</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">x1</span> 
232        <span class="n">y_min</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">y2</span>
233        <span class="n">y_max</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">y1</span>
234        <span class="c">##computation of the sum and its error</span>
235        <span class="kn">from</span> <span class="nn">sas.dataloader.manipulations</span> <span class="kn">import</span> <span class="n">Boxavg</span>
236        <span class="n">box</span> <span class="o">=</span>  <span class="n">Boxavg</span><span class="p">(</span><span class="n">x_min</span><span class="o">=</span><span class="n">x_min</span><span class="p">,</span> <span class="n">x_max</span><span class="o">=</span><span class="n">x_max</span><span class="p">,</span> <span class="n">y_min</span><span class="o">=</span><span class="n">y_min</span><span class="p">,</span> <span class="n">y_max</span><span class="o">=</span><span class="n">y_max</span><span class="p">)</span>
237        <span class="bp">self</span><span class="o">.</span><span class="n">count</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">error</span> <span class="o">=</span> <span class="n">box</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="p">)</span>
238        <span class="c"># Dig out number of points summed, SMK &amp; PDB, 04/03/2013</span>
239        <span class="kn">from</span> <span class="nn">sas.dataloader.manipulations</span> <span class="kn">import</span> <span class="n">Boxsum</span>
240        <span class="n">boxtotal</span> <span class="o">=</span>  <span class="n">Boxsum</span><span class="p">(</span><span class="n">x_min</span><span class="o">=</span><span class="n">x_min</span><span class="p">,</span> <span class="n">x_max</span><span class="o">=</span><span class="n">x_max</span><span class="p">,</span> <span class="n">y_min</span><span class="o">=</span><span class="n">y_min</span><span class="p">,</span> <span class="n">y_max</span><span class="o">=</span><span class="n">y_max</span><span class="p">)</span>
241        <span class="bp">self</span><span class="o">.</span><span class="n">total</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">totalerror</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">points</span> <span class="o">=</span> <span class="n">boxtotal</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">data2D</span><span class="p">)</span>
242       
243<div class="viewcode-block" id="BoxSum.moveend"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.moveend">[docs]</a>    <span class="k">def</span> <span class="nf">moveend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
244        <span class="sd">&quot;&quot;&quot;</span>
245<span class="sd">            After a dragging motion this function is called to compute</span>
246<span class="sd">            the error and the sum of pixel of a given data 2D </span>
247<span class="sd">        &quot;&quot;&quot;</span>
248        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">thaw_axes</span><span class="p">()</span>
249        <span class="c">## compute error an d sum of data&#39;s pixel</span>
250        <span class="bp">self</span><span class="o">.</span><span class="n">_post_data</span><span class="p">()</span>
251        <span class="c">## Create and event ( posted to guiframe)that  set the </span>
252        <span class="c">##current slicer parameter to a panel of name self.panel_name</span>
253        <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span>
254        <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_params</span><span class="p">()</span>
255        <span class="n">event</span> <span class="o">=</span> <span class="n">SlicerParamUpdateEvent</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">type</span><span class="p">,</span>
256                                       <span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">,</span>
257                                       <span class="n">panel_name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">panel_name</span><span class="p">)</span>
258        <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">base</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span>
259        </div>
260<div class="viewcode-block" id="BoxSum.restore"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.restore">[docs]</a>    <span class="k">def</span> <span class="nf">restore</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
261        <span class="sd">&quot;&quot;&quot;</span>
262<span class="sd">        Restore the roughness for this layer.</span>
263<span class="sd">        &quot;&quot;&quot;</span>
264        <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">restore</span><span class="p">()</span>
265        <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">restore</span><span class="p">()</span>
266        <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="o">.</span><span class="n">restore</span><span class="p">()</span>
267        </div>
268<div class="viewcode-block" id="BoxSum.move"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.move">[docs]</a>    <span class="k">def</span> <span class="nf">move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
269        <span class="sd">&quot;&quot;&quot;</span>
270<span class="sd">        Process move to a new position, making sure that the move is allowed.</span>
271<span class="sd">        &quot;&quot;&quot;</span>
272        <span class="k">pass</span>
273    </div>
274<div class="viewcode-block" id="BoxSum.set_cursor"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.set_cursor">[docs]</a>    <span class="k">def</span> <span class="nf">set_cursor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
275        <span class="sd">&quot;&quot;&quot;</span>
276<span class="sd">        &quot;&quot;&quot;</span>
277        <span class="k">pass</span>
278        </div>
279<div class="viewcode-block" id="BoxSum.get_params"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.get_params">[docs]</a>    <span class="k">def</span> <span class="nf">get_params</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
280        <span class="sd">&quot;&quot;&quot;</span>
281<span class="sd">        Store a copy of values of parameters of the slicer into a dictionary.</span>
282<span class="sd">        :return params: the dictionary created</span>
283<span class="sd">        &quot;&quot;&quot;</span>
284        <span class="n">params</span> <span class="o">=</span> <span class="p">{}</span>
285        <span class="n">params</span><span class="p">[</span><span class="s">&quot;Width&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">half_width</span><span class="p">)</span> <span class="o">*</span> <span class="mi">2</span>
286        <span class="n">params</span><span class="p">[</span><span class="s">&quot;Height&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">half_height</span><span class="p">)</span> <span class="o">*</span> <span class="mi">2</span> 
287        <span class="n">params</span><span class="p">[</span><span class="s">&quot;center_x&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="o">.</span><span class="n">x</span>
288        <span class="n">params</span><span class="p">[</span><span class="s">&quot;center_y&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="o">.</span><span class="n">y</span>
289        <span class="n">params</span><span class="p">[</span><span class="s">&quot;num_points&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">points</span>
290        <span class="n">params</span><span class="p">[</span><span class="s">&quot;avg&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">count</span>
291        <span class="n">params</span><span class="p">[</span><span class="s">&quot;avg_error&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">error</span>
292        <span class="n">params</span><span class="p">[</span><span class="s">&quot;sum&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">total</span>
293        <span class="n">params</span><span class="p">[</span><span class="s">&quot;sum_error&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">totalerror</span>
294        <span class="k">return</span> <span class="n">params</span>
295    </div>
296<div class="viewcode-block" id="BoxSum.get_result"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.get_result">[docs]</a>    <span class="k">def</span> <span class="nf">get_result</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
297        <span class="sd">&quot;&quot;&quot;</span>
298<span class="sd">            return the result of box summation</span>
299<span class="sd">        &quot;&quot;&quot;</span>
300        <span class="n">result</span> <span class="o">=</span> <span class="p">{}</span>
301        <span class="n">result</span><span class="p">[</span><span class="s">&quot;num_points&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">points</span>
302        <span class="n">result</span><span class="p">[</span><span class="s">&quot;avg&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">count</span>
303        <span class="n">result</span><span class="p">[</span><span class="s">&quot;avg_error&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">error</span>
304        <span class="n">params</span><span class="p">[</span><span class="s">&quot;sum&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">total</span>
305        <span class="n">params</span><span class="p">[</span><span class="s">&quot;sum_error&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">totalerror</span>
306        <span class="k">return</span> <span class="n">result</span>
307        </div>
308<div class="viewcode-block" id="BoxSum.set_params"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.set_params">[docs]</a>    <span class="k">def</span> <span class="nf">set_params</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
309        <span class="sd">&quot;&quot;&quot;</span>
310<span class="sd">        Receive a dictionary and reset the slicer with values contained </span>
311<span class="sd">        in the values of the dictionary.</span>
312<span class="sd">        :param params: a dictionary containing name of slicer parameters and values the user assigned to the slicer.</span>
313<span class="sd">        &quot;&quot;&quot;</span>
314        <span class="n">x_max</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">params</span><span class="p">[</span><span class="s">&quot;Width&quot;</span><span class="p">]</span> <span class="p">)</span><span class="o">/</span><span class="mi">2</span>
315        <span class="n">y_max</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">params</span><span class="p">[</span><span class="s">&quot;Height&quot;</span><span class="p">]</span> <span class="p">)</span><span class="o">/</span><span class="mi">2</span>
316       
317        <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span> <span class="o">=</span> <span class="n">params</span><span class="p">[</span><span class="s">&quot;center_x&quot;</span><span class="p">]</span> 
318        <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span> <span class="o">=</span> <span class="n">params</span><span class="p">[</span><span class="s">&quot;center_y&quot;</span><span class="p">]</span>
319        <span class="c">#update the slicer given values of params</span>
320        <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">center_x</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">center_x</span><span class="p">,</span> <span class="n">center_y</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">center_y</span><span class="p">)</span>
321        <span class="bp">self</span><span class="o">.</span><span class="n">horizontal_lines</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">center</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="p">,</span>
322                                     <span class="n">width</span><span class="o">=</span><span class="n">x_max</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="n">y_max</span><span class="p">)</span>
323        <span class="bp">self</span><span class="o">.</span><span class="n">vertical_lines</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">center</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="p">,</span>
324                                    <span class="n">width</span><span class="o">=</span><span class="n">x_max</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="n">y_max</span><span class="p">)</span>
325        <span class="c">#compute the new error and sum given values of params</span>
326        <span class="bp">self</span><span class="o">.</span><span class="n">_post_data</span><span class="p">()</span>
327        </div>
328<div class="viewcode-block" id="BoxSum.freeze_axes"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.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>
329        <span class="sd">&quot;&quot;&quot;</span>
330<span class="sd">        &quot;&quot;&quot;</span>
331        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">freeze_axes</span><span class="p">()</span>
332        </div>
333<div class="viewcode-block" id="BoxSum.thaw_axes"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.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>
334        <span class="sd">&quot;&quot;&quot;</span>
335<span class="sd">        &quot;&quot;&quot;</span>
336        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">thaw_axes</span><span class="p">()</span>
337</div>
338<div class="viewcode-block" id="BoxSum.draw"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.BoxSum.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>
339        <span class="sd">&quot;&quot;&quot;</span>
340<span class="sd">        &quot;&quot;&quot;</span>
341        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
342       
343       
344        </div></div>
345<div class="viewcode-block" id="PointInteractor"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.PointInteractor">[docs]</a><span class="k">class</span> <span class="nc">PointInteractor</span><span class="p">(</span><span class="n">_BaseInteractor</span><span class="p">):</span>
346    <span class="sd">&quot;&quot;&quot;</span>
347<span class="sd">    Draw a point that can be dragged with the marker.</span>
348<span class="sd">    this class controls the motion the center of the BoxSum </span>
349<span class="sd">    &quot;&quot;&quot;</span>
350    <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">base</span><span class="p">,</span> <span class="n">axes</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s">&#39;black&#39;</span><span class="p">,</span> <span class="n">zorder</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">center_x</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
351                 <span class="n">center_y</span><span class="o">=</span><span class="mf">0.0</span><span class="p">):</span>
352        <span class="sd">&quot;&quot;&quot;</span>
353<span class="sd">        &quot;&quot;&quot;</span>
354        <span class="n">_BaseInteractor</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">base</span><span class="p">,</span> <span class="n">axes</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">)</span>
355        <span class="c">## Initialization the class </span>
356        <span class="bp">self</span><span class="o">.</span><span class="n">markers</span> <span class="o">=</span> <span class="p">[]</span>
357        <span class="bp">self</span><span class="o">.</span><span class="n">axes</span> <span class="o">=</span> <span class="n">axes</span>
358        <span class="c"># center coordinates</span>
359        <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">center_x</span>
360        <span class="bp">self</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">center_y</span>
361        <span class="c">## saved value of the center coordinates</span>
362        <span class="bp">self</span><span class="o">.</span><span class="n">save_x</span> <span class="o">=</span> <span class="n">center_x</span>
363        <span class="bp">self</span><span class="o">.</span><span class="n">save_y</span> <span class="o">=</span> <span class="n">center_y</span>
364        <span class="c">## Create a marker </span>
365        <span class="k">try</span><span class="p">:</span>
366            <span class="bp">self</span><span class="o">.</span><span class="n">center_marker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">],[</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
367                                          <span class="n">marker</span><span class="o">=</span><span class="s">&#39;s&#39;</span><span class="p">,</span> <span class="n">markersize</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>
368                                          <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
369                                          <span class="n">pickradius</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s">&quot;pick&quot;</span><span class="p">,</span> 
370                                          <span class="c"># Prefer this to other lines</span>
371                                          <span class="n">zorder</span><span class="o">=</span><span class="n">zorder</span><span class="p">,</span> 
372                                          <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
373        <span class="k">except</span><span class="p">:</span>
374            <span class="bp">self</span><span class="o">.</span><span class="n">center_marker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">],[</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
375                                          <span class="n">marker</span><span class="o">=</span><span class="s">&#39;s&#39;</span><span class="p">,</span> <span class="n">markersize</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>
376                                          <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
377                                          <span class="n">label</span><span class="o">=</span><span class="s">&quot;pick&quot;</span><span class="p">,</span> 
378                                          <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
379            <span class="n">message</span>  <span class="o">=</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">THIS PROTOTYPE NEEDS THE LATEST VERSION&quot;</span>
380            <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot; OF MATPLOTLIB.</span><span class="se">\n</span><span class="s"> Get the SVN version that is &quot;</span>
381            <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;at least as recent as June 1, 2007&quot;</span>
382            <span class="n">owner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">parent</span>
383            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="n">owner</span><span class="p">,</span>
384                         <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="s">&quot;AnnulusSlicer: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">message</span><span class="p">))</span>
385        <span class="c">## Draw a point</span>
386        <span class="bp">self</span><span class="o">.</span><span class="n">center</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">],</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">],</span>
387                                      <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;-&#39;</span><span class="p">,</span> <span class="n">marker</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
388                                      <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span>
389                                      <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
390        <span class="c">## Flag to determine the motion this point </span>
391        <span class="bp">self</span><span class="o">.</span><span class="n">has_move</span> <span class="o">=</span> <span class="bp">False</span>   
392        <span class="c">## connecting the marker to allow them to move </span>
393        <span class="bp">self</span><span class="o">.</span><span class="n">connect_markers</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">center_marker</span><span class="p">])</span>
394        <span class="c">## Update the figure</span>
395        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
396   
397<div class="viewcode-block" id="PointInteractor.set_layer"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.PointInteractor.set_layer">[docs]</a>    <span class="k">def</span> <span class="nf">set_layer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
398        <span class="sd">&quot;&quot;&quot;</span>
399<span class="sd">            Allow adding plot to the same panel</span>
400<span class="sd">            @param n: the number of layer</span>
401<span class="sd">        &quot;&quot;&quot;</span>
402        <span class="bp">self</span><span class="o">.</span><span class="n">layernum</span> <span class="o">=</span> <span class="n">n</span>
403        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
404        </div>
405<div class="viewcode-block" id="PointInteractor.clear"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.PointInteractor.clear">[docs]</a>    <span class="k">def</span> <span class="nf">clear</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
406        <span class="sd">&quot;&quot;&quot;</span>
407<span class="sd">            Clear this figure and its markers</span>
408<span class="sd">        &quot;&quot;&quot;</span>
409        <span class="bp">self</span><span class="o">.</span><span class="n">clear_markers</span><span class="p">()</span>
410        <span class="k">try</span><span class="p">:</span>
411            <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
412            <span class="bp">self</span><span class="o">.</span><span class="n">center_marker</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
413        <span class="k">except</span><span class="p">:</span>
414            <span class="c"># Old version of matplotlib</span>
415            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</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">axes</span><span class="o">.</span><span class="n">lines</span><span class="p">)):</span>
416                <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
417  </div>
418<div class="viewcode-block" id="PointInteractor.update"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.PointInteractor.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">center_x</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="n">center_y</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
419        <span class="sd">&quot;&quot;&quot;</span>
420<span class="sd">            Draw the new roughness on the graph.</span>
421<span class="sd">        &quot;&quot;&quot;</span>
422        <span class="k">if</span> <span class="n">center_x</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
423            <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">center_x</span>
424        <span class="k">if</span> <span class="n">center_y</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
425            <span class="bp">self</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">center_y</span>
426        <span class="bp">self</span><span class="o">.</span><span class="n">center_marker</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">],</span> <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">])</span>
427        <span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">],</span> <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">])</span>
428        </div>
429<div class="viewcode-block" id="PointInteractor.save"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.PointInteractor.save">[docs]</a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
430        <span class="sd">&quot;&quot;&quot;</span>
431<span class="sd">        Remember the roughness for this layer and the next so that we</span>
432<span class="sd">        can restore on Esc.</span>
433<span class="sd">        &quot;&quot;&quot;</span>
434        <span class="bp">self</span><span class="o">.</span><span class="n">save_x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span>
435        <span class="bp">self</span><span class="o">.</span><span class="n">save_y</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y</span>
436        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">freeze_axes</span><span class="p">()</span>
437        </div>
438<div class="viewcode-block" id="PointInteractor.moveend"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.PointInteractor.moveend">[docs]</a>    <span class="k">def</span> <span class="nf">moveend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
439        <span class="sd">&quot;&quot;&quot;</span>
440<span class="sd">        &quot;&quot;&quot;</span>
441        <span class="bp">self</span><span class="o">.</span><span class="n">has_move</span><span class="o">=</span><span class="bp">False</span>
442        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">moveend</span><span class="p">(</span><span class="n">ev</span><span class="p">)</span>
443            </div>
444<div class="viewcode-block" id="PointInteractor.restore"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.PointInteractor.restore">[docs]</a>    <span class="k">def</span> <span class="nf">restore</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
445        <span class="sd">&quot;&quot;&quot;</span>
446<span class="sd">        Restore the roughness for this layer.</span>
447<span class="sd">        &quot;&quot;&quot;</span>
448        <span class="bp">self</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_y</span>
449        <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_x</span>
450    </div>
451<div class="viewcode-block" id="PointInteractor.move"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.PointInteractor.move">[docs]</a>    <span class="k">def</span> <span class="nf">move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
452        <span class="sd">&quot;&quot;&quot;</span>
453<span class="sd">        Process move to a new position, making sure that the move is allowed.</span>
454<span class="sd">        &quot;&quot;&quot;</span>
455        <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">x</span>
456        <span class="bp">self</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">y</span>
457        <span class="bp">self</span><span class="o">.</span><span class="n">has_move</span> <span class="o">=</span> <span class="bp">True</span>
458        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
459        </div>
460<div class="viewcode-block" id="PointInteractor.set_cursor"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.PointInteractor.set_cursor">[docs]</a>    <span class="k">def</span> <span class="nf">set_cursor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
461        <span class="sd">&quot;&quot;&quot;</span>
462<span class="sd">        &quot;&quot;&quot;</span>
463        <span class="bp">self</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
464        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
465        </div></div>
466<div class="viewcode-block" id="VerticalDoubleLine"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.VerticalDoubleLine">[docs]</a><span class="k">class</span> <span class="nc">VerticalDoubleLine</span><span class="p">(</span><span class="n">_BaseInteractor</span><span class="p">):</span>
467    <span class="sd">&quot;&quot;&quot;</span>
468<span class="sd">         Draw 2 vertical lines moving in opposite direction and centered on </span>
469<span class="sd">         a point (PointInteractor)</span>
470<span class="sd">    &quot;&quot;&quot;</span>
471    <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">base</span><span class="p">,</span> <span class="n">axes</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s">&#39;black&#39;</span><span class="p">,</span> <span class="n">zorder</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
472                 <span class="n">center_x</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">center_y</span><span class="o">=</span><span class="mf">0.0</span><span class="p">):</span>
473        <span class="sd">&quot;&quot;&quot;</span>
474<span class="sd">        &quot;&quot;&quot;</span>
475        <span class="n">_BaseInteractor</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">base</span><span class="p">,</span> <span class="n">axes</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">)</span>
476        <span class="c">## Initialization the class </span>
477        <span class="bp">self</span><span class="o">.</span><span class="n">markers</span> <span class="o">=</span> <span class="p">[]</span>
478        <span class="bp">self</span><span class="o">.</span><span class="n">axes</span> <span class="o">=</span> <span class="n">axes</span>
479        <span class="c">## Center coordinates</span>
480        <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span> <span class="o">=</span> <span class="n">center_x</span>
481        <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span> <span class="o">=</span> <span class="n">center_y</span>
482        <span class="c">## defined end points vertical lignes and their saved values</span>
483        <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">=</span> <span class="n">y</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span>
484        <span class="bp">self</span><span class="o">.</span><span class="n">save_y1</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y1</span>
485       
486        <span class="n">delta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span>
487        <span class="bp">self</span><span class="o">.</span><span class="n">y2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span> <span class="o">-</span> <span class="n">delta</span>
488        <span class="bp">self</span><span class="o">.</span><span class="n">save_y2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span>
489       
490        <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">=</span> <span class="n">x</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span>
491        <span class="bp">self</span><span class="o">.</span><span class="n">save_x1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x1</span>
492         
493        <span class="n">delta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span>
494        <span class="bp">self</span><span class="o">.</span><span class="n">x2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span> <span class="o">-</span> <span class="n">delta</span>
495        <span class="bp">self</span><span class="o">.</span><span class="n">save_x2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span>
496        <span class="c">## save the color of the line</span>
497        <span class="bp">self</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="n">color</span>
498        <span class="c">## the height of the rectangle</span>
499        <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">y</span><span class="p">)</span>
500        <span class="bp">self</span><span class="o">.</span><span class="n">save_half_height</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">y</span><span class="p">)</span>
501        <span class="c">## the with of the rectangle</span>
502        <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span>
503        <span class="bp">self</span><span class="o">.</span><span class="n">save_half_width</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span>
504        <span class="c">## Create marker </span>
505        <span class="k">try</span><span class="p">:</span>
506            <span class="bp">self</span><span class="o">.</span><span class="n">right_marker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">],[</span><span class="mi">0</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
507                                          <span class="n">marker</span><span class="o">=</span><span class="s">&#39;s&#39;</span><span class="p">,</span> <span class="n">markersize</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>
508                                          <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
509                                          <span class="n">pickradius</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s">&quot;pick&quot;</span><span class="p">,</span> 
510                                          <span class="c"># Prefer this to other lines</span>
511                                          <span class="n">zorder</span><span class="o">=</span><span class="n">zorder</span><span class="p">,</span> <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
512        <span class="k">except</span><span class="p">:</span>
513            <span class="bp">self</span><span class="o">.</span><span class="n">right_marker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">],[</span><span class="mi">0</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
514                                          <span class="n">marker</span><span class="o">=</span><span class="s">&#39;s&#39;</span><span class="p">,</span> <span class="n">markersize</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>
515                                          <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
516                                          <span class="n">label</span><span class="o">=</span><span class="s">&quot;pick&quot;</span><span class="p">,</span> <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
517            <span class="n">message</span>  <span class="o">=</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">THIS PROTOTYPE NEEDS THE LATEST &quot;</span>
518            <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;VERSION OF MATPLOTLIB</span><span class="se">\n</span><span class="s"> Get the SVN version that&quot;</span>
519            <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot; is at least as recent as June 1, 2007&quot;</span>
520            <span class="n">owner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">parent</span>
521            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="n">owner</span><span class="p">,</span>
522                         <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="s">&quot;AnnulusSlicer: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">message</span><span class="p">))</span>
523           
524        <span class="c">## define the left and right lines of the rectangle</span>
525        <span class="bp">self</span><span class="o">.</span><span class="n">right_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">],</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">],</span>
526                                      <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;-&#39;</span><span class="p">,</span> <span class="n">marker</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
527                                      <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span> <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
528        <span class="bp">self</span><span class="o">.</span><span class="n">left_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">],</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">],</span>
529                                      <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;-&#39;</span><span class="p">,</span> <span class="n">marker</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
530                                      <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span> <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
531        <span class="c">## Flag to determine if the lines have moved</span>
532        <span class="bp">self</span><span class="o">.</span><span class="n">has_move</span> <span class="o">=</span> <span class="bp">False</span> 
533        <span class="c">## connection the marker and draw the pictures  </span>
534        <span class="bp">self</span><span class="o">.</span><span class="n">connect_markers</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">right_marker</span><span class="p">])</span>
535        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
536
537<div class="viewcode-block" id="VerticalDoubleLine.set_layer"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.VerticalDoubleLine.set_layer">[docs]</a>    <span class="k">def</span> <span class="nf">set_layer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
538        <span class="sd">&quot;&quot;&quot;</span>
539<span class="sd">        Allow adding plot to the same panel</span>
540<span class="sd">        :param n: the number of layer</span>
541<span class="sd">        &quot;&quot;&quot;</span>
542        <span class="bp">self</span><span class="o">.</span><span class="n">layernum</span> <span class="o">=</span> <span class="n">n</span>
543        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
544        </div>
545<div class="viewcode-block" id="VerticalDoubleLine.clear"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.VerticalDoubleLine.clear">[docs]</a>    <span class="k">def</span> <span class="nf">clear</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
546        <span class="sd">&quot;&quot;&quot;</span>
547<span class="sd">        Clear this slicer  and its markers</span>
548<span class="sd">        &quot;&quot;&quot;</span>
549        <span class="bp">self</span><span class="o">.</span><span class="n">clear_markers</span><span class="p">()</span>
550        <span class="k">try</span><span class="p">:</span>
551            <span class="bp">self</span><span class="o">.</span><span class="n">right_marker</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
552            <span class="bp">self</span><span class="o">.</span><span class="n">right_line</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
553            <span class="bp">self</span><span class="o">.</span><span class="n">left_line</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
554        <span class="k">except</span><span class="p">:</span>
555            <span class="c"># Old version of matplotlib</span>
556            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</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">axes</span><span class="o">.</span><span class="n">lines</span><span class="p">)):</span>
557                <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
558   </div>
559<div class="viewcode-block" id="VerticalDoubleLine.update"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.VerticalDoubleLine.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">x1</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">x2</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">y1</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">y2</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="n">width</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
560                <span class="n">height</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">center</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
561        <span class="sd">&quot;&quot;&quot;</span>
562<span class="sd">        Draw the new roughness on the graph.</span>
563<span class="sd">        :param x1: new maximum value of x coordinates</span>
564<span class="sd">        :param x2: new minimum value of x coordinates</span>
565<span class="sd">        :param y1: new maximum value of y coordinates</span>
566<span class="sd">        :param y2: new minimum value of y coordinates</span>
567<span class="sd">        :param width: is the width of the new rectangle</span>
568<span class="sd">        :param height: is the height of the new rectangle</span>
569<span class="sd">        :param center: provided x, y  coordinates of the center point</span>
570<span class="sd">        &quot;&quot;&quot;</span>
571        <span class="c">## save the new height, witdh of the rectangle if given as a param</span>
572        <span class="k">if</span> <span class="n">width</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
573            <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">=</span> <span class="n">width</span>
574        <span class="k">if</span> <span class="n">height</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
575            <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span> <span class="o">=</span> <span class="n">height</span>
576        <span class="c">## If new  center coordinates are given draw the rectangle </span>
577        <span class="c">##given these value </span>
578        <span class="k">if</span> <span class="n">center</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
579            <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span> <span class="o">=</span> <span class="n">center</span><span class="o">.</span><span class="n">x</span>
580            <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span> <span class="o">=</span> <span class="n">center</span><span class="o">.</span><span class="n">y</span>
581            <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span>
582            <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="o">=</span> <span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span>
583            <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span>
584            <span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="o">=</span> <span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">half_height</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span>
585         
586            <span class="bp">self</span><span class="o">.</span><span class="n">right_marker</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">],</span> <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">center_y</span><span class="p">])</span>
587            <span class="bp">self</span><span class="o">.</span><span class="n">right_line</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">],</span> 
588                                <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">])</span>
589            <span class="bp">self</span><span class="o">.</span><span class="n">left_line</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">],</span>
590                               <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">])</span>
591            <span class="k">return</span> 
592        <span class="c">## if x1, y1, y2, y3 are given draw the rectangle with this value</span>
593        <span class="k">if</span> <span class="n">x1</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span> 
594            <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">=</span> <span class="n">x1</span>
595        <span class="k">if</span> <span class="n">x2</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span> 
596            <span class="bp">self</span><span class="o">.</span><span class="n">x2</span> <span class="o">=</span> <span class="n">x2</span>
597        <span class="k">if</span> <span class="n">y1</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span> 
598            <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">=</span> <span class="n">y1</span>
599        <span class="k">if</span> <span class="n">y2</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span> 
600            <span class="bp">self</span><span class="o">.</span><span class="n">y2</span> <span class="o">=</span> <span class="n">y2</span>
601        <span class="c">## Draw 2 vertical lines and a marker </span>
602        <span class="bp">self</span><span class="o">.</span><span class="n">right_marker</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">],</span> <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">center_y</span><span class="p">])</span>
603        <span class="bp">self</span><span class="o">.</span><span class="n">right_line</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">],</span> <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">])</span>
604        <span class="bp">self</span><span class="o">.</span><span class="n">left_line</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">],</span> <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">])</span>
605        </div>
606<div class="viewcode-block" id="VerticalDoubleLine.save"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.VerticalDoubleLine.save">[docs]</a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
607        <span class="sd">&quot;&quot;&quot;</span>
608<span class="sd">        Remember the roughness for this layer and the next so that we</span>
609<span class="sd">        can restore on Esc.</span>
610<span class="sd">        &quot;&quot;&quot;</span>
611        <span class="bp">self</span><span class="o">.</span><span class="n">save_x2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span>
612        <span class="bp">self</span><span class="o">.</span><span class="n">save_y2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span>
613        <span class="bp">self</span><span class="o">.</span><span class="n">save_x1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x1</span>
614        <span class="bp">self</span><span class="o">.</span><span class="n">save_y1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y1</span>
615        <span class="bp">self</span><span class="o">.</span><span class="n">save_half_height</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span>
616        <span class="bp">self</span><span class="o">.</span><span class="n">save_half_width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span>
617        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">freeze_axes</span><span class="p">()</span>
618</div>
619<div class="viewcode-block" id="VerticalDoubleLine.moveend"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.VerticalDoubleLine.moveend">[docs]</a>    <span class="k">def</span> <span class="nf">moveend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
620        <span class="sd">&quot;&quot;&quot;</span>
621<span class="sd">            After a dragging motion reset the flag self.has_move to False</span>
622<span class="sd">        &quot;&quot;&quot;</span>
623        <span class="bp">self</span><span class="o">.</span><span class="n">has_move</span> <span class="o">=</span> <span class="bp">False</span>
624        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">moveend</span><span class="p">(</span><span class="n">ev</span><span class="p">)</span>
625            </div>
626<div class="viewcode-block" id="VerticalDoubleLine.restore"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.VerticalDoubleLine.restore">[docs]</a>    <span class="k">def</span> <span class="nf">restore</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
627        <span class="sd">&quot;&quot;&quot;</span>
628<span class="sd">        Restore the roughness for this layer.</span>
629<span class="sd">        &quot;&quot;&quot;</span>
630        <span class="bp">self</span><span class="o">.</span><span class="n">y2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_y2</span>
631        <span class="bp">self</span><span class="o">.</span><span class="n">x2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_x2</span>
632        <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_y1</span>
633        <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_x1</span>
634        <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_half_height</span>
635        <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_half_width</span>
636       </div>
637<div class="viewcode-block" id="VerticalDoubleLine.move"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.VerticalDoubleLine.move">[docs]</a>    <span class="k">def</span> <span class="nf">move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
638        <span class="sd">&quot;&quot;&quot;</span>
639<span class="sd">        Process move to a new position, making sure that the move is allowed.</span>
640<span class="sd">        &quot;&quot;&quot;</span>
641        <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">=</span> <span class="n">x</span>
642        <span class="n">delta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span>
643        <span class="bp">self</span><span class="o">.</span><span class="n">x2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span> <span class="o">-</span> <span class="n">delta</span>
644        <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span>
645        <span class="bp">self</span><span class="o">.</span><span class="n">has_move</span> <span class="o">=</span> <span class="bp">True</span>
646        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
647        </div>
648<div class="viewcode-block" id="VerticalDoubleLine.set_cursor"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.VerticalDoubleLine.set_cursor">[docs]</a>    <span class="k">def</span> <span class="nf">set_cursor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
649        <span class="sd">&quot;&quot;&quot;</span>
650<span class="sd">            Update the figure given x and y </span>
651<span class="sd">        &quot;&quot;&quot;</span>
652        <span class="bp">self</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
653        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
654        </div></div>
655<div class="viewcode-block" id="HorizontalDoubleLine"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.HorizontalDoubleLine">[docs]</a><span class="k">class</span> <span class="nc">HorizontalDoubleLine</span><span class="p">(</span><span class="n">_BaseInteractor</span><span class="p">):</span>
656    <span class="sd">&quot;&quot;&quot;</span>
657<span class="sd">         Select an annulus through a 2D plot</span>
658<span class="sd">    &quot;&quot;&quot;</span>
659    <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">base</span><span class="p">,</span> <span class="n">axes</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s">&#39;black&#39;</span><span class="p">,</span> <span class="n">zorder</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
660                 <span class="n">center_x</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">center_y</span><span class="o">=</span><span class="mf">0.0</span><span class="p">):</span>
661       
662        <span class="n">_BaseInteractor</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">base</span><span class="p">,</span> <span class="n">axes</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">)</span>
663        <span class="c">## Initialization the class </span>
664        <span class="bp">self</span><span class="o">.</span><span class="n">markers</span> <span class="o">=</span> <span class="p">[]</span>
665        <span class="bp">self</span><span class="o">.</span><span class="n">axes</span> <span class="o">=</span> <span class="n">axes</span>
666        <span class="c">## Center coordinates</span>
667        <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span> <span class="o">=</span> <span class="n">center_x</span>
668        <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span> <span class="o">=</span> <span class="n">center_y</span>
669        <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">=</span> <span class="n">y</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span>
670        <span class="bp">self</span><span class="o">.</span><span class="n">save_y1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y1</span>
671        <span class="n">delta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span>
672        <span class="bp">self</span><span class="o">.</span><span class="n">y2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span> <span class="o">-</span> <span class="n">delta</span>
673        <span class="bp">self</span><span class="o">.</span><span class="n">save_y2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span>
674        <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">=</span> <span class="n">x</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span>
675        <span class="bp">self</span><span class="o">.</span><span class="n">save_x1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x1</span>
676        <span class="n">delta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span>
677        <span class="bp">self</span><span class="o">.</span><span class="n">x2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span> <span class="o">-</span> <span class="n">delta</span>
678        <span class="bp">self</span><span class="o">.</span><span class="n">save_x2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span>
679        <span class="bp">self</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="n">color</span>
680        <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span><span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">y</span><span class="p">)</span>
681        <span class="bp">self</span><span class="o">.</span><span class="n">save_half_height</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">y</span><span class="p">)</span>
682        <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
683        <span class="bp">self</span><span class="o">.</span><span class="n">save_half_width</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
684        <span class="k">try</span><span class="p">:</span>
685            <span class="bp">self</span><span class="o">.</span><span class="n">top_marker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
686                                          <span class="n">marker</span><span class="o">=</span><span class="s">&#39;s&#39;</span><span class="p">,</span> <span class="n">markersize</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>
687                                          <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
688                                          <span class="n">pickradius</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s">&quot;pick&quot;</span><span class="p">,</span>
689                                          <span class="c"># Prefer this to other lines</span>
690                                          <span class="n">zorder</span><span class="o">=</span><span class="n">zorder</span><span class="p">,</span> <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
691        <span class="k">except</span><span class="p">:</span>
692            <span class="bp">self</span><span class="o">.</span><span class="n">top_marker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
693                                          <span class="n">marker</span><span class="o">=</span><span class="s">&#39;s&#39;</span><span class="p">,</span> <span class="n">markersize</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>
694                                          <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
695                                          <span class="n">label</span><span class="o">=</span><span class="s">&quot;pick&quot;</span><span class="p">,</span> <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
696            <span class="n">message</span>  <span class="o">=</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">THIS PROTOTYPE NEEDS THE LATEST VERSION &quot;</span>
697            <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;OF MATPLOTLIB</span><span class="se">\n</span><span class="s"> Get the SVN version &quot;</span>
698            <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;that is at least as recent as June 1, 2007&quot;</span>
699            <span class="n">owner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">parent</span>
700            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="n">owner</span><span class="p">,</span>
701                         <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="s">&quot;AnnulusSlicer: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">message</span><span class="p">))</span>
702           
703        <span class="c"># Define 2 horizotnal lines</span>
704        <span class="bp">self</span><span class="o">.</span><span class="n">top_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">,</span> <span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">],</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">],</span>
705                                      <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;-&#39;</span><span class="p">,</span> <span class="n">marker</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
706                                      <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span> <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
707        <span class="bp">self</span><span class="o">.</span><span class="n">bottom_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">,</span> <span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">],</span> 
708                                          <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">],</span>
709                                      <span class="n">linestyle</span><span class="o">=</span><span class="s">&#39;-&#39;</span><span class="p">,</span> <span class="n">marker</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span>
710                                      <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">,</span> <span class="n">visible</span><span class="o">=</span><span class="bp">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
711        <span class="c">## Flag to determine if the lines have moved</span>
712        <span class="bp">self</span><span class="o">.</span><span class="n">has_move</span> <span class="o">=</span> <span class="bp">False</span>   
713        <span class="c">## connection the marker and draw the pictures </span>
714        <span class="bp">self</span><span class="o">.</span><span class="n">connect_markers</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">top_marker</span><span class="p">])</span>
715        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
716
717<div class="viewcode-block" id="HorizontalDoubleLine.set_layer"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.HorizontalDoubleLine.set_layer">[docs]</a>    <span class="k">def</span> <span class="nf">set_layer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
718        <span class="sd">&quot;&quot;&quot;</span>
719<span class="sd">            Allow adding plot to the same panel</span>
720<span class="sd">            @param n: the number of layer</span>
721<span class="sd">        &quot;&quot;&quot;</span>
722        <span class="bp">self</span><span class="o">.</span><span class="n">layernum</span> <span class="o">=</span> <span class="n">n</span>
723        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
724        </div>
725<div class="viewcode-block" id="HorizontalDoubleLine.clear"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.HorizontalDoubleLine.clear">[docs]</a>    <span class="k">def</span> <span class="nf">clear</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
726        <span class="sd">&quot;&quot;&quot;</span>
727<span class="sd">            Clear this figure and its markers</span>
728<span class="sd">        &quot;&quot;&quot;</span>
729        <span class="bp">self</span><span class="o">.</span><span class="n">clear_markers</span><span class="p">()</span>
730        <span class="k">try</span><span class="p">:</span>
731            <span class="bp">self</span><span class="o">.</span><span class="n">top_marker</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
732            <span class="bp">self</span><span class="o">.</span><span class="n">bottom_line</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
733            <span class="bp">self</span><span class="o">.</span><span class="n">top_line</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
734        <span class="k">except</span><span class="p">:</span>
735            <span class="c"># Old version of matplotlib</span>
736            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</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">axes</span><span class="o">.</span><span class="n">lines</span><span class="p">)):</span>
737                <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
738    </div>
739<div class="viewcode-block" id="HorizontalDoubleLine.update"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.HorizontalDoubleLine.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">x1</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">x2</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">y1</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">y2</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
740               <span class="n">width</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">center</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
741        <span class="sd">&quot;&quot;&quot;</span>
742<span class="sd">        Draw the new roughness on the graph.</span>
743<span class="sd">        :param x1: new maximum value of x coordinates</span>
744<span class="sd">        :param x2: new minimum value of x coordinates</span>
745<span class="sd">        :param y1: new maximum value of y coordinates</span>
746<span class="sd">        :param y2: new minimum value of y coordinates</span>
747<span class="sd">        :param width: is the width of the new rectangle</span>
748<span class="sd">        :param height: is the height of the new rectangle</span>
749<span class="sd">        :param center: provided x, y  coordinates of the center point</span>
750<span class="sd">        &quot;&quot;&quot;</span>
751        <span class="c">## save the new height, witdh of the rectangle if given as a param</span>
752        <span class="k">if</span> <span class="n">width</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
753            <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">=</span> <span class="n">width</span>
754        <span class="k">if</span> <span class="n">height</span><span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
755            <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span> <span class="o">=</span> <span class="n">height</span>
756        <span class="c">## If new  center coordinates are given draw the rectangle </span>
757        <span class="c">##given these value </span>
758        <span class="k">if</span> <span class="n">center</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
759            <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span> <span class="o">=</span> <span class="n">center</span><span class="o">.</span><span class="n">x</span>
760            <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span> <span class="o">=</span> <span class="n">center</span><span class="o">.</span><span class="n">y</span>
761            <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span>
762            <span class="bp">self</span><span class="o">.</span><span class="n">x2</span> <span class="o">=</span> <span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_x</span>
763           
764            <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span>
765            <span class="bp">self</span><span class="o">.</span><span class="n">y2</span> <span class="o">=</span> <span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">half_height</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span>
766           
767            <span class="bp">self</span><span class="o">.</span><span class="n">top_marker</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">center_x</span><span class="p">],</span> <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">])</span>
768            <span class="bp">self</span><span class="o">.</span><span class="n">top_line</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">],</span>
769                              <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">])</span>
770            <span class="bp">self</span><span class="o">.</span><span class="n">bottom_line</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">],</span>
771                                 <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">])</span>
772            <span class="k">return</span> 
773        <span class="c">## if x1, y1, y2, y3 are given draw the rectangle with this value</span>
774        <span class="k">if</span> <span class="n">x1</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span> 
775            <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">=</span> <span class="n">x1</span>
776        <span class="k">if</span> <span class="n">x2</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span> 
777            <span class="bp">self</span><span class="o">.</span><span class="n">x2</span> <span class="o">=</span> <span class="n">x2</span>
778        <span class="k">if</span> <span class="n">y1</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span> 
779            <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">=</span> <span class="n">y1</span>
780        <span class="k">if</span> <span class="n">y2</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span> 
781            <span class="bp">self</span><span class="o">.</span><span class="n">y2</span> <span class="o">=</span> <span class="n">y2</span>
782        <span class="c">## Draw 2 vertical lines and a marker </span>
783        <span class="bp">self</span><span class="o">.</span><span class="n">top_marker</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">center_x</span><span class="p">],</span> <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">])</span>
784        <span class="bp">self</span><span class="o">.</span><span class="n">top_line</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">],</span> <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">])</span>
785        <span class="bp">self</span><span class="o">.</span><span class="n">bottom_line</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xdata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">x1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span><span class="p">],</span> <span class="n">ydata</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span><span class="p">])</span>
786       </div>
787<div class="viewcode-block" id="HorizontalDoubleLine.save"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.HorizontalDoubleLine.save">[docs]</a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
788        <span class="sd">&quot;&quot;&quot;</span>
789<span class="sd">        Remember the roughness for this layer and the next so that we</span>
790<span class="sd">        can restore on Esc.</span>
791<span class="sd">        &quot;&quot;&quot;</span>
792        <span class="bp">self</span><span class="o">.</span><span class="n">save_x2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x2</span>
793        <span class="bp">self</span><span class="o">.</span><span class="n">save_y2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y2</span>
794        <span class="bp">self</span><span class="o">.</span><span class="n">save_x1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x1</span>
795        <span class="bp">self</span><span class="o">.</span><span class="n">save_y1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y1</span>
796        <span class="bp">self</span><span class="o">.</span><span class="n">save_half_height</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span>
797        <span class="bp">self</span><span class="o">.</span><span class="n">save_half_width</span> <span class="o">=</span>  <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span>
798        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">freeze_axes</span><span class="p">()</span>
799        </div>
800<div class="viewcode-block" id="HorizontalDoubleLine.moveend"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.HorizontalDoubleLine.moveend">[docs]</a>    <span class="k">def</span> <span class="nf">moveend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
801        <span class="sd">&quot;&quot;&quot;</span>
802<span class="sd">        After a dragging motion reset the flag self.has_move to False</span>
803<span class="sd">        &quot;&quot;&quot;</span>
804        <span class="bp">self</span><span class="o">.</span><span class="n">has_move</span> <span class="o">=</span> <span class="bp">False</span>
805        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">moveend</span><span class="p">(</span><span class="n">ev</span><span class="p">)</span>
806           </div>
807<div class="viewcode-block" id="HorizontalDoubleLine.restore"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.HorizontalDoubleLine.restore">[docs]</a>    <span class="k">def</span> <span class="nf">restore</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
808        <span class="sd">&quot;&quot;&quot;</span>
809<span class="sd">        Restore the roughness for this layer.</span>
810<span class="sd">        &quot;&quot;&quot;</span>
811        <span class="bp">self</span><span class="o">.</span><span class="n">y2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_y2</span>
812        <span class="bp">self</span><span class="o">.</span><span class="n">x2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_x2</span>
813        <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_y1</span>
814        <span class="bp">self</span><span class="o">.</span><span class="n">x1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_x1</span>
815        <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_half_height</span>
816        <span class="bp">self</span><span class="o">.</span><span class="n">half_width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_half_width</span>
817        </div>
818<div class="viewcode-block" id="HorizontalDoubleLine.move"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.HorizontalDoubleLine.move">[docs]</a>    <span class="k">def</span> <span class="nf">move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">ev</span><span class="p">):</span>
819        <span class="sd">&quot;&quot;&quot;</span>
820<span class="sd">        Process move to a new position, making sure that the move is allowed.</span>
821<span class="sd">        &quot;&quot;&quot;</span>
822        <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">=</span> <span class="n">y</span>
823        <span class="n">delta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y1</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span>
824        <span class="bp">self</span><span class="o">.</span><span class="n">y2</span> <span class="o">=</span>  <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span> <span class="o">-</span> <span class="n">delta</span>
825        <span class="bp">self</span><span class="o">.</span><span class="n">half_height</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">y1</span><span class="p">)</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_y</span>
826        <span class="bp">self</span><span class="o">.</span><span class="n">has_move</span> <span class="o">=</span> <span class="bp">True</span>
827        <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
828    </div>
829<div class="viewcode-block" id="HorizontalDoubleLine.set_cursor"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.boxSum.HorizontalDoubleLine.set_cursor">[docs]</a>    <span class="k">def</span> <span class="nf">set_cursor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
830        <span class="sd">&quot;&quot;&quot;</span>
831<span class="sd">            Update the figure given x and y </span>
832<span class="sd">        &quot;&quot;&quot;</span>
833        <span class="bp">self</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
834        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
835         </div></div>
836</pre></div>
837
838          </div>
839        </div>
840      </div>
841      <div class="sphinxsidebar">
842        <div class="sphinxsidebarwrapper">
843<div id="searchbox" style="display: none">
844  <h3>Quick search</h3>
845    <form class="search" action="../../../../../search.html" method="get">
846      <input type="text" name="q" />
847      <input type="submit" value="Go" />
848      <input type="hidden" name="check_keywords" value="yes" />
849      <input type="hidden" name="area" value="default" />
850    </form>
851    <p class="searchtip" style="font-size: 90%">
852    Enter search terms or a module, class or function name.
853    </p>
854</div>
855<script type="text/javascript">$('#searchbox').show(0);</script>
856        </div>
857      </div>
858      <div class="clearer"></div>
859    </div>
860    <div class="related">
861      <h3>Navigation</h3>
862      <ul>
863        <li class="right" style="margin-right: 10px">
864          <a href="../../../../../genindex.html" title="General Index"
865             >index</a></li>
866        <li class="right" >
867          <a href="../../../../../py-modindex.html" title="Python Module Index"
868             >modules</a> |</li>
869        <li><a href="../../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
870          <li><a href="../../../../index.html" >Module code</a> &raquo;</li>
871          <li><a href="../../../guiframe.html" >sas.guiframe</a> &raquo;</li> 
872      </ul>
873    </div>
874    <div class="footer">
875        &copy; Copyright 2013, The SasView Project.
876      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
877    </div>
878  </body>
879</html>
Note: See TracBrowser for help on using the repository browser.