diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/spline_bezier.cc | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/spline_nurbs.cc | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/spline_bezier.cc b/source/blender/blenkernel/intern/spline_bezier.cc index 0fd3efce033..4be3ba8576e 100644 --- a/source/blender/blenkernel/intern/spline_bezier.cc +++ b/source/blender/blenkernel/intern/spline_bezier.cc @@ -560,6 +560,10 @@ blender::fn::GVArrayPtr BezierSpline::interpolate_to_evaluated_points( { BLI_assert(source_data.size() == this->size()); + if (source_data.is_single()) { + return source_data.shallow_copy(); + } + const int eval_size = this->evaluated_points_size(); if (eval_size == 1) { return source_data.shallow_copy(); diff --git a/source/blender/blenkernel/intern/spline_nurbs.cc b/source/blender/blenkernel/intern/spline_nurbs.cc index cd3ebe9e680..ae691d26cdb 100644 --- a/source/blender/blenkernel/intern/spline_nurbs.cc +++ b/source/blender/blenkernel/intern/spline_nurbs.cc @@ -389,6 +389,10 @@ blender::fn::GVArrayPtr NURBSpline::interpolate_to_evaluated_points( { BLI_assert(source_data.size() == this->size()); + if (source_data.is_single()) { + return source_data.shallow_copy(); + } + this->calculate_basis_cache(); Span<BasisCache> weights(basis_cache_); |