[Bf-blender-cvs] [ea05edceaa3] master: Depsgraph: Make object component conversion more accessible

Sergey Sharybin noreply at git.blender.org
Fri Jul 5 16:09:03 CEST 2019


Commit: ea05edceaa3347e7b847e47862effdab9b42498a
Author: Sergey Sharybin
Date:   Thu Jul 4 14:43:54 2019 +0200
Branches: master
https://developer.blender.org/rBea05edceaa3347e7b847e47862effdab9b42498a

Depsgraph: Make object component conversion more accessible

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

M	source/blender/depsgraph/intern/depsgraph_build.cc
M	source/blender/depsgraph/intern/node/deg_node.cc
M	source/blender/depsgraph/intern/node/deg_node.h

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

diff --git a/source/blender/depsgraph/intern/depsgraph_build.cc b/source/blender/depsgraph/intern/depsgraph_build.cc
index 279c5e7839a..dd2d7f70ed5 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.cc
+++ b/source/blender/depsgraph/intern/depsgraph_build.cc
@@ -77,31 +77,6 @@ static DEG::NodeType deg_build_scene_component_type(eDepsSceneComponentType comp
   return DEG::NodeType::UNDEFINED;
 }
 
-static DEG::NodeType deg_build_object_component_type(eDepsObjectComponentType component)
-{
-  switch (component) {
-    case DEG_OB_COMP_PARAMETERS:
-      return DEG::NodeType::PARAMETERS;
-    case DEG_OB_COMP_PROXY:
-      return DEG::NodeType::PROXY;
-    case DEG_OB_COMP_ANIMATION:
-      return DEG::NodeType::ANIMATION;
-    case DEG_OB_COMP_TRANSFORM:
-      return DEG::NodeType::TRANSFORM;
-    case DEG_OB_COMP_GEOMETRY:
-      return DEG::NodeType::GEOMETRY;
-    case DEG_OB_COMP_EVAL_POSE:
-      return DEG::NodeType::EVAL_POSE;
-    case DEG_OB_COMP_BONE:
-      return DEG::NodeType::BONE;
-    case DEG_OB_COMP_SHADING:
-      return DEG::NodeType::SHADING;
-    case DEG_OB_COMP_CACHE:
-      return DEG::NodeType::CACHE;
-  }
-  return DEG::NodeType::UNDEFINED;
-}
-
 static DEG::DepsNodeHandle *get_node_handle(DepsNodeHandle *node_handle)
 {
   return reinterpret_cast<DEG::DepsNodeHandle *>(node_handle);
@@ -123,7 +98,7 @@ void DEG_add_object_relation(DepsNodeHandle *node_handle,
                              eDepsObjectComponentType component,
                              const char *description)
 {
-  DEG::NodeType type = deg_build_object_component_type(component);
+  DEG::NodeType type = DEG::nodeTypeFromObjectComponent(component);
   DEG::ComponentKey comp_key(&object->id, type);
   DEG::DepsNodeHandle *deg_node_handle = get_node_handle(node_handle);
   deg_node_handle->builder->add_node_handle_relation(comp_key, deg_node_handle, description);
@@ -134,7 +109,7 @@ void DEG_add_object_cache_relation(DepsNodeHandle *node_handle,
                                    eDepsObjectComponentType component,
                                    const char *description)
 {
-  DEG::NodeType type = deg_build_object_component_type(component);
+  DEG::NodeType type = DEG::nodeTypeFromObjectComponent(component);
   DEG::ComponentKey comp_key(&cache_file->id, type);
   DEG::DepsNodeHandle *deg_node_handle = get_node_handle(node_handle);
   deg_node_handle->builder->add_node_handle_relation(comp_key, deg_node_handle, description);
@@ -146,7 +121,7 @@ void DEG_add_bone_relation(DepsNodeHandle *node_handle,
                            eDepsObjectComponentType component,
                            const char *description)
 {
-  DEG::NodeType type = deg_build_object_component_type(component);
+  DEG::NodeType type = DEG::nodeTypeFromObjectComponent(component);
   DEG::ComponentKey comp_key(&object->id, type, bone_name);
   DEG::DepsNodeHandle *deg_node_handle = get_node_handle(node_handle);
   deg_node_handle->builder->add_node_handle_relation(comp_key, deg_node_handle, description);
@@ -157,7 +132,7 @@ void DEG_add_object_pointcache_relation(struct DepsNodeHandle *node_handle,
                                         eDepsObjectComponentType component,
                                         const char *description)
 {
-  DEG::NodeType type = deg_build_object_component_type(component);
+  DEG::NodeType type = DEG::nodeTypeFromObjectComponent(component);
   DEG::ComponentKey comp_key(&object->id, type);
   DEG::DepsNodeHandle *deg_node_handle = get_node_handle(node_handle);
   DEG::DepsgraphRelationBuilder *relation_builder = deg_node_handle->builder;
diff --git a/source/blender/depsgraph/intern/node/deg_node.cc b/source/blender/depsgraph/intern/node/deg_node.cc
index 289c9a76cc7..2c734d14c53 100644
--- a/source/blender/depsgraph/intern/node/deg_node.cc
+++ b/source/blender/depsgraph/intern/node/deg_node.cc
@@ -120,6 +120,44 @@ const char *nodeTypeAsString(NodeType type)
   return "UNKNOWN";
 }
 
+NodeType nodeTypeFromSceneComponent(eDepsSceneComponentType component)
+{
+  switch (component) {
+    case DEG_SCENE_COMP_PARAMETERS:
+      return NodeType::PARAMETERS;
+    case DEG_SCENE_COMP_ANIMATION:
+      return NodeType::ANIMATION;
+    case DEG_SCENE_COMP_SEQUENCER:
+      return NodeType::SEQUENCER;
+  }
+  return NodeType::UNDEFINED;
+}
+
+NodeType nodeTypeFromObjectComponent(eDepsObjectComponentType component)
+{
+  switch (component) {
+    case DEG_OB_COMP_PARAMETERS:
+      return NodeType::PARAMETERS;
+    case DEG_OB_COMP_PROXY:
+      return NodeType::PROXY;
+    case DEG_OB_COMP_ANIMATION:
+      return NodeType::ANIMATION;
+    case DEG_OB_COMP_TRANSFORM:
+      return NodeType::TRANSFORM;
+    case DEG_OB_COMP_GEOMETRY:
+      return NodeType::GEOMETRY;
+    case DEG_OB_COMP_EVAL_POSE:
+      return NodeType::EVAL_POSE;
+    case DEG_OB_COMP_BONE:
+      return NodeType::BONE;
+    case DEG_OB_COMP_SHADING:
+      return NodeType::SHADING;
+    case DEG_OB_COMP_CACHE:
+      return NodeType::CACHE;
+  }
+  return NodeType::UNDEFINED;
+}
+
 /*******************************************************************************
  * Type information.
  */
diff --git a/source/blender/depsgraph/intern/node/deg_node.h b/source/blender/depsgraph/intern/node/deg_node.h
index 65cb5b73c99..5bb9b7fe9ce 100644
--- a/source/blender/depsgraph/intern/node/deg_node.h
+++ b/source/blender/depsgraph/intern/node/deg_node.h
@@ -27,6 +27,8 @@
 
 #include "BLI_utildefines.h"
 
+#include "DEG_depsgraph_build.h"
+
 struct GHash;
 struct ID;
 struct Scene;
@@ -130,6 +132,9 @@ enum class NodeType {
 };
 const char *nodeTypeAsString(NodeType type);
 
+NodeType nodeTypeFromSceneComponent(eDepsSceneComponentType component);
+NodeType nodeTypeFromObjectComponent(eDepsObjectComponentType component);
+
 /* All nodes in Depsgraph are descended from this. */
 struct Node {
   /* Helper class for static typeinfo in subclasses. */



More information about the Bf-blender-cvs mailing list