jc.processController();
    private void readJoints() throws IOException {        float fAnimationFPS=inFile.readFloat();        float curTime=inFile.readFloat();     // Ignore currentTime        int iTotalFrames=inFile.readInt();      // Ignore total Frames        int nNumJoints=inFile.readUnsignedShort();        String[] jointNames=new String[nNumJoints];        String[] parentNames=new String[nNumJoints];        JointController jc=new JointController(nNumJoints);        jc.FPS=fAnimationFPS;        for (int i=0;i<nNumJoints;i++){            inFile.readByte();  // Ignore flags            inFile.readFully(tempChar,0,32);            jointNames[i]=cutAtNull(tempChar);            inFile.readFully(tempChar,0,32);            parentNames[i]=cutAtNull(tempChar);            jc.localRefMatrix[i].setEulerRot(inFile.readFloat(),inFile.readFloat(),inFile.readFloat());            jc.localRefMatrix[i].setTranslation(inFile.readFloat(),inFile.readFloat(),inFile.readFloat());            int numKeyFramesRot=inFile.readUnsignedShort();            int numKeyFramesTrans=inFile.readUnsignedShort();            for (int j=0;j<numKeyFramesRot;j++)                jc.setRotation(i,inFile.readFloat(),inFile.readFloat(),inFile.readFloat(),inFile.readFloat());            for (int j=0;j<numKeyFramesTrans;j++)                jc.setTranslation(i,inFile.readFloat(),inFile.readFloat(),inFile.readFloat(),inFile.readFloat());        }        for (int i=0;i<nNumJoints;i++){            jc.parentIndex[i]=-1;            for (int j=0;j<nNumJoints;j++){                if (parentNames[i].equals(jointNames[j])) jc.parentIndex[i]=j;            }        }        jc.processController();        finalNode.addController(jc);    }