// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #pragma once #include "Types.h" #if COMPILE_WITH_ASSETS_IMPORTER #include "Engine/Tools/ModelTool/ModelTool.h" /// /// Enable/disable caching model import options /// #define IMPORT_MODEL_CACHE_OPTIONS 1 /// /// Importing models utility /// class ImportModelFile { public: typedef ModelTool::Options Options; public: /// /// Tries the get model import options from the target location asset. /// /// The asset path. /// The options. /// True if success, otherwise false. static bool TryGetImportOptions(const StringView& path, Options& options); /// /// Imports the model file. /// /// The importing context. /// Result. static CreateAssetResult Import(CreateAssetContext& context); /// /// Creates the model asset from the ModelData storage (input argument should be pointer to ModelData). /// /// The importing context. /// Result. static CreateAssetResult Create(CreateAssetContext& context); private: static CreateAssetResult ImportModel(CreateAssetContext& context, ModelData& modelData, const Options* options = nullptr); static CreateAssetResult ImportSkinnedModel(CreateAssetContext& context, ModelData& modelData, const Options* options = nullptr); static CreateAssetResult ImportAnimation(CreateAssetContext& context, ModelData& modelData, const Options* options = nullptr); }; #endif