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
|
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
|
-
-
+
-
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
return true;
}
- (uint32_t)hash
{
uint32_t hash;
union {
float f;
float tmp;
unsigned char b[sizeof(float)];
} f;
OF_HASH_INIT(hash);
f.f = OF_BSWAP_FLOAT_IF_LE(_red);
tmp = OF_BSWAP_FLOAT_IF_LE(_red);
for (uint_fast8_t i = 0; i < sizeof(float); i++)
OF_HASH_ADD(hash, f.b[i]);
OF_HASH_ADD(hash, ((char *)&tmp)[i]);
f.f = OF_BSWAP_FLOAT_IF_LE(_green);
tmp = OF_BSWAP_FLOAT_IF_LE(_green);
for (uint_fast8_t i = 0; i < sizeof(float); i++)
OF_HASH_ADD(hash, f.b[i]);
OF_HASH_ADD(hash, ((char *)&tmp)[i]);
f.f = OF_BSWAP_FLOAT_IF_LE(_blue);
tmp = OF_BSWAP_FLOAT_IF_LE(_blue);
for (uint_fast8_t i = 0; i < sizeof(float); i++)
OF_HASH_ADD(hash, f.b[i]);
OF_HASH_ADD(hash, ((char *)&tmp)[i]);
f.f = OF_BSWAP_FLOAT_IF_LE(_alpha);
tmp = OF_BSWAP_FLOAT_IF_LE(_alpha);
for (uint_fast8_t i = 0; i < sizeof(float); i++)
OF_HASH_ADD(hash, f.b[i]);
OF_HASH_ADD(hash, ((char *)&tmp)[i]);
OF_HASH_FINALIZE(hash);
return hash;
}
- (void)getRed: (float *)red
|