public static List<odfKeyframe> ConvertTrack(ImportedAnimationKeyframe[] iKeyframes) { List<odfKeyframe> keyframes = new List<odfKeyframe>(iKeyframes.Length); for (int i = 0; i < iKeyframes.Length; i++) { ImportedAnimationKeyframe iKeyframe = iKeyframes[i]; if (iKeyframe == null) continue; odfKeyframe keyframe = new odfKeyframe(); keyframes.Add(keyframe); odf.CreateUnknowns(keyframe); keyframe.Index = i; keyframe.FastTranslation = iKeyframe.Translation; // keyframe.FastRotation = FbxUtility.QuaternionToEuler(iKeyframe.Rotation); not used, always 0 keyframe.FastScaling = iKeyframe.Scaling; keyframe.ExtraFastRotation = iKeyframe.Rotation; keyframe.Matrix = Matrix.Scaling(iKeyframe.Scaling) * Matrix.RotationQuaternion(iKeyframe.Rotation) * Matrix.Translation(iKeyframe.Translation); } keyframes.TrimExcess(); return keyframes; }
public static void CreateUnknowns(odfKeyframe keyframe) { UnknownDefaults.odfKeyframe(keyframe); }