public void updateWorldTransforms(Transform jmeParentNodeTransform, Transform parentBindPose) {
        Transform fbxLocalTransform = computeFbxLocalTransform();
        jmeLocalNodeTransform.set(fbxLocalTransform);
        
        if (jmeParentNodeTransform != null) {
            jmeParentNodeTransform = jmeParentNodeTransform.clone();
            switch (inheritMode) {
                case NoParentScale:
                case ScaleAfterChildRotation:
                case ScaleBeforeChildRotation:
                    jmeWorldNodeTransform.set(jmeLocalNodeTransform);
                    jmeWorldNodeTransform.combineWithParent(jmeParentNodeTransform);
                    break;
            }
        } else {
            jmeWorldNodeTransform.set(jmeLocalNodeTransform);
        }
        
        if (jmeWorldBindPose != null) {
            jmeLocalBindPose = new Transform();
            
            // Need to derive local bind pose from world bind pose
            // (this is to be expected for FBX limbs)
            jmeLocalBindPose.set(jmeWorldBindPose);
            jmeLocalBindPose.combineWithParent(parentBindPose.invert());
            
            // It's somewhat odd for the transforms to differ ...
//            System.out.println("Bind Pose for: " + getName());
//            if (!jmeLocalBindPose.equals(jmeLocalNodeTransform)) {
//                System.out.println("Local Bind: " + jmeLocalBindPose);
//                System.out.println("Local Trans: " + jmeLocalNodeTransform);
//            }
//            if (!jmeWorldBindPose.equals(jmeWorldNodeTransform)) {
//                System.out.println("World Bind: " + jmeWorldBindPose);
//                System.out.println("World Trans: " + jmeWorldNodeTransform);
//            }
        } else {
            // World pose derived from local transforms
            // (this is to be expected for FBX nodes)
            jmeLocalBindPose = new Transform();
            jmeWorldBindPose = new Transform();
            
            jmeLocalBindPose.set(jmeLocalNodeTransform);
            if (parentBindPose != null) {
                jmeWorldBindPose.set(jmeLocalNodeTransform);
                jmeWorldBindPose.combineWithParent(parentBindPose);
            } else {
                jmeWorldBindPose.set(jmeWorldNodeTransform);
            }
        }
        
        for (FbxNode child : children) {
            child.updateWorldTransforms(jmeWorldNodeTransform, jmeWorldBindPose);
        }
    }
For FBX nodes that contain a skeleton (i.e. FBX limbs).
jme3-plugins/src/fbx/java/com/jme3/scene/plugins/fbx/node/FbxNode.java