/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #pragma once #include #include namespace AZ { namespace AssImpSDKWrapper { class AssImpMaterialWrapper : public SDKMaterial::MaterialWrapper { public: AZ_RTTI(AssImpMaterialWrapper, "{66992628-CFCE-441B-8849-9344A49AFAC9}", SDKMaterial::MaterialWrapper); AssImpMaterialWrapper(aiMaterial* aiMaterial); ~AssImpMaterialWrapper() override = default; aiMaterial* GetAssImpMaterial() const; AZStd::string GetName() const override; AZ::u64 GetUniqueId() const override; AZ::Vector3 GetDiffuseColor() const override; AZ::Vector3 GetSpecularColor() const override; AZ::Vector3 GetEmissiveColor() const override; float GetOpacity() const override; float GetShininess() const override; AZStd::string GetTextureFileName(MaterialMapType textureType) const override; AZStd::optional GetUseColorMap() const; AZStd::optional GetBaseColor() const; AZStd::optional GetUseMetallicMap() const; AZStd::optional GetMetallicFactor() const; AZStd::optional GetUseRoughnessMap() const; AZStd::optional GetRoughnessFactor() const; AZStd::optional GetUseEmissiveMap() const; AZStd::optional GetEmissiveIntensity() const; AZStd::optional GetUseAOMap() const; protected: aiMaterial* m_assImpMaterial = nullptr; }; } // namespace AssImpSDKWrapper }// namespace AZ