/* * Copyright (c) Contributors to the Open 3D Engine Project * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #pragma once #include #include #include #include #include #include #include namespace AZ { namespace SceneAPI { namespace Containers { class Scene; } namespace FbxSceneBuilder { class FbxImporter : public SceneCore::LoadingComponent { public: AZ_COMPONENT(FbxImporter, "{D5EE21B6-8B73-45BF-B711-31346E0BEDB3}", SceneCore::LoadingComponent); FbxImporter(); ~FbxImporter() override = default; static void Reflect(ReflectContext* context); Events::ProcessingResult ImportProcessing(Events::ImportEventContext& context); protected: bool ConvertFbxScene(Containers::Scene& scene) const; void SanitizeNodeName(AZStd::string& nodeName) const; AZStd::unique_ptr m_sceneWrapper; AZStd::shared_ptr m_sceneSystem; }; } // namespace FbxSceneBuilder } // namespace SceneAPI } // namespace AZ