PageRenderTime 49ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/PhysicsEngines/JigLib/JigLibDatatypesMapping.cs

#
C# | 119 lines | 78 code | 6 blank | 35 comment | 0 complexity | ce8fa8e8a25e30a30e0673adb64dd6a3 MD5 | raw file
Possible License(s): Apache-2.0
  1. using Delta.Utilities.Datatypes;
  2. using Microsoft.Xna.Framework;
  3. using Matrix = Delta.Utilities.Datatypes.Matrix;
  4. using XnaMatrix = Microsoft.Xna.Framework.Matrix;
  5. namespace Delta.PhysicsEngines.JigLib
  6. {
  7. /// <summary>
  8. /// Performs mapping between JigLibX and DeltaEngine.
  9. /// </summary>
  10. internal static class JigLibDatatypesMapping
  11. {
  12. #region Convert (Static)
  13. /// <summary>
  14. /// Convert XNA Vector3 used by JigLibX to Delta Vector.
  15. /// </summary>
  16. /// <param name="vector">The source Xna vector.</param>
  17. /// <param name="result">The converted delta vector.</param>
  18. public static void Convert(ref Vector3 vector, out Vector result)
  19. {
  20. result = new Vector
  21. {
  22. X = vector.X,
  23. Y = vector.Y,
  24. Z = vector.Z
  25. };
  26. }
  27. /// <summary>
  28. /// Convert XNA Vector3 used by JigLibX to Delta Vector.
  29. /// </summary>
  30. /// <param name="vector">The source Xna vector.</param>
  31. /// <param name="result">The converted delta vector.</param>
  32. public static void Convert(Vector3 vector, out Vector result)
  33. {
  34. result = new Vector
  35. {
  36. X = vector.X,
  37. Y = vector.Y,
  38. Z = vector.Z
  39. };
  40. }
  41. /// <summary>
  42. /// Convert Delta vector to XNA Vector3 used by JigLibX.
  43. /// </summary>
  44. /// <param name="vector">The source delta vector.</param>
  45. /// <returns>The converted Xna Vector3 vector.</returns>
  46. public static Vector3 Convert(ref Vector vector)
  47. {
  48. return new Vector3(vector.X, vector.Y, vector.Z);
  49. }
  50. /// <summary>
  51. /// Convert Delta Vector to Xna Vector3 used by JigLibX.
  52. /// </summary>
  53. /// <param name="vector">The source Delta vector.</param>
  54. /// <param name="result">The converted Xna vector.</param>
  55. public static void Convert(ref Vector vector, out Vector3 result)
  56. {
  57. result.X = vector.X;
  58. result.Y = vector.Y;
  59. result.Z = vector.Z;
  60. }
  61. /// <summary>
  62. /// Slow version of the JMatrix to Delta Matrix conversion. Used
  63. /// when properties are involved (we cannot pass them as ref and would
  64. /// need local copies anyway) and performance is not super critical.
  65. /// </summary>
  66. /// <param name="inputValue">The input value.</param>
  67. /// <returns>Delta engine Matrix created from Xna Matrix.</returns>
  68. public static void Convert(XnaMatrix matrix, ref Matrix result)
  69. {
  70. result.M11 = matrix.M11;
  71. result.M12 = matrix.M12;
  72. result.M13 = matrix.M13;
  73. result.M14 = matrix.M14;
  74. result.M21 = matrix.M21;
  75. result.M22 = matrix.M22;
  76. result.M23 = matrix.M23;
  77. result.M24 = matrix.M24;
  78. result.M31 = matrix.M31;
  79. result.M32 = matrix.M32;
  80. result.M33 = matrix.M33;
  81. result.M34 = matrix.M34;
  82. result.M41 = matrix.M41;
  83. result.M42 = matrix.M42;
  84. result.M43 = matrix.M43;
  85. result.M44 = matrix.M44;
  86. }
  87. /// <summary>
  88. /// Convert DeltaEngine Matrix to XNA Matrix used by JigLibX.
  89. /// </summary>
  90. /// <param name="matrix">The matrix.</param>
  91. /// <param name="result">The result.</param>
  92. public static void Convert(ref Matrix matrix, out XnaMatrix result)
  93. {
  94. result.M11 = matrix.M11;
  95. result.M12 = matrix.M12;
  96. result.M13 = matrix.M13;
  97. result.M14 = matrix.M14;
  98. result.M21 = matrix.M21;
  99. result.M22 = matrix.M22;
  100. result.M23 = matrix.M23;
  101. result.M24 = matrix.M24;
  102. result.M31 = matrix.M31;
  103. result.M32 = matrix.M32;
  104. result.M33 = matrix.M33;
  105. result.M34 = matrix.M34;
  106. result.M41 = matrix.M41;
  107. result.M42 = matrix.M42;
  108. result.M43 = matrix.M43;
  109. result.M44 = matrix.M44;
  110. }
  111. #endregion
  112. }
  113. }