From d5827af79f465ea7f3e2221eb71579abef709e0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 3 May 2015 20:03:58 +0200 Subject: [PATCH 1/2] Trade: proper const overloads. This is one of these dark corners. --- src/Magnum/Trade/ObjectData2D.h | 1 + src/Magnum/Trade/ObjectData3D.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Magnum/Trade/ObjectData2D.h b/src/Magnum/Trade/ObjectData2D.h index 23d684b43..58125f5b5 100644 --- a/src/Magnum/Trade/ObjectData2D.h +++ b/src/Magnum/Trade/ObjectData2D.h @@ -94,6 +94,7 @@ class MAGNUM_EXPORT ObjectData2D { /** @brief Child objects */ std::vector& children() { return _children; } + const std::vector& children() const { return _children; } /**< @overload */ /** @brief Transformation (relative to parent) */ Matrix3 transformation() const { return _transformation; } diff --git a/src/Magnum/Trade/ObjectData3D.h b/src/Magnum/Trade/ObjectData3D.h index b41467320..b8f1ca7f9 100644 --- a/src/Magnum/Trade/ObjectData3D.h +++ b/src/Magnum/Trade/ObjectData3D.h @@ -96,6 +96,7 @@ class MAGNUM_EXPORT ObjectData3D { /** @brief Child objects */ std::vector& children() { return _children; } + const std::vector& children() const { return _children; } /**< @overload */ /** @brief Transformation (relative to parent) */ Matrix4 transformation() const { return _transformation; } From 27352e706ce3eb2babfc213b70518d920f7e850b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 3 May 2015 20:04:23 +0200 Subject: [PATCH 2/2] Ability to create ResourceKey directly from the hash. --- src/Magnum/Resource.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Magnum/Resource.h b/src/Magnum/Resource.h index 01654d629..cd78b01ab 100644 --- a/src/Magnum/Resource.h +++ b/src/Magnum/Resource.h @@ -88,7 +88,10 @@ class ResourceKey: public Utility::MurmurHash2::Digest { * Creates zero key. Note that it is not the same as calling other * constructors with empty string. */ - constexpr ResourceKey() {} + constexpr /*implicit*/ ResourceKey() {} + + /** @brief Construct resource key directly from hashed value */ + explicit ResourceKey(std::size_t key): Utility::MurmurHash2::Digest{Utility::MurmurHash2::Digest::fromByteArray(reinterpret_cast(&key))} {} /** @brief Constructor */ ResourceKey(const std::string& key): Utility::MurmurHash2::Digest(Utility::MurmurHash2()(key)) {}