[Bf-blender-cvs] [03ac94f46ab] master: Depsgraph: Add inverse of node type conversion functions

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


Commit: 03ac94f46abf9007f1ac2cd66805d3aab9aa4178
Author: Sergey Sharybin
Date:   Thu Jul 4 14:50:59 2019 +0200
Branches: master
https://developer.blender.org/rB03ac94f46abf9007f1ac2cd66805d3aab9aa4178

Depsgraph: Add inverse of node type conversion functions

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

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/node/deg_node.cc b/source/blender/depsgraph/intern/node/deg_node.cc
index 2c734d14c53..f53caca00a9 100644
--- a/source/blender/depsgraph/intern/node/deg_node.cc
+++ b/source/blender/depsgraph/intern/node/deg_node.cc
@@ -133,6 +133,47 @@ NodeType nodeTypeFromSceneComponent(eDepsSceneComponentType component)
   return NodeType::UNDEFINED;
 }
 
+eDepsSceneComponentType nodeTypeToSceneComponent(NodeType type)
+{
+  switch (type) {
+    case NodeType::PARAMETERS:
+      return DEG_SCENE_COMP_PARAMETERS;
+    case NodeType::ANIMATION:
+      return DEG_SCENE_COMP_ANIMATION;
+    case NodeType::SEQUENCER:
+      return DEG_SCENE_COMP_SEQUENCER;
+
+    case NodeType::OPERATION:
+    case NodeType::TIMESOURCE:
+    case NodeType::ID_REF:
+    case NodeType::LAYER_COLLECTIONS:
+    case NodeType::COPY_ON_WRITE:
+    case NodeType::OBJECT_FROM_LAYER:
+    case NodeType::AUDIO:
+    case NodeType::ARMATURE:
+    case NodeType::GENERIC_DATABLOCK:
+    case NodeType::PARTICLE_SYSTEM:
+    case NodeType::PARTICLE_SETTINGS:
+    case NodeType::SHADING_PARAMETERS:
+    case NodeType::POINT_CACHE:
+    case NodeType::BATCH_CACHE:
+    case NodeType::DUPLI:
+    case NodeType::SYNCHRONIZATION:
+    case NodeType::UNDEFINED:
+    case NodeType::NUM_TYPES:
+    case NodeType::TRANSFORM:
+    case NodeType::GEOMETRY:
+    case NodeType::EVAL_POSE:
+    case NodeType::BONE:
+    case NodeType::SHADING:
+    case NodeType::CACHE:
+    case NodeType::PROXY:
+      return DEG_SCENE_COMP_PARAMETERS;
+  }
+  BLI_assert(!"Unhandled node type, not suppsed to happen.");
+  return DEG_SCENE_COMP_PARAMETERS;
+}
+
 NodeType nodeTypeFromObjectComponent(eDepsObjectComponentType component)
 {
   switch (component) {
@@ -158,6 +199,53 @@ NodeType nodeTypeFromObjectComponent(eDepsObjectComponentType component)
   return NodeType::UNDEFINED;
 }
 
+eDepsObjectComponentType nodeTypeToObjectComponent(NodeType type)
+{
+  switch (type) {
+    case NodeType::PARAMETERS:
+      return DEG_OB_COMP_PARAMETERS;
+    case NodeType::PROXY:
+      return DEG_OB_COMP_PROXY;
+    case NodeType::ANIMATION:
+      return DEG_OB_COMP_ANIMATION;
+    case NodeType::TRANSFORM:
+      return DEG_OB_COMP_TRANSFORM;
+    case NodeType::GEOMETRY:
+      return DEG_OB_COMP_GEOMETRY;
+    case NodeType::EVAL_POSE:
+      return DEG_OB_COMP_EVAL_POSE;
+    case NodeType::BONE:
+      return DEG_OB_COMP_BONE;
+    case NodeType::SHADING:
+      return DEG_OB_COMP_SHADING;
+    case NodeType::CACHE:
+      return DEG_OB_COMP_CACHE;
+
+    case NodeType::OPERATION:
+    case NodeType::TIMESOURCE:
+    case NodeType::ID_REF:
+    case NodeType::SEQUENCER:
+    case NodeType::LAYER_COLLECTIONS:
+    case NodeType::COPY_ON_WRITE:
+    case NodeType::OBJECT_FROM_LAYER:
+    case NodeType::AUDIO:
+    case NodeType::ARMATURE:
+    case NodeType::GENERIC_DATABLOCK:
+    case NodeType::PARTICLE_SYSTEM:
+    case NodeType::PARTICLE_SETTINGS:
+    case NodeType::SHADING_PARAMETERS:
+    case NodeType::POINT_CACHE:
+    case NodeType::BATCH_CACHE:
+    case NodeType::DUPLI:
+    case NodeType::SYNCHRONIZATION:
+    case NodeType::UNDEFINED:
+    case NodeType::NUM_TYPES:
+      return DEG_OB_COMP_PARAMETERS;
+  }
+  BLI_assert(!"Unhandled node type, not suppsed to happen.");
+  return DEG_OB_COMP_PARAMETERS;
+}
+
 /*******************************************************************************
  * Type information.
  */
diff --git a/source/blender/depsgraph/intern/node/deg_node.h b/source/blender/depsgraph/intern/node/deg_node.h
index 5bb9b7fe9ce..3ebc5ec8125 100644
--- a/source/blender/depsgraph/intern/node/deg_node.h
+++ b/source/blender/depsgraph/intern/node/deg_node.h
@@ -133,7 +133,10 @@ enum class NodeType {
 const char *nodeTypeAsString(NodeType type);
 
 NodeType nodeTypeFromSceneComponent(eDepsSceneComponentType component);
+eDepsSceneComponentType nodeTypeToSceneComponent(NodeType type);
+
 NodeType nodeTypeFromObjectComponent(eDepsObjectComponentType component);
+eDepsObjectComponentType nodeTypeToObjectComponent(NodeType type);
 
 /* All nodes in Depsgraph are descended from this. */
 struct Node {



More information about the Bf-blender-cvs mailing list