From 76e20b6b8aa4b80cca568922dc5907a49c2136b0 Mon Sep 17 00:00:00 2001 From: Philip Trettner <Philip.Trettner@rwth-aachen.de> Date: Thu, 1 Apr 2021 13:04:17 +0200 Subject: [PATCH] improved hash for handles --- src/polymesh/hash.hh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/polymesh/hash.hh b/src/polymesh/hash.hh index 6fdcc31..f94afea 100644 --- a/src/polymesh/hash.hh +++ b/src/polymesh/hash.hh @@ -22,11 +22,11 @@ struct hash template <class tag> size_t operator()(polymesh::primitive_handle<tag> const& i) const noexcept { - return i.idx.value; + return size_t(i.idx.value) ^ size_t(i.mesh); } - size_t operator()(polymesh::face_handle const& i) const noexcept { return i.idx.value; } - size_t operator()(polymesh::vertex_handle const& i) const noexcept { return i.idx.value; } - size_t operator()(polymesh::edge_handle const& i) const noexcept { return i.idx.value; } - size_t operator()(polymesh::halfedge_handle const& i) const noexcept { return i.idx.value; } + size_t operator()(polymesh::face_handle const& i) const noexcept { return size_t(i.idx.value) ^ size_t(i.mesh); } + size_t operator()(polymesh::vertex_handle const& i) const noexcept { return size_t(i.idx.value) ^ size_t(i.mesh); } + size_t operator()(polymesh::edge_handle const& i) const noexcept { return size_t(i.idx.value) ^ size_t(i.mesh); } + size_t operator()(polymesh::halfedge_handle const& i) const noexcept { return size_t(i.idx.value) ^ size_t(i.mesh); } }; } -- GitLab