[Bf-blender-cvs] [83db7a00705] blender2.8: Transform: revert use of evaluated objects

Campbell Barton noreply at git.blender.org
Tue Jun 5 09:52:29 CEST 2018


Commit: 83db7a0070579cfac958daa323635bec3886275c
Author: Campbell Barton
Date:   Tue Jun 5 09:48:38 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB83db7a0070579cfac958daa323635bec3886275c

Transform: revert use of evaluated objects

This is no longer needed.

===================================================================

M	source/blender/editors/transform/transform_conversions.c
M	source/blender/editors/transform/transform_manipulator_3d.c
M	source/blender/editors/transform/transform_orientations.c

===================================================================

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;
diff --git a/source/blender/editors/transform/transform_manipulator_3d.c b/source/blender/editors/transform/transform_manipulator_3d.c
index b94ccf42325..5bc2cd2a7c7 100644
--- a/source/blender/editors/transform/transform_manipulator_3d.c
+++ b/source/blender/editors/transform/transform_manipulator_3d.c
@@ -586,7 +586,6 @@ int ED_transform_calc_manipulator_stats(
         const struct TransformCalcParams *params,
         struct TransformBounds *tbounds)
 {
-	const Depsgraph *depsgraph = CTX_data_depsgraph(C);
 	ScrArea *sa = CTX_wm_area(C);
 	ARegion *ar = CTX_wm_region(C);
 	Scene *scene = CTX_data_scene(C);
@@ -596,8 +595,6 @@ int ED_transform_calc_manipulator_stats(
 	RegionView3D *rv3d = ar->regiondata;
 	Base *base;
 	Object *ob = OBACT(view_layer);
-	Object *ob_eval = NULL;
-	Object *obedit_eval = NULL;
 	bGPdata *gpd = CTX_data_gpencil_data(C);
 	const bool is_gp_edit = ((gpd) && (gpd->flag & GP_DATA_STROKE_EDITMODE));
 	int a, totsel = 0;
@@ -612,9 +609,6 @@ int ED_transform_calc_manipulator_stats(
 
 	rv3d->twdrawflag = 0xFFFF;
 
-	ob_eval = DEG_get_evaluated_object(depsgraph, ob);
-	obedit_eval = DEG_get_evaluated_object(depsgraph, obedit);
-
 	/* global, local or normal orientation?
 	 * if we could check 'totsel' now, this should be skipped with no selection. */
 	if (ob && !is_gp_edit) {
@@ -629,7 +623,7 @@ int ED_transform_calc_manipulator_stats(
 			case V3D_MANIP_GIMBAL:
 			{
 				float mat[3][3];
-				if (gimbal_axis(ob_eval, mat)) {
+				if (gimbal_axis(ob, mat)) {
 					copy_m4_m3(rv3d->twmat, mat);
 					break;
 				}
@@ -659,7 +653,7 @@ int ED_transform_calc_manipulator_stats(
 					copy_m4_m3(rv3d->twmat, mat);
 					break;
 				}
-				copy_m4_m4(rv3d->twmat, ob_eval->obmat);
+				copy_m4_m4(rv3d->twmat, ob->obmat);
 				normalize_m4(rv3d->twmat);
 				break;
 			}
@@ -699,7 +693,7 @@ int ED_transform_calc_manipulator_stats(
 	copy_m3_m4(tbounds->axis, rv3d->twmat);
 	if (params->use_local_axis && (ob && ob->mode & OB_MODE_EDIT)) {
 		float diff_mat[3][3];
-		copy_m3_m4(diff_mat, ob_eval->obmat);
+		copy_m3_m4(diff_mat, ob->obmat);
 		normalize_m3(diff_mat);
 		invert_m3(diff_mat);
 		mul_m3_m3m3(tbounds->axis, tbounds->axis, diff_mat);
@@ -762,7 +756,6 @@ int ED_transform_calc_manipulator_stats(
 	}
 	else if (obedit) {
 		ob = obedit;
-		ob_eval = obedit_eval;
 		if (obedit->type == OB_MESH) {
 			BMEditMesh *em = BKE_editmesh_from_object(obedit);
 			BMEditSelection ese;
@@ -937,9 +930,9 @@ int ED_transform_calc_manipulator_stats(
 		/* selection center */
 		if (totsel) {
 			mul_v3_fl(tbounds->center, 1.0f / (float)totsel);   // centroid!
-			mul_m4_v3(obedit_eval->obmat, tbounds->center);
-			mul_m4_v3(obedit_eval->obmat, tbounds->min);
-			mul_m4_v3(obedit_eval->obmat, tbounds->max);
+			mul_m4_v3(obedit->obmat, tbounds->center);
+			mul_m4_v3(obedit->obmat, tbounds->min);
+			mul_m4_v3(obedit->obmat, tbounds->max);
 		}
 	}
 	else if (ob && (ob->mode & OB_MODE_POSE)) {
@@ -947,7 +940,7 @@ int ED_transform_calc_manipulator_stats(
 		int mode = TFM_ROTATION; // mislead counting bones... bah. We don't know the manipulator mode, could be mixed
 		bool ok = false;
 
-		if ((pivot_point == V3D_AROUND_ACTIVE) && (pchan = BKE_pose_channel_active(ob_eval))) {
+		if ((pivot_point == V3D_AROUND_ACTIVE) && (pchan = BKE_pose_channel_active(ob))) {
 			/* doesn't check selection or visibility intentionally */
 			Bone *bone = pchan->bone;
 			if (bone) {
@@ -958,11 +951,11 @@ int ED_transform_calc_manipulator_stats(
 			}
 		}
 		else {
-			totsel = count_set_pose_transflags(&mode, 0, ob_eval);
+			totsel = count_set_pose_transflags(&mode, 0, ob);
 
 			if (totsel) {
 				/* use channels to get stats */
-				for (pchan = ob_eval->pose->chanbase.first; pchan; pchan = pchan->next) {
+				for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
 					Bone *bone = pchan->bone;
 					if (bone && (bone->flag & BONE_TRANSFORM)) {
 						calc_tw_center(tbounds, pchan->pose_head);
@@ -975,9 +968,9 @@ int ED_transform_calc_manipulator_stats(
 
 		if (ok) {
 			mul_v3_fl(tbounds->center, 1.0f / (float)totsel);   // centroid!
-			mul_m4_v3(ob_eval->obmat, tbounds->center);
-			mul_m4_v3(ob_eval->obmat, tbounds->min);
-			mul_m4_v3(ob_eval->obmat, tbounds->max);
+			mul_m4_v3(ob->obmat, tbounds->center);
+			mul_m4_v3(ob->obmat, tbounds->min);
+			mul_m4_v3(ob->obmat, tbounds->max);
 		}
 	}
 	else if (ob && (ob->mode & OB_MODE_ALL_PAINT)) {
@@ -1018,18 +1011,16 @@ int ED_transform_calc_manipulator_stats(
 			if (!TESTBASELIB(base)) {
 				continue;
 			}
-			Object *base_object_eval = DEG_get_evaluated_object(depsgraph, base->object);
 			if (ob == NULL) {
 				ob = base->object;
-				ob_eval = base_object_eval;
 			}
-			if (params->use_only_center || base_object_eval->bb == NULL) {
-				calc_tw_center(tbounds, base_object_eval->obmat[3]);
+			if (params->use_only_center || base->object->bb == NULL) {
+				calc_tw_center(tbounds, base->object->obmat[3]);
 			}
 			else {
 				for (uint j = 0; j < 8; j++) {
 					float co[3];
-					mul_v3_m4v3(co, base_object_eval->obmat, base_object_eval->bb->vec[j]);
+					mul_v3_m4v3(co, base->object->obmat, base->object->bb->vec[j]);
 					calc_tw_center(tbounds, co);
 				}
 			}
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index 3065007ea6b..19df46455d7 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -56,8 +56,6 @@
 #include "BKE_scene.h"
 #include "BKE_workspace.h"
 
-#include "DEG_depsgraph_query.h"
-
 #include "BLT_translation.h"
 
 #include "ED_armature.h"
@@ -1016,14 +1014,12 @@ int getTransformOrientation_ex(const bContext *C, float normal[3], float plane[3
 		}
 	}
 	else if (ob && (ob->mode & OB_MODE_POSE)) {
-		const Depsgraph *depsgraph = CTX_data_depsgraph(C);
-		Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob);
-		bArmature *arm = ob_eval->data;
+		bArmature *arm = ob->data;
 		bPoseChannel *pchan;
 		float imat[3][3], mat[3][3];
 		bool ok = false;
 
-		if (activeOnly && (pchan = BKE_pose_channel_active(ob_eval))) {
+		if (activeOnly && (pchan = BKE_pose_channel_active(ob))) {
 			add_v3_v3(normal, pchan->pose_mat[2]);
 			add_v3_v3(plane, pchan->pose_mat[1]);
 			ok = true;
@@ -1034,7 +1030,7 @@ int getTransformOrientation_ex(const bContext *C, float normal[3], float plane[3
 			totsel = count_bone_select(arm, &arm->bonebase, true);
 			if (totsel) {
 				/* use channels to get stats */
-				for (pchan = ob_eval->pose->chanbase.first; pchan; pchan = pchan->next) {
+				for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
 					if (pchan->bone && pchan->bone->flag & BONE_TRANSFORM) {
 						add_v3_v3(normal, pchan->pose_mat[2]);
 						add_v3_v3(plane, pchan->pose_mat[1]);
@@ -1047,7 +1043,7 @@ int getTransformOrientation_ex(const bContext *C, float normal[3], float plane[3
 		/* use for both active & all */
 		if (ok) {
 			/* we need the transpose of the inverse for a normal... */
-			copy_m3_m4(imat, ob_eval->obmat);
+			copy_m3_m4(imat, ob->obmat);
 
 			invert_m3_m3(mat, imat);
 			transpose_m3(mat);



More information about the Bf-blender-cvs mailing list