Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-07-10 13:53:50 +0300
committerJacques Lucke <jacques@blender.org>2020-07-10 13:57:28 +0300
commitf62204718bf8efc1661fd61cf85d24bc8268f763 (patch)
tree1b7aeea57b5435fbdab8d3d9bd1141275eaf30ef /source/blender
parent8f6c0f224252f722c5cd64db85b425f33ad72182 (diff)
BLI: initial hash function for Color4b and float4x4
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenlib/BLI_color.hh6
-rw-r--r--source/blender/blenlib/BLI_float4x4.hh10
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