diff options
author | Jacques Lucke <jacques@blender.org> | 2020-07-10 13:53:50 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-07-10 13:57:28 +0300 |
commit | f62204718bf8efc1661fd61cf85d24bc8268f763 (patch) | |
tree | 1b7aeea57b5435fbdab8d3d9bd1141275eaf30ef /source/blender/blenlib | |
parent | 8f6c0f224252f722c5cd64db85b425f33ad72182 (diff) |
BLI: initial hash function for Color4b and float4x4
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r-- | source/blender/blenlib/BLI_color.hh | 6 | ||||
-rw-r--r-- | source/blender/blenlib/BLI_float4x4.hh | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_color.hh b/source/blender/blenlib/BLI_color.hh index 1215affe837..265013c0013 100644 --- a/source/blender/blenlib/BLI_color.hh +++ b/source/blender/blenlib/BLI_color.hh @@ -118,6 +118,12 @@ struct Color4b { { return !(a == b); } + + uint32_t hash() const + { + return ((uint32_t)r * 1283591) ^ ((uint32_t)g * 850177) ^ ((uint32_t)b * 735391) ^ + ((uint32_t)a * 442319); + } }; } // namespace blender diff --git a/source/blender/blenlib/BLI_float4x4.hh b/source/blender/blenlib/BLI_float4x4.hh index 1e9bd12b12b..ef83f9ffc19 100644 --- a/source/blender/blenlib/BLI_float4x4.hh +++ b/source/blender/blenlib/BLI_float4x4.hh @@ -108,6 +108,16 @@ struct float4x4 { interp_m4_m4m4(result, a.values, b.values, t); return result; } + + uint32_t hash() const + { + uint32_t h = 435109; + for (uint i = 0; i < 16; i++) { + float value = ((const float *)this)[i]; + h = h * 33 + (*(uint32_t *)&value); + } + return h; + } }; } // namespace blender |