From c718fb3a41d618bcbdb86ab4551c2b1a61e2e6d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Wed, 20 Mar 2019 11:14:23 +0100 Subject: [PATCH] Support the Mesh Sequence Cache modifier (a.k.a. Alembic files) --- blender_asset_tracer/cdefs.py | 1 + blender_asset_tracer/trace/modifier_walkers.py | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/blender_asset_tracer/cdefs.py b/blender_asset_tracer/cdefs.py index e9a7709..0a49988 100644 --- a/blender_asset_tracer/cdefs.py +++ b/blender_asset_tracer/cdefs.py @@ -46,6 +46,7 @@ eModifierType_WeightVGMix = 37 eModifierType_WeightVGProximity = 38 eModifierType_Ocean = 39 eModifierType_MeshCache = 46 +eModifierType_MeshSequenceCache = 52 # DNA_particle_types.h PART_DRAW_OB = 7 diff --git a/blender_asset_tracer/trace/modifier_walkers.py b/blender_asset_tracer/trace/modifier_walkers.py index c7a7f87..32e59ea 100644 --- a/blender_asset_tracer/trace/modifier_walkers.py +++ b/blender_asset_tracer/trace/modifier_walkers.py @@ -62,6 +62,17 @@ def modifier_filepath(ctx: ModifierContext, modifier: blendfile.BlendFileBlock, yield result.BlockUsage(modifier, path, path_full_field=field, block_name=block_name) +@mod_handler(cdefs.eModifierType_MeshSequenceCache) +def modifier_mesh_sequence_cache(ctx: ModifierContext, modifier: blendfile.BlendFileBlock, + block_name: bytes) -> typing.Iterator[result.BlockUsage]: + """Yield the Alembic file(s) used by this modifier""" + cache_file = modifier.get_pointer(b'cache_file') + path, field = cache_file.get(b'filepath', return_field=True) + + yield result.BlockUsage(cache_file, path, path_full_field=field, + block_name=b'%s.cache_file' % block_name) + + @mod_handler(cdefs.eModifierType_Ocean) def modifier_ocean(ctx: ModifierContext, modifier: blendfile.BlendFileBlock, block_name: bytes) \ -> typing.Iterator[result.BlockUsage]: