From fbe5f352ff0f238266bc690a0b750674f80b1f02 Mon Sep 17 00:00:00 2001 From: Aki Date: Sat, 6 Apr 2024 02:34:19 +0200 Subject: Added obj2mag and mag2obj utilities --- MagicEx/include/MagicLoad.inl.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 MagicEx/include/MagicLoad.inl.h (limited to 'MagicEx/include/MagicLoad.inl.h') diff --git a/MagicEx/include/MagicLoad.inl.h b/MagicEx/include/MagicLoad.inl.h new file mode 100644 index 0000000..e32ba60 --- /dev/null +++ b/MagicEx/include/MagicLoad.inl.h @@ -0,0 +1,32 @@ +/* Starshatter: The Open Source Project + Copyright (c) 2021-2024, Starshatter: The Open Source Project Contributors + Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors + Copyright (c) 1997-2006, Destroyer Studios LLC. +*/ + +#include + +#include + + +template +bool +ImportInto(const char* pathname, Solid* target) +{ + ModelLoader loader {pathname}; + if (auto* original = target->GetModel()) { + auto solid = std::make_unique(); + if (!solid->Load(&loader)) + return false; + auto* imported = solid->GetModel(); + original->GetMaterials().append(imported->GetMaterials()); + original->GetSurfaces().append(imported->GetSurfaces()); + original->OptimizeMaterials(); + imported->GetMaterials().clear(); + imported->GetSurfaces().clear(); + return true; + } + return target->Load(&loader); +} + + -- cgit v1.1