From 4a8c76a497108e1799b01a49fe0564fc6e022a3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 9 Apr 2022 11:47:07 +0200 Subject: [PATCH] AnySceneImporter: recognize 3MF files. A 3D printing format, Assimp can apparently import it. --- doc/changelog.dox | 1 + src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp | 2 ++ src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h | 2 ++ .../AnySceneImporter/Test/AnySceneImporterTest.cpp | 1 + 4 files changed, 6 insertions(+) diff --git a/doc/changelog.dox b/doc/changelog.dox index c2cf40483..4bec1d016 100644 --- a/doc/changelog.dox +++ b/doc/changelog.dox @@ -488,6 +488,7 @@ See also: [mosra/magnum#529](https://github.com/mosra/magnum/pull/529)) - Recognizing KTX2 for (compressed) 1D/2D/3D and multi-level 1D/2D/3D images in @relativeref{Trade,AnyImageConverter} +- Recognizing 3MF files in @relativeref{Trade,AnySceneImporter} - @ref Audio::AnyImporter "AnyAudioImporter", @relativeref{Trade,AnyImageImporter}, @relativeref{Trade,AnyImageConverter}, @relativeref{Trade,AnySceneImporter}, @relativeref{Trade,AnySceneConverter} diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index d78111279..f816d177c 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -87,6 +87,8 @@ void AnySceneImporter::doOpenFile(const Containers::StringView filename) { if(normalizedExtension == ".3ds"_s || normalizedExtension == ".ase"_s) plugin = "3dsImporter"_s; + else if(normalizedExtension == ".3mf"_s) + plugin = "3mfImporter"_s; else if(normalizedExtension == ".ac"_s) plugin = "Ac3dImporter"_s; else if(normalizedExtension == ".blend"_s) diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index 330a6cfb1..3b588dd9b 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -58,6 +58,8 @@ tries to open the file with it. Supported formats: - 3ds Max 3DS and ASE (`*.3ds`, `*.ase`), loaded with any plugin that provides `3dsImporter` +- 3D Manufacturing Format (`*.3mf`), loaded with any plugin that provides + `3mfImporter` - AC3D (`*.ac`), loaded with any plugin that provides `Ac3dImporter` - Blender 3D (`*.blend`), loaded with any plugin that provides `BlenderImporter` diff --git a/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp b/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp index 34ed8f0bd..9c55cf167 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp @@ -81,6 +81,7 @@ constexpr struct { } DetectData[]{ {"Blender", "suzanne.blend", "BlenderImporter"}, {"COLLADA", "xml.dae", "ColladaImporter"}, + {"3MF", "print.3mf", "3mfImporter"}, {"FBX", "autodesk.fbx", "FbxImporter"}, {"glTF", "khronos.gltf", "GltfImporter"}, {"OpenGEX", "eric.ogex", "OpenGexImporter"},