private void drawHand()
    {
        // the x and z offset from the center-top point of the palm of the hand
        float[][] fingers = new float[][]
        {
            {
                -2*(this.hand[Y]/3), this.hand[Z]/1.5f
            }, // pinky :D
            
            {
                -this.hand[Y]/4.5F, this.hand[Z]/8f
            }, // ring finger
            
            {
                this.hand[Y]/4.5F, this.hand[Z]/8f
            }, // middle finger
            
            {
                2*(this.hand[Y]/3), this.hand[Z]/2f
            }
        }; // index finger
        // translate to the middle of the palm
        gl.glPushMatrix();
        //gl.glRotatef(90, 0f, 1f, 0f);
        //gl.glRotatef(-90, 1f, 0f, 0f);
        gl.glScalef(this.hand[X], this.hand[Y], this.hand[Z]);
        //glut.glutSolidSphere(1f, 16, 16);
        this.drawSphere(1F, 128, 128);
        gl.glScalef(1/this.hand[X], 1/this.hand[Y], 1/this.hand[Z]);
        //gl.glRotatef(-90, 0f, 1f, 0f);
        gl.glPushMatrix();
        // Thumb code
        {
            gl.glTranslatef(0F, this.hand[Y]/1.5F, this.hand[Z]/4F);
            gl.glRotatef(90, 0f, 0f, 1f);
            gl.glRotatef(-40, 0f, 1f, 0f);
            fingerpart();
            gl.glTranslatef(0f, 0f, -this.hand[Z]/3F);
            gl.glRotatef(15, 0f, 1f, 0f);
            fingerpart();
            gl.glTranslatef(0f, 0f, -this.hand[Z]/3F);
            gl.glRotatef(5, 0f, 1f, 0f);
            fingerpart();
        }
        gl.glPopMatrix();
        // Back to where we were and draw 4 fingers
        gl.glRotatef(90, 0F, 0F, 1F);
        gl.glTranslatef(0f, 0f, -this.hand[Z]);
        for (float[] finger : fingers)
        {
            gl.glPushMatrix();
            {
                gl.glTranslatef(finger[0], 0f, finger[1]);
                for (int i = 0; i < 3; i++)
                {
                    fingerpart();
                    gl.glTranslatef(0f, 0f, -this.hand[Z]/3F);
                }
            }
            gl.glPopMatrix();
            //gl.glTranslatef(0.05f, 0f, finger[1]);
        }
        gl.glPopMatrix();
    }