Browse Source

Add support for reading glTF files

Contributes to issue CURA-6739.
Ghostkeeper 5 years ago
parent
commit
e761b2c2a7
2 changed files with 23 additions and 1 deletions
  1. 15 1
      plugins/TrimeshReader/TrimeshReader.py
  2. 8 0
      plugins/TrimeshReader/__init__.py

+ 15 - 1
plugins/TrimeshReader/TrimeshReader.py

@@ -27,7 +27,7 @@ class TrimeshReader(MeshReader):
     def __init__(self) -> None:
         super().__init__()
 
-        self._supported_extensions = [".dae", ".ply"]
+        self._supported_extensions = [".dae", ".gltf", ".glb", ".ply"]
         MimeTypeDatabase.addMimeType(
             MimeType(
                 name = "model/vnd.collada+xml",
@@ -35,6 +35,20 @@ class TrimeshReader(MeshReader):
                 suffixes = ["dae"]
             )
         )
+        MimeTypeDatabase.addMimeType(
+            MimeType(
+                name = "model/gltf-binary",
+                comment = "glTF Binary",
+                suffixes = ["glb"]
+            )
+        )
+        MimeTypeDatabase.addMimeType(
+            MimeType(
+                name = "model/gltf+json",
+                comment = "glTF Embedded JSON",
+                suffixes = ["gltf"]
+            )
+        )
         MimeTypeDatabase.addMimeType(
             MimeType(
                 name = "application/x-ply",  # Wikipedia lists the MIME type as "text/plain" but that won't do as it's not unique to PLY files.

+ 8 - 0
plugins/TrimeshReader/__init__.py

@@ -14,6 +14,14 @@ def getMetaData():
                 "extension": "dae",
                 "description": i18n_catalog.i18nc("@item:inlistbox", "COLLADA Digital Asset Exchange")
             },
+            {
+                "extension": "glb",
+                "description": i18n_catalog.i18nc("@item:inlistbox", "glTF Binary")
+            },
+            {
+                "extension": "gltf",
+                "description": i18n_catalog.i18nc("@item:inlistbox", "glTF Embedded JSON")
+            },
             {
                 "extension": "ply",
                 "description": i18n_catalog.i18nc("@item:inlistbox", "Stanford Triangle Format")