[Bf-blender-cvs] [9ec7e23c447] temp-geometry-nodes-fields--fields-jacques: support modifier inputs again
Jacques Lucke
noreply at git.blender.org
Tue Aug 31 13:22:57 CEST 2021
Commit: 9ec7e23c44791e4d20b7ec40d228fdd4b028d702
Author: Jacques Lucke
Date: Tue Aug 31 12:41:13 2021 +0200
Branches: temp-geometry-nodes-fields--fields-jacques
https://developer.blender.org/rB9ec7e23c44791e4d20b7ec40d228fdd4b028d702
support modifier inputs again
===================================================================
M source/blender/modifiers/intern/MOD_nodes.cc
===================================================================
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc
index 9d8630b21e7..b2e2e97a961 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -85,6 +85,7 @@
#include "NOD_geometry.h"
#include "NOD_geometry_nodes_eval_log.hh"
+#include "FN_field.hh"
#include "FN_multi_function.hh"
using blender::destruct_ptr;
@@ -410,24 +411,30 @@ static void init_socket_cpp_value_from_property(const IDProperty &property,
{
switch (socket_value_type) {
case SOCK_FLOAT: {
+ float value = 0.0f;
if (property.type == IDP_FLOAT) {
- *(float *)r_value = IDP_Float(&property);
+ value = IDP_Float(&property);
}
else if (property.type == IDP_DOUBLE) {
- *(float *)r_value = (float)IDP_Double(&property);
+ value = (float)IDP_Double(&property);
}
+ new (r_value) blender::fn::Field<float>(blender::fn::make_constant_field(value));
break;
}
case SOCK_INT: {
- *(int *)r_value = IDP_Int(&property);
+ int value = IDP_Int(&property);
+ new (r_value) blender::fn::Field<int>(blender::fn::make_constant_field(value));
break;
}
case SOCK_VECTOR: {
- copy_v3_v3((float *)r_value, (const float *)IDP_Array(&property));
+ float3 value;
+ copy_v3_v3(value, (const float *)IDP_Array(&property));
+ new (r_value) blender::fn::Field<float3>(blender::fn::make_constant_field(value));
break;
}
case SOCK_BOOLEAN: {
- *(bool *)r_value = IDP_Int(&property) != 0;
+ bool value = IDP_Int(&property) != 0;
+ new (r_value) blender::fn::Field<bool>(blender::fn::make_constant_field(value));
break;
}
case SOCK_STRING: {
More information about the Bf-blender-cvs
mailing list