From 5a7919322750abdfece8b0bdcf50280efa6584b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 3 Feb 2014 23:08:07 +0100 Subject: [PATCH] Trade: allow objects without materials. --- src/Magnum/Trade/MeshObjectData2D.cpp | 2 +- src/Magnum/Trade/MeshObjectData2D.h | 14 +++++++++----- src/Magnum/Trade/MeshObjectData3D.cpp | 2 +- src/Magnum/Trade/MeshObjectData3D.h | 14 +++++++++----- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/Magnum/Trade/MeshObjectData2D.cpp b/src/Magnum/Trade/MeshObjectData2D.cpp index ba2c6d806..f0b5c283c 100644 --- a/src/Magnum/Trade/MeshObjectData2D.cpp +++ b/src/Magnum/Trade/MeshObjectData2D.cpp @@ -27,6 +27,6 @@ namespace Magnum { namespace Trade { -MeshObjectData2D::MeshObjectData2D(std::vector children, const Matrix3& transformation, UnsignedInt instance, UnsignedInt material): ObjectData2D(std::move(children), transformation, ObjectInstanceType2D::Mesh, instance), _material(material) {} +MeshObjectData2D::MeshObjectData2D(std::vector children, const Matrix3& transformation, UnsignedInt instance, Int material): ObjectData2D(std::move(children), transformation, ObjectInstanceType2D::Mesh, instance), _material(material) {} }} diff --git a/src/Magnum/Trade/MeshObjectData2D.h b/src/Magnum/Trade/MeshObjectData2D.h index 4708da31f..4a59eee30 100644 --- a/src/Magnum/Trade/MeshObjectData2D.h +++ b/src/Magnum/Trade/MeshObjectData2D.h @@ -46,11 +46,11 @@ class MAGNUM_EXPORT MeshObjectData2D: public ObjectData2D { * @param children Child objects * @param transformation Transformation (relative to parent) * @param instance Instance ID - * @param material Material ID + * @param material Material ID or `-1` * * Creates object with mesh instance type. */ - explicit MeshObjectData2D(std::vector children, const Matrix3& transformation, UnsignedInt instance, UnsignedInt material); + explicit MeshObjectData2D(std::vector children, const Matrix3& transformation, UnsignedInt instance, Int material); /** @brief Copying is not allowed */ MeshObjectData2D(const MeshObjectData2D&) = delete; @@ -64,11 +64,15 @@ class MAGNUM_EXPORT MeshObjectData2D: public ObjectData2D { /** @brief Move assignment */ MeshObjectData2D& operator=(MeshObjectData2D&&) = default; - /** @brief Material ID */ - UnsignedInt material() const { return _material; } + /** + * @brief Material ID + * + * Returns `-1` if the object has no material assigned. + */ + Int material() const { return _material; } private: - UnsignedInt _material; + Int _material; }; }} diff --git a/src/Magnum/Trade/MeshObjectData3D.cpp b/src/Magnum/Trade/MeshObjectData3D.cpp index 2b5812f76..84f0333b1 100644 --- a/src/Magnum/Trade/MeshObjectData3D.cpp +++ b/src/Magnum/Trade/MeshObjectData3D.cpp @@ -27,6 +27,6 @@ namespace Magnum { namespace Trade { -MeshObjectData3D::MeshObjectData3D(std::vector children, const Matrix4& transformation, UnsignedInt instance, UnsignedInt material): ObjectData3D(std::move(children), transformation, ObjectInstanceType3D::Mesh, instance), _material(material) {} +MeshObjectData3D::MeshObjectData3D(std::vector children, const Matrix4& transformation, UnsignedInt instance, Int material): ObjectData3D(std::move(children), transformation, ObjectInstanceType3D::Mesh, instance), _material(material) {} }} diff --git a/src/Magnum/Trade/MeshObjectData3D.h b/src/Magnum/Trade/MeshObjectData3D.h index df8b5095e..dafe97632 100644 --- a/src/Magnum/Trade/MeshObjectData3D.h +++ b/src/Magnum/Trade/MeshObjectData3D.h @@ -46,11 +46,11 @@ class MAGNUM_EXPORT MeshObjectData3D: public ObjectData3D { * @param children Child objects * @param transformation Transformation (relative to parent) * @param instance Instance ID - * @param material Material ID + * @param material Material ID or `-1` * * Creates object with mesh instance type. */ - explicit MeshObjectData3D(std::vector children, const Matrix4& transformation, UnsignedInt instance, UnsignedInt material); + explicit MeshObjectData3D(std::vector children, const Matrix4& transformation, UnsignedInt instance, Int material); /** @brief Copying is not allowed */ MeshObjectData3D(const MeshObjectData3D&) = delete; @@ -64,11 +64,15 @@ class MAGNUM_EXPORT MeshObjectData3D: public ObjectData3D { /** @brief Move assignment */ MeshObjectData3D& operator=(MeshObjectData3D&&) = default; - /** @brief Material ID */ - UnsignedInt material() const { return _material; } + /** + * @brief Material ID + * + * Returns `-1` if the object has no material assigned. + */ + Int material() const { return _material; } private: - UnsignedInt _material; + Int _material; }; }}