/* * 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. * */ #pragma once ///////////////////////////////////////////////////////////////////////////// // // Asset Importer Document hosts FBX back-end data storage and access, // loading and saving APIs. // ///////////////////////////////////////////////////////////////////////////// #include #include #include #include #include #include #include #include #include class QWidget; namespace AZ { namespace SceneAPI { namespace DataTypes { class ISceneNodeGroup; class IMeshGroup; class ISkeletonGroup; class ISkinGroup; class IAnimationGroup; class IMaterialRule; class IPhysicsRule; class IActorGroup; class IEFXMotionGroup; } } } class AssetImporterDocument { public: AssetImporterDocument(); virtual ~AssetImporterDocument() = default; bool LoadScene(const AZStd::string& sceneFullPath); void SaveScene(AZStd::shared_ptr& output, AZ::SaveCompleteCallback onSaveComplete); void ClearScene(); AZStd::shared_ptr& GetScene(); protected: void SaveManifest(); AZStd::shared_ptr m_scene; AZStd::shared_ptr m_saveRunner; };