summaryrefslogtreecommitdiff
path: root/modules/csg
diff options
context:
space:
mode:
authorMythTitans <myth_titans@msn.com>2022-03-11 00:16:30 +0100
committerMythTitans <myth_titans@msn.com>2022-03-11 00:16:30 +0100
commit8bcbaff41119b254c34938a632f787a8049e88c6 (patch)
tree4d00323b34ac1d6ae379e80382d726341bffd3a4 /modules/csg
parent7866c984798de62cbb9028f3d1eee947809e0aa9 (diff)
Fix normals computation at the 'seam' of smoothed torus shape
Diffstat (limited to 'modules/csg')
-rw-r--r--modules/csg/csg_shape.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/modules/csg/csg_shape.cpp b/modules/csg/csg_shape.cpp
index 137df52215..34f3ba9296 100644
--- a/modules/csg/csg_shape.cpp
+++ b/modules/csg/csg_shape.cpp
@@ -1530,6 +1530,9 @@ CSGBrush *CSGTorus3D::_build_brush() {
for (int i = 0; i < sides; i++) {
float inci = float(i) / sides;
float inci_n = float((i + 1)) / sides;
+ if (i == sides - 1) {
+ inci_n = 0;
+ }
float angi = inci * Math_TAU;
float angi_n = inci_n * Math_TAU;
@@ -1540,6 +1543,9 @@ CSGBrush *CSGTorus3D::_build_brush() {
for (int j = 0; j < ring_sides; j++) {
float incj = float(j) / ring_sides;
float incj_n = float((j + 1)) / ring_sides;
+ if (j == ring_sides - 1) {
+ incj_n = 0;
+ }
float angj = incj * Math_TAU;
float angj_n = incj_n * Math_TAU;