Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/modifiers/intern/MOD_nodes_evaluator.cc11
-rw-r--r--source/blender/nodes/geometry/nodes/node_geo_set_position.cc2
2 files changed, 12 insertions, 1 deletions
diff --git a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
index f67f7f967c9..a215ad4d21a 100644
--- a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
+++ b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
@@ -321,6 +321,17 @@ static const CPPType *get_socket_cpp_type(const DSocket socket)
static void get_socket_value(const SocketRef &socket, void *r_value)
{
+ const bNodeSocket &bsocket = *socket.bsocket();
+ /* This is not supposed to be a long term solution. Eventually we want that nodes can specify
+ * more complex defaults (other than just single values) in their socket declarations. */
+ if (bsocket.flag & SOCK_HIDE_VALUE) {
+ const bNode &bnode = *socket.bnode();
+ if (bsocket.type == SOCK_VECTOR && bnode.type == GEO_NODE_SET_POSITION) {
+ new (r_value) Field<float3>(
+ std::make_shared<bke::AttributeFieldInput>("position", CPPType::get<float3>()));
+ return;
+ }
+ }
const bNodeSocketType *typeinfo = socket.typeinfo();
typeinfo->get_geometry_nodes_cpp_value(*socket.bsocket(), r_value);
}
diff --git a/source/blender/nodes/geometry/nodes/node_geo_set_position.cc b/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
index 832db76e731..c5e10b788ac 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
@@ -23,7 +23,7 @@ namespace blender::nodes {
static void geo_node_set_position_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry");
- b.add_input<decl::Vector>("Position");
+ b.add_input<decl::Vector>("Position").hide_value();
b.add_input<decl::Bool>("Selection").default_value(true).hide_value();
b.add_output<decl::Geometry>("Geometry");
}