Browse Source

AnySceneImporter: recognize USD files.

Assimp seems to support those since 5.4.3, so we have a plugin to direct
these to.
pull/674/head
Vladimír Vondruš 1 year ago
parent
commit
1e9b11860d
  1. 2
      doc/changelog.dox
  2. 6
      src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp
  3. 3
      src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h
  4. 4
      src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp

2
doc/changelog.dox

@ -967,7 +967,7 @@ See also:
in @relativeref{Trade,AnyImageConverter}
- Recognizing WebP files in @relativeref{Trade,AnyImageConverter}
- Recognizing glTF files in @relativeref{Trade,AnySceneConverter}
- Recognizing 3MF and VRM files in @relativeref{Trade,AnySceneImporter}
- Recognizing 3MF, VRM and USD files in @relativeref{Trade,AnySceneImporter}
- Recognizing OpenVBD files in @relativeref{Trade,AnyImageImporter} and
@relativeref{Trade,AnyImageConverter}
- @ref Audio::AnyImporter "AnyAudioImporter",

6
src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp

@ -166,6 +166,12 @@ void AnySceneImporter::doOpenFile(const Containers::StringView filename) {
/** @todo isn't *.scn also too generic? */
normalized.hasSuffix(".scn"_s))
plugin = "TrueSpaceImporter"_s;
/* https://en.wikipedia.org/wiki/Universal_Scene_Description */
else if(normalized.hasSuffix(".usd"_s) ||
normalized.hasSuffix(".usda"_s) ||
normalized.hasSuffix(".usdc"_s) ||
normalized.hasSuffix(".usdz"_s))
plugin = "UsdImporter"_s;
else if(normalized.hasSuffix(".3d"_s))
plugin = "UnrealImporter"_s;
else if(normalized.hasSuffix(".smd"_s) ||

3
src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h

@ -96,6 +96,9 @@ tries to open the file with it. Supported formats:
`StlImporter`
- TrueSpace (`*.cob`, `*.scn`), loaded with any plugin that provides
`TrueSpaceImporter`
- [Universal Scene Description (USD)](https://en.wikipedia.org/wiki/Universal_Scene_Description)
(`*.usd`, `*.usda`, `*.usdc`, `*.usdz`), loaded with any plugin that
provides `UsdImporter`
- Unreal (`*.3d`), loaded with any plugin that provides `UnrealImporter`
- Valve Model (`*.smd`, `*.vta`), loaded with any plugin that provides
`ValveImporter`

4
src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp

@ -153,6 +153,10 @@ const struct {
{"STL", "robot.stl", "StlImporter"},
{"TrueSpace COB", "huh.cob", "TrueSpaceImporter"},
{"TrueSpace SCN", "huh.scn", "TrueSpaceImporter"},
{"USD", "model.usd", "UsdImporter"},
{"USD ASCII", "model.usda", "UsdImporter"},
{"USD binary", "model.usdc", "UsdImporter"},
{"USD zipped", "model.usdz", "UsdImporter"},
{"Unreal", "tournament.3d", "UnrealImporter"},
{"Valve Model SMD", "hl3.smd", "ValveImporter"},
{"Valve Model VTA", "hl3.vta", "ValveImporter"},

Loading…
Cancel
Save