Changeset 379 for trunk/src/read_set_object.m
- Timestamp:
- Jan 27, 2012, 1:59:18 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/read_set_object.m
r206 r379 15 15 function data=read_set_object(handles) 16 16 %menus 17 if isfield(handles,'ObjectStyle')%case of the set_object interface 18 menu=get(handles.ObjectStyle,'String'); 19 value=get(handles.ObjectStyle,'Value'); 20 data.Style=menu{value}; 21 menu=get(handles.ProjMode,'String'); 22 value=get(handles.ProjMode,'Value'); 23 data.ProjMode=menu{value}; 24 data.CoordUnit=get(handles.CoordUnit,'String'); 25 testcalib=0; 26 else %default 27 data.Style='points'; 28 testcalib=1; 29 end 17 data=read_GUI(handles); 30 18 31 %Euler angles and projection ranges 32 if ~testcalib 33 if isequal(get(handles.Phi,'Visible'),'on') 34 data.Angle(1)=str2double(get(handles.Phi,'String')); 35 end 36 if isequal(get(handles.Theta,'Visible'),'on') 37 data.Angle(2)=str2double(get(handles.Theta,'String')); 38 end 39 if isequal(get(handles.Psi,'Visible'),'on') 40 data.Angle(3)=str2double(get(handles.Psi,'String')); 41 end 42 if isequal(get(handles.DX,'Visible'),'on') 43 data.DX=str2num(get(handles.DX,'String')); 44 end 45 if isequal(get(handles.DY,'Visible'),'on') 46 data.DY=str2num(get(handles.DY,'String')); 47 end 48 if isequal(get(handles.DZ,'Visible'),'on') 49 data.DZ=str2num(get(handles.DZ,'String')); 50 end 51 dimrange=[1 1];%default 52 if isequal(get(handles.ZMin,'Visible'),'on') 53 ZMin=str2num(get(handles.ZMin,'String')); 54 if ~isempty(ZMin) 55 data.RangeZ(1)=ZMin; 56 dimrange=[2 3]; 57 end 58 end 59 if isequal(get(handles.ZMax,'Visible'),'on') 60 ZMax=str2double(get(handles.ZMax,'String')); 61 if isnan(ZMax) 62 if dimrange(1)>1 63 data.RangeZ(1)=ZMax; 64 end 65 else 66 data.RangeZ(2)=ZMax; 67 dimrange=[dimrange(1) 3]; 68 end 69 end 70 if isequal(get(handles.YMin,'Visible'),'on') 71 YMin=str2double(get(handles.YMin,'String')); 72 if ~isnan(YMin) 73 data.RangeY(2)=YMin; 74 dimrange=[2 max(dimrange(2),2)]; 75 end 76 end 77 if isequal(get(handles.YMax,'Visible'),'on') 78 YMax=str2double(get(handles.YMax,'String')); 79 if ~isnan(YMax) 80 data.RangeY(1)=YMax; 81 dimrange=[dimrange(1) max(dimrange(2),2)]; 82 end 83 end 84 if isequal(get(handles.XMin,'Visible'),'on') 85 XMin=str2double(get(handles.XMin,'String')); 86 if ~isnan(XMin) 87 data.RangeX(2)=XMin; 88 end 89 end 90 if isequal(get(handles.XMax,'Visible'),'on') 91 XMax=str2double(get(handles.XMax,'String')); 92 if ~isnan(XMax) 93 data.RangeX(1)=XMax; 94 end 95 end 96 end 97 98 99 %positions x,y,z 100 Xcolumn=get(handles.XObject,'String'); 101 Ycolumn=get(handles.YObject,'String'); 102 if ischar(Xcolumn) 103 sizchar=size(Xcolumn); 104 for icol=1:sizchar(1) 105 Xcolumn_cell{icol}=Xcolumn(icol,:); 106 end 107 Xcolumn=Xcolumn_cell; 108 end 109 if ischar(Ycolumn) 110 sizchar=size(Ycolumn); 111 for icol=1:sizchar(1) 112 Ycolumn_cell{icol}=Ycolumn(icol,:); 113 end 114 Ycolumn=Ycolumn_cell; 115 end 116 Zcolumn={};%default 117 if isequal(get(handles.ZObject,'Visible'),'on') 118 data.NbDim=3; %test 3D object 119 Zcolumn=get(handles.ZObject,'String'); 120 if ischar(Zcolumn) 121 Zcolumn={Zcolumn}; 122 end 123 end 124 nb_points=min(length(Xcolumn),length(Ycolumn));%number of point positions needed to define the object position 125 if isequal (data.Style,'line'); 126 nb_defining_points=2; 127 elseif isequal(data.Style,'plane')|isequal(data.Style,'rectangle')|isequal(data.Style,'ellipse') 128 nb_defining_points=1; 129 else 130 nb_defining_points=nb_points; 131 end 132 data_XObject=[]; 133 data_YObject=[]; 134 data_ZObject=[]; 135 for i=1:nb_points 136 Xnumber=str2num(Xcolumn{i}); 137 Ynumber=str2num(Ycolumn{i}); 138 if isempty(Xnumber)|isempty(Ynumber) 139 break 140 else 141 data_XObject=[data_XObject; Xnumber(1)]; 142 data_YObject=[data_YObject; Ynumber(1)]; 143 end 144 if length(Zcolumn)<i | isempty(str2num(Zcolumn{i})) 145 data_ZObject=[data_ZObject; 0]; 146 else 147 data_ZObject=[data_ZObject; str2num(Zcolumn{i})]; 148 end 149 end 150 if nb_defining_points > nb_points 151 for i=nb_points+1:nb_defining_points 152 data_XObject=[0;data_XObject]; 153 data_YObject=[0;data_YObject]; 154 data_ZObject=[0;data_ZObject]; 155 end 156 end 157 if isempty(data_XObject) 158 data_XObject=0; 159 end 160 if isempty(data_YObject) 161 data_YObject=0; 162 end 163 if isempty(data_ZObject) 164 data_ZObject=0; 165 end 166 data.Coord=[data_XObject data_YObject data_ZObject]; 167 168 set(handles.XObject,'String',mat2cell(data_XObject,length(data_XObject)))%correct the interface display 169 set(handles.YObject,'String',mat2cell(data_YObject,length(data_XObject))) 170 set(handles.ZObject,'String',mat2cell(data_ZObject,length(data_XObject))) 171 172 19 % %Euler angles and projection ranges 20 % if isfield(data,'Angle_x') 21 % data.Angle(1)=data.Angle_x; 22 % data=rmfield(data,'Angle_x'); 23 % end 24 % if isfield(data,'Angle_y') 25 % data.Angle(2)=data.Angle_y; 26 % data=rmfield(data,'Angle_y'); 27 % end 28 % if isfield(data,'Angle_z') 29 % data.Angle(3)=data.Angle_z; 30 % data=rmfield(data,'Angle_z'); 31 % end 32 % % ranges of projection 33 % data.RangeZ=[]; 34 % data.RangeY=[]; 35 % data.RangeX=[]; 36 % if isfield(data,'ZMin')&& ~isempty(data.ZMin) 37 % data.RangeZ=data.ZMin; 38 % data=rmfield(data,'ZMin'); 39 % end 40 % if isfield(data,'ZMax')&& ~isempty(data.ZMax) 41 % data.RangeZ=[data.RangeZ data.ZMax]; 42 % data=rmfield(data,'ZMax'); 43 % end 44 % if isfield(data,'YMin')&& ~isempty(data.YMin) 45 % data.RangeY=data.YMin; 46 % data=rmfield(data,'YMin'); 47 % end 48 % if isfield(data,'YMax')&& ~isempty(data.YMax) 49 % data.RangeY=[data.RangeY data.YMax]; 50 % data=rmfield(data,'YMax'); 51 % end 52 % if isfield(data,'XMin')&& ~isempty(data.XMin) 53 % data.RangeX=data.XMin; 54 % data=rmfield(data,'XMin'); 55 % end 56 % if isfield(data,'XMax')&& ~isempty(data.XMax) 57 % data.RangeX=[data.RangeX data.XMax]; 58 % data=rmfield(data,'XMax'); 59 % end 60 % 61 % 62 % 63 %
Note: See TracChangeset
for help on using the changeset viewer.