1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-13 04:32:57 +08:00

Simplify scale origin computation

This commit is contained in:
Bartłomiej Dach 2024-05-23 14:07:43 +02:00
parent 070668c96f
commit 9e86a08405
No known key found for this signature in database

View File

@ -2,6 +2,7 @@
// See the LICENCE file in the repository root for full licence text.
using osu.Framework.Allocation;
using osu.Framework.Extensions;
using osu.Framework.Graphics;
using osu.Framework.Input.Events;
using osu.Framework.Utils;
@ -102,21 +103,8 @@ namespace osu.Game.Screens.Edit.Compose.Components
? new Vector2((rawScale.X + rawScale.Y) * 0.5f)
: rawScale;
scaleHandler!.Update(newScale, getOriginPosition(), getAdjustAxis());
}
private Vector2 getOriginPosition()
{
var quad = scaleHandler!.OriginalSurroundingQuad!.Value;
Vector2 origin = quad.TopLeft;
if ((originalAnchor & Anchor.x0) > 0)
origin.X += quad.Width;
if ((originalAnchor & Anchor.y0) > 0)
origin.Y += quad.Height;
return origin;
var scaleOrigin = originalAnchor.Opposite().PositionOnQuad(scaleHandler!.OriginalSurroundingQuad!.Value);
scaleHandler!.Update(newScale, scaleOrigin, getAdjustAxis());
}
private Axes getAdjustAxis()