From dd0dffef42ae64d1bf16e879e3f1470ce3bf5cad Mon Sep 17 00:00:00 2001
From: Julien Duroure <julien.duroure@gmail.com>
Date: Thu, 28 Feb 2019 22:03:54 +0100
Subject: [PATCH] glTF importer: avoid rotation issue when active collection is
 disabled

---
 io_scene_gltf2/blender/imp/gltf2_blender_scene.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_scene.py b/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
index d21cdf33c..f935eb026 100755
--- a/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
+++ b/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
@@ -121,6 +121,13 @@ class BlenderScene():
 
 
 
+
+                # Avoid rotation bug if collection is hidden or disabled
+                if gltf.blender_active_collection is not None:
+                    gltf.collection_hide_viewport = bpy.data.collections[gltf.blender_active_collection].hide_viewport
+                    bpy.data.collections[gltf.blender_active_collection].hide_viewport = False
+                    # TODO for visibility ... but seems not exposed on bpy for now
+
                 for node_idx in list_nodes:
 
                     if node_idx in exclude_nodes:
@@ -143,6 +150,11 @@ class BlenderScene():
                 #bpy.context.scene.collection.objects.unlink(obj_rotation)
                 bpy.data.objects.remove(obj_rotation)
 
+                # Restore collection hiden / disabled values
+                if gltf.blender_active_collection is not None:
+                    bpy.data.collections[gltf.blender_active_collection].hide_viewport = gltf.collection_hide_viewport
+                    # TODO restore visibility when expose in bpy
+
     @staticmethod
     def get_root_nodes(gltf):
         if gltf.data.nodes is None:
-- 
GitLab