0001
0002
0003
0004
0005
0006
0007 function delete_object(hObject)
0008
0009 huvmat=findobj('Name','uvmat');
0010 UvData=get(huvmat,'UserData');
0011 hlist_object=findobj(huvmat,'Tag','list_object');
0012 list_str=get(hlist_object,'String');
0013 ObjectData=[];
0014 hdisplay=[];
0015 if isequal(floor(hObject),hObject)
0016 if ~isempty(UvData) & isfield(UvData, 'Object') & length(UvData.Object)>=hObject
0017 if isfield(UvData.Object{hObject},'HandlesDisplay')
0018 hdisplay=UvData.Object{hObject}.HandlesDisplay;
0019 for iview=1:length(hdisplay)
0020 if ishandle(hdisplay(iview)) & ~isequal(hdisplay(iview),0)
0021 ObjectData=get(hdisplay(iview),'UserData');
0022 if isfield(ObjectData,'SubObject') & ishandle(ObjectData.SubObject)
0023 delete(ObjectData.SubObject);
0024 end
0025 if isfield(ObjectData,'DeformPoint') & ishandle(ObjectData.DeformPoint)
0026 delete(ObjectData.DeformPoint);
0027 end
0028 delete(hdisplay(iview))
0029 end
0030 ishandle(hdisplay(iview))
0031 end
0032 end
0033 for iobj=hObject+1:length(UvData.Object)
0034 hdisplay=UvData.Object{iobj}.HandlesDisplay;
0035 for iview=1:length(hdisplay)
0036 if ishandle(hdisplay(iview)) && ~isequal(hdisplay(iview),0)
0037 PlotData=get(hdisplay(iview),'UserData');
0038 PlotData.IndexObj=iobj-1;
0039 set(hdisplay(iview),'UserData',PlotData);
0040 end
0041 end
0042 end
0043 UvData.Object(hObject)=[];
0044 list_str(hObject)=[];
0045 end
0046 elseif ishandle(hObject)
0047 userdata=get(hObject,'UserData');
0048 if ishandle(userdata)
0049 hdisplay=userdata;
0050 else
0051 hdisplay=hObject;
0052 end
0053 PlotData=get(hdisplay,'UserData');
0054 if isfield(PlotData,'SubObject') & ishandle(PlotData.SubObject)
0055 delete(PlotData.SubObject);
0056 end
0057 if isfield(PlotData,'DeformPoint') & ishandle(PlotData.DeformPoint)
0058 delete(PlotData.DeformPoint);
0059 end
0060 delete(hdisplay);
0061 if isfield(PlotData,'IndexObj')
0062 IndexObj=PlotData.IndexObj;
0063 if isequal(round(IndexObj),IndexObj) & IndexObj>=1 & length(list_str) > IndexObj
0064 if isfield(UvData,'Object')& length(UvData.Object) > IndexObj
0065 UvData.Object(IndexObj)=[];
0066 end
0067 list_str(IndexObj)=[];
0068 end
0069 end
0070 end
0071 set(huvmat,'UserData',UvData);
0072 set(hlist_object,'String',list_str)
0073 set(hlist_object,'Value',length(list_str))