Changeset 657 for trunk/src/mouse_down.m
- Timestamp:
- Jul 3, 2013, 12:07:26 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/mouse_down.m
r650 r657 400 400 401 401 %% create calibration points if the GUI geometry_calib is opened, if the main axes PlotAxes of uvmat has ben selected 402 if test_cal && ~isempty(haxes) && strcmp(get(haxes,'tag'),'PlotAxes') 402 if test_cal && ~isempty(haxes) && strcmp(get(haxes,'tag'),'PlotAxes') 403 403 h_geometry_calib=findobj(allchild(0),'Name','geometry_calib'); %find the geomterty_calib GUI 404 404 hh_geometry_calib=guidata(h_geometry_calib); 405 405 h_edit_append=hh_geometry_calib.edit_append;%findobj(h_geometry_calib,'Tag','edit_append'); 406 406 if isequal(get(h_edit_append,'Value'),1) && ~isempty(haxes) 407 h_ListCoord=hh_geometry_calib.ListCoord; %findobj(h_geometry_calib,'Tag','ListCoord'); 408 coord_value=get(hhuvmat.TransformName,'Value');% set uvmat to pixel coordinates, run it again if not 409 if ~(isequal(coord_value,1)||isequal(coord_value,3)); %active only with no transform or px (no phys) 407 if ~isequal(get(hhuvmat.TransformName,'Value'),1); %active only with no transform (px coordinates) 410 408 set(hhuvmat.TransformName,'Value',1) 411 409 uvmat('TransformName_Callback',hObject,eventdata,hhuvmat); %file input with xml reading in uvmat 412 set(hhuvmat.CheckFixedLimits,'Value',0)% put FixedLimits option to 'off' 413 set(hhuvmat.CheckFixedLimits,'BackgroundColor',[0.7 0.7 0.7]) 410 set(hhuvmat.CheckFixLimits,'Value',0)% put FixedLimits option to 'off' (to sse the whole field) 414 411 return 415 412 end 416 Coord=get(h_ListCoord,'String'); 417 data=read_geometry_calib(Coord);%transform char cell to numbers 413 h_ListCoord=hh_geometry_calib.ListCoord; %findobj(h_geometry_calib,'Tag','ListCoord'); 414 Coord=get(h_ListCoord,'Data'); 415 %data=read_geometry_calib(Coord);%transform char cell to numbers 418 416 xlim=get(haxes,'XLim'); 419 417 ind_range_x=abs((xlim(2)-xlim(1))/50); … … 422 420 ind_range=sqrt(ind_range_x*ind_range_y); 423 421 test_newpoint=1; 424 if size(data.Coord,2)>=5 %if calibration points already exist 425 XCoord=(data.Coord(:,4)); 426 YCoord=(data.Coord(:,5)); 427 index_point=find((XCoord<xy(1,1)+ind_range) & (XCoord>xy(1,1)-ind_range) & ...%flagx=1 for the vectors with x position selected by the mouse 428 (YCoord<xy(1,2)+ind_range) & (YCoord>xy(1,2)-ind_range),1);%find the first calibration point in the neighborhood of the mouse 429 test_newpoint=isempty(index_point);%test for no existing calibration point near the mouse position 430 end 431 val=get(h_ListCoord,'Value'); 422 %if size(data.Coord,2)>=5 %if calibration points already exist 423 if ~isempty(Coord) 424 XCoord=(Coord(:,4)); 425 YCoord=(Coord(:,5)); 426 index_point=find((XCoord<xy(1,1)+ind_range) & (XCoord>xy(1,1)-ind_range) & ...%flagx=1 for the vectors with x position selected by the mouse 427 (YCoord<xy(1,2)+ind_range) & (YCoord>xy(1,2)-ind_range),1);%find the first calibration point in the neighborhood of the mouse 428 test_newpoint=isempty(index_point);%test for no existing calibration point near the mouse position 429 end 430 %end 431 %val=find(Data.Coord(:,6)); 432 432 433 %create a new calib point if we are not close to an existing one 433 if test_newpoint 434 strline=[ ' | ' ' | ' ' | ' num2str(xy(1,1),4) ' | ' num2str(xy(1,2),4)]; 435 436 if length(Coord)>=val 437 Coord(val+1:length(Coord)+1)=Coord(val:length(Coord));% push the list forward beyond the current point 438 end 439 Coord{val}=strline; 440 set(h_ListCoord,'String',Coord) 441 data=read_geometry_calib(Coord);%transform char cell to numbers 442 XCoord=data.Coord(:,4); 443 YCoord=data.Coord(:,5); 444 end 445 hh=findobj('Tag','calib_points');%look for handle of calibration points 434 hh=findobj('Tag','calib_points');%look for handle of calibration points 435 if test_newpoint 436 Coord=[Coord;[0 0 0 xy(1,1) xy(1,2) 0]]; 437 set(h_ListCoord,'Data',Coord) 438 end 446 439 if isempty(hh) 447 hh=line( XCoord,YCoord,'Color','m','Tag','calib_points','LineStyle','.','Marker','+');440 hh=line(Coord(:,4),Coord(:,5),'Color','m','Tag','calib_points','LineStyle','.','Marker','+'); 448 441 else 449 set(hh,'XData',XCoord) 450 set(hh,'YData',YCoord) 451 end 452 set(hh,'UserData',val)% flag the points to edit mode 442 set(hh,'XData',Coord(:,4)) 443 set(hh,'YData',Coord(:,5)) 444 end 445 if test_newpoint 446 set(hh,'UserData',size(Coord,1))% flag the points to edit mode 447 else 448 set(hh,'UserData',index_point)% mark the selected point index for future mouse motion 449 end 453 450 hhh=findobj('Tag','calib_marker');%look for handle of point marker (circle) 454 451 if ~isempty(hhh) … … 456 453 else 457 454 rectangle('Curvature',[1 1],... 458 'Position',[xy(1,1)-ind_range/2 xy(1,2)-ind_range/2 ind_range ind_range],'EdgeColor','m',... 459 'LineStyle','-','Tag','calib_marker'); 460 % line([xy(1,1) xy(1,1)],[xy(1,2) xy(1,2)],'Color','m','Tag','calib_marker','LineStyle','.','Marker','o','MarkerSize',ind_range); 455 'Position',[xy(1,1)-ind_range/2 xy(1,2)-ind_range/2 ind_range ind_range],'EdgeColor','m',... 456 'LineStyle','-','Tag','calib_marker'); 461 457 end 462 458 AxeData.Drawing='calibration';
Note: See TracChangeset
for help on using the changeset viewer.