[Bf-blender-cvs] [0d75164] object_nodes: Test of node conversion from bNodes to internal instruction graph.
Lukas Tönne
noreply at git.blender.org
Tue Nov 24 09:43:05 CET 2015
Commit: 0d751648f804b5799b5ae09480d9947538eba084
Author: Lukas Tönne
Date: Mon Oct 19 12:16:48 2015 +0200
Branches: object_nodes
https://developer.blender.org/rB0d751648f804b5799b5ae09480d9947538eba084
Test of node conversion from bNodes to internal instruction graph.
===================================================================
M release/scripts/startup/bl_operators/object_nodes.py
M source/blender/blenvm/intern/bvm_api.cc
===================================================================
diff --git a/release/scripts/startup/bl_operators/object_nodes.py b/release/scripts/startup/bl_operators/object_nodes.py
index 689ff96..e5dd897 100644
--- a/release/scripts/startup/bl_operators/object_nodes.py
+++ b/release/scripts/startup/bl_operators/object_nodes.py
@@ -42,8 +42,8 @@ node_categories = [
ObjectNodeCategory("COMPONENTS", "Components", items=[
NodeItem("ForceFieldNode"),
]),
- ForceFieldNodeCategory("FORCE_FIELD", "Force Field", items=[
- NodeItem("ForceForceNode"),
+ ForceFieldNodeCategory("FORCE_OUTPUT", "Output", items=[
+ NodeItem("ForceOutputNode"),
]),
]
@@ -104,14 +104,15 @@ class ForceNodeBase():
return ntree.bl_idname == 'ForceFieldNodeTree'
-class ForceForceNode(ForceNodeBase, ObjectNode):
- '''Force'''
- bl_idname = 'ForceForceNode'
- bl_label = 'Force'
+class ForceOutputNode(ForceNodeBase, ObjectNode):
+ '''Force Output'''
+ bl_idname = 'ForceOutputNode'
+ bl_label = 'Output'
bl_icon = 'FORCE_FORCE'
def init(self, context):
- self.inputs.new('NodeSocketFloat', "Strength")
+ self.inputs.new('NodeSocketVector', "Force")
+ self.inputs.new('NodeSocketVector', "Impulse")
###############################################################################
diff --git a/source/blender/blenvm/intern/bvm_api.cc b/source/blender/blenvm/intern/bvm_api.cc
index db657fc..e43eebf 100644
--- a/source/blender/blenvm/intern/bvm_api.cc
+++ b/source/blender/blenvm/intern/bvm_api.cc
@@ -33,6 +33,7 @@
extern "C" {
#include "BLI_utildefines.h"
+#include "BLI_listbase.h"
#include "DNA_node_types.h"
@@ -119,14 +120,38 @@ static void gen_forcefield_nodegraph(bNodeTree *btree, bvm::NodeGraph &graph)
graph.add_output("impulse", BVM_FLOAT3, zero);
}
-#if 0
+#if 1
for (bNode *bnode = (bNode*)btree->nodes.first; bnode; bnode = bnode->next) {
BLI_assert(bnode->typeinfo != NULL);
if (!nodeIsRegistered(bnode))
continue;
const char *type = bnode->typeinfo->idname;
+#if 0
/*NodeInstance *node =*/ graph.add_node(type, bnode->name);
+#else
+ if (bvm::string(type) == "ForceOutputNode") {
+ {
+ bvm::NodeInstance *node = graph.add_node("PASS_FLOAT3", "RET_FORCE_" + bvm::string(bnode->name));
+
+ bNodeSocket *binput = (bNodeSocket *)BLI_findlink(&bnode->inputs, 0);
+ bNodeSocketValueVector *bvalue = (bNodeSocketValueVector *)binput->default_value;
+ node->set_input_value("value", bvm::float3(bvalue->value[0], bvalue->value[1], bvalue->value[2]));
+
+ graph.set_output_link("force", node, "value");
+ }
+
+ {
+ bvm::NodeInstance *node = graph.add_node("PASS_FLOAT3", "RET_IMPULSE_" + bvm::string(bnode->name));
+
+ bNodeSocket *binput = (bNodeSocket *)BLI_findlink(&bnode->inputs, 1);
+ bNodeSocketValueVector *bvalue = (bNodeSocketValueVector *)binput->default_value;
+ node->set_input_value("value", bvm::float3(bvalue->value[0], bvalue->value[1], bvalue->value[2]));
+
+ graph.set_output_link("impulse", node, "value");
+ }
+ }
+#endif
}
for (bNodeLink *blink = (bNodeLink *)btree->links.first; blink; blink = blink->next) {
More information about the Bf-blender-cvs
mailing list