-
Notifications
You must be signed in to change notification settings - Fork 2
/
FractControllerContrastE.j
61 lines (48 loc) · 1.85 KB
/
FractControllerContrastE.j
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
/*
This file is part of FrACT10, a vision test battery.
Copyright © 2021 Michael Bach, [email protected], <https://michaelbach.de>
FractControllerContrastE.j
Created by Bach on 2020-09-02
*/
@import "FractControllerContrast.j"
@implementation FractControllerContrastE: FractControllerContrast {
}
- (void) drawStimulusInRect: (CGRect) dirtyRect forView: (FractView) fractView { //console.info("FractControllerContrastLett>drawStimulusInRect");
[self calculateForeBackColors];
[self prepareDrawing];
switch(state) {
case kStateDrawBack: break;
case kStateDrawFore:
[self drawFixMark];
break;
case kStateDrawFore2:
[optotypes tumblingEWithStrokeInPx: strokeSizeInPix direction: [alternativesGenerator currentAlternative]];
[self drawFixMark3];
stimStrengthInDeviceunits = [self getCurrentContrastLogCSWeber];
trialInfoString = [self contrastComposeTrialInfoString];// compose here after colors are set
break;
default: break;
}
[self embedInNoise];
[self drawTouchControls];
CGContextRestoreGState(cgc);
[super drawStimulusInRect: dirtyRect];
}
- (void) runStart { //console.info("FractControllerContrastLett>runStart");
nAlternatives = 4; nTrials = [Settings nTrials04];
[super runStart];
}
- (int) responseNumberFromChar: (CPString) keyChar { //console.info("FractControllerContrastE>responseNumberFromChar: ", keyChar);
switch (keyChar) {
case CPLeftArrowFunctionKey: return 4;
case CPRightArrowFunctionKey: return 0;
case CPUpArrowFunctionKey: return 2;
case CPDownArrowFunctionKey: return 6;
case "6": return 0;
case "8": return 2;
case "4": return 4;
case "2": return 6;
}
return -2;// 0, 2, 4, 6: valid; -1: ignore; -2: invalid
}
@end