/** * Interpolates unspecified translation values for objectIndex from start to end. * * @param objectIndex Index to interpolate. * @param startPosIndex Starting translation index. * @param endPosIndex Ending translation index. */ private void fillVecs(int objectIndex, int startPosIndex, int endPosIndex) { keyframes.get(startPosIndex).look[objectIndex].getTranslation(unSyncbeginPos); keyframes.get(endPosIndex).look[objectIndex].getTranslation(unSyncendPos); float startTime = keyframes.get(startPosIndex).time; float endTime = keyframes.get(endPosIndex).time; float delta = endTime - startTime; Vector3f tempVec = new Vector3f(); for (int i = startPosIndex + 1; i < endPosIndex; i++) { float thisTime = keyframes.get(i).time; tempVec.interpolate(unSyncbeginPos, unSyncendPos, (thisTime - startTime) / delta); keyframes.get(i).look[objectIndex].setTranslation(tempVec); } }