Fix the normals on the insides of tubes, lugs & rings.

This commit is contained in:
bkuker 2013-03-05 16:35:09 -05:00
parent 958e098884
commit 554e4129e9

View File

@ -205,9 +205,12 @@ public class ComponentRenderer {
//inside //inside
if (which == Surface.INSIDE) if (which == Surface.INSIDE) {
glu.gluQuadricOrientation(q, GLU.GLU_INSIDE);
glu.gluCylinder(q, t.getInnerRadius(), t.getInnerRadius(), glu.gluCylinder(q, t.getInnerRadius(), t.getInnerRadius(),
-t.getLength(), LOD, 1); -t.getLength(), LOD, 1);
glu.gluQuadricOrientation(q, GLU.GLU_OUTSIDE);
}
} }
@ -224,8 +227,10 @@ public class ComponentRenderer {
gl.glTranslated(0, 0, r.getLength()); gl.glTranslated(0, 0, r.getLength());
glu.gluDisk(q, r.getInnerRadius(), r.getOuterRadius(), LOD, 2); glu.gluDisk(q, r.getInnerRadius(), r.getOuterRadius(), LOD, 2);
glu.gluQuadricOrientation(q, GLU.GLU_INSIDE);
glu.gluCylinder(q, r.getInnerRadius(), r.getInnerRadius(), glu.gluCylinder(q, r.getInnerRadius(), r.getInnerRadius(),
-r.getLength(), LOD, 1); -r.getLength(), LOD, 1);
glu.gluQuadricOrientation(q, GLU.GLU_OUTSIDE);
} }
@ -246,11 +251,13 @@ public class ComponentRenderer {
if (which == Surface.EDGES) if (which == Surface.EDGES)
glu.gluDisk(q, t.getInnerRadius(), t.getOuterRadius(), LOD, 2); glu.gluDisk(q, t.getInnerRadius(), t.getOuterRadius(), LOD, 2);
//inside //inside
if (which == Surface.INSIDE) if (which == Surface.INSIDE) {
glu.gluQuadricOrientation(q, GLU.GLU_INSIDE);
glu.gluCylinder(q, t.getInnerRadius(), t.getInnerRadius(), glu.gluCylinder(q, t.getInnerRadius(), t.getInnerRadius(),
-t.getLength(), LOD, 1); -t.getLength(), LOD, 1);
glu.gluQuadricOrientation(q, GLU.GLU_OUTSIDE);
}
} }
private void renderMassObject(GL2 gl, MassObject o) { private void renderMassObject(GL2 gl, MassObject o) {