Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-05-30 12:49:45 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-05-30 12:49:45 +0300
commitedc1e65809d1c622a15dbe60330947149db4776f (patch)
treeaa17ba7f970f25d1ebf4378a85993dae90af39f3 /source/blender/blenkernel
parent6afa0a7a50fdd579c4545a8b7718e79d4a6a78be (diff)
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.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_object.h2
-rw-r--r--source/blender/blenkernel/intern/object.c10
2 files changed, 12 insertions, 0 deletions
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