forked from alejandrojapkin/CocoaLUT
/
LUTColorSpaceWhitePoint.m
75 lines (59 loc) · 2.38 KB
/
LUTColorSpaceWhitePoint.m
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
//
// LUTWhitePoint.m
// Pods
//
// Created by Greg Cotten on 6/24/14.
//
//
#import "LUTColorSpaceWhitePoint.h"
@implementation LUTColorSpaceWhitePoint
- (instancetype)initWithWhiteChromaticityX:(double)whiteChromaticityX
whiteChromaticityY:(double)whiteChromaticityY
name:(NSString *)name{
if(self = [super init]){
self.whiteChromaticityX = whiteChromaticityX;
self.whiteChromaticityY = whiteChromaticityY;
self.name = name;
}
return self;
}
+ (instancetype)whitePointWithWhiteChromaticityX:(double)whiteChromaticityX
whiteChromaticityY:(double)whiteChromaticityY
name:(NSString *)name{
return [[[self class] alloc] initWithWhiteChromaticityX:whiteChromaticityX
whiteChromaticityY:whiteChromaticityY
name:name];
}
+ (NSArray *)knownWhitePoints{
NSArray *allKnownWhitePoints = @[[self d65WhitePoint],
[self d60WhitePoint],
[self d55WhitePoint],
[self dciWhitePoint]];
return allKnownWhitePoints;
}
- (instancetype)copyWithZone:(NSZone *)zone{
return [self.class whitePointWithWhiteChromaticityX:self.whiteChromaticityX
whiteChromaticityY:self.whiteChromaticityY
name:[self.name copyWithZone:zone]];
}
+ (instancetype)d65WhitePoint{
return [self whitePointWithWhiteChromaticityX:0.31271
whiteChromaticityY:0.32902
name:@"D65"];
}
+ (instancetype)d60WhitePoint{
return [self whitePointWithWhiteChromaticityX:0.32168
whiteChromaticityY:0.33767
name:@"D60"];
}
+ (instancetype)d55WhitePoint{
return [self whitePointWithWhiteChromaticityX:0.33242
whiteChromaticityY:0.34743
name:@"D55"];
}
+ (instancetype)dciWhitePoint{
return [self whitePointWithWhiteChromaticityX:.314
whiteChromaticityY:.351
name:@"DCI White"];
}
@end