- STRING_CONSTANT(Name, "ModelSkin");
- /// \brief Attach an \p observer whose realise() and unrealise() methods will be called when the skin is loaded or unloaded.
- virtual void attach(ModuleObserver& observer) = 0;
- /// \brief Detach an \p observer previously-attached by calling \c attach.
- virtual void detach(ModuleObserver& observer) = 0;
- /// \brief Returns true if this skin is currently loaded.
- virtual bool realised() const = 0;
- /// \brief Returns the shader identifier that \p name remaps to, or "" if not found or not realised.
- virtual const char* getRemap(const char* name) const = 0;
- /// \brief Calls \p callback for each remap pair. Has no effect if not realised.
- virtual void forEachRemap(const SkinRemapCallback& callback) const = 0;
+virtual ~ModelSkin() = default;
+STRING_CONSTANT( Name, "ModelSkin" );
+/// \brief Attach an \p observer whose realise() and unrealise() methods will be called when the skin is loaded or unloaded.
+virtual void attach( ModuleObserver& observer ) = 0;
+/// \brief Detach an \p observer previously-attached by calling \c attach.
+virtual void detach( ModuleObserver& observer ) = 0;
+/// \brief Returns true if this skin is currently loaded.
+virtual bool realised() const = 0;
+/// \brief Returns the shader identifier that \p name remaps to, or "" if not found or not realised.
+virtual const char* getRemap( const char* name ) const = 0;
+/// \brief Calls \p callback for each remap pair. Has no effect if not realised.
+virtual void forEachRemap( const SkinRemapCallback& callback ) const = 0;