From be335c3e81d9693c7dbefa3ef3b9867e90fe6fef Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 26 May 2015 14:13:24 +0200 Subject: [PATCH] Graphics/Renderable: Fix copy constructor/operator Former-commit-id: eb376d49285cefa1f0317719a47e41f62a11aae5 --- include/Nazara/Graphics/Renderable.hpp | 4 ++-- include/Nazara/Graphics/Renderable.inl | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/include/Nazara/Graphics/Renderable.hpp b/include/Nazara/Graphics/Renderable.hpp index 29f00d538..784d8cf5a 100644 --- a/include/Nazara/Graphics/Renderable.hpp +++ b/include/Nazara/Graphics/Renderable.hpp @@ -30,7 +30,7 @@ class NAZARA_API NzRenderable : public NzRefCounted { public: NzRenderable() = default; - NzRenderable(const NzRenderable& renderable) = default; + NzRenderable(const NzRenderable& renderable); virtual ~NzRenderable(); void EnsureBoundingVolumeUpdated() const; @@ -40,7 +40,7 @@ class NAZARA_API NzRenderable : public NzRefCounted virtual const NzBoundingVolumef& GetBoundingVolume() const; virtual void UpdateBoundingVolume(NzBoundingVolumef* boundingVolume, const NzMatrix4f& transformMatrix) const; - NzRenderable& operator=(const NzRenderable& renderable) = default; + NzRenderable& operator=(const NzRenderable& renderable); protected: virtual void MakeBoundingVolume() const = 0; diff --git a/include/Nazara/Graphics/Renderable.inl b/include/Nazara/Graphics/Renderable.inl index eb5a70b20..44260fcc7 100644 --- a/include/Nazara/Graphics/Renderable.inl +++ b/include/Nazara/Graphics/Renderable.inl @@ -2,6 +2,12 @@ // This file is part of the "Nazara Engine - Graphics module" // For conditions of distribution and use, see copyright notice in Config.hpp +NzRenderable::NzRenderable(const NzRenderable& renderable) : +m_boundingVolume(renderable.m_boundingVolume), +m_boundingVolumeUpdated(renderable.m_boundingVolumeUpdated) +{ +} + void NzRenderable::EnsureBoundingVolumeUpdated() const { if (!m_boundingVolumeUpdated) @@ -18,3 +24,9 @@ void NzRenderable::UpdateBoundingVolume() const MakeBoundingVolume(); m_boundingVolumeUpdated = true; } + +NzRenderable& NzRenderable::operator=(const NzRenderable& renderable) +{ + m_boundingVolume = renderable.m_boundingVolume; + m_boundingVolumeUpdated = renderable.m_boundingVolumeUpdated; +}