/* * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or * its licensors. * * For complete copyright and license terms please see the LICENSE at the root of this * distribution (the "License"). All use of this software is governed by the License, * or, if provided, by the license below or the license accompanying this file. Do not * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * */ #include #include #include #include #include #include #include #include #include #include #include #include #include namespace AZ { namespace Render { AZ_CLASS_ALLOCATOR_IMPL(AtomActor, EMotionFX::Integration::EMotionFXAllocator, 0); AtomActor::AtomActor(EMotionFX::Integration::ActorAsset* actorAsset) : RenderActor() , m_actorAsset(actorAsset) { AZ_Assert(m_actorAsset, "AtomActor created with a null EmotionFX ActorAsset."); const AZ::Data::AssetId& actorAssetId = m_actorAsset->GetId(); if (actorAssetId.IsValid()) { AZ_Assert(m_actorAsset->GetActor(), "AtomActor created with a null EMotionFX Actor."); } } AtomActor::~AtomActor() { m_skinnedMeshInputBuffers.reset(); } AZStd::intrusive_ptr AtomActor::FindOrCreateSkinnedMeshInputBuffers() { if (!m_skinnedMeshInputBuffers) { m_skinnedMeshInputBuffers = AZ::Render::CreateSkinnedMeshInputFromActor(m_actorAsset->GetId(), m_actorAsset->GetActor()); } return m_skinnedMeshInputBuffers; } } // namespace Render } // namespace AZ