public static void Compose(ref Transform2D key1, ref Transform2D key2, ref Vector2 flipping, out Transform2D result) { result.Pos = key1.TransformPoint(key2.Pos, flipping); result.Rot = key1.Rot + key2.Rot; result.Scale = key1.Scale * key2.Scale; result.Origin = key2.Origin; }
public static void Compose(ref Transform2D key1, ref Transform2D key2, out Transform2D result) { Vector2 transformedPos = key1.TransformPoint(key2.Pos); result.Pos = transformedPos; result.Rot = key1.Rot + key2.Rot; result.Scale = key1.Scale * key2.Scale; }
public static void Compose(ref Transform2D key1, ref Transform2D key2, out Transform2D result) { Vector2 key2Origin = key2.Pos - key2.Origin; Vector2 transformedPos = key1.TransformPoint(key2Origin); result.Pos = transformedPos + key2.Origin * key1.Scale; result.Rot = key1.Rot + key2.Rot; result.Scale = key1.Scale * key2.Scale; result.Origin = key2.Origin; }
public static Transform2D Compose(Transform2D key1, Transform2D key2) { Transform2D result = new Transform2D(); Vector2 transformedPos = key1.TransformPoint(key2.Pos); result.Pos = transformedPos; result.Rot = key1.Rot + key2.Rot; result.Scale = key1.Scale * key2.Scale; return result; }
public static Transform2D Compose(Transform2D key1, Transform2D key2) { Transform2D result = new Transform2D(); Vector2 transformedPos = key1.TransformPoint(key2.Pos); result.Pos = transformedPos; result.Rot = key1.Rot + key2.Rot; result.Scale = key1.Scale * key2.Scale; return(result); }
public static Transform2D Compose(Transform2D key1, Transform2D key2) { Transform2D result = new Transform2D(); Vector2 key2Origin = key2.Pos - key2.Origin; Vector2 transformedPos = key1.TransformPoint(key2Origin); result.Pos = transformedPos + key2.Origin * key1.Scale; result.Rot = key1.Rot + key2.Rot; result.Scale = key1.Scale * key2.Scale; result.Origin = key2.Origin; return result; // Old way that didn't take origin into account //Vector2 transformedPos = key1.TransformPoint(key2.Pos); //result.Pos = transformedPos; //result.Rot = key1.Rot + key2.Rot; //result.Scale = key1.Scale * key2.Scale; }
public static Transform2D Compose(Transform2D key1, Transform2D key2) { Transform2D result = new Transform2D(); Vector2 key2Origin = key2.Pos - key2.Origin; Vector2 transformedPos = key1.TransformPoint(key2Origin); result.Pos = transformedPos + key2.Origin * key1.Scale; result.Rot = key1.Rot + key2.Rot; result.Scale = key1.Scale * key2.Scale; result.Origin = key2.Origin; return(result); // Old way that didn't take origin into account //Vector2 transformedPos = key1.TransformPoint(key2.Pos); //result.Pos = transformedPos; //result.Rot = key1.Rot + key2.Rot; //result.Scale = key1.Scale * key2.Scale; }