#pragma once #include #include namespace fs = std::filesystem; class ModelCooker { public: struct Options { fs::path inputRoot; }; explicit ModelCooker(Options opt); bool CookFileIfNeeded(const fs::path& source, const fs::path& output) const; static fs::path MakeOutputPath(const fs::path& dstLikeSrc); private: Options m_opt; static bool NeedsRebuild(const fs::path& source, const fs::path& output); void MakePathsPortable(ModelDoc::ModelAsset& model, const fs::path& source) const; };