Changeset 622 for trunk/src/mouse_down.m
- Timestamp:
- Apr 29, 2013, 11:35:27 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/mouse_down.m
r594 r622 23 23 24 24 function xy=mouse_down(hObject,eventdata) 25 AxeData=[];%default 26 FigData=get(hObject,'UserData'); 25 26 %% look for parameters set by the current figure (handle=input parameter hObject) 27 AxeData=[];%default data stored on the current axes 28 FigData=get(hObject,'UserData'); %default data stored on the current object 27 29 if ishandle(FigData)% case of a zoom plot, the handle of the parent rectangle is stored in UserData, its parent is the plotting axes of the rectangle 28 hcurrentfig=get(get(FigData,'parent'),'parent'); 30 hcurrentfig=get(get(FigData,'parent'),'parent');%handle of the current GUI: zoom plot 29 31 else 30 hcurrentfig=hObject;%usual plot 31 end 32 hcurrentfig=hObject; % handle of the current GUI: usual plot 33 end 34 hhcurrentfig=guidata(hcurrentfig);% tags of the children of the current GUI 35 CheckZoom=0; 36 if isfield(hhcurrentfig,'CheckZoom') && get(hhcurrentfig.CheckZoom,'Value');%test for zoom action, first priority 37 CheckZoom=1; 38 end 39 test_piv=isfield(FigData,'CivHandle'); 32 40 set(hcurrentfig,'Units','pixels') 33 GUI_pos=get(hcurrentfig,'Position');%position of the GUI series (in pixels) 34 set(hcurrentfig,'Units','normalized') 35 hhcurrentfig=guidata(hcurrentfig); 36 if isfield(hhcurrentfig,'CheckZoom') 37 test_zoom=get(hhcurrentfig.CheckZoom,'Value');%test for zoom action, first priority 38 else 39 test_zoom=0; 40 end 41 test_piv=isfield(FigData,'CivHandle'); 41 GUI_pos=get(hcurrentfig,'Position');%position of the GUI series on the screen (in pixels), used to position message boxes 42 set(hcurrentfig,'Units','normalized')% back to current unit for fig position 43 44 %% determine the currently selected items 45 hcurrentobject=gco;% current object handle (selected by the mouse) 46 fig_tag=get(hcurrentfig,'Tag'); 47 obj_tag=get(gco,'Tag');%tag of the currently selected object 48 xy=[];%default 49 xy_fig=get(hObject,'CurrentPoint');% current point of the current figure (gcbo) 50 haxes=[]; 42 51 43 52 %% look for parameters set by the GUI uvmat … … 45 54 test_edit=0; 46 55 test_create=0; 47 huvmat=findobj(allchild(0),'tag','uvmat');%find the uvmat interface handle which controls the option of mouse action56 huvmat=findobj(allchild(0),'tag','uvmat');%find the uvmat interface handle which controls the option of mouse action 48 57 if ~isempty(huvmat) 49 58 hhuvmat=guidata(huvmat);%handles of elements in uvmat 50 59 UvData=get(huvmat,'UserData'); 51 60 test_ruler=isequal(get(hhuvmat.MenuRuler,'checked'),'on');%test for ruler action, second priority; 52 test_edit=get(hhuvmat.edit_object,'Value');%test for object editing, third priority 53 test_edit_vect=get(hhuvmat.edit_vect,'Value');%test for vector editing, priority 4 54 % test_create=isequal(get(hhuvmat.MenuObject,'checked'),'on');% test for object creation, priority 5 55 % if test_create 56 test_create=0; 61 test_edit=get(hhuvmat.edit_object,'Value')&& (isequal(obj_tag,'proj_object')||isequal(obj_tag,'DeformPoint'));%test for object editing, third priority 57 62 hset_object=findobj(allchild(0),'tag','set_object'); 58 59 63 if ~isempty(hset_object) 60 64 hPLOT=findobj(hset_object,'tag','PLOT'); 61 65 test_create=strcmp(get(hPLOT,'enable'),'on') &&~test_edit;% create new object if set_object is in mode enable and uvmat not in mode 'edit_object' 62 66 end 63 67 test_edit_vect=get(hhuvmat.edit_vect,'Value') && ~test_create && ~(isequal(obj_tag,'proj_object')||isequal(obj_tag,'DeformPoint')) ;%test for vector editing, priority 4 64 68 test_cal=isequal(get(hhuvmat.MenuCalib,'checked'),'on');% test for calibration 65 69 if test_cal% test for calibration popints, priority 6 … … 75 79 end 76 80 77 %% determine the currently selected items 78 hcurrentobject=gco;% current object handle (selected by the mouse) 79 %hcurrentfig=hObject;% current figure handle 80 fig_tag=get(hcurrentfig,'Tag'); 81 tag_obj=get(gco,'Tag');%tag of the currently selected object 82 xy=[];%default 83 xy_fig=get(hObject,'CurrentPoint');% current point of the current figure (gcbo) 81 %% loop on all the objects in the current figure (selected by the last mouse click) 84 82 hchildren=get(hObject,'Children');%handles of all objects in the current figure 85 haxes=[]; 86 87 %% loop on all the objects in the current figure (selected by the last mouse click) 88 output_str=''; 89 state_visible=get(hchildren,'Visible'); 90 check_visible=strcmp('on',state_visible);%=1 if visible='on', =0 otherwise 91 hchildren=hchildren(find(check_visible)); %kkep only the visible children 92 for ichild=1:length(hchildren) 93 hchild=hchildren(ichild); %handle of the current obj 94 obj_pos=get(hchild,'Position');%position of the object 95 if xy_fig(1) >=obj_pos(1) & xy_fig(2) >= obj_pos(2)& xy_fig(1) <=obj_pos(1)+obj_pos(3) & xy_fig(2) <= obj_pos(2)+obj_pos(4); 96 htype=get(hchild,'Type');%type of object child of the current figure 97 switch htype 98 %if the mouse is over an axis, look at the data 99 case 'axes' 100 y_lim=get(hchild,'YLim'); 101 x_lim=get(hchild,'XLim'); 102 haxes=hchild; 103 xy=get(hchild,'CurrentPoint');%xy(1,1),xy(1,2): current x,y positions in axes coordinates 104 % if xy(1,1)>x_lim(1) && xy(1,1)<x_lim(2) && xy(1,2)>y_lim(1) && xy(1,2)<y_lim(2) 105 AxeData=get(hchild,'UserData');% data attached to the axis 106 AxeData.CurrentOrigin=[xy(1,1) xy(1,2)];% The current point set by the mouse becomes the current origin 107 if test_edit_vect && ~isequal(tag_obj,'proj_object') & ~test_create 108 ivec=[]; 109 FigData=get(hcurrentfig,'UserData'); 110 tagaxes=get(hchild,'tag'); 111 if isfield(FigData,tagaxes) 112 Field=FigData.(tagaxes); 113 [CellVarIndex,NbDim,VarType]=find_field_cells(Field);%analyse the physical fields contained in Field 114 for icell=1:numel(CellVarIndex)%look for all physical fields 115 if NbDim(icell)==2 % select 2D field 116 if isfield(Field,'CoordMesh') && ~isempty(Field.CoordMesh)&& ~isempty(VarType{icell}.coord_x) && ~isempty(VarType{icell}.coord_y)%case of unstructured data 117 eval(['X=Field.' Field.ListVarName{VarType{icell}.coord_x} ';']) 118 eval(['Y=Field.' Field.ListVarName{VarType{icell}.coord_y} ';']) 119 flag_vec=(X<(xy(1,1)+Field.CoordMesh/4) & X>(xy(1,1)-Field.CoordMesh/4)) & ...%flagx=1 for the vectors with x position selected by the mouse 120 (Y<(xy(1,2)+Field.CoordMesh/4) & Y>(xy(1,2)-Field.CoordMesh/4));%f 121 ivec=find(flag_vec,1);% search the (first) selected vector index ivec 122 end 123 end 83 check_visible=strcmp(get(hchildren,'Visible'),'on');% if visible='on', =0 otherwise 84 hchildren=hchildren(check_visible); %kkep only the visible children 85 PosChildren=get(hchildren,'Position');% set of object positions 86 if iscell(PosChildren)% only one child 87 PosLength=cellfun('length',PosChildren);% set of vector lengths for object positions 88 hchildren=hchildren(PosLength==4);% keep only objects with position defined by a 4 element vector 89 PosChildren=cell2mat(PosChildren(PosLength==4));% convert cells to matrix of positions 90 end 91 if size(PosChildren,2)~=4 92 return 93 end 94 xy_fig_mat=ones(size(PosChildren,1),1)*xy_fig;% mouse position set to a matrix 95 check_pos=xy_fig_mat >= PosChildren(:,1:2) & xy_fig_mat <= PosChildren(:,1:2)+PosChildren(:,3:4);% compare object to mouse position 96 ind_object=find(check_pos(:,1) & check_pos(:,2),1);% select the index of the (first) object under the mouse 97 hchild=hchildren(ind_object);% corresponding object handle 98 if isempty(hchild) 99 % if test_edit||test_create 100 % hPlotAxes=findobj(hcurrentfig,'Tag','PlotAxes'); 101 % if ~isempty( hPlotAxes) 102 % PosPlotAxes=get(hPlotAxes,'Position'); 103 % PosDiff(1)=xy_fig(1)-PosPlotAxes(1)-PosPlotAxes(3);% distance to the right axes edge 104 % PosDiff(2)=PosPlotAxes(1)-xy_fig(1);% distance to the left axes edge 105 % PosDiff(3)=xy_fig(2)-PosPlotAxes(1)-PosPlotAxes(3);% distance to the top axes edge 106 % PosDiff(4)=PosPlotAxes(2)-xy_fig(2);% distance to the low axes edge 107 % [tild,ind_sel]=max(PosDiff); 108 % list_arrow=[29 28 30 31]; 109 % arrow_option=list_arrow(ind_sel); 110 % keyboard_callback(hcurrentfig,arrow_option) 111 % return 112 % end 113 % end 114 else 115 htype=get(hchild,'Type');%type of object child of the current figure 116 switch htype 117 %if the mouse is over an axis, look at the data 118 case 'axes' 119 haxes=hchild; 120 xy=get(hchild,'CurrentPoint');%xy(1,1),xy(1,2): current x,y positions in axes coordinates 121 AxeData=get(hchild,'UserData');% data attached to the axis 122 % if isfield(AxeData,'ObjectCoord') && size(AxeData.ProjObjectCoord,2)==3 123 % xy(1,3)=AxeData.ProjObjectCoord(1,3); % z coordinate of the mouse: to generalise ... 124 % else 125 % xy(1,3)=0; % z coordinate set to 0 by default 126 % end 127 AxeData.CurrentOrigin=xy(1,1:2);% The current point set by the mouse becomes the current origin 128 129 if test_edit_vect 130 ivec=[]; 131 FigData=get(hcurrentfig,'UserData'); 132 tagaxes=get(hchild,'tag'); 133 if isfield(FigData,tagaxes) 134 Field=FigData.(tagaxes); 135 [CellVarIndex,NbDim,VarType]=find_field_cells(Field);%analyse the physical fields contained in Field 136 for icell=1:numel(CellVarIndex)%look for all physical fields 137 if NbDim(icell)==2 % select 2D field 138 if isfield(Field,'CoordMesh') && ~isempty(Field.CoordMesh)&& ~isempty(VarType{icell}.coord_x) && ~isempty(VarType{icell}.coord_y)%case of unstructured data 139 X=Field.(Field.ListVarName{VarType{icell}.coord_x}); 140 Y=Field.(Field.ListVarName{VarType{icell}.coord_y}); 141 flag_vec=(X<(xy(1,1)+Field.CoordMesh/4) & X>(xy(1,1)-Field.CoordMesh/4)) & ...%flagx=1 for the vectors with x position selected by the mouse 142 (Y<(xy(1,2)+Field.CoordMesh/4) & Y>(xy(1,2)-Field.CoordMesh/4));%f 143 ivec=find(flag_vec,1);% search the (first) selected vector index ivec 124 144 end 125 145 end 126 146 end 127 % else 128 % hchild=[];%mouse out of axes 129 % end 130 break 147 end 148 end 149 %break% leave the loop once an axes has been selected 150 151 %if the mouse is over a uicontrol, with right mouse button activated, duplicate the display in an editable zoom window 152 case 'uicontrol' 153 if isequal(get(hObject,'SelectionType'),'alt') %% && ~isequal(get(hchild,'tag'),'frame_object') 154 obj_pos=PosChildren(ind_object,:); 155 msg_pos(1:2)=GUI_pos(1:2)+obj_pos(1:2).*GUI_pos(3:4); 156 display_str=get(hchild,'TooltipString'); 157 msgbox_uvmat(['uicontrol: ' get(hchild,'Tag')],display_str,get(hchild,'String'),msg_pos); 158 return %leave the function once a uicontrol has been selected 159 end 160 161 %if the mouse is over a uipanel, look at the children of the uipanel 162 case 'uipanel' 163 if isequal(get(hObject,'SelectionType'),'alt') 164 panel_pos=PosChildren(ind_object,:);%position of the panel 165 hhchildren=get(hchild,'Children');%handles of all objects in the selected panel 166 check_visible=strcmp(get(hhchildren,'Visible'),'on');%=1 if visible='on', =0 otherwise 167 hhchildren=hhchildren(check_visible); %keep only the visible children 131 168 132 %if the mouse is over a uicontrol, duplicate the display in an editable zoom window 133 case 'uicontrol' 134 if isequal(get(hObject,'SelectionType'),'alt') && isequal(get(hchild,'Visible'),'on') && ~isequal(get(hchild,'tag'),'frame_object')&&... 135 ~isequal(get(hchild,'tag'),'ListObject') 136 if ~strcmp(get(hchild,'Style'),'frame')%do not visualisaze frames 137 msg_pos(1:2)=GUI_pos(1:2)+obj_pos(1:2).*GUI_pos(3:4); 138 display_str=get(hchild,'TooltipString'); 139 output_str=msgbox_uvmat(['uicontrol: ' get(hchild,'Tag')],display_str,get(hchild,'String'),msg_pos); 140 break 169 PosChildren=get(hhchildren,'Position'); 170 PosLength=cellfun('length',PosChildren); 171 hhchildren=hhchildren(PosLength==4);% keep only object with position defined by a 4 element vector 172 PosChildren=cell2mat(PosChildren(PosLength==4));% transform cell array to a matrix of positions 173 xy_panel=(xy_fig-panel_pos(1:2))./panel_pos(3:4);% mouse position relative to the panel 174 xy_panel_mat=ones(size(PosChildren,1),1)*xy_panel;% mouse position on the figure transformed to a matrix 175 check_pos=xy_panel_mat >= PosChildren(:,1:2) & xy_panel_mat <= PosChildren(:,1:2)+PosChildren(:,3:4);% compare object to mouse position 176 ind_object=find(check_pos(:,1) & check_pos(:,2),1);% select the index of the (first) object under the mouse 177 if ~isempty(ind_object) 178 hhchild=hhchildren(ind_object);% corresponding object handle 179 if strcmp(get(hhchild,'Type'),'uicontrol') 180 msg_pos=GUI_pos(1:2)+panel_pos(1:2).*GUI_pos(3:4)+PosChildren(ind_object,1:2).*panel_pos(3:4).*GUI_pos(3:4); 181 display_str=get(hhchild,'TooltipString'); 182 msgbox_uvmat(['uicontrol: ' get(hhchild,'Tag')],display_str,get(hhchild,'String'),msg_pos); 141 183 end 142 184 end 143 case 'uipanel' 144 panel_pos=obj_pos;%position of the panel 145 hhchildren=get(hchild,'Children');%handles of all objects in the current GUI 146 %% loop on all the objects in the current figure (selected by the last mouse click) 147 for iichild=1:length(hhchildren) 148 hchild=hhchildren(iichild); 149 rel_pos=get(hchild,'Position');%position of the object relative to the uipanel 150 obj_pos(1:2)=panel_pos(1:2)+rel_pos(1:2).*panel_pos(3:4); 151 obj_pos(3:4)=panel_pos(3:4).*rel_pos(3:4); 152 if numel(obj_pos)>=4 && xy_fig(1) >=obj_pos(1) && xy_fig(2) >= obj_pos(2)&& xy_fig(1) <=obj_pos(1)+obj_pos(3) && xy_fig(2) <= obj_pos(2)+obj_pos(4); 153 htype=get(hchild,'Type');%type of object child of the current figure 154 %if the mouse is over a uicontrol, look at the data 155 if strcmp(htype,'uicontrol') && strcmp(get(hchild,'Visible'),'on') 156 msg_pos(1:2)=GUI_pos(1:2)+obj_pos(1:2).*GUI_pos(3:4); 157 display_str=get(hchild,'TooltipString'); 158 output_str=msgbox_uvmat(['uicontrol: ' get(hchild,'Tag')],display_str,get(hchild,'String'),msg_pos); 159 break 160 end 161 end 162 end 163 end 164 if ~isempty(output_str) 165 break %leave the current loop if a uicontrol has been selected 166 end 167 end 168 end 169 if ~isempty(output_str) 170 set(hObject,'Units','pixels') 171 if strcmp(get(hchild,'enable'),'on') 172 set(hchild,'String',output_str)% fill the parent uicontrol with the sttring edited in the msgbox 173 end 174 end 175 176 %% desable object creation and vector editing if NbDim different from 2 177 if ~(isfield(AxeData,'NbDim') && isequal(AxeData.NbDim,2)) 178 test_create=0; 179 test_edit_vect=0; 185 end 186 % return %leave the function once a uicontrol has been selected 187 end 180 188 end 181 189 182 190 %% delete the current zoom rectangle 183 if isfield(AxeData,'CurrentRectZoom') && ~isempty(AxeData.CurrentRectZoom) && ishandle(AxeData.CurrentRectZoom) 184 delete(AxeData.CurrentRectZoom) 185 AxeData.CurrentRectZoom=[]; 186 end 187 188 %% zoom has first priority 189 if test_zoom %&& ~test_create && ~test_edit && ~test_edit_vect && exist('xy','var') 190 AxeData.Drawing='zoom'; %initiate drawing mode 191 AxeData.CurrentObject=[];%unselect objects 192 set(hchild,'UserData',AxeData); 193 return 194 end 191 % if isfield(AxeData,'CurrentRectZoom') && ~isempty(AxeData.CurrentRectZoom) && ishandle(AxeData.CurrentRectZoom) 192 % delete(AxeData.CurrentRectZoom) 193 % AxeData.CurrentRectZoom=[]; 194 % end 195 196 %% zoom has first priority, stop here 197 if CheckZoom 198 return 199 end 200 201 %% creation of a zoom subfig 202 if get(hhcurrentfig.CheckZoomFig,'Value') 203 AxeData.Drawing='zoom'; %initiate drawing mode 204 AxeData.CurrentObject=[];%unselect objects 205 set(hchild,'UserData',AxeData); 206 return 207 end 208 195 209 if isempty(huvmat)%further options require the uvmat GUI 196 210 return … … 199 213 %% ruler has second priority 200 214 if test_ruler 201 AxeData.RulerCoord(1,1)=xy(1,1); 202 AxeData.RulerCoord(1,2)=xy(1,2); 215 AxeData.RulerCoord(1,1:2)=xy(1,1:2); 203 216 AxeData.RulerHandle=line([xy(1,1) xy(1,1)],[xy(1,2) xy(1,2)],'Color','m','Tag','ruler'); 204 217 AxeData.Drawing='ruler'; … … 218 231 end 219 232 233 %% desable object creation and vector editing if NbDim different from 2 234 if ~(isfield(AxeData,'NbDim') && isequal(AxeData.NbDim,2)) 235 test_create=0; 236 test_edit_vect=0; 237 end 238 220 239 %% selection of an existing projection object (third priority) 221 if test_edit && (isequal(tag_obj,'proj_object')||isequal(tag_obj,'DeformPoint'))240 if test_edit 222 241 if ~(isfield(AxeData,'Drawing') && isequal(AxeData.Drawing,'create')) 223 242 userdata=get(hcurrentobject,'UserData'); … … 228 247 end 229 248 ObjectData=get(AxeData.CurrentObject,'UserData'); 230 if test_edit &&isfield(ObjectData,'IndexObj')249 if isfield(ObjectData,'IndexObj') 231 250 hother=findobj('Tag','proj_object','Type','line');%find all the proj objects 232 251 set(hother,'Color','b');%reset all the proj objects in 'blue' by default … … 263 282 end 264 283 end 265 if isequal( tag_obj,'DeformPoint')284 if isequal(obj_tag,'DeformPoint') 266 285 set(hcurrentobject,'Color','m'); %set the selected DeformPoint to magenta color 267 286 end … … 280 299 set(hhuvmat.ListObject_1,'Value',IndexObj); 281 300 list_str=get(hhuvmat.ListObject_1,'String'); 282 UvData. Object{IndexObj}.Name=list_str{IndexObj};301 UvData.ProjObject{IndexObj}.Name=list_str{IndexObj}; 283 302 end 284 303 % h_set_object=findobj(allchild(0),'Tag','set_object'); … … 286 305 % delete(h_set_object) 287 306 % end 288 set_object(UvData. Object{IndexObj})307 set_object(UvData.ProjObject{IndexObj}) 289 308 axes(hchild);%set back the current axes haxes 290 309 testdeform=0; 291 310 set(gcbo,'Pointer','circle'); 292 311 AxeData.Drawing='deform'; 293 if isequal( tag_obj,'DeformPoint')312 if isequal(obj_tag,'DeformPoint') 294 313 if isfield(ObjectData,'DeformPoint') 295 314 set(hcurrentobject,'Selected','on') … … 312 331 313 332 %% create projection object 314 if test_create && ~isempty(xy) %&& ~(isfield(AxeData,'Drawing')&& isequal(AxeData.Drawing,'create')) 315 hset_object=findobj(allchild(0),'tag','set_object'); 333 if test_create && ~isempty(xy) 316 334 % activate this option if the GUI set_object is opened 317 if ~isempty(hset_object) 335 if ~isempty(hset_object) && ~strcmp(get(hcurrentfig,'SelectionType'),'alt') 318 336 sethandles=guidata(hset_object);% handles of the elements in the GUI set_object 319 337 ObjectData=read_GUI(hset_object); %read object parameters in the GUI set_object 320 IndexObj=length(UvData. Object);338 IndexObj=length(UvData.ProjObject); 321 339 %initiate a new object (no data .Coord yet recorded) 322 if ~isfield(UvData. Object{IndexObj},'Coord');340 if ~isfield(UvData.ProjObject{IndexObj},'Coord'); 323 341 ObjectData.Coord=[]; 324 342 ObjectNameNew=ObjectData.Name; … … 326 344 ObjectNameNew=ObjectData.Type; 327 345 end 328 % add an index to the object name if the proposed name already exists 346 % add an index to the object name if the proposed name already exists 329 347 vers=0;% index of the name 330 348 ListObject=get(hhuvmat.ListObject,'String'); … … 348 366 ListObject={ObjectName}; 349 367 else 350 ListObject{end}=ObjectName;368 ListObject{end}=ObjectName; 351 369 end 352 370 set(hhuvmat.ListObject,'String',ListObject);%complement the object list … … 356 374 end 357 375 ObjectData.Coord=[ObjectData.Coord ;xy(1,1:2)];% append the coordinates marked by the mouse to the object 358 hobject=UvData.Object{IndexObj}.DisplayHandle.(fig_tag); 376 %TODO replace 0 by z coord for 3D 377 hobject=UvData.ProjObject{IndexObj}.DisplayHandle.(fig_tag); 359 378 if isempty(hobject) 360 379 hobject=haxes; 361 380 end 362 ProjObject=UvData. Object{get(hhuvmat.ListObject_1,'Value')};381 ProjObject=UvData.ProjObject{get(hhuvmat.ListObject_1,'Value')}; 363 382 AxeData.CurrentObject=plot_object(ObjectData,ProjObject,hobject,'m');%draw the object and its handle becomes AxeData.CurrentObject 364 UvData.Object{IndexObj}=ObjectData; 365 UvData.Object{IndexObj}.DisplayHandle.(fig_tag)=AxeData.CurrentObject;% attribute the current plot object handle to the Object 366 %UvData.Object{IndexObj}.DisplayHandle_view_field=AxeData.CurrentObject; 383 UvData.ProjObject{IndexObj}=ObjectData; 384 UvData.ProjObject{IndexObj}.DisplayHandle.(fig_tag)=AxeData.CurrentObject;% attribute the current plot object handle to the Object 367 385 set(huvmat,'UserData',UvData) 368 386 PlotData=get(AxeData.CurrentObject,'UserData'); … … 378 396 379 397 %% create calibration points if the GUI geometry_calib is opened, if the main axes PlotAxes of uvmat has ben selected 380 if ~test_zoom &&test_cal && ~isempty(haxes) && strcmp(get(haxes,'tag'),'PlotAxes')398 if test_cal && ~isempty(haxes) && strcmp(get(haxes,'tag'),'PlotAxes') 381 399 h_geometry_calib=findobj(allchild(0),'Name','geometry_calib'); %find the geomterty_calib GUI 382 400 hh_geometry_calib=guidata(h_geometry_calib);
Note: See TracChangeset
for help on using the changeset viewer.