Layer/Depsgraph: Update depsgraph for new objects

This commit is contained in:
Dalai Felinto
2017-04-03 18:42:01 +02:00
parent d31c4c5666
commit a78e97b206
6 changed files with 150 additions and 0 deletions

View File

@@ -64,6 +64,9 @@ RENDER_LAYER_TEST(evaluation_visibility_c)
RENDER_LAYER_TEST(evaluation_visibility_d)
RENDER_LAYER_TEST(evaluation_visibility_e)
RENDER_LAYER_TEST(evaluation_visibility_f)
RENDER_LAYER_TEST(evaluation_visibility_g)
RENDER_LAYER_TEST(evaluation_visibility_h)
RENDER_LAYER_TEST(evaluation_visibility_i)
RENDER_LAYER_TEST(evaluation_selectability_a)
RENDER_LAYER_TEST(evaluation_selectability_b)
RENDER_LAYER_TEST(evaluation_selectability_c)

View File

@@ -443,6 +443,42 @@ class RenderLayerTesting(unittest.TestCase):
),
"Scene dump files differ")
def do_visibility_object_add(self, add_mode):
import bpy
scene = bpy.context.scene
# delete all objects of the file
for ob in bpy.data.objects:
bpy.data.objects.remove(ob, do_unlink=True)
# real test
layer = scene.render_layers.new('Visibility Test')
layer.collections.unlink(layer.collections[0])
scene.render_layers.active = layer
scene_collection = scene.master_collection.collections.new("Collection")
layer.collections.link(scene_collection)
bpy.context.scene.update() # update depsgraph
self.assertEqual(len(bpy.data.objects), 0)
# add new objects
if add_mode == 'EMPTY':
bpy.ops.object.add() # 'Empty'
elif add_mode == 'CYLINDER':
bpy.ops.mesh.primitive_cylinder_add() # 'Cylinder'
elif add_mode == 'TORUS':
bpy.ops.mesh.primitive_torus_add() # 'Torus'
self.assertEqual(len(bpy.data.objects), 1)
new_ob = bpy.data.objects[0]
self.assertTrue(new_ob.visible_get(), "Object should be visible")
def cleanup_tree(self):
"""
Remove any existent layer and collections,

View File

@@ -0,0 +1,36 @@
# ############################################################
# Importing - Same For All Render Layer Tests
# ############################################################
import unittest
import os
import sys
sys.path.append(os.path.dirname(__file__))
from render_layer_common import *
# ############################################################
# Testing
# ############################################################
class UnitTesting(RenderLayerTesting):
def test_visibility_empty(self):
"""
See if the depsgraph evaluation is correct
"""
self.do_visibility_object_add('EMPTY')
# ############################################################
# Main - Same For All Render Layer Tests
# ############################################################
if __name__ == '__main__':
import sys
extra_arguments = sys.argv[sys.argv.index("--") + 1:] if "--" in sys.argv else []
sys.argv = [__file__] + (sys.argv[sys.argv.index("--") + 2:] if "--" in sys.argv else [])
UnitTesting._extra_arguments = extra_arguments
unittest.main()

View File

@@ -0,0 +1,36 @@
# ############################################################
# Importing - Same For All Render Layer Tests
# ############################################################
import unittest
import os
import sys
sys.path.append(os.path.dirname(__file__))
from render_layer_common import *
# ############################################################
# Testing
# ############################################################
class UnitTesting(RenderLayerTesting):
def test_visibility_cylinder(self):
"""
See if the depsgraph evaluation is correct
"""
self.do_visibility_object_add('CYLINDER')
# ############################################################
# Main - Same For All Render Layer Tests
# ############################################################
if __name__ == '__main__':
import sys
extra_arguments = sys.argv[sys.argv.index("--") + 1:] if "--" in sys.argv else []
sys.argv = [__file__] + (sys.argv[sys.argv.index("--") + 2:] if "--" in sys.argv else [])
UnitTesting._extra_arguments = extra_arguments
unittest.main()

View File

@@ -0,0 +1,36 @@
# ############################################################
# Importing - Same For All Render Layer Tests
# ############################################################
import unittest
import os
import sys
sys.path.append(os.path.dirname(__file__))
from render_layer_common import *
# ############################################################
# Testing
# ############################################################
class UnitTesting(RenderLayerTesting):
def test_visibility_torus(self):
"""
See if the depsgraph evaluation is correct
"""
self.do_visibility_object_add('TORUS')
# ############################################################
# Main - Same For All Render Layer Tests
# ############################################################
if __name__ == '__main__':
import sys
extra_arguments = sys.argv[sys.argv.index("--") + 1:] if "--" in sys.argv else []
sys.argv = [__file__] + (sys.argv[sys.argv.index("--") + 2:] if "--" in sys.argv else [])
UnitTesting._extra_arguments = extra_arguments
unittest.main()