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:
Diffstat (limited to 'source/blender/editors/transform/transform_conversions.c')
-rw-r--r--source/blender/editors/transform/transform_conversions.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 8bfe14dc6ea..1e7f5b1f5af 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -5619,18 +5619,17 @@ static bool constraints_list_needinv(TransInfo *t, ListBase *list)
/* transcribe given object into TransData for Transforming */
static void ObjectToTransData(TransInfo *t, TransData *td, Object *ob)
{
- Depsgraph *depsgraph = t->depsgraph;
Scene *scene = t->scene;
bool constinv;
bool skip_invert = false;
if (t->mode != TFM_DUMMY && ob->rigidbody_object) {
float rot[3][3], scale[3];
- float ctime = DEG_get_ctime(depsgraph);
+ float ctime = BKE_scene_frame_get(scene);
/* only use rigid body transform if simulation is running, avoids problems with initial setup of rigid bodies */
- // XXX: This needs fixing for COW. May need rigidbody_world from scene
if (BKE_rigidbody_check_sim_running(scene->rigidbody_world, ctime)) {
+
/* save original object transform */
copy_v3_v3(td->ext->oloc, ob->loc);
@@ -5665,26 +5664,21 @@ static void ObjectToTransData(TransInfo *t, TransData *td, Object *ob)
constinv = constraints_list_needinv(t, &ob->constraints);
/* disable constraints inversion for dummy pass */
- // XXX: Should this use ob or ob_eval?! It's not clear!
if (t->mode == TFM_DUMMY)
skip_invert = true;
- Scene *scene_eval = DEG_get_evaluated_scene(t->depsgraph);
if (skip_invert == false && constinv == false) {
- Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob);
- ob_eval->transflag |= OB_NO_CONSTRAINTS; /* BKE_object_where_is_calc_time checks this */
- BKE_object_where_is_calc(t->depsgraph, scene_eval, ob_eval);
- ob_eval->transflag &= ~OB_NO_CONSTRAINTS;
- }
- else {
- Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob);
- BKE_object_where_is_calc(t->depsgraph, scene_eval, ob_eval);
+ ob->transflag |= OB_NO_CONSTRAINTS; /* BKE_object_where_is_calc_time checks this */
+ BKE_object_where_is_calc(t->depsgraph, t->scene, ob);
+ ob->transflag &= ~OB_NO_CONSTRAINTS;
}
+ else
+ BKE_object_where_is_calc(t->depsgraph, t->scene, ob);
td->ob = ob;
td->loc = ob->loc;
- copy_v3_v3(td->iloc, ob->loc);
+ copy_v3_v3(td->iloc, td->loc);
if (ob->rotmode > 0) {
td->ext->rot = ob->rot;