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:
authorHans Goudey <h.goudey@me.com>2022-02-18 20:40:55 +0300
committerHans Goudey <h.goudey@me.com>2022-02-18 20:40:55 +0300
commit07fbf3108b1eb111ddcc1f164f73b31520716147 (patch)
treed57a78a64fba3f4641b43a191d70300fe02bef23 /source/blender/blenkernel/intern/curve_to_mesh_convert.cc
parentc2016feadc8fe83565ea1e405e36221d05163e5b (diff)
parent82fc68ed90bf1429579eddd5df14caf60b791b45 (diff)
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source/blender/blenkernel/intern/curve_to_mesh_convert.cc')
-rw-r--r--source/blender/blenkernel/intern/curve_to_mesh_convert.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/curve_to_mesh_convert.cc b/source/blender/blenkernel/intern/curve_to_mesh_convert.cc
index 51edf4a6591..e62733e36ef 100644
--- a/source/blender/blenkernel/intern/curve_to_mesh_convert.cc
+++ b/source/blender/blenkernel/intern/curve_to_mesh_convert.cc
@@ -172,7 +172,8 @@ static void spline_extrude_to_mesh_data(const ResultInfo &info,
}
}
- if (fill_caps && profile.is_cyclic()) {
+ const bool has_caps = fill_caps && profile.is_cyclic() && !spline.is_cyclic();
+ if (has_caps) {
const int poly_size = info.spline_edge_len * info.profile_edge_len;
const int cap_loop_offset = info.loop_offset + poly_size * 4;
const int cap_poly_offset = info.poly_offset + poly_size;
@@ -256,7 +257,8 @@ static inline int spline_extrude_loop_size(const Spline &curve,
const bool fill_caps)
{
const int tube = curve.evaluated_edges_size() * profile.evaluated_edges_size() * 4;
- const int caps = (fill_caps && profile.is_cyclic()) ? profile.evaluated_edges_size() * 2 : 0;
+ const bool has_caps = fill_caps && profile.is_cyclic() && !curve.is_cyclic();
+ const int caps = has_caps ? profile.evaluated_edges_size() * 2 : 0;
return tube + caps;
}
@@ -265,7 +267,8 @@ static inline int spline_extrude_poly_size(const Spline &curve,
const bool fill_caps)
{
const int tube = curve.evaluated_edges_size() * profile.evaluated_edges_size();
- const int caps = (fill_caps && profile.is_cyclic()) ? 2 : 0;
+ const bool has_caps = fill_caps && profile.is_cyclic() && !curve.is_cyclic();
+ const int caps = has_caps ? 2 : 0;
return tube + caps;
}