From edc1e65809d1c622a15dbe60330947149db4776f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 30 May 2018 11:49:45 +0200 Subject: Add deformed evaluated mesh to object This is a first step to have correspondence of legacy derivedDeform within a new formulation. Only base ground for now to support file reading, copy-on-write remapping and such. --- source/blender/blenkernel/BKE_object.h | 2 ++ source/blender/blenkernel/intern/object.c | 10 ++++++++++ 2 files changed, 12 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index ab9af27bec3..f5c36550193 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -295,6 +295,8 @@ void BKE_object_data_relink(struct Object *ob); struct MovieClip *BKE_object_movieclip_get(struct Scene *scene, struct Object *ob, bool use_default); +void BKE_object_runtime_reset(struct Object *object); + /* this function returns a superset of the scenes selection based on relationships */ typedef enum eObRelationTypes { diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 6fa8caba582..71ed9211064 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -352,6 +352,13 @@ void BKE_object_free_derived_caches(Object *ob) MEM_freeN(mesh_eval); ob->runtime.mesh_eval = NULL; } + if (ob->runtime.mesh_deform_eval != NULL) { + Mesh *mesh_deform_eval = ob->runtime.mesh_deform_eval; + BKE_mesh_free(mesh_deform_eval); + BKE_libblock_free_data(&mesh_deform_eval->id, false); + MEM_freeN(mesh_deform_eval); + ob->runtime.mesh_deform_eval = NULL; + } BKE_object_free_curve_cache(ob); } @@ -3344,6 +3351,9 @@ MovieClip *BKE_object_movieclip_get(Scene *scene, Object *ob, bool use_default) return clip; } +void BKE_object_runtime_reset(Object *object) { + memset(&object->runtime, 0, sizeof(object->runtime)); +} /* * Find an associated Armature object -- cgit v1.2.3