/* * 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 #include #include namespace AZ { namespace Render { class SkinnedMeshVertexStreamProperties : public SkinnedMeshVertexStreamPropertyInterface { public: AZ_RTTI(AZ::Render::SkinnedMeshVertexStreamProperties, "{8912239E-8412-4B9E-BDE6-AE6BA67A207C}", AZ::Render::SkinnedMeshVertexStreamPropertyInterface); SkinnedMeshVertexStreamProperties(); const SkinnedMeshVertexStreamInfo& GetInputStreamInfo(SkinnedMeshInputVertexStreams stream) const override; const SkinnedMeshVertexStreamInfo& GetStaticStreamInfo(SkinnedMeshStaticVertexStreams stream) const override; const SkinnedMeshOutputVertexStreamInfo& GetOutputStreamInfo(SkinnedMeshOutputVertexStreams stream) const override; Data::Asset GetInputStreamResourcePool() const override; Data::Asset GetStaticStreamResourcePool() const override; Data::Asset GetOutputStreamResourcePool() const override; uint32_t GetMaxSupportedVertexCount() const override; private: AZStd::array(SkinnedMeshInputVertexStreams::NumVertexStreams)> m_inputStreamInfo; AZStd::array(SkinnedMeshStaticVertexStreams::NumVertexStreams)> m_staticStreamInfo; AZStd::array(SkinnedMeshOutputVertexStreams::NumVertexStreams)> m_outputStreamInfo; Data::Asset m_inputStreamResourcePool; Data::Asset m_staticStreamResourcePool; Data::Asset m_outputStreamResourcePool; }; } // namespace Render } // namespace AZ