TypeWriters.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #region File Description
  2. //-----------------------------------------------------------------------------
  3. // TypeWriters.cs
  4. //
  5. // Microsoft XNA Community Game Platform
  6. // Copyright (C) Microsoft Corporation. All rights reserved.
  7. //-----------------------------------------------------------------------------
  8. #endregion
  9. #region Using Statements
  10. using Microsoft.Xna.Framework;
  11. using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler;
  12. using SkinnedModel;
  13. #endregion
  14. namespace SkinnedModelPipeline
  15. {
  16. /// <summary>
  17. /// Writes ModelAnimation objects into compiled XNB format.
  18. /// </summary>
  19. [ContentTypeWriter]
  20. public class SkinningDataWriter : ContentTypeWriter<SkinningData>
  21. {
  22. protected override void Write(ContentWriter output, SkinningData value)
  23. {
  24. output.WriteObject(value.AnimationClips);
  25. output.WriteObject(value.BindPose);
  26. output.WriteObject(value.InverseBindPose);
  27. output.WriteObject(value.SkeletonHierarchy);
  28. }
  29. public override string GetRuntimeReader(TargetPlatform targetPlatform)
  30. {
  31. return typeof(SkinningDataReader).AssemblyQualifiedName;
  32. }
  33. }
  34. /// <summary>
  35. /// Writes AnimationClip objects into compiled XNB format
  36. /// </summary>
  37. [ContentTypeWriter]
  38. public class AnimationClipWriter : ContentTypeWriter<AnimationClip>
  39. {
  40. protected override void Write(ContentWriter output, AnimationClip value)
  41. {
  42. output.WriteObject(value.Duration);
  43. output.WriteObject(value.Keyframes);
  44. }
  45. public override string GetRuntimeReader(TargetPlatform targetPlatform)
  46. {
  47. return typeof(AnimationClipReader).AssemblyQualifiedName;
  48. }
  49. }
  50. /// <summary>
  51. /// Writes Keyframe objects into compiled XNB format
  52. /// </summary>
  53. [ContentTypeWriter]
  54. public class KeyframeWriter : ContentTypeWriter<Keyframe>
  55. {
  56. protected override void Write(ContentWriter output, Keyframe value)
  57. {
  58. output.WriteObject(value.Bone);
  59. output.WriteObject(value.Time);
  60. output.WriteObject(value.Transform);
  61. }
  62. public override string GetRuntimeReader(TargetPlatform targetPlatform)
  63. {
  64. return typeof(KeyframeReader).AssemblyQualifiedName;
  65. }
  66. }
  67. }