diff options
author | Hans Goudey <h.goudey@me.com> | 2021-09-29 07:19:33 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-09-29 07:19:33 +0300 |
commit | eddc3f5bc8473a4914476dc3ff3ee9091bb42b9a (patch) | |
tree | 2482e8619675c667a5dba4d2b6c8d578dd24fc90 | |
parent | 756c22bb411f50e6fcb400fb8dcb3e58968e5f75 (diff) |
Cleanup: Add constructor for AttributeFieldInput
-rw-r--r-- | source/blender/blenkernel/BKE_geometry_set.hh | 7 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_nodes_evaluator.cc | 3 | ||||
-rw-r--r-- | source/blender/nodes/geometry/nodes/node_geo_input_position.cc | 3 |
3 files changed, 9 insertions, 4 deletions
diff --git a/source/blender/blenkernel/BKE_geometry_set.hh b/source/blender/blenkernel/BKE_geometry_set.hh index 724ca224cab..f182fb527e1 100644 --- a/source/blender/blenkernel/BKE_geometry_set.hh +++ b/source/blender/blenkernel/BKE_geometry_set.hh @@ -722,6 +722,13 @@ class AttributeFieldInput : public fn::FieldInput { { } + template<typename T> static fn::Field<T> Create(std::string name) + { + const CPPType &type = CPPType::get<T>(); + auto field_input = std::make_shared<AttributeFieldInput>(std::move(name), type); + return fn::Field<T>{field_input}; + } + StringRefNull attribute_name() const { return name_; diff --git a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc index 592e6180f80..c5213dc304b 100644 --- a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc +++ b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc @@ -334,8 +334,7 @@ static void get_socket_value(const SocketRef &socket, void *r_value) SH_NODE_TEX_NOISE, GEO_NODE_MESH_TO_POINTS, GEO_NODE_PROXIMITY)) { - new (r_value) Field<float3>( - std::make_shared<bke::AttributeFieldInput>("position", CPPType::get<float3>())); + new (r_value) Field<float3>(bke::AttributeFieldInput::Create<float3>("position")); return; } } diff --git a/source/blender/nodes/geometry/nodes/node_geo_input_position.cc b/source/blender/nodes/geometry/nodes/node_geo_input_position.cc index f439fb32d31..44874259e20 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_input_position.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_input_position.cc @@ -25,8 +25,7 @@ static void geo_node_input_position_declare(NodeDeclarationBuilder &b) static void geo_node_input_position_exec(GeoNodeExecParams params) { - Field<float3> position_field{ - std::make_shared<AttributeFieldInput>("position", CPPType::get<float3>())}; + Field<float3> position_field{AttributeFieldInput::Create<float3>("position")}; params.set_output("Position", std::move(position_field)); } |