diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2022-07-26 00:43:48 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2022-07-26 00:43:48 +0300 |
commit | f081e76037432cb926be45e980eac201d337032c (patch) | |
tree | dd1225521c12ea21c0b0c3d51ec1ae3f8730755f /source/blender/nodes/geometry/nodes/node_geo_input_curve_handles.cc | |
parent | fa2084ae58a77b1201289b6bedac427f73c762d1 (diff) | |
parent | 462f99bf38648a08226b1fba423315aec2bc577b (diff) |
Merge branch 'master' into geometry-nodes-iterative-cachegeometry-nodes-rigid-body-integration
Diffstat (limited to 'source/blender/nodes/geometry/nodes/node_geo_input_curve_handles.cc')
-rw-r--r-- | source/blender/nodes/geometry/nodes/node_geo_input_curve_handles.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/source/blender/nodes/geometry/nodes/node_geo_input_curve_handles.cc b/source/blender/nodes/geometry/nodes/node_geo_input_curve_handles.cc index da249278867..bc1b9e940a1 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_input_curve_handles.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_input_curve_handles.cc @@ -37,13 +37,15 @@ class HandlePositionFieldInput final : public GeometryFieldInput { fn::FieldEvaluator evaluator(field_context, &mask); evaluator.add(relative_); evaluator.evaluate(); - const VArray<bool> &relative = evaluator.get_evaluated<bool>(0); + const VArray<bool> relative = evaluator.get_evaluated<bool>(0); - VArray<float3> positions = component.attribute_get_for_read<float3>( + const AttributeAccessor attributes = *component.attributes(); + + VArray<float3> positions = attributes.lookup_or_default<float3>( "position", ATTR_DOMAIN_POINT, {0, 0, 0}); StringRef side = left_ ? "handle_left" : "handle_right"; - VArray<float3> handles = component.attribute_get_for_read<float3>( + VArray<float3> handles = attributes.lookup_or_default<float3>( side, ATTR_DOMAIN_POINT, {0, 0, 0}); if (relative.is_single()) { @@ -52,10 +54,10 @@ class HandlePositionFieldInput final : public GeometryFieldInput { for (const int i : positions.index_range()) { output[i] = handles[i] - positions[i]; } - return component.attribute_try_adapt_domain<float3>( + return attributes.adapt_domain<float3>( VArray<float3>::ForContainer(std::move(output)), ATTR_DOMAIN_POINT, domain); } - return component.attribute_try_adapt_domain<float3>(handles, ATTR_DOMAIN_POINT, domain); + return attributes.adapt_domain<float3>(handles, ATTR_DOMAIN_POINT, domain); } Array<float3> output(positions.size()); @@ -67,7 +69,7 @@ class HandlePositionFieldInput final : public GeometryFieldInput { output[i] = handles[i]; } } - return component.attribute_try_adapt_domain<float3>( + return component.attributes()->adapt_domain<float3>( VArray<float3>::ForContainer(std::move(output)), ATTR_DOMAIN_POINT, domain); } |