-
Notifications
You must be signed in to change notification settings - Fork 0
/
MNLColor.swift
127 lines (115 loc) · 3.4 KB
/
MNLColor.swift
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
115
116
117
118
119
120
121
122
123
124
125
126
127
extension MNLColor {
@nonobjc
public var monochromeComponents: MNLMonochromeColorComponents? {
var components = MNLMonochromeColorComponents()
self.__getMonochromeColorComponents(&components)
if components.white.isNaN || components.alpha.isNaN {
return nil
}
return components
}
@nonobjc
public var rgbComponents: MNLRGBColorComponents? {
var components = MNLRGBColorComponents()
self.__getRGBColorComponents(&components)
if components.red.isNaN || components.green.isNaN || components.blue.isNaN || components.alpha.isNaN {
return nil
}
return components
}
@nonobjc
public var cmykComponents: MNLCMYKColorComponents? {
var components = MNLCMYKColorComponents()
self.__getCMYKColorComponents(&components)
if components.cyan.isNaN || components.magenta.isNaN || components.yellow.isNaN || components.black.isNaN || components.alpha.isNaN {
return nil
}
return components
}
@nonobjc
public var components: [CGFloat] {
var components = [CGFloat].init(repeating: .nan, count: Int(self.numberOfComponents))
self.__getComponents(&components)
return components
}
@nonobjc
public convenience init?
<Integer>
(white: Integer,
alpha: CGFloat,
colorSpace: MNLColorSpace)
where Integer: BinaryInteger
{
self.init(__hexadecimalWhite: Int(white), alpha: alpha, colorSpace: colorSpace)
}
@nonobjc
public convenience init?
<Integer>
(white: Integer,
colorSpace: MNLColorSpace)
where Integer: BinaryInteger
{
self.init(__hexadecimalWhite: Int(white), colorSpace: colorSpace)
}
@nonobjc
public convenience init?
<Integer>
(white: Integer,
alpha: CGFloat)
where Integer: BinaryInteger
{
self.init(__hexadecimalWhite: Int(white), alpha: alpha)
}
@nonobjc
public convenience init?
<Integer>
(white: Integer)
where Integer: BinaryInteger
{
self.init(__hexadecimalWhite: Int(white))
}
@nonobjc
public convenience init?
<Integer>
(red: Integer,
green: Integer,
blue: Integer,
alpha: CGFloat,
colorSpace: MNLColorSpace)
where Integer: BinaryInteger
{
self.init(__hexadecimalRed: Int(red), green: Int(green), blue: Int(blue), alpha: alpha, colorSpace: colorSpace)
}
@nonobjc
public convenience init?
<Integer>
(red: Integer,
green: Integer,
blue: Integer,
colorSpace: MNLColorSpace)
where Integer: BinaryInteger
{
self.init(__hexadecimalRed: Int(red), green: Int(green), blue: Int(blue), colorSpace: colorSpace)
}
@nonobjc
public convenience init?
<Integer>
(red: Integer,
green: Integer,
blue: Integer,
alpha: CGFloat)
where Integer: BinaryInteger
{
self.init(__hexadecimalRed: Int(red), green: Int(green), blue: Int(blue), alpha: alpha)
}
@nonobjc
public convenience init?
<Integer>
(red: Integer,
green: Integer,
blue: Integer)
where Integer: BinaryInteger
{
self.init(__hexadecimalRed: Int(red), green: Int(green), blue: Int(blue))
}
}