From 9f36a7eb4a467f7029b44ee80a0ddff3811ce7b1 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Wed, 23 Aug 2023 19:06:17 +0200 Subject: [PATCH] Fix transition normals --- .../export/components/TransitionExporter.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/src/net/sf/openrocket/file/wavefrontobj/export/components/TransitionExporter.java b/core/src/net/sf/openrocket/file/wavefrontobj/export/components/TransitionExporter.java index f2dd8c3c6..1ff5941b7 100644 --- a/core/src/net/sf/openrocket/file/wavefrontobj/export/components/TransitionExporter.java +++ b/core/src/net/sf/openrocket/file/wavefrontobj/export/components/TransitionExporter.java @@ -85,10 +85,10 @@ public class TransitionExporter extends RocketComponentExporter { // Draw bottom and top face if (!hasForeShoulder) { - closeFace(insideForeRingVertices, outsideForeRingVertices, true); + closeFace(outsideForeRingVertices, insideForeRingVertices, true); } if (!hasAftShoulder) { - closeFace(insideAftRingVertices, outsideAftRingVertices, false); + closeFace(outsideAftRingVertices, insideAftRingVertices, false); } } @@ -359,8 +359,12 @@ public class TransitionExporter extends RocketComponentExporter { //// We need special nx normal when the radius changes float nx; if (Double.compare(r, rNext) != 0) { - final double slopeAngle = Math.atan(Math.abs(xNext - x) / (rNext - r)); - nx = (float) Math.cos(Math.PI - slopeAngle); + final double slopeAngle = Math.atan((xNext - x) / (rNext - r)); + if (rNext > r) { + nx = (float) -Math.cos(slopeAngle); + } else { + nx = (float) Math.cos(slopeAngle); + } } else { nx = 0; }