protected override IKeyframe DeserializeKeyframe(XElement serializedData) { SkeletalKeyframe newKeyframe = new SkeletalKeyframe(); newKeyframe.Deserialize(serializedData); return newKeyframe; }
protected override IKeyframe DeserializeKeyframe(XElement serializedData) { SkeletalKeyframe newKeyframe = new SkeletalKeyframe(); newKeyframe.Deserialize(serializedData); return(newKeyframe); }
private void UpdateSpritesheetSettings(string boneID, IBone bone, SkeletalKeyframe keyFrame) { if (keyFrame.BoneAnimationData.ContainsKey(boneID)) { bone.ApplySkin( keyFrame.BoneAnimationData[boneID].TextureName, keyFrame.BoneAnimationData[boneID].Origin, keyFrame.BoneAnimationData[boneID].SourceArea); } }
private void SetFrameEndpoints(string boneID, SkeletalKeyframe keyFrame) { if (!_boneFrameEndValues.ContainsKey(boneID)) { _boneFrameEndValues.Add(boneID, new SkeletalKeyframe.DataContainer()); } if (keyFrame.BoneAnimationData.ContainsKey(boneID)) { if (!float.IsNegativeInfinity(keyFrame.BoneAnimationData[boneID].Offset.X)) { _boneFrameEndValues[boneID].Offset = keyFrame.BoneAnimationData[boneID].Offset; } else { _boneFrameEndValues[boneID].Offset = _boneFrameStartValues[boneID].Offset; } if (keyFrame.BoneAnimationData[boneID].Rotation >= 0.0f) { _boneFrameEndValues[boneID].Rotation = _boneFrameStartValues[boneID].Rotation + Utility.AngleDifference(_boneFrameStartValues[boneID].Rotation, keyFrame.BoneAnimationData[boneID].Rotation); } else { _boneFrameEndValues[boneID].Rotation = _boneFrameStartValues[boneID].Rotation; } if (keyFrame.BoneAnimationData[boneID].Scale >= 0.0f) { _boneFrameEndValues[boneID].Scale = keyFrame.BoneAnimationData[boneID].Scale; } else { _boneFrameEndValues[boneID].Scale = _boneFrameStartValues[boneID].Scale; } } else { _boneFrameEndValues[boneID] = _boneFrameStartValues[boneID]; } }
private static void AddSkeletalKeyframe(string sequenceName, XElement xmlFrameData) { SkeletalKeyframe newKeyframe = new SkeletalKeyframe(); newKeyframe.DurationInMilliseconds = (int)xmlFrameData.Attribute("duration"); foreach (XElement bone in xmlFrameData.Elements("bonedata")) { SkeletalKeyframe.DataContainer boneKeyframeData = new SkeletalKeyframe.DataContainer(); if (bone.Attribute("rotation") != null) { boneKeyframeData.Rotation = Utility.RectifyAngle(MathHelper.ToRadians((float)bone.Attribute("rotation"))); } if (bone.Attribute("scale") != null) { boneKeyframeData.Scale = (float)bone.Attribute("scale"); } if ((bone.Attribute("offset-x") != null) && (bone.Attribute("offset-y") != null)) { boneKeyframeData.Offset = new Vector2((float)bone.Attribute("offset-x"), (float)bone.Attribute("offset-y")); } if (bone.Element("texture") != null) { if (bone.Element("texture").Attribute("name") != null) { boneKeyframeData.TextureName = bone.Element("texture").Attribute("name").Value; } if ((bone.Attribute("origin-x") != null) && (bone.Attribute("origin-y") != null)) { boneKeyframeData.Origin = new Vector2((float)bone.Attribute("origin-x"), (float)bone.Attribute("origin-y")); } if ((bone.Element("texture").Attribute("frame-x") != null) && (bone.Element("texture").Attribute("frame-y") != null) && (bone.Element("texture").Attribute("frame-width") != null) && (bone.Element("texture").Attribute("frame-height") != null)) { Rectangle frame = new Rectangle((int)bone.Element("texture").Attribute("frame-x"), (int)bone.Element("texture").Attribute("frame-y"), (int)bone.Element("texture").Attribute("frame-width"), (int)bone.Element("texture").Attribute("frame-height")); boneKeyframeData.SourceArea = frame; } } newKeyframe.BoneAnimationData.Add(bone.Attribute("id").Value, boneKeyframeData); } AddKeyframe(sequenceName, newKeyframe); }
private void UpdateSpritesheetSettings(string boneID, IBone bone, SkeletalKeyframe keyFrame) { if (keyFrame.BoneAnimationData.ContainsKey(boneID)) { bone.ApplySkin( keyFrame.BoneAnimationData[boneID].TextureName, keyFrame.BoneAnimationData[boneID].Origin, keyFrame.BoneAnimationData[boneID].SourceArea); } }
private void SetFrameEndpoints(string boneID, SkeletalKeyframe keyFrame) { if (!_boneFrameEndValues.ContainsKey(boneID)) { _boneFrameEndValues.Add(boneID, new SkeletalKeyframe.DataContainer()); } if (keyFrame.BoneAnimationData.ContainsKey(boneID)) { if (!float.IsNegativeInfinity(keyFrame.BoneAnimationData[boneID].Offset.X)) { _boneFrameEndValues[boneID].Offset = keyFrame.BoneAnimationData[boneID].Offset; } else { _boneFrameEndValues[boneID].Offset = _boneFrameStartValues[boneID].Offset; } if (keyFrame.BoneAnimationData[boneID].Rotation >= 0.0f) { _boneFrameEndValues[boneID].Rotation = _boneFrameStartValues[boneID].Rotation + Utility.AngleDifference(_boneFrameStartValues[boneID].Rotation, keyFrame.BoneAnimationData[boneID].Rotation); } else { _boneFrameEndValues[boneID].Rotation = _boneFrameStartValues[boneID].Rotation; } if (keyFrame.BoneAnimationData[boneID].Scale >= 0.0f) { _boneFrameEndValues[boneID].Scale = keyFrame.BoneAnimationData[boneID].Scale; } else { _boneFrameEndValues[boneID].Scale = _boneFrameStartValues[boneID].Scale; } } else { _boneFrameEndValues[boneID] = _boneFrameStartValues[boneID]; } }