Program: 58804
Project: 58804
Buggy source:
/** 
 * Render the coordinate system of the parallel coordinates, including the axis captions and axis-specific buttons
 * @param gl the gl context
 * @param iNumberAxis
 */
private void renderCoordinateSystem(GL gl){
  IVirtualArray axisVA=set.getVA(iAxisVAID);
  textRenderer.setColor(0,0,0,1);
  int iNumberAxis=set.getVA(iAxisVAID).size();
  gl.glColor4fv(X_AXIS_COLOR,0);
  gl.glLineWidth(X_AXIS_LINE_WIDTH);
  gl.glPushName(pickingManager.getPickingID(iUniqueID,EPickingType.X_AXIS_SELECTION,1));
  gl.glBegin(GL.GL_LINES);
  gl.glVertex3f(renderStyle.getXAxisStart(),0.0f,0.0f);
  gl.glVertex3f(renderStyle.getXAxisEnd(),0.0f,0.0f);
  gl.glEnd();
  gl.glPopName();
  Set<Integer> selectedSet=axisSelectionManager.getElements(ESelectionType.SELECTION);
  Set<Integer> mouseOverSet=axisSelectionManager.getElements(ESelectionType.MOUSE_OVER);
  int iCount=0;
  while (iCount < iNumberAxis) {
    float fXPosition=alAxisSpacing.get(iCount);
    if (selectedSet.contains(axisVA.get(iCount))) {
      gl.glColor4fv(Y_AXIS_SELECTED_COLOR,0);
      gl.glLineWidth(Y_AXIS_SELECTED_LINE_WIDTH);
      gl.glEnable(GL.GL_LINE_STIPPLE);
      gl.glLineStipple(2,(short)0xAAAA);
    }
 else     if (mouseOverSet.contains(axisVA.get(iCount))) {
      gl.glColor4fv(Y_AXIS_MOUSE_OVER_COLOR,0);
      gl.glLineWidth(Y_AXIS_MOUSE_OVER_LINE_WIDTH);
      gl.glEnable(GL.GL_LINE_STIPPLE);
      gl.glLineStipple(2,(short)0xAAAA);
    }
 else {
      gl.glColor4fv(Y_AXIS_COLOR,0);
      gl.glLineWidth(Y_AXIS_LINE_WIDTH);
    }
    gl.glPushName(pickingManager.getPickingID(iUniqueID,EPickingType.Y_AXIS_SELECTION,axisVA.get(iCount)));
    gl.glBegin(GL.GL_LINES);
    gl.glVertex3f(fXPosition,Y_AXIS_LOW,AXIS_Z);
    gl.glVertex3f(fXPosition,renderStyle.getAxisHeight(),AXIS_Z);
    gl.glVertex3f(fXPosition - AXIS_MARKER_WIDTH,renderStyle.getAxisHeight(),AXIS_Z);
    gl.glVertex3f(fXPosition + AXIS_MARKER_WIDTH,renderStyle.getAxisHeight(),AXIS_Z);
    gl.glEnd();
    gl.glDisable(GL.GL_LINE_STIPPLE);
    if (detailLevel != EDetailLevel.HIGH || !renderStyle.isEnoughSpaceForText(iNumberAxis)) {
      gl.glPopName();
    }
    float fXButtonOrigin=alAxisSpacing.get(iCount);
    Texture tempTexture=textureManager.getIconTexture(gl,EIconTextures.NAN);
    tempTexture.enable();
    tempTexture.bind();
    TextureCoords texCoords=tempTexture.getImageTexCoords();
    int iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.REMOVE_NAN,axisVA.get(iCount));
    gl.glColor4f(1,1,1,1f);
    gl.glPushName(iPickingID);
    gl.glBegin(GL.GL_POLYGON);
    gl.glTexCoord2f(texCoords.left(),texCoords.bottom());
    gl.glVertex3f(fXButtonOrigin - 0.03f,ParCoordsRenderStyle.NAN_Y_OFFSET - 0.03f,ParCoordsRenderStyle.NAN_Z);
    gl.glTexCoord2f(texCoords.right(),texCoords.bottom());
    gl.glVertex3f(fXButtonOrigin + 0.03f,ParCoordsRenderStyle.NAN_Y_OFFSET - 0.03f,ParCoordsRenderStyle.NAN_Z);
    gl.glTexCoord2f(texCoords.right(),texCoords.top());
    gl.glVertex3f(fXButtonOrigin + 0.03f,ParCoordsRenderStyle.NAN_Y_OFFSET + 0.03f,ParCoordsRenderStyle.NAN_Z);
    gl.glTexCoord2f(texCoords.left(),texCoords.top());
    gl.glVertex3f(fXButtonOrigin - 0.03f,ParCoordsRenderStyle.NAN_Y_OFFSET + 0.03f,ParCoordsRenderStyle.NAN_Z);
    gl.glEnd();
    gl.glPopName();
    tempTexture.disable();
    if (detailLevel == EDetailLevel.HIGH) {
      float fMarkerSpacing=renderStyle.getAxisHeight() / (NUMBER_AXIS_MARKERS + 1);
      for (int iInnerCount=1; iInnerCount <= NUMBER_AXIS_MARKERS; iInnerCount++) {
        float fCurrentHeight=fMarkerSpacing * iInnerCount;
        if (iCount == 0) {
          if (set.isSetHomogeneous()) {
            float fNumber=(float)set.getRawForNormalized(fCurrentHeight / renderStyle.getAxisHeight());
            Rectangle2D bounds=textRenderer.getBounds(getDecimalFormat().format(fNumber));
            float fWidth=(float)bounds.getWidth() * renderStyle.getSmallFontScalingFactor();
            float fHeightHalf=(float)bounds.getHeight() * renderStyle.getSmallFontScalingFactor() / 3;
            renderNumber(getDecimalFormat().format(fNumber),fXPosition - fWidth - AXIS_MARKER_WIDTH,fCurrentHeight - fHeightHalf);
          }
 else {
          }
        }
        gl.glColor3fv(Y_AXIS_COLOR,0);
        gl.glBegin(GL.GL_LINES);
        gl.glVertex3f(fXPosition - AXIS_MARKER_WIDTH,fCurrentHeight,AXIS_Z);
        gl.glVertex3f(fXPosition + AXIS_MARKER_WIDTH,fCurrentHeight,AXIS_Z);
        gl.glEnd();
      }
      String sAxisLabel=null;
switch (eAxisDataType) {
case EXPRESSION_INDEX:
        sAxisLabel=GeneticIDMappingHelper.get().getShortNameFromExpressionIndex(set.getVA(iAxisVAID).get(iCount));
      if (sAxisLabel == null)       sAxisLabel="String_Node_Str";
    break;
case EXPERIMENT:
default :
  if (bRenderStorageHorizontally) {
    sAxisLabel="String_Node_Str";
  }
 else   sAxisLabel=set.getStorageFromVA(iStorageVAID,iCount).getLabel();
break;
}
gl.glPushAttrib(GL.GL_CURRENT_BIT | GL.GL_LINE_BIT);
gl.glTranslatef(fXPosition,renderStyle.getAxisHeight() + renderStyle.getAxisCaptionSpacing(),0);
gl.glRotatef(25,0,0,1);
textRenderer.begin3DRendering();
textRenderer.draw3D(sAxisLabel,0,0,0,renderStyle.getSmallFontScalingFactor());
textRenderer.end3DRendering();
gl.glRotatef(-25,0,0,1);
gl.glTranslatef(-fXPosition,-(renderStyle.getAxisHeight() + renderStyle.getAxisCaptionSpacing()),0);
if (set.isSetHomogeneous()) {
}
 else {
}
gl.glPopAttrib();
iPickingID=-1;
float fYDropOrigin=-ParCoordsRenderStyle.AXIS_BUTTONS_Y_OFFSET;
gl.glBlendFunc(GL.GL_ONE,GL.GL_ONE_MINUS_SRC_ALPHA);
float fYGateAddOrigin=renderStyle.getAxisHeight();
iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.ADD_GATE,axisVA.get(iCount));
tempTexture=textureManager.getIconTexture(gl,EIconTextures.ADD_GATE);
tempTexture.enable();
tempTexture.bind();
texCoords=tempTexture.getImageTexCoords();
gl.glColor4f(1,1,1,1f);
gl.glPushName(iPickingID);
gl.glBegin(GL.GL_POLYGON);
gl.glTexCoord2f(texCoords.left(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin - 0.03f,fYGateAddOrigin,AXIS_Z);
gl.glTexCoord2f(texCoords.right(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin + 0.03f,fYGateAddOrigin,AXIS_Z);
gl.glTexCoord2f(texCoords.right(),texCoords.top());
gl.glVertex3f(fXButtonOrigin + 0.03f,fYGateAddOrigin + 0.12f,AXIS_Z);
gl.glTexCoord2f(texCoords.left(),texCoords.top());
gl.glVertex3f(fXButtonOrigin - 0.03f,fYGateAddOrigin + 0.12f,AXIS_Z);
gl.glEnd();
gl.glPopName();
tempTexture.disable();
if (selectedSet.contains(axisVA.get(iCount)) || mouseOverSet.contains(axisVA.get(iCount))) {
if (iChangeDropOnAxisNumber == iCount) {
tempTexture=textureManager.getIconTexture(gl,dropTexture);
if (!bWasAxisMoved) {
  dropTexture=EIconTextures.DROP_NORMAL;
}
}
 else {
tempTexture=textureManager.getIconTexture(gl,EIconTextures.DROP_NORMAL);
}
tempTexture.enable();
tempTexture.bind();
texCoords=tempTexture.getImageTexCoords();
gl.glColor4f(1,1,1,1);
gl.glBegin(GL.GL_POLYGON);
gl.glTexCoord2f(texCoords.left(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin - 0.15f,fYDropOrigin - 0.3f,AXIS_Z + 0.005f);
gl.glTexCoord2f(texCoords.right(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin + 0.15f,fYDropOrigin - 0.3f,AXIS_Z + 0.005f);
gl.glTexCoord2f(texCoords.right(),texCoords.top());
gl.glVertex3f(fXButtonOrigin + 0.15f,fYDropOrigin,AXIS_Z + 0.005f);
gl.glTexCoord2f(texCoords.left(),texCoords.top());
gl.glVertex3f(fXButtonOrigin - 0.15f,fYDropOrigin,AXIS_Z + 0.005f);
gl.glEnd();
tempTexture.disable();
iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.MOVE_AXIS,iCount);
gl.glColor4f(0,0,0,0f);
gl.glPushName(iPickingID);
gl.glBegin(GL.GL_TRIANGLES);
gl.glVertex3f(fXButtonOrigin,fYDropOrigin,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin + 0.08f,fYDropOrigin - 0.3f,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin - 0.08f,fYDropOrigin - 0.3f,AXIS_Z + 0.01f);
gl.glEnd();
gl.glPopName();
iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.DUPLICATE_AXIS,iCount);
gl.glPushName(iPickingID);
gl.glBegin(GL.GL_TRIANGLES);
gl.glVertex3f(fXButtonOrigin,fYDropOrigin,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin - 0.08f,fYDropOrigin - 0.21f,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin - 0.23f,fYDropOrigin - 0.21f,AXIS_Z + 0.01f);
gl.glEnd();
gl.glPopName();
iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.REMOVE_AXIS,iCount);
gl.glPushName(iPickingID);
gl.glBegin(GL.GL_TRIANGLES);
gl.glVertex3f(fXButtonOrigin,fYDropOrigin,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin + 0.08f,fYDropOrigin - 0.21f,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin + 0.23f,fYDropOrigin - 0.21f,AXIS_Z + 0.01f);
gl.glEnd();
gl.glPopName();
}
 else {
iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.MOVE_AXIS,iCount);
tempTexture=textureManager.getIconTexture(gl,EIconTextures.SMALL_DROP);
tempTexture.enable();
tempTexture.bind();
texCoords=tempTexture.getImageTexCoords();
gl.glPushAttrib(GL.GL_CURRENT_BIT | GL.GL_LINE_BIT);
gl.glColor4f(1,1,1,1);
gl.glPushName(iPickingID);
gl.glBegin(GL.GL_POLYGON);
gl.glTexCoord2f(texCoords.left(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin - 0.05f,fYDropOrigin - 0.2f,AXIS_Z);
gl.glTexCoord2f(texCoords.right(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin + 0.05f,fYDropOrigin - 0.2f,AXIS_Z);
gl.glTexCoord2f(texCoords.right(),texCoords.top());
gl.glVertex3f(fXButtonOrigin + 0.05f,fYDropOrigin,AXIS_Z);
gl.glTexCoord2f(texCoords.left(),texCoords.top());
gl.glVertex3f(fXButtonOrigin - 0.05f,fYDropOrigin,AXIS_Z);
gl.glEnd();
gl.glPopName();
gl.glPopAttrib();
tempTexture.disable();
}
gl.glBlendFunc(GL.GL_SRC_ALPHA,GL.GL_ONE_MINUS_SRC_ALPHA);
gl.glPopName();
}
iCount++;
}
}

Fixed version (ground truth):
/** 
 * Render the coordinate system of the parallel coordinates, including the axis captions and axis-specific buttons
 * @param gl the gl context
 * @param iNumberAxis
 */
private void renderCoordinateSystem(GL gl){
  IVirtualArray axisVA=set.getVA(iAxisVAID);
  textRenderer.setColor(0,0,0,1);
  int iNumberAxis=set.getVA(iAxisVAID).size();
  gl.glColor4fv(X_AXIS_COLOR,0);
  gl.glLineWidth(X_AXIS_LINE_WIDTH);
  gl.glPushName(pickingManager.getPickingID(iUniqueID,EPickingType.X_AXIS_SELECTION,1));
  gl.glBegin(GL.GL_LINES);
  gl.glVertex3f(renderStyle.getXAxisStart(),0.0f,0.0f);
  gl.glVertex3f(renderStyle.getXAxisEnd(),0.0f,0.0f);
  gl.glEnd();
  gl.glPopName();
  Set<Integer> selectedSet=axisSelectionManager.getElements(ESelectionType.SELECTION);
  Set<Integer> mouseOverSet=axisSelectionManager.getElements(ESelectionType.MOUSE_OVER);
  int iCount=0;
  while (iCount < iNumberAxis) {
    float fXPosition=alAxisSpacing.get(iCount);
    if (selectedSet.contains(axisVA.get(iCount))) {
      gl.glColor4fv(Y_AXIS_SELECTED_COLOR,0);
      gl.glLineWidth(Y_AXIS_SELECTED_LINE_WIDTH);
      gl.glEnable(GL.GL_LINE_STIPPLE);
      gl.glLineStipple(2,(short)0xAAAA);
    }
 else     if (mouseOverSet.contains(axisVA.get(iCount))) {
      gl.glColor4fv(Y_AXIS_MOUSE_OVER_COLOR,0);
      gl.glLineWidth(Y_AXIS_MOUSE_OVER_LINE_WIDTH);
      gl.glEnable(GL.GL_LINE_STIPPLE);
      gl.glLineStipple(2,(short)0xAAAA);
    }
 else {
      gl.glColor4fv(Y_AXIS_COLOR,0);
      gl.glLineWidth(Y_AXIS_LINE_WIDTH);
    }
    gl.glPushName(pickingManager.getPickingID(iUniqueID,EPickingType.Y_AXIS_SELECTION,axisVA.get(iCount)));
    gl.glBegin(GL.GL_LINES);
    gl.glVertex3f(fXPosition,Y_AXIS_LOW,AXIS_Z);
    gl.glVertex3f(fXPosition,renderStyle.getAxisHeight(),AXIS_Z);
    gl.glVertex3f(fXPosition - AXIS_MARKER_WIDTH,renderStyle.getAxisHeight(),AXIS_Z);
    gl.glVertex3f(fXPosition + AXIS_MARKER_WIDTH,renderStyle.getAxisHeight(),AXIS_Z);
    gl.glEnd();
    gl.glDisable(GL.GL_LINE_STIPPLE);
    if (detailLevel != EDetailLevel.HIGH || !renderStyle.isEnoughSpaceForText(iNumberAxis)) {
      gl.glPopName();
    }
    float fXButtonOrigin=alAxisSpacing.get(iCount);
    Texture tempTexture=textureManager.getIconTexture(gl,EIconTextures.NAN);
    tempTexture.enable();
    tempTexture.bind();
    TextureCoords texCoords=tempTexture.getImageTexCoords();
    int iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.REMOVE_NAN,axisVA.get(iCount));
    gl.glColor4f(1,1,1,1f);
    gl.glPushName(iPickingID);
    gl.glBegin(GL.GL_POLYGON);
    gl.glTexCoord2f(texCoords.left(),texCoords.bottom());
    gl.glVertex3f(fXButtonOrigin - 0.03f,ParCoordsRenderStyle.NAN_Y_OFFSET - 0.03f,ParCoordsRenderStyle.NAN_Z);
    gl.glTexCoord2f(texCoords.right(),texCoords.bottom());
    gl.glVertex3f(fXButtonOrigin + 0.03f,ParCoordsRenderStyle.NAN_Y_OFFSET - 0.03f,ParCoordsRenderStyle.NAN_Z);
    gl.glTexCoord2f(texCoords.right(),texCoords.top());
    gl.glVertex3f(fXButtonOrigin + 0.03f,ParCoordsRenderStyle.NAN_Y_OFFSET + 0.03f,ParCoordsRenderStyle.NAN_Z);
    gl.glTexCoord2f(texCoords.left(),texCoords.top());
    gl.glVertex3f(fXButtonOrigin - 0.03f,ParCoordsRenderStyle.NAN_Y_OFFSET + 0.03f,ParCoordsRenderStyle.NAN_Z);
    gl.glEnd();
    gl.glPopName();
    tempTexture.disable();
    if (detailLevel == EDetailLevel.HIGH) {
      float fMarkerSpacing=renderStyle.getAxisHeight() / (NUMBER_AXIS_MARKERS + 1);
      for (int iInnerCount=1; iInnerCount <= NUMBER_AXIS_MARKERS; iInnerCount++) {
        float fCurrentHeight=fMarkerSpacing * iInnerCount;
        if (iCount == 0) {
          if (set.isSetHomogeneous()) {
            float fNumber=(float)set.getRawForNormalized(fCurrentHeight / renderStyle.getAxisHeight());
            Rectangle2D bounds=textRenderer.getBounds(getDecimalFormat().format(fNumber));
            float fWidth=(float)bounds.getWidth() * renderStyle.getSmallFontScalingFactor();
            float fHeightHalf=(float)bounds.getHeight() * renderStyle.getSmallFontScalingFactor() / 3;
            renderNumber(getDecimalFormat().format(fNumber),fXPosition - fWidth - AXIS_MARKER_WIDTH,fCurrentHeight - fHeightHalf);
          }
 else {
          }
        }
        gl.glColor3fv(Y_AXIS_COLOR,0);
        gl.glBegin(GL.GL_LINES);
        gl.glVertex3f(fXPosition - AXIS_MARKER_WIDTH,fCurrentHeight,AXIS_Z);
        gl.glVertex3f(fXPosition + AXIS_MARKER_WIDTH,fCurrentHeight,AXIS_Z);
        gl.glEnd();
      }
      String sAxisLabel=null;
switch (eAxisDataType) {
case EXPRESSION_INDEX:
        sAxisLabel=GeneticIDMappingHelper.get().getShortNameFromExpressionIndex(set.getVA(iAxisVAID).get(iCount));
      if (sAxisLabel == null)       sAxisLabel="String_Node_Str";
    break;
case EXPERIMENT:
default :
  if (bRenderStorageHorizontally) {
    sAxisLabel="String_Node_Str";
  }
 else   sAxisLabel=set.getStorageFromVA(iStorageVAID,iCount).getLabel();
break;
}
gl.glPushAttrib(GL.GL_CURRENT_BIT | GL.GL_LINE_BIT);
gl.glTranslatef(fXPosition,renderStyle.getAxisHeight() + renderStyle.getAxisCaptionSpacing(),0);
gl.glRotatef(25,0,0,1);
textRenderer.begin3DRendering();
float fScaling=renderStyle.getSmallFontScalingFactor();
if (isRenderedRemote()) fScaling*=1.5f;
textRenderer.draw3D(sAxisLabel,0,0,0,fScaling);
textRenderer.end3DRendering();
gl.glRotatef(-25,0,0,1);
gl.glTranslatef(-fXPosition,-(renderStyle.getAxisHeight() + renderStyle.getAxisCaptionSpacing()),0);
if (set.isSetHomogeneous()) {
}
 else {
}
gl.glPopAttrib();
iPickingID=-1;
float fYDropOrigin=-ParCoordsRenderStyle.AXIS_BUTTONS_Y_OFFSET;
gl.glBlendFunc(GL.GL_ONE,GL.GL_ONE_MINUS_SRC_ALPHA);
float fYGateAddOrigin=renderStyle.getAxisHeight();
iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.ADD_GATE,axisVA.get(iCount));
tempTexture=textureManager.getIconTexture(gl,EIconTextures.ADD_GATE);
tempTexture.enable();
tempTexture.bind();
texCoords=tempTexture.getImageTexCoords();
gl.glColor4f(1,1,1,1f);
gl.glPushName(iPickingID);
gl.glBegin(GL.GL_POLYGON);
gl.glTexCoord2f(texCoords.left(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin - 0.03f,fYGateAddOrigin,AXIS_Z);
gl.glTexCoord2f(texCoords.right(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin + 0.03f,fYGateAddOrigin,AXIS_Z);
gl.glTexCoord2f(texCoords.right(),texCoords.top());
gl.glVertex3f(fXButtonOrigin + 0.03f,fYGateAddOrigin + 0.12f,AXIS_Z);
gl.glTexCoord2f(texCoords.left(),texCoords.top());
gl.glVertex3f(fXButtonOrigin - 0.03f,fYGateAddOrigin + 0.12f,AXIS_Z);
gl.glEnd();
gl.glPopName();
tempTexture.disable();
if (selectedSet.contains(axisVA.get(iCount)) || mouseOverSet.contains(axisVA.get(iCount))) {
if (iChangeDropOnAxisNumber == iCount) {
tempTexture=textureManager.getIconTexture(gl,dropTexture);
if (!bWasAxisMoved) {
  dropTexture=EIconTextures.DROP_NORMAL;
}
}
 else {
tempTexture=textureManager.getIconTexture(gl,EIconTextures.DROP_NORMAL);
}
tempTexture.enable();
tempTexture.bind();
texCoords=tempTexture.getImageTexCoords();
gl.glColor4f(1,1,1,1);
gl.glBegin(GL.GL_POLYGON);
gl.glTexCoord2f(texCoords.left(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin - 0.15f,fYDropOrigin - 0.3f,AXIS_Z + 0.005f);
gl.glTexCoord2f(texCoords.right(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin + 0.15f,fYDropOrigin - 0.3f,AXIS_Z + 0.005f);
gl.glTexCoord2f(texCoords.right(),texCoords.top());
gl.glVertex3f(fXButtonOrigin + 0.15f,fYDropOrigin,AXIS_Z + 0.005f);
gl.glTexCoord2f(texCoords.left(),texCoords.top());
gl.glVertex3f(fXButtonOrigin - 0.15f,fYDropOrigin,AXIS_Z + 0.005f);
gl.glEnd();
tempTexture.disable();
iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.MOVE_AXIS,iCount);
gl.glColor4f(0,0,0,0f);
gl.glPushName(iPickingID);
gl.glBegin(GL.GL_TRIANGLES);
gl.glVertex3f(fXButtonOrigin,fYDropOrigin,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin + 0.08f,fYDropOrigin - 0.3f,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin - 0.08f,fYDropOrigin - 0.3f,AXIS_Z + 0.01f);
gl.glEnd();
gl.glPopName();
iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.DUPLICATE_AXIS,iCount);
gl.glPushName(iPickingID);
gl.glBegin(GL.GL_TRIANGLES);
gl.glVertex3f(fXButtonOrigin,fYDropOrigin,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin - 0.08f,fYDropOrigin - 0.21f,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin - 0.23f,fYDropOrigin - 0.21f,AXIS_Z + 0.01f);
gl.glEnd();
gl.glPopName();
iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.REMOVE_AXIS,iCount);
gl.glPushName(iPickingID);
gl.glBegin(GL.GL_TRIANGLES);
gl.glVertex3f(fXButtonOrigin,fYDropOrigin,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin + 0.08f,fYDropOrigin - 0.21f,AXIS_Z + 0.01f);
gl.glVertex3f(fXButtonOrigin + 0.23f,fYDropOrigin - 0.21f,AXIS_Z + 0.01f);
gl.glEnd();
gl.glPopName();
}
 else {
iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.MOVE_AXIS,iCount);
tempTexture=textureManager.getIconTexture(gl,EIconTextures.SMALL_DROP);
tempTexture.enable();
tempTexture.bind();
texCoords=tempTexture.getImageTexCoords();
gl.glPushAttrib(GL.GL_CURRENT_BIT | GL.GL_LINE_BIT);
gl.glColor4f(1,1,1,1);
gl.glPushName(iPickingID);
gl.glBegin(GL.GL_POLYGON);
gl.glTexCoord2f(texCoords.left(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin - 0.05f,fYDropOrigin - 0.2f,AXIS_Z);
gl.glTexCoord2f(texCoords.right(),texCoords.bottom());
gl.glVertex3f(fXButtonOrigin + 0.05f,fYDropOrigin - 0.2f,AXIS_Z);
gl.glTexCoord2f(texCoords.right(),texCoords.top());
gl.glVertex3f(fXButtonOrigin + 0.05f,fYDropOrigin,AXIS_Z);
gl.glTexCoord2f(texCoords.left(),texCoords.top());
gl.glVertex3f(fXButtonOrigin - 0.05f,fYDropOrigin,AXIS_Z);
gl.glEnd();
gl.glPopName();
gl.glPopAttrib();
tempTexture.disable();
}
gl.glBlendFunc(GL.GL_SRC_ALPHA,GL.GL_ONE_MINUS_SRC_ALPHA);
gl.glPopName();
}
iCount++;
}
}