From 7c80320b30c570c9d9a4eaec5be42310bc62e8dc Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Thu, 8 Nov 2018 10:25:02 +0100 Subject: [PATCH] Support for cloth ptcaches stored on disk Currently pointcaches on disk for cloth sims were not traced. This patch allows the tracing of pointcaches for cloth sims. Reviewers: sybren, fsiddi Reviewed By: sybren Differential Revision: https://developer.blender.org/D3910 --- blender_asset_tracer/cdefs.py | 1 + blender_asset_tracer/trace/modifier_walkers.py | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/blender_asset_tracer/cdefs.py b/blender_asset_tracer/cdefs.py index 2b1c719..e9a7709 100644 --- a/blender_asset_tracer/cdefs.py +++ b/blender_asset_tracer/cdefs.py @@ -38,6 +38,7 @@ eModifierType_Wave = 7 eModifierType_Displace = 14 eModifierType_UVProject = 15 eModifierType_ParticleSystem = 19 +eModifierType_Cloth = 22 eModifierType_Fluidsim = 26 eModifierType_Smokesim = 31 eModifierType_WeightVGEdit = 36 diff --git a/blender_asset_tracer/trace/modifier_walkers.py b/blender_asset_tracer/trace/modifier_walkers.py index e7dc3a9..82ffff2 100644 --- a/blender_asset_tracer/trace/modifier_walkers.py +++ b/blender_asset_tracer/trace/modifier_walkers.py @@ -223,3 +223,13 @@ def modifier_smoke_sim(ctx: ModifierContext, modifier: blendfile.BlendFileBlock, cdefs.PTCACHE_FILE_OPENVDB: cdefs.PTCACHE_EXT_VDB } yield from _walk_point_cache(ctx, block_name, modifier.bfile, pointcache, extensions[format]) + + +@mod_handler(cdefs.eModifierType_Cloth) +def modifier_cloth(ctx: ModifierContext, modifier: blendfile.BlendFileBlock, block_name: bytes) \ + -> typing.Iterator[result.BlockUsage]: + pointcache = modifier.get_pointer(b'point_cache') + if pointcache is None: + return + + yield from _walk_point_cache(ctx, block_name, modifier.bfile, pointcache, cdefs.PTCACHE_EXT)