[Bf-blender-cvs] [52eedbd] depsgraph_refactor: Experiment with a real local object transform calculation

Sergey Sharybin noreply at git.blender.org
Mon Oct 13 15:44:39 CEST 2014


Commit: 52eedbd08da57610ebe1a2ee40617992ad7916ae
Author: Sergey Sharybin
Date:   Mon Oct 13 15:43:07 2014 +0200
Branches: depsgraph_refactor
https://developer.blender.org/rB52eedbd08da57610ebe1a2ee40617992ad7916ae

Experiment with a real local object transform calculation

Now moving object with the new DAG appears to work.

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

M	source/blender/depsgraph/intern/depsgraph_build.h
M	source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
M	source/blender/depsgraph/intern/depsgraph_type_defines.cpp
M	source/blender/depsgraph/intern/stubs.h

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

diff --git a/source/blender/depsgraph/intern/depsgraph_build.h b/source/blender/depsgraph/intern/depsgraph_build.h
index 62d909f..b527085 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.h
+++ b/source/blender/depsgraph/intern/depsgraph_build.h
@@ -128,7 +128,7 @@ struct DepsgraphNodeBuilder {
 	SubgraphDepsNode *build_subgraph(Group *group);
 	void build_group(Group *group);
 	void build_object(Scene *scene, Object *ob);
-	void build_object_transform(Object *ob);
+	void build_object_transform(Scene *scene, Object *ob);
 	void build_object_constraints(Object *ob);
 	void build_pose_constraints(Object *ob, bPoseChannel *pchan);
 	void build_rigidbody(Scene *scene);
diff --git a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
index 3ddf210..18a3362 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
@@ -215,7 +215,7 @@ SubgraphDepsNode *DepsgraphNodeBuilder::build_subgraph(Group *group)
 void DepsgraphNodeBuilder::build_object(Scene *scene, Object *ob)
 {
 	/* standard components */
-	build_object_transform(ob);
+	build_object_transform(scene, ob);
 	
 	/* AnimData */
 	build_animdata(ob);
@@ -271,11 +271,11 @@ void DepsgraphNodeBuilder::build_object(Scene *scene, Object *ob)
 	}
 }
 
-void DepsgraphNodeBuilder::build_object_transform(Object *ob)
+void DepsgraphNodeBuilder::build_object_transform(Scene *scene, Object *ob)
 {
 	/* init operation */
 	add_operation_node(ob, DEPSNODE_TYPE_TRANSFORM,
-	                   DEPSOP_TYPE_INIT, bind_operation(BKE_object_eval_local_transform, ob, 3, 6, 12),
+	                   DEPSOP_TYPE_INIT, bind_operation(BKE_object_eval_local_transform, scene, ob, 3, 6, 12),
 	                   deg_op_name_object_local_transform);
 }
 
diff --git a/source/blender/depsgraph/intern/depsgraph_type_defines.cpp b/source/blender/depsgraph/intern/depsgraph_type_defines.cpp
index 3d3bca0..21214dd 100644
--- a/source/blender/depsgraph/intern/depsgraph_type_defines.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_type_defines.cpp
@@ -44,6 +44,7 @@ extern "C" {
 #include "BKE_action.h"
 #include "BKE_animsys.h"
 #include "BKE_armature.h"
+#include "BKE_object.h"
 
 #include "DEG_depsgraph.h"
 
@@ -80,7 +81,10 @@ void BKE_rigidbody_rebuild_sim(Scene *scene) {}
 void BKE_rigidbody_eval_simulation(Scene *scene) {}
 void BKE_rigidbody_object_sync_transforms(Scene *scene, Object *ob) {}
 
-void BKE_object_eval_local_transform(Object *ob, int a, int b, int c) { printf("BKE_object_eval_local_transform on %s (%d, %d, %d)\n", ob->id.name, a, b, c); }
+void BKE_object_eval_local_transform(Scene *scene, Object *ob, int a, int b, int c) {
+	printf("BKE_object_eval_local_transform on %s (%d, %d, %d)\n", ob->id.name, a, b, c);
+	BKE_object_where_is_calc_ex(scene, NULL, ob, NULL);
+}
 void BKE_object_eval_parent(Object *ob) {}
 void BKE_object_eval_modifier(Object *ob, ModifierData *md) {}
 
diff --git a/source/blender/depsgraph/intern/stubs.h b/source/blender/depsgraph/intern/stubs.h
index 829f68e..7a8db80 100644
--- a/source/blender/depsgraph/intern/stubs.h
+++ b/source/blender/depsgraph/intern/stubs.h
@@ -42,7 +42,7 @@ void BKE_rigidbody_rebuild_sim(Scene *scene); // BKE_rigidbody_rebuild_sim
 void BKE_rigidbody_eval_simulation(Scene *scene); // BKE_rigidbody_do_simulation
 void BKE_rigidbody_object_sync_transforms(Scene *scene, Object *ob); // BKE_rigidbody_sync_transforms
 
-void BKE_object_eval_local_transform(Object *ob, int a, int b, int c);
+void BKE_object_eval_local_transform(Scene *scene, Object *ob, int a, int b, int c);
 void BKE_object_eval_parent(Object *ob);
 void BKE_object_eval_modifier(Object *ob, ModifierData *md);




More information about the Bf-blender-cvs mailing list