refreshtracker.m 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. function refreshtracker( varargin)
  2. %refreshtracker( varargin)
  3. %clears the tracker screen and displays all control windows
  4. %varargin: 1 to update values, enter nothing to refresh the screen
  5. persistent HArray
  6. global Par
  7. if nargin > 0 && varargin{1} == 1
  8. cla
  9. WIN = Par.WIN;
  10. nmW = size(WIN,2);
  11. HArray = zeros(nmW+3,1);
  12. ZM = Par.ZOOM;
  13. fix.x = cos((1:61)/30*pi);
  14. fix.y = sin((1:61)/30*pi);
  15. if Par.Bsqr
  16. dot.x = [-1 1 1 -1 -1];
  17. dot.y = [-1 -1 1 1 -1];
  18. else
  19. dot.x = cos((1:61)/30*pi);
  20. dot.y = sin((1:61)/30*pi);
  21. end
  22. % Screen rectangle
  23. HArray(1) = line('XData', [-Par.HW Par.HW Par.HW -Par.HW -Par.HW]*ZM, ...
  24. 'YData', [-Par.HH -Par.HH Par.HH Par.HH -Par.HH]*ZM);
  25. if strcmp(Par.tracker_version, 'tracker_dark')
  26. set(HArray(1), 'Color','w'); % make screen border lines white
  27. end
  28. % Fix dot
  29. HArray(2) = line('XData', WIN(1,1)*ZM, 'YData', WIN(2,1)*ZM);
  30. set(HArray(2), 'Marker', 'o', 'MarkerSize', 5*ZM, 'MarkerFaceColor', 'r')
  31. for i = 1:nmW
  32. if (WIN(5,i) == 0) %fix window
  33. HArray(4+i) = line('XData', (fix.x*WIN(3,i)*0.5+WIN(1,i))*ZM,...
  34. 'YData', (fix.y*WIN(4,i)*0.5+WIN(2,i))*ZM);
  35. if strcmp(Par.tracker_version, 'tracker_dark')
  36. set(HArray(4+i), 'Color', 'w');
  37. end
  38. HArray(3) = line('XData', (fix.x*WIN(3,i)*0.5*sqrt(0.5)+WIN(1,i))*ZM,...
  39. 'YData', (fix.y*WIN(4,i)*0.5*sqrt(0.5)+WIN(2,i))*ZM);
  40. set(HArray(3), 'Color', [0.7 0.7 0.7])
  41. if strcmp(Par.tracker_version, 'tracker_dark')
  42. set(HArray(3), 'Color', [0.5 0.5 0.5])
  43. end
  44. elseif(WIN(5,i) == 2) %2 == correct target window
  45. HArray(4) = line('XData', (dot.x*WIN(3,i)*0.5+WIN(1,i))*ZM, 'YData', (dot.y*WIN(4,i)*0.5+WIN(2,i))*ZM);
  46. set(HArray(4), 'Color', 'm')
  47. else
  48. HArray(4+i) = line('XData', (dot.x*WIN(3,i)*0.5+WIN(1,i))*ZM, 'YData', (dot.y*WIN(4,i)*0.5+WIN(2,i))*ZM);
  49. if strcmp(Par.tracker_version, 'tracker_dark')
  50. set(HArray(4+i), 'Color', 'w');
  51. end
  52. end
  53. end
  54. elseif varargin{1} == 2
  55. set(HArray(4), 'Color', 'g')
  56. elseif varargin{1} == 3
  57. set(HArray(2), 'MarkerFaceColor', 'g')
  58. else
  59. if ~isempty(HArray)
  60. cla( HArray )
  61. end
  62. end