123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- using Microsoft.Xna.Framework;
- namespace FarseerPhysics.SamplesFramework
- {
- /// <summary>
- /// Convert units between display and simulation units.
- /// </summary>
- public static class ConvertUnits
- {
- private static float _displayUnitsToSimUnitsRatio = 100f;
- private static float _simUnitsToDisplayUnitsRatio = 1 / _displayUnitsToSimUnitsRatio;
- public static void SetDisplayUnitToSimUnitRatio(float displayUnitsPerSimUnit)
- {
- _displayUnitsToSimUnitsRatio = displayUnitsPerSimUnit;
- _simUnitsToDisplayUnitsRatio = 1 / displayUnitsPerSimUnit;
- }
- public static float ToDisplayUnits(float simUnits)
- {
- return simUnits * _displayUnitsToSimUnitsRatio;
- }
- public static float ToDisplayUnits(int simUnits)
- {
- return simUnits * _displayUnitsToSimUnitsRatio;
- }
- public static Vector2 ToDisplayUnits(Vector2 simUnits)
- {
- return simUnits * _displayUnitsToSimUnitsRatio;
- }
- public static void ToDisplayUnits(ref Vector2 simUnits, out Vector2 displayUnits)
- {
- Vector2.Multiply(ref simUnits, _displayUnitsToSimUnitsRatio, out displayUnits);
- }
- public static Vector3 ToDisplayUnits(Vector3 simUnits)
- {
- return simUnits * _displayUnitsToSimUnitsRatio;
- }
- public static Vector2 ToDisplayUnits(float x, float y)
- {
- return new Vector2(x, y) * _displayUnitsToSimUnitsRatio;
- }
- public static void ToDisplayUnits(float x, float y, out Vector2 displayUnits)
- {
- displayUnits = Vector2.Zero;
- displayUnits.X = x * _displayUnitsToSimUnitsRatio;
- displayUnits.Y = y * _displayUnitsToSimUnitsRatio;
- }
- public static float ToSimUnits(float displayUnits)
- {
- return displayUnits * _simUnitsToDisplayUnitsRatio;
- }
- public static float ToSimUnits(double displayUnits)
- {
- return (float)displayUnits * _simUnitsToDisplayUnitsRatio;
- }
- public static float ToSimUnits(int displayUnits)
- {
- return displayUnits * _simUnitsToDisplayUnitsRatio;
- }
- public static Vector2 ToSimUnits(Vector2 displayUnits)
- {
- return displayUnits * _simUnitsToDisplayUnitsRatio;
- }
- public static Vector3 ToSimUnits(Vector3 displayUnits)
- {
- return displayUnits * _simUnitsToDisplayUnitsRatio;
- }
- public static void ToSimUnits(ref Vector2 displayUnits, out Vector2 simUnits)
- {
- Vector2.Multiply(ref displayUnits, _simUnitsToDisplayUnitsRatio, out simUnits);
- }
- public static Vector2 ToSimUnits(float x, float y)
- {
- return new Vector2(x, y) * _simUnitsToDisplayUnitsRatio;
- }
- public static Vector2 ToSimUnits(double x, double y)
- {
- return new Vector2((float)x, (float)y) * _simUnitsToDisplayUnitsRatio;
- }
- public static void ToSimUnits(float x, float y, out Vector2 simUnits)
- {
- simUnits = Vector2.Zero;
- simUnits.X = x * _simUnitsToDisplayUnitsRatio;
- simUnits.Y = y * _simUnitsToDisplayUnitsRatio;
- }
- }
- }
|