public Joint readNodeAsBone(int nodeIndex, int jointIndex, int skinIndex, Matrix4f inverseModelBindMatrix) throws IOException {
JointWrapper jointWrapper = fetchFromCache("nodes", nodeIndex, JointWrapper.class);
if (jointWrapper != null) {
return jointWrapper.joint;
}
JsonObject nodeData = nodes.get(nodeIndex).getAsJsonObject();
String name = getAsString(nodeData, "name");
if (name == null) {
name = "Joint_" + nodeIndex;
}
Joint joint = new Joint(name);
Transform boneTransforms = null;
boneTransforms = readTransforms(nodeData);
joint.setLocalTransform(boneTransforms);
joint.setInverseModelBindMatrix(inverseModelBindMatrix);
addToCache("nodes", nodeIndex, new JointWrapper(joint, jointIndex, skinIndex), nodes.size());
return joint;
}