From 554e4129e93269bb16997eac59241b089a856069 Mon Sep 17 00:00:00 2001 From: bkuker Date: Tue, 5 Mar 2013 16:35:09 -0500 Subject: [PATCH] Fix the normals on the insides of tubes, lugs & rings. --- .../gui/figure3d/geometry/ComponentRenderer.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/core/src/net/sf/openrocket/gui/figure3d/geometry/ComponentRenderer.java b/core/src/net/sf/openrocket/gui/figure3d/geometry/ComponentRenderer.java index 835b20ade..eaee17b6d 100644 --- a/core/src/net/sf/openrocket/gui/figure3d/geometry/ComponentRenderer.java +++ b/core/src/net/sf/openrocket/gui/figure3d/geometry/ComponentRenderer.java @@ -205,9 +205,12 @@ public class ComponentRenderer { //inside - if (which == Surface.INSIDE) + if (which == Surface.INSIDE) { + glu.gluQuadricOrientation(q, GLU.GLU_INSIDE); glu.gluCylinder(q, t.getInnerRadius(), t.getInnerRadius(), -t.getLength(), LOD, 1); + glu.gluQuadricOrientation(q, GLU.GLU_OUTSIDE); + } } @@ -224,8 +227,10 @@ public class ComponentRenderer { gl.glTranslated(0, 0, r.getLength()); glu.gluDisk(q, r.getInnerRadius(), r.getOuterRadius(), LOD, 2); + glu.gluQuadricOrientation(q, GLU.GLU_INSIDE); glu.gluCylinder(q, r.getInnerRadius(), r.getInnerRadius(), -r.getLength(), LOD, 1); + glu.gluQuadricOrientation(q, GLU.GLU_OUTSIDE); } @@ -246,11 +251,13 @@ public class ComponentRenderer { if (which == Surface.EDGES) glu.gluDisk(q, t.getInnerRadius(), t.getOuterRadius(), LOD, 2); - //inside - if (which == Surface.INSIDE) + if (which == Surface.INSIDE) { + glu.gluQuadricOrientation(q, GLU.GLU_INSIDE); glu.gluCylinder(q, t.getInnerRadius(), t.getInnerRadius(), -t.getLength(), LOD, 1); + glu.gluQuadricOrientation(q, GLU.GLU_OUTSIDE); + } } private void renderMassObject(GL2 gl, MassObject o) {