This file is indexed.

/usr/share/psychtoolbox-3/PsychDemos/LineStippleDemo.m is in psychtoolbox-3-common 3.0.9+svn2579.dfsg1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
% LineStippleDemo
%
% Demostrate dashed and dotted lines in using Screen commands "LineStipple"
% and "DrawLine".
%
%
% HISTORY
%   11/19/06  dhb  Remove OSX from name.  No info present about who wrote
%                  in the first place.

% Open a window
s=max(Screen('Screens'));
w=Screen('OpenWindow', s);
[wWidth, wHeight]=Screen('WindowSize', w);
Screen('FillRect', w, 180);

% Make up test values
numDemoLines=10;
lineWidths{1}=6;
lineWidths{2}=3;
xPositions=round(linspace(0, wWidth, numDemoLines+2));
xPositions=xPositions(2:end-1);
demoLines{1}=[1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0];
demoLines{2}=[1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0];  
demoLines{3}=[1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0];
demoLines{4}=[1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0];
myColors{1}=[255 0 0];
myColors{2}=[0 255 0];
myColors{3}=[0 0 255];
myColors{4}=0;

stretchFactors{1}=1;
stretchFactors{2}=1;
stretchFactors{3}=1;


%Screen 'LineStipple' reads back the current state.
[isStippleEnabled, stippleStretchFactor, stipplePattern]=Screen('LineStipple',w);
enabledStrings={'No', 'Yes'};
fprintf('Screen ''LineStipple'' reads back the current stippling state for a window.\n');
fprintf('  Reading back the default state, unchanged after opening a new window:\n');
fprintf(['    enabled:          ' enabledStrings{isStippleEnabled+1} '\n']);
fprintf(['    stretch factor:   ' num2str(stippleStretchFactor) '\n']); 
fullPatternImage=repmat('_', 1, 16);
patternImage=fullPatternImage;
patternImage(~stipplePattern)=' ';
fprintf(['    pattern:          ' patternImage '\n']);
fprintf(['    full comparison:  ' fullPatternImage  '\n']);
fprintf('\n');

%Screen 'LineStipple' sets a new state.
newStippleEnabled=1;
newStippleStretchFactor=3;
newStipplePattern=demoLines{2};
fprintf('Screen ''LineStipple'' also sets a new stipple state for a window.\n');
fprintf('  Setting the new stipple state:\n');
Screen('LineStipple',w, newStippleEnabled, newStippleStretchFactor, newStipplePattern);
fprintf(['    enabled:          ' enabledStrings{newStippleEnabled+1} '\n']);
fprintf(['    stretch factor:   ' num2str(newStippleStretchFactor) '\n']); 
fullPatternImage=repmat('_', 1, 16);
patternImage=fullPatternImage;
patternImage(~newStipplePattern)=' ';
fprintf(['    pattern:          ' patternImage '\n']);
fprintf(['    full comparison:  ' fullPatternImage  '\n']);
fprintf('\n');

%Screen 'LineStipple' reads back the new state.
[isStippleEnabled, stippleStretchFactor, stipplePattern]=Screen('LineStipple',w);
fprintf('  Reading back changed state, modified after opening a new window:\n');
fprintf(['    enabled:          ' enabledStrings{isStippleEnabled+1} '\n']);
fprintf(['    stretch factor:   ' num2str(stippleStretchFactor) '\n']); 
fullPatternImage=repmat('_', 1, 16);
patternImage=fullPatternImage;
patternImage(~stipplePattern)=' ';
fprintf(['    pattern:          ' patternImage '\n']);
fprintf(['    full comparison:  ' fullPatternImage  '\n']);
fprintf('\n');

fprintf('  Using Screen ''LineStipple'' and ''DrawLine'' to draw stippled lines... ');
Screen('LineStipple',w, 0); 
Screen('DrawLine', w, myColors{1}, xPositions(1), 0,  xPositions(1), wHeight, lineWidths{1});

Screen('LineStipple',w, 1, stretchFactors{1}, demoLines{1});
Screen('DrawLine', w, myColors{1}, xPositions(2), 0,  xPositions(2), wHeight, lineWidths{2});

Screen('LineStipple',w, 1, stretchFactors{1}, demoLines{2});
Screen('DrawLine', w, myColors{4}, xPositions(3), 0,  xPositions(3), wHeight, lineWidths{1});

Screen('LineStipple',w, 1, stretchFactors{1}, demoLines{3});
Screen('DrawLine', w, myColors{3}, xPositions(4), 0,  xPositions(4), wHeight, lineWidths{2});

Screen('LineStipple',w, 1, stretchFactors{2}, demoLines{1});
Screen('DrawLine', w, myColors{2}, xPositions(5), 0,  xPositions(5), wHeight, lineWidths{1});

Screen('LineStipple',w, 1, stretchFactors{2}, demoLines{2});
Screen('DrawLine', w, myColors{1}, xPositions(6), 0,  xPositions(6), wHeight, lineWidths{2});

Screen('LineStipple',w, 1, stretchFactors{2}, demoLines{3});
Screen('DrawLine', w, myColors{1}, xPositions(7), 0,  xPositions(7), wHeight, lineWidths{1});

Screen('LineStipple',w, 1, stretchFactors{3}, demoLines{1});
Screen('DrawLine', w, myColors{2}, xPositions(8), 0,  xPositions(8), wHeight, lineWidths{2});

Screen('LineStipple',w, 1, stretchFactors{3}, demoLines{2});
Screen('DrawLine', w, myColors{3}, xPositions(9), 0,  xPositions(9), wHeight, lineWidths{1});

Screen('LineStipple',w, 1, stretchFactors{2}, demoLines{4});
Screen('DrawLine', w, myColors{4}, xPositions(10), 0,  xPositions(10), wHeight, lineWidths{2});

Screen('Flip', w);
fprintf('Done.\n');
fprintf('\n');
WaitSecs(6);
Screen('CloseAll');