Merge sculpt-dev -> master

This commit is contained in:
2022-01-23 12:27:34 -08:00
parent 1acb608f52
commit ccbde00a83
393 changed files with 7658 additions and 4950 deletions

View File

@@ -357,6 +357,58 @@ class CameraExportImportTest(unittest.TestCase):
self.assertAlmostEqual(1, actual_scale.z, delta=delta_scale)
class OverrideLayersTest(AbstractAlembicTest):
def test_import_layer(self):
fname = 'cube-base-file.abc'
fname_layer = 'cube-hi-res.abc'
abc = self.testdir / fname
abc_layer = self.testdir / fname_layer
# We need a cache reader to ensure that the data will be updated after adding a layer.
res = bpy.ops.wm.alembic_import(filepath=str(abc), as_background_job=False, always_add_cache_reader=True)
self.assertEqual({'FINISHED'}, res)
# Check that the file loaded ok.
cube = bpy.context.active_object
depsgraph = bpy.context.evaluated_depsgraph_get()
scene = bpy.context.scene
cube_eval = cube.evaluated_get(depsgraph)
mesh = cube_eval.to_mesh()
# The base file should be a default cube.
self.assertEqual(len(mesh.vertices), 8)
self.assertEqual(len(mesh.edges), 12)
self.assertEqual(len(mesh.polygons), 6)
# Add a layer.
cache_file = bpy.data.cache_files[fname]
self.assertEqual(len(cache_file.layers), 0)
layer = cache_file.layers.new(filepath=str(abc_layer))
self.assertEqual(len(cache_file.layers), 1)
self.assertIsNotNone(layer)
# The layer added a higher res version of the mesh.
depsgraph = bpy.context.evaluated_depsgraph_get()
cube_eval = cube.evaluated_get(depsgraph)
mesh = cube_eval.to_mesh()
self.assertEqual(len(mesh.vertices), 26)
self.assertEqual(len(mesh.edges), 48)
self.assertEqual(len(mesh.polygons), 24)
# Remove the layer.
cache_file.layers.remove(layer)
self.assertEqual(len(cache_file.layers), 0)
# We should have reverted to the default cube.
depsgraph = bpy.context.evaluated_depsgraph_get()
cube_eval = cube.evaluated_get(depsgraph)
mesh = cube_eval.to_mesh()
self.assertEqual(len(mesh.vertices), 8)
self.assertEqual(len(mesh.edges), 12)
self.assertEqual(len(mesh.polygons), 6)
def main():
global args
import argparse