From ee912f6fd22baaa94f925ac9dff5f9ccdbb2ecbd Mon Sep 17 00:00:00 2001 From: Julien Duroure <julien.duroure@gmail.com> Date: Sat, 5 Sep 2020 15:26:50 +0200 Subject: [PATCH] glTF importer: select all (and only) the imported objects --- io_scene_gltf2/__init__.py | 2 +- io_scene_gltf2/blender/imp/gltf2_blender_scene.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py index 87798cfde..09c52ce89 100755 --- a/io_scene_gltf2/__init__.py +++ b/io_scene_gltf2/__init__.py @@ -15,7 +15,7 @@ bl_info = { 'name': 'glTF 2.0 format', 'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin SchmithĂĽsen, Jim Eckerlein, and many external contributors', - "version": (1, 4, 12), + "version": (1, 4, 13), 'blender': (2, 90, 0), 'location': 'File > Import-Export', 'description': 'Import-Export as glTF 2.0', diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_scene.py b/io_scene_gltf2/blender/imp/gltf2_blender_scene.py index 6119eb950..e6eadcd6b 100755 --- a/io_scene_gltf2/blender/imp/gltf2_blender_scene.py +++ b/io_scene_gltf2/blender/imp/gltf2_blender_scene.py @@ -43,6 +43,7 @@ class BlenderScene(): if bpy.context.mode != 'OBJECT': bpy.ops.object.mode_set(mode='OBJECT') + BlenderScene.select_imported_objects(gltf) BlenderScene.set_active_object(gltf) @staticmethod @@ -56,6 +57,16 @@ class BlenderScene(): anim_name = gltf.data.animations[0].track_name BlenderAnimation.restore_animation(gltf, anim_name) + @staticmethod + def select_imported_objects(gltf): + """Select all (and only) the imported objects.""" + if bpy.ops.object.select_all.poll(): + bpy.ops.object.select_all(action='DESELECT') + + for vnode in gltf.vnodes.values(): + if vnode.type == VNode.Object: + vnode.blender_object.select_set(state=True) + @staticmethod def set_active_object(gltf): """Make the first root object from the default glTF scene active. -- GitLab