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:
authorPhilipp Oeser <info@graphics-engineer.com>2018-12-27 11:58:19 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2018-12-27 17:07:20 +0300
commitbe1b32e4e49e6f8b51aca193c8a2399af893008f (patch)
tree44715b1c300d7b1ded6cef3191613b90c524ae48 /source/blender/editors/physics/rigidbody_object.c
parentf1bf604804f9652378ecdfb7d5afaa5ee99d4a24 (diff)
Fix T59884: Rigidbody Calculate Mass Sets Mass to 0
rigidbody_get_mesh() needs an evaluated object Reviewers: sergey, brecht Maniphest Tasks: T59884 Differential Revision: https://developer.blender.org/D4125
Diffstat (limited to 'source/blender/editors/physics/rigidbody_object.c')
-rw-r--r--source/blender/editors/physics/rigidbody_object.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/editors/physics/rigidbody_object.c b/source/blender/editors/physics/rigidbody_object.c
index ff411d4bece..1c0ceed2455 100644
--- a/source/blender/editors/physics/rigidbody_object.c
+++ b/source/blender/editors/physics/rigidbody_object.c
@@ -51,6 +51,7 @@
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
+#include "DEG_depsgraph_query.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -490,6 +491,7 @@ static const EnumPropertyItem *rigidbody_materials_itemf(bContext *UNUSED(C), Po
static int rigidbody_objects_calc_mass_exec(bContext *C, wmOperator *op)
{
+ Depsgraph *depsgraph = CTX_data_depsgraph(C);
int material = RNA_enum_get(op->ptr, "material");
float density;
bool changed = false;
@@ -520,7 +522,8 @@ static int rigidbody_objects_calc_mass_exec(bContext *C, wmOperator *op)
/* mass is calculated from the approximate volume of the object,
* and the density of the material we're simulating
*/
- BKE_rigidbody_calc_volume(ob, &volume);
+ Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob);
+ BKE_rigidbody_calc_volume(ob_eval, &volume);
mass = volume * density;
/* use RNA-system to change the property and perform all necessary changes */
@@ -561,7 +564,7 @@ void RIGIDBODY_OT_mass_calculate(wmOperatorType *ot)
ot->poll = ED_operator_scene_editable;
/* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_USE_EVAL_DATA;
/* properties */
ot->prop = prop = RNA_def_enum(ot->srna, "material",