source: trunk/src/uvmat_doc/FUNCTIONS_DOC/mouse_down.html @ 37

Last change on this file since 37 was 37, checked in by sommeria, 14 years ago

create_grid.fig ,
uvmat_doc and all the included files added

File size: 36.2 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3<html>
4<head>
5  <title>Description of mouse_down</title>
6  <meta name="keywords" content="mouse_down">
7  <meta name="description" content="'mouse_down': function activated when the mouse button is pressed on a figure (callback for 'WindowButtonDownFcn'">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
10  <meta name="robots" content="index, follow">
11  <link type="text/css" rel="stylesheet" href="../m2html.css">
12</head>
13<body>
14<a name="_top"></a>
15<div><a href="../index.html">Home</a> &gt;  <a href="index.html">.</a> &gt; mouse_down.m</div>
16
17<!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td>
18<td align="right"><a href="index.html">Index for .&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
19
20<h1>mouse_down
21</h1>
22
23<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
24<div class="box"><strong>'mouse_down': function activated when the mouse button is pressed on a figure (callback for 'WindowButtonDownFcn'</strong></div>
25
26<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
27<div class="box"><strong>function xy=mouse_down(hObject,eventdata) </strong></div>
28
29<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
30<div class="fragment"><pre class="comment">'mouse_down': function activated when the mouse button is pressed on a figure (callback for 'WindowButtonDownFcn'
31--------------------------------------------------------------
32 xy=mouse_down(hObject,eventdata)
33 activated by the command:
34 set(hObject,'WindowButtonDownFcn',{'mouse_down'}),
35 where hObject is the handle of the figure
36
37AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
38  Copyright Joel Sommeria, 2008, LEGI / CNRS-UJF-INPG, sommeria@coriolis-legi.org.
39AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
40     This file is part of the toolbox UVMAT.
41 
42     UVMAT is free software; you can redistribute it and/or modify
43     it under the terms of the GNU General Public License as published by
44     the Free Software Foundation; either version 2 of the License, or
45     (at your option) any later version.
46 
47     UVMAT is distributed in the hope that it will be useful,
48     but WITHOUT ANY WARRANTY; without even the implied warranty of
49     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
50     GNU General Public License (file UVMAT/COPYING.txt) for more details.
51AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</pre></div>
52
53<!-- crossreference -->
54<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
55This function calls:
56<ul style="list-style-image:url(../matlabicon.gif)">
57<li><a href="geometry_calib.html" class="code" title="function varargout = geometry_calib(varargin)">geometry_calib</a> 'geometry_calib': performs geometric calibration from a set of reference points</li><li><a href="plot_field.html" class="code" title="function [PlotType,PlotParamOut,haxes]= plot_field(Data,haxes,PlotParam,KeepLim,PosColorbar)">plot_field</a>      'plot_field': plot any field with the structure defined in the uvmat package</li><li><a href="plot_object.html" class="code" title="function [hh]=plot_object(ObjectDataIn,ProjObject,hplot,col)">plot_object</a>       'plot_object': draws a projection object (points, line, plane...)</li><li><a href="read_geometry_calib.html" class="code" title="function data=read_geometry_calib(Coord_cell)">read_geometry_calib</a> 'read_geometry_calib': read data on the GUI geometry_calib</li><li><a href="read_set_object.html" class="code" title="function data=read_set_object(handles)">read_set_object</a>       'read_set_object': read the data on the 'set_object' interface</li><li><a href="set_title.html" class="code" title="function TITLE=set_title(Style,ProjMode)">set_title</a>     'set_title': defines the 'TITLE' of a projection object</li><li><a href="uvmat.html" class="code" title="function varargout = uvmat(varargin)">uvmat</a>        'uvmat': function associated with the GUI 'uvmat.fig' for images and data field visualization</li></ul>
58This function is called by:
59<ul style="list-style-image:url(../matlabicon.gif)">
60<li><a href="mouse_up.html" class="code" title="function mouse_up(ggg,eventdata,handles)">mouse_up</a>  'mouse_up': function  activated when the mouse button is released</li></ul>
61<!-- crossreference -->
62
63<h2><a name="_subfunctions"></a>SUBFUNCTIONS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
64<ul style="list-style-image:url(../matlabicon.gif)">
65<li><a href="#_sub1" class="code">function update_plot</a></li></ul>
66<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
67<div class="fragment"><pre>0001 <span class="comment">%'mouse_down': function activated when the mouse button is pressed on a figure (callback for 'WindowButtonDownFcn'</span>
680002 <span class="comment">%--------------------------------------------------------------</span>
690003 <span class="comment">% xy=mouse_down(hObject,eventdata)</span>
700004 <span class="comment">% activated by the command:</span>
710005 <span class="comment">% set(hObject,'WindowButtonDownFcn',{'mouse_down'}),</span>
720006 <span class="comment">% where hObject is the handle of the figure</span>
730007 <span class="comment">%</span>
740008 <span class="comment">%AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</span>
750009 <span class="comment">%  Copyright Joel Sommeria, 2008, LEGI / CNRS-UJF-INPG, sommeria@coriolis-legi.org.</span>
760010 <span class="comment">%AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</span>
770011 <span class="comment">%     This file is part of the toolbox UVMAT.</span>
780012 <span class="comment">%</span>
790013 <span class="comment">%     UVMAT is free software; you can redistribute it and/or modify</span>
800014 <span class="comment">%     it under the terms of the GNU General Public License as published by</span>
810015 <span class="comment">%     the Free Software Foundation; either version 2 of the License, or</span>
820016 <span class="comment">%     (at your option) any later version.</span>
830017 <span class="comment">%</span>
840018 <span class="comment">%     UVMAT is distributed in the hope that it will be useful,</span>
850019 <span class="comment">%     but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
860020 <span class="comment">%     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
870021 <span class="comment">%     GNU General Public License (file UVMAT/COPYING.txt) for more details.</span>
880022 <span class="comment">%AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</span>
890023
900024 <a name="_sub0" href="#_subfunctions" class="code">function xy=mouse_down(hObject,eventdata)</a>
910025 testzoom=0;<span class="comment">%default</span>
920026 MouseAction=<span class="string">'none'</span>; <span class="comment">%default</span>
930027 huvmat=findobj(allchild(0),<span class="string">'Name'</span>,<span class="string">'uvmat'</span>);<span class="comment">%find the uvmat interface handle which controls theoption of  mouse action</span>
940028 <span class="keyword">if</span> ~isempty(huvmat)
950029     hhuvmat=guidata(huvmat);<span class="comment">%handles of elements in uvmat</span>
960030     UvData=get(huvmat,<span class="string">'UserData'</span>);
970031     testzoom=get(hhuvmat.zoom,<span class="string">'Value'</span>);<span class="comment">% get the mouse action from the uvmat GUI: options:</span>
980032     <span class="keyword">if</span> isfield(UvData,<span class="string">'MouseAction'</span>)
990033         MouseAction=UvData.MouseAction;<span class="comment">% get the mouse action from the uvmat GUI: options:</span>
1000034     <span class="keyword">end</span>
1010035 <span class="keyword">end</span>
1020036 test_create=~testzoom &amp;&amp; (isequal(MouseAction,<span class="string">'create_object'</span>) || isequal(MouseAction,<span class="string">'create_mask'</span>));
1030037 <span class="comment">%test_cal=get(handles.cal,'Value');</span>
1040038 test_cal=isequal(MouseAction,<span class="string">'calib'</span>);
1050039 handles_coord=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'menu_coord'</span>);
1060040 menu_coord=get(handles_coord,<span class="string">'String'</span>);
1070041 coord_choice=get(handles_coord,<span class="string">'Value'</span>);
1080042 coord_type=menu_coord{coord_choice};
1090043 test_edit=isequal(MouseAction,<span class="string">'edit_object'</span>);
1100044 test_edit_vect=isequal(MouseAction,<span class="string">'edit_vect'</span>);
1110045 xdisplay=[];<span class="comment">%default</span>
1120046 ydisplay=[];<span class="comment">%default</span>
1130047 haxes=[];
1140048 AxeData=[];<span class="comment">%default</span>
1150049
1160050 <span class="comment">%edit an existing point or line if found</span>
1170051 hcurrentobject=gco;<span class="comment">% current object handle (selected by the mouse)</span>
1180052 hcurrentfig=gcbo;<span class="comment">% current figure handle</span>
1190053 tag_obj=get(gco,<span class="string">'Tag'</span>);
1200054 xy=[];<span class="comment">%default</span>
1210055 xy_fig=get(hcurrentfig,<span class="string">'CurrentPoint'</span>);<span class="comment">% current point of the current figure (gcbo)</span>
1220056 hchild=get(hcurrentfig,<span class="string">'Children'</span>);<span class="comment">%handles of all objects in the current figure</span>
1230057 <span class="comment">% loop on all the objects in the current figure (selected by the last mouse click)</span>
1240058 <span class="keyword">for</span> ichild=1:length(hchild)
1250059     obj_pos=get(hchild(ichild),<span class="string">'Position'</span>);<span class="comment">%position of the object</span>
1260060     <span class="keyword">if</span> xy_fig(1) &gt;=obj_pos(1) &amp; xy_fig(2) &gt;= obj_pos(2)&amp; xy_fig(1) &lt;=obj_pos(1)+obj_pos(3) &amp; xy_fig(2) &lt;= obj_pos(2)+obj_pos(4);
1270061         htype=get(hchild(ichild),<span class="string">'Type'</span>);<span class="comment">%type of object child of the current figure</span>
1280062         <span class="comment">%if the mouse is over an axis, look at the data</span>
1290063         <span class="keyword">if</span> isequal(htype,<span class="string">'axes'</span>)
1300064             haxes=hchild(ichild);
1310065             xy=get(haxes,<span class="string">'CurrentPoint'</span>);<span class="comment">%xy(1,1),xy(1,2): current x,y positions in axes coordinates</span>
1320066             AxeData=get(haxes,<span class="string">'UserData'</span>);<span class="comment">% data attached to the axis</span>
1330067             AxeData.CurrentOrigin=[xy(1,1) xy(1,2)];<span class="comment">% The current point set by the mouse becomes the current origin</span>
1340068             <span class="keyword">if</span> ~isequal(tag_obj,<span class="string">'proj_object'</span>) &amp; ~test_create
1350069                 x_mouse=xy(1,1);<span class="comment">%default</span>
1360070                 y_mouse=xy(1,2);<span class="comment">%default</span>
1370071                 u_mouse=[];
1380072                 v_mouse=[];
1390073                 w_mouse=[];
1400074                 A_mouse=[];
1410075                 c_text=[];
1420076                 f_text=[];
1430077                 ff_text=[];     
1440078                 ivec=[];   
1450079                 <span class="keyword">if</span> isfield(AxeData,<span class="string">'X'</span>) &amp; isfield(AxeData,<span class="string">'Y'</span>) &amp; isfield(AxeData,<span class="string">'Mesh'</span>)<span class="comment">% test on the existence of a vector field in the current axis</span>
1460080                     flag_vec=(AxeData.X&lt;(xy(1,1)+AxeData.Mesh/4) &amp; AxeData.X&gt;(xy(1,1)-AxeData.Mesh/4)) &amp; <span class="keyword">...</span><span class="comment">%flagx=1 for the vectors with x position selected by the mouse</span>
1470081                       (AxeData.Y&lt;(xy(1,2)+AxeData.Mesh/4) &amp; AxeData.Y&gt;(xy(1,2)-AxeData.Mesh/4));<span class="comment">%f</span>
1480082                     ivec=find(flag_vec);<span class="comment">% search the selected vector index ivec</span>
1490083                     <span class="keyword">if</span> length(ivec)&gt;0
1500084                         ivec=ivec(1);<span class="comment">%choice the first selected vector if several are selected</span>
1510085                     <span class="keyword">end</span>
1520086                 <span class="keyword">end</span>
1530087             <span class="keyword">end</span>
1540088         <span class="keyword">elseif</span> isequal(get(hchild(ichild),<span class="string">'Visible'</span>),<span class="string">'on'</span>)&amp; ~isequal(get(hchild(ichild),<span class="string">'Style'</span>),<span class="string">'frame'</span>)
1550089            <span class="comment">%FAIRE UNE OPTION D'AIDE AVEC BOUTON SOURIS DROIT (ALT)??</span>
1560090         <span class="keyword">end</span>
1570091     <span class="keyword">end</span>
1580092 <span class="keyword">end</span>
1590093 test2D=0;
1600094 <span class="keyword">if</span> isfield(AxeData,<span class="string">'NbDim'</span>)
1610095     <span class="keyword">if</span> isequal(AxeData.NbDim,2)
1620096         test2D=1;
1630097     <span class="keyword">end</span>
1640098 <span class="keyword">end</span>
1650099 <span class="keyword">if</span> ~test2D     <span class="comment">%desable  object creation and vector editing if NbDim different from 2</span>
1660100     test_create=0;
1670101     test_edit_vect=0;
1680102 <span class="keyword">end</span>
1690103 <span class="comment">%delete the current zoom rectangle</span>
1700104 <span class="keyword">if</span> isfield(AxeData,<span class="string">'CurrentRectZoom'</span>) &amp; ishandle(AxeData.CurrentRectZoom)
1710105     delete(AxeData.CurrentRectZoom)
1720106     AxeData.CurrentRectZoom=[];
1730107 <span class="keyword">end</span>   
1740108
1750109 <span class="keyword">if</span> testzoom <span class="comment">%&amp;&amp; ~test_create &amp;&amp; ~test_edit &amp;&amp; ~test_edit_vect &amp;&amp; exist('xy','var')</span>
1760110      AxeData.Drawing=<span class="string">'zoom'</span>; <span class="comment">%initiate drawing mode</span>
1770111      AxeData.CurrentObject=[];<span class="comment">%unselect objects</span>
1780112 <span class="keyword">elseif</span> ~isempty(huvmat)
1790113     <span class="comment">%selection of an existing projection object</span>
1800114     <span class="keyword">if</span>  test_edit &amp;&amp; (isequal(tag_obj,<span class="string">'proj_object'</span>)||isequal(tag_obj,<span class="string">'DeformPoint'</span>))
1810115         <span class="keyword">if</span> ~(isfield(AxeData,<span class="string">'Drawing'</span>) &amp;&amp; isequal(AxeData.Drawing,<span class="string">'create'</span>))
1820116             userdata=get(hcurrentobject,<span class="string">'UserData'</span>);
1830117             <span class="keyword">if</span> ishandle(userdata)<span class="comment">%the selected line depends on a parent line</span>
1840118                 AxeData.CurrentObject=userdata;<span class="comment">% the parent object becomes the current one</span>
1850119             <span class="keyword">else</span>
1860120                 AxeData.CurrentObject=hcurrentobject;<span class="comment">% the selected object becomes the current one</span>
1870121             <span class="keyword">end</span>
1880122             ObjectData=get(AxeData.CurrentObject,<span class="string">'UserData'</span>);
1890123             <span class="keyword">if</span> test_edit &amp; isfield(ObjectData,<span class="string">'IndexObj'</span>)
1900124                 hother=findobj(<span class="string">'Tag'</span>,<span class="string">'proj_object'</span>,<span class="string">'Type'</span>,<span class="string">'line'</span>);<span class="comment">%find all the proj objects</span>
1910125                 set(hother,<span class="string">'Color'</span>,<span class="string">'b'</span>);<span class="comment">%reset all the proj objects in 'blue' by default</span>
1920126                 set(hother,<span class="string">'Selected'</span>,<span class="string">'off'</span>)
1930127                 hother=findobj(<span class="string">'Tag'</span>,<span class="string">'proj_object'</span>,<span class="string">'Type'</span>,<span class="string">'rectangle'</span>);
1940128                 set(hother,<span class="string">'EdgeColor'</span>,<span class="string">'b'</span>);
1950129                 set(hother,<span class="string">'Selected'</span>,<span class="string">'off'</span>);
1960130                 hother=findobj(<span class="string">'Tag'</span>,<span class="string">'proj_object'</span>,<span class="string">'Type'</span>,<span class="string">'image'</span>);
1970131                 <span class="keyword">for</span> iobj=1:length(hother)
1980132                        Acolor=get(hother(iobj),<span class="string">'CData'</span>);
1990133                        Acolor(:,:,1)=zeros(size(Acolor,1),size(Acolor,2));
2000134                        set(hother(iobj),<span class="string">'CData'</span>,Acolor);
2010135                 <span class="keyword">end</span>
2020136                 hother=findobj(<span class="string">'Tag'</span>,<span class="string">'DeformPoint'</span>);
2030137                 set(hother,<span class="string">'Color'</span>,<span class="string">'b'</span>);
2040138                 set(hother,<span class="string">'Selected'</span>,<span class="string">'off'</span>)   
2050139                 <span class="keyword">if</span> isequal(get(AxeData.CurrentObject,<span class="string">'Type'</span>),<span class="string">'line'</span>)
2060140                     set(AxeData.CurrentObject,<span class="string">'Color'</span>,<span class="string">'m'</span>); <span class="comment">%set the selected object to magenta color</span>
2070141                 <span class="keyword">elseif</span> isequal(get(AxeData.CurrentObject,<span class="string">'Type'</span>),<span class="string">'rectangle'</span>)
2080142                      set(AxeData.CurrentObject,<span class="string">'EdgeColor'</span>,<span class="string">'m'</span>); <span class="comment">%set the selected object to magenta color</span>
2090143                 <span class="keyword">end</span>
2100144                 <span class="keyword">if</span> isfield(ObjectData,<span class="string">'SubObject'</span>)&amp; ishandle(ObjectData.SubObject)
2110145                     <span class="keyword">for</span> iobj=1:length(ObjectData.SubObject)
2120146                         hsub=ObjectData.SubObject(iobj);
2130147                         <span class="keyword">if</span> isequal(get(hsub,<span class="string">'Type'</span>),<span class="string">'rectangle'</span>)
2140148                             set(hsub,<span class="string">'EdgeColor'</span>,<span class="string">'m'</span>); <span class="comment">%set the selected object to magenta color</span>
2150149                         <span class="keyword">elseif</span> isequal(get(hsub,<span class="string">'Type'</span>),<span class="string">'image'</span>)
2160150                            Acolor=get(hsub,<span class="string">'CData'</span>);
2170151                            Acolor(:,:,1)=Acolor(:,:,3);
2180152                            set(hsub,<span class="string">'CData'</span>,Acolor);
2190153                         <span class="keyword">else</span>
2200154                             set(hsub,<span class="string">'Color'</span>,<span class="string">'m'</span>)
2210155                         <span class="keyword">end</span>
2220156                     <span class="keyword">end</span>
2230157                 <span class="keyword">end</span>
2240158                 <span class="keyword">if</span> isequal(tag_obj,<span class="string">'DeformPoint'</span>)
2250159                      set(hcurrentobject,<span class="string">'Color'</span>,<span class="string">'m'</span>); <span class="comment">%set the selected DeformPoint to magenta color</span>
2260160                 <span class="keyword">end</span>
2270161                 IndexObj=ObjectData.IndexObj;
2280162                 hlist_object=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'list_object'</span>);
2290163                 set(hlist_object,<span class="string">'Value'</span>,IndexObj);
2300164                 testdeform=0;
2310165                 set(gcbo,<span class="string">'Pointer'</span>,<span class="string">'circle'</span>);
2320166                 AxeData.Drawing=<span class="string">'deform'</span>;
2330167                 <span class="keyword">if</span> isequal(tag_obj,<span class="string">'DeformPoint'</span>)       
2340168                    <span class="keyword">if</span> isfield(ObjectData,<span class="string">'DeformPoint'</span>)
2350169                        set(hcurrentobject,<span class="string">'Selected'</span>,<span class="string">'on'</span>)
2360170                        <span class="keyword">for</span> ipt=1:length(ObjectData.DeformPoint)
2370171                            <span class="keyword">if</span> isequal(ObjectData.DeformPoint(ipt),hcurrentobject)
2380172                                 AxeData.CurrentIndex=ipt;
2390173                                 testdeform=1;
2400174                            <span class="keyword">end</span>
2410175                        <span class="keyword">end</span>
2420176                    <span class="keyword">end</span>
2430177                 <span class="keyword">end</span>
2440178                 <span class="keyword">if</span> testdeform==0
2450179                     AxeData.Drawing=<span class="string">'translate'</span>;
2460180                     set(AxeData.CurrentObject,<span class="string">'Selected'</span>,<span class="string">'on'</span>)
2470181                     set(gcbo,<span class="string">'Pointer'</span>,<span class="string">'fleur'</span>);
2480182                 <span class="keyword">end</span>
2490183             <span class="keyword">end</span>
2500184         <span class="keyword">end</span>
2510185     <span class="keyword">end</span>
2520186     <span class="comment">%  create new projection  object</span>
2530187     <span class="keyword">if</span>  test_create &amp;&amp; ~isempty(xy) &amp;&amp; ~(isfield(AxeData,<span class="string">'Drawing'</span>)&amp;&amp; isequal(AxeData.Drawing,<span class="string">'create'</span>))
2540188             ObjectData=<a href="read_set_object.html" class="code" title="function data=read_set_object(handles)">read_set_object</a>(UvData.sethandles);
2550189             ObjectData.Coord=[]; <span class="comment">%reset previous object coordinates</span>
2560190             ObjectData.Coord(1,1)=xy(1,1);
2570191             ObjectData.Coord(1,2)=xy(1,2);
2580192             ObjectData.Coord(1,3)=0;
2590193             <span class="keyword">if</span> isfield(AxeData,<span class="string">'ObjectCoord'</span>) &amp; size(AxeData.ObjectCoord,2)==3
2600194                  ObjectData.Coord(1,3)=AxeData.ObjectCoord(1,3); <span class="comment">%generaliser au cas avec angle</span>
2610195             <span class="keyword">end</span>
2620196             AxeData.CurrentObject=<a href="plot_object.html" class="code" title="function [hh]=plot_object(ObjectDataIn,ProjObject,hplot,col)">plot_object</a>(ObjectData,[],haxes,<span class="string">'m'</span>);<span class="comment">%draw the object and its handle becomes AxeData.CurrentObject</span>
2630197             <span class="keyword">if</span> isfield(UvData,<span class="string">'Object'</span>)
2640198                 IndexObj=length(UvData.Object)+1;<span class="comment">% add the object as index IndexObj on the list of the interface</span>
2650199             <span class="keyword">else</span>
2660200                 IndexObj=2;
2670201             <span class="keyword">end</span> 
2680202             UvData.Object{IndexObj}=ObjectData;
2690203             UvData.Object{IndexObj}.HandlesDisplay(1)=AxeData.CurrentObject;
2700204             set(huvmat,<span class="string">'UserData'</span>,UvData)
2710205             list_str=get(hhuvmat.list_object,<span class="string">'String'</span>);
2720206             list_str{IndexObj}=[num2str(IndexObj) <span class="string">'-'</span> <a href="set_title.html" class="code" title="function TITLE=set_title(Style,ProjMode)">set_title</a>(ObjectData.Style,ObjectData.ProjMode)];
2730207             <span class="keyword">if</span> ~isequal(list_str{end},<span class="string">'...'</span>)
2740208                  list_str{end+1}=<span class="string">'...'</span>;
2750209             <span class="keyword">end</span>
2760210             set(hhuvmat.list_object,<span class="string">'String'</span>,list_str)
2770211             set(hhuvmat.list_object,<span class="string">'Value'</span>,IndexObj)
2780212             PlotData=get(AxeData.CurrentObject,<span class="string">'UserData'</span>);
2790213             PlotData.IndexObj=IndexObj;
2800214             set(AxeData.CurrentObject,<span class="string">'UserData'</span>,PlotData); <span class="comment">%record the object index in the graph</span>
2810215             AxeData.Drawing=<span class="string">'create'</span>;
2820216     <span class="keyword">end</span>
2830217
2840218     <span class="comment">% create calibration points if the GUI geometry_calib is opened</span>
2850219     <span class="keyword">if</span> test_cal &amp; ~isempty(xy)
2860220         h_geometry_calib=findobj(allchild(0),<span class="string">'Name'</span>,<span class="string">'geometry_calib'</span>); <span class="comment">%find the geomterty_calib GUI</span>
2870221         hh_geometry_calib=guidata(h_geometry_calib);
2880222         h_ListCoord=hh_geometry_calib.ListCoord; <span class="comment">%findobj(h_geometry_calib,'Tag','ListCoord');</span>
2890223         h_edit_append=hh_geometry_calib.edit_append;<span class="comment">%findobj(h_geometry_calib,'Tag','edit_append');</span>
2900224         <span class="keyword">if</span> isequal(get(h_edit_append,<span class="string">'Value'</span>),1)
2910225             <span class="keyword">if</span> ~isequal(coord_type,<span class="string">''</span>)
2920226                 set(handles_coord,<span class="string">'Value'</span>,1)
2930227                 coord_type=<span class="string">''</span>;
2940228                 set(hhuvmat.FixedLimits,<span class="string">'Value'</span>,0)<span class="comment">% put FixedLimits option to 'off'</span>
2950229                 set(hhuvmat.FixedLimits,<span class="string">'BackgroundColor'</span>,[0.7 0.7 0.7])
2960230                 <a href="uvmat.html" class="code" title="function varargout = uvmat(varargin)">uvmat</a>(<span class="string">'run0_Callback'</span>,hObject,eventdata,hhuvmat); <span class="comment">%file input with xml reading  in uvmat</span>
2970231             <span class="keyword">end</span>
2980232 <span class="comment">%             if isequal(coord_type,'px')|isequal(coord_type,'');%px cordinates</span>
2990233                 strline=[ <span class="string">'    |    '</span>  <span class="string">'    |    '</span>  <span class="string">'    |    '</span> num2str(xy(1,1),4) <span class="string">'    |    '</span> num2str(xy(1,2),4)];
3000234 <span class="comment">%             else %phys cordinates</span>
3010235 <span class="comment">%                 strline=[ num2str(xy(1,1),4) '    |    '  num2str(xy(1,2),4) '    |    0      |    '  '    |    ' ];</span>
3020236 <span class="comment">%             end</span>
3030237             Coord=get(h_ListCoord,<span class="string">'String'</span>);
3040238             val=get(h_ListCoord,<span class="string">'Value'</span>);
3050239             <span class="keyword">if</span> isequal(Coord,{<span class="string">''</span>})
3060240                 val=0;
3070241             <span class="keyword">end</span>
3080242             <span class="keyword">if</span> length(Coord)&gt;val
3090243                 Coord(val+2:length(Coord)+1)=Coord(val+1:length(Coord));<span class="comment">% push the list forward beyond the current point</span>
3100244             <span class="keyword">end</span>
3110245             Coord{val+1}=strline;
3120246             set(h_ListCoord,<span class="string">'String'</span>,Coord)
3130247             set(h_ListCoord,<span class="string">'Value'</span>,val+1)
3140248             <a href="geometry_calib.html" class="code" title="function varargout = geometry_calib(varargin)">geometry_calib</a>(<span class="string">'ListCoord_Callback'</span>,hObject,eventdata,hh_geometry_calib)
3150249             data=<a href="read_geometry_calib.html" class="code" title="function data=read_geometry_calib(Coord_cell)">read_geometry_calib</a>(Coord);
3160250             <span class="keyword">if</span> isequal(coord_type,<span class="string">'px'</span>)|isequal(coord_type,<span class="string">''</span>);<span class="comment">%px cordinates</span>
3170251                 XCoord=data.Coord(:,4);
3180252                 YCoord=data.Coord(:,5);
3190253             <span class="keyword">else</span> <span class="comment">%phys cordinates</span>
3200254                 XCoord=data.Coord(:,1);
3210255                 YCoord=data.Coord(:,2);
3220256             <span class="keyword">end</span>
3230257             hh=findobj(<span class="string">'Tag'</span>,<span class="string">'calib_points'</span>)           
3240258             <span class="keyword">if</span> isempty(hh)
3250259                 line(XCoord,YCoord,<span class="string">'Color'</span>,<span class="string">'m'</span>,<span class="string">'Tag'</span>,<span class="string">'calib_points'</span>,<span class="string">'LineStyle'</span>,<span class="string">'.'</span>,<span class="string">'Marker'</span>,<span class="string">'+'</span>);
3260260             <span class="keyword">else</span>
3270261                 set(hh,<span class="string">'XData'</span>,XCoord)
3280262                 set(hh,<span class="string">'YData'</span>,YCoord)
3290263             <span class="keyword">end</span>
3300264             hhh=findobj(<span class="string">'Tag'</span>,<span class="string">'calib_marker'</span>);
3310265             <span class="keyword">if</span> ~isempty(hhh)
3320266                 set(hhh,<span class="string">'XData'</span>,xy(1,1))
3330267                 set(hhh,<span class="string">'YData'</span>,xy(1,2))
3340268             <span class="keyword">else</span>
3350269                 line(xy(1,1),xy(1,2),<span class="string">'Color'</span>,<span class="string">'m'</span>,<span class="string">'Tag'</span>,<span class="string">'calib_marker'</span>,<span class="string">'LineStyle'</span>,<span class="string">'.'</span>,<span class="string">'Marker'</span>,<span class="string">'o'</span>,<span class="string">'MarkerSize'</span>,20);
3360270             <span class="keyword">end</span>
3370271             <span class="comment">%uistack(h_geometry_calib,'top')</span>
3380272         <span class="keyword">end</span>
3390273     <span class="keyword">end</span>
3400274
3410275     <span class="comment">% edit vectors</span>
3420276     <span class="keyword">if</span> test_edit_vect &amp; ~isempty(ivec)
3430277     <span class="comment">%     FF_100=FF-100*double(uint(abs(FF)/100); %value of FF without units and dizaines</span>
3440278         <span class="keyword">if</span> ~isfield(AxeData,<span class="string">'FF'</span>)
3450279             AxeData.FF=zeros(size(AxeData.X));
3460280         <span class="keyword">end</span>
3470281         <span class="keyword">if</span> isequal(AxeData.FF(ivec),0)
3480282
3490283             AxeData.FF(ivec)=100; <span class="comment">%mark vector #ivec as false</span>
3500284
3510285         <span class="keyword">else</span>
3520286             AxeData.FF(ivec)=0;
3530287         <span class="keyword">end</span>
3540288         set(haxes,<span class="string">'UserData'</span>,AxeData)
3550289         <a href="#_sub1" class="code" title="subfunction update_plot">update_plot</a>
3560290     <span class="keyword">end</span>   
3570291 <span class="keyword">end</span>
3580292 set(haxes,<span class="string">'UserData'</span>,AxeData);
3590293
3600294 <span class="comment">%------------------------------------------------------</span>
3610295 <a name="_sub1" href="#_subfunctions" class="code">function update_plot</a>
3620296 <span class="comment">%--------------------------------------------</span>
3630297 huvmat=gcbf;
3640298 UvData=get(gcbf,<span class="string">'UserData'</span>);
3650299 <span class="comment">%determine the axes of action of the set_edit interface</span>
3660300 <span class="comment">% list_axes=get(handles.MenuAxes,'String');% list menu fields</span>
3670301 <span class="comment">% index_axes=get(handles.MenuAxes,'Value');% selected string index</span>
3680302 <span class="comment">% current_axes= list_axes{index_axes(1)} % selected string</span>
3690303 <span class="comment">% eval(['haxes=UvData.' current_axes '.Axes']);</span>
3700304 <span class="comment">% if isempty(haxes)|~ishandle(haxes)| ~isequal(get(haxes,'Type'),'axes')</span>
3710305      haxes= findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'axes3'</span>); <span class="comment">%main plotting axes as default</span>
3720306 <span class="comment">%      set(handles.MenuAxes,'Value',1)</span>
3730307 <span class="comment">% end</span>
3740308 AxeData=get(haxes,<span class="string">'UserData'</span>);
3750309 <span class="comment">%For vector field representation</span>
3760310 <span class="comment">%NEW</span>
3770311 PlotHandles.VecScale=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'VecScale'</span>);
3780312 PlotHandles.AutoVec=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'AutoVec'</span>);
3790313 PlotHandles.checkyellow=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'checkyellow'</span>);
3800314 PlotHandles.checkblack=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'checkblack'</span>);
3810315 PlotHandles.col_vec=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'col_vec'</span>);
3820316 PlotHandles.colcode1=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'colcode1'</span>);
3830317 PlotHandles.colcode2=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'colcode2'</span>);
3840318 PlotHandles.vec_col_bar=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'vec_col_bar'</span>);
3850319 PlotHandles.slider1=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'slider1'</span>);
3860320 PlotHandles.slider2=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'slider2'</span>);
3870321 PlotHandles.max_vec=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'max_vec'</span>);
3880322 PlotHandles.min_vec=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'min_vec'</span>);
3890323 PlotHandles.AutoVecColor=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'AutoVecColor'</span>);
3900324 PlotHandles.decimate4=findobj(huvmat,<span class="string">'Tag'</span>,<span class="string">'decimate4'</span>);
3910325
3920326 <span class="comment">%vectors</span>
3930327 Vectors.VecScale=str2num(get(PlotHandles.VecScale,<span class="string">'String'</span>));
3940328 Vectors.AutoVec=get(PlotHandles.AutoVec,<span class="string">'Value'</span>);<span class="comment">%automatic vector length</span>
3950329 Vectors.checkyellow=get(PlotHandles.checkyellow,<span class="string">'Value'</span>);
3960330 Vectors.checkblack=get(PlotHandles.checkblack,<span class="string">'Value'</span>);
3970331 Vectors.decimate4=get(PlotHandles.decimate4,<span class="string">'Value'</span>);<span class="comment">% =1; for reducing the nbre of vectors</span>
3980332 menu_col=get(PlotHandles.col_vec,<span class="string">'String'</span>);
3990333 menu_val=get(PlotHandles.col_vec,<span class="string">'Value'</span>);
4000334 Vectors.CName=menu_col{menu_val}; <span class="comment">%'ima_cor','black','white',...</span>
4010335 Vectors.colcode1=str2num(get(PlotHandles.colcode1,<span class="string">'String'</span>));<span class="comment">% first threshold for rgb, first value for'continuous'</span>
4020336 Vectors.colcode2=str2num(get(PlotHandles.colcode2,<span class="string">'String'</span>));<span class="comment">% second threshold for rgb, last value (saturation) for 'continuous'</span>
4030337 Vectors.option=get(PlotHandles.vec_col_bar,<span class="string">'Value'</span>); <span class="comment">% =1 (64 colors), =0 (3 colors)</span>
4040338 Vectors.min=get(PlotHandles.slider1,<span class="string">'Min'</span>);
4050339 Vectors.max=get(PlotHandles.slider1,<span class="string">'Max'</span>);
4060340 Vectors.auto=get(PlotHandles.AutoVecColor,<span class="string">'Value'</span>);<span class="comment">% =1; thresholds scaling relative to min and max, =0 fixed thresholds</span>
4070341 PlotParam.Vectors=Vectors;
4080342
4090343 [PlotType,ScalOut]= <a href="plot_field.html" class="code" title="function [PlotType,PlotParamOut,haxes]= plot_field(Data,haxes,PlotParam,KeepLim,PosColorbar)">plot_field</a>(AxeData,haxes,PlotParam,1);</pre></div>
410<hr><address>Generated on Fri 13-Nov-2009 11:17:03 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
411</body>
412</html>
Note: See TracBrowser for help on using the repository browser.