private static boolean haveAnyChannel(FbxAnimNode anims) { return anims != null && anims.haveAnyChannel(); }
animTranslation.exportTimes(stamps); if(haveRotation) animRotation.exportTimes(stamps); if(haveScale) animScale.exportTimes(stamps); if(stamps.isEmpty()) continue; int keyIndex = firstKeyIndex + i; FbxAnimNode n = animTranslation; Vector3f tvec = n.getValue(keyTimes[keyIndex], n.value).subtractLocal(n.value); // Why do it here but not in other places? FBX magic? translations[i] = tvec.divideLocal(unitSize); int keyIndex = firstKeyIndex + i; FbxAnimNode n = animRotation; Vector3f tvec = n.getValue(keyTimes[keyIndex], n.value); rotations[i] = ro.rotate(tvec); int keyIndex = firstKeyIndex + i; FbxAnimNode n = animScale; Vector3f tvec = n.getValue(keyTimes[keyIndex], n.value); scales[i] = tvec;
break; case "AnimationCurveNode": obj = new FbxAnimNode(this, e); break; default:
animTranslation.exportTimes(stamps); if(haveRotation) animRotation.exportTimes(stamps); if(haveScale) animScale.exportTimes(stamps); if(stamps.isEmpty()) continue; int keyIndex = firstKeyIndex + i; FbxAnimNode n = animTranslation; Vector3f tvec = n.getValue(keyTimes[keyIndex], n.value).subtractLocal(n.value); // Why do it here but not in other places? FBX magic? translations[i] = tvec.divideLocal(unitSize); int keyIndex = firstKeyIndex + i; FbxAnimNode n = animRotation; Vector3f tvec = n.getValue(keyTimes[keyIndex], n.value); rotations[i] = ro.rotate(tvec); int keyIndex = firstKeyIndex + i; FbxAnimNode n = animScale; Vector3f tvec = n.getValue(keyTimes[keyIndex], n.value); scales[i] = tvec;
break; case "AnimationCurveNode": obj = new FbxAnimNode(this, e); break; default:
private static boolean haveAnyChannel(FbxAnimNode anims) { return anims != null && anims.haveAnyChannel(); }