glTF importer: multiple files import feature
This commit is contained in:
parent
171c4520fe
commit
67e42c79e5
|
@ -15,7 +15,7 @@
|
|||
bl_info = {
|
||||
'name': 'glTF 2.0 format',
|
||||
'author': 'Julien Duroure, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
|
||||
"version": (1, 0, 4),
|
||||
"version": (1, 0, 5),
|
||||
'blender': (2, 81, 6),
|
||||
'location': 'File > Import-Export',
|
||||
'description': 'Import-Export as glTF 2.0',
|
||||
|
@ -57,7 +57,8 @@ import bpy
|
|||
from bpy.props import (StringProperty,
|
||||
BoolProperty,
|
||||
EnumProperty,
|
||||
IntProperty)
|
||||
IntProperty,
|
||||
CollectionProperty)
|
||||
from bpy.types import Operator
|
||||
from bpy_extras.io_utils import ImportHelper, ExportHelper
|
||||
|
||||
|
@ -730,6 +731,11 @@ class ImportGLTF2(Operator, ImportHelper):
|
|||
|
||||
filter_glob: StringProperty(default="*.glb;*.gltf", options={'HIDDEN'})
|
||||
|
||||
files: CollectionProperty(
|
||||
name="File Path",
|
||||
type=bpy.types.OperatorFileListElement,
|
||||
)
|
||||
|
||||
loglevel: IntProperty(
|
||||
name='Log Level',
|
||||
description="Log Level")
|
||||
|
@ -758,14 +764,30 @@ class ImportGLTF2(Operator, ImportHelper):
|
|||
return self.import_gltf2(context)
|
||||
|
||||
def import_gltf2(self, context):
|
||||
import time
|
||||
from .io.imp.gltf2_io_gltf import glTFImporter
|
||||
from .blender.imp.gltf2_blender_gltf import BlenderGlTF
|
||||
import os
|
||||
|
||||
self.set_debug_log()
|
||||
import_settings = self.as_keywords()
|
||||
|
||||
self.gltf_importer = glTFImporter(self.filepath, import_settings)
|
||||
if self.files:
|
||||
# Multiple file import
|
||||
ret = {'CANCELLED'}
|
||||
dirname = os.path.dirname(self.filepath)
|
||||
for file in self.files:
|
||||
path = os.path.join(dirname, file.name)
|
||||
if self.unit_import(path, import_settings) == {'FINISHED'}:
|
||||
ret = {'FINISHED'}
|
||||
return ret
|
||||
else:
|
||||
# Single file import
|
||||
return self.unit_import(self.filepath, import_settings)
|
||||
|
||||
def unit_import(self, filename, import_settings):
|
||||
import time
|
||||
from .io.imp.gltf2_io_gltf import glTFImporter
|
||||
from .blender.imp.gltf2_blender_gltf import BlenderGlTF
|
||||
|
||||
self.gltf_importer = glTFImporter(filename, import_settings)
|
||||
success, txt = self.gltf_importer.read()
|
||||
if not success:
|
||||
self.report({'ERROR'}, txt)
|
||||
|
|
Loading…
Reference in New Issue