diff options
author | Edgar Roman Cervantes <redvant> | 2021-02-20 01:03:14 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-02-20 01:03:14 +0300 |
commit | a961a2189cb38ffb368d6781aa57177bfefe0e36 (patch) | |
tree | 9fe23cadf50386676c42655e2b02e61144694384 /source/blender/blenkernel/intern/node.cc | |
parent | ee1c674775fd60352502f4d6062dbd4637865f9d (diff) |
Geometry Nodes: Add string input node
This commit adds a simple string input node, intended for use in the
attribute workflow to make using the same attribute name in multiple
places easier. The node is function node similar to the existing vector
input node.
Ref T84971
Differential Revision: https://developer.blender.org/D10316
Diffstat (limited to 'source/blender/blenkernel/intern/node.cc')
-rw-r--r-- | source/blender/blenkernel/intern/node.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc index 228d3e0d825..b96adce7cca 100644 --- a/source/blender/blenkernel/intern/node.cc +++ b/source/blender/blenkernel/intern/node.cc @@ -523,6 +523,13 @@ void ntreeBlendWrite(BlendWriter *writer, bNodeTree *ntree) BLO_write_struct_by_name(writer, node->typeinfo->storagename, node->storage); MEM_SAFE_FREE(nc->matte_id); } + else if (node->type == FN_NODE_INPUT_STRING) { + NodeInputString *storage = (NodeInputString *)node->storage; + if (storage->string) { + BLO_write_string(writer, storage->string); + } + BLO_write_struct_by_name(writer, node->typeinfo->storagename, storage); + } else if (node->typeinfo != &NodeTypeUndefined) { BLO_write_struct_by_name(writer, node->typeinfo->storagename, node->storage); } @@ -685,6 +692,11 @@ void ntreeBlendReadData(BlendDataReader *reader, bNodeTree *ntree) iuser->scene = nullptr; break; } + case FN_NODE_INPUT_STRING: { + NodeInputString *storage = (NodeInputString *)node->storage; + BLO_read_data_address(reader, &storage->string); + break; + } default: break; } @@ -4806,6 +4818,7 @@ static void registerFunctionNodes() register_node_type_fn_combine_strings(); register_node_type_fn_float_compare(); register_node_type_fn_group_instance_id(); + register_node_type_fn_input_string(); register_node_type_fn_input_vector(); register_node_type_fn_object_transforms(); register_node_type_fn_random_float(); |