namespace Syntriax.Engine.Core; /// /// Represents the transformation properties of an object such as position, scale, and rotation in 2D space. /// public interface ITransform2D : IBehaviour { /// /// Event triggered when the of the changes. /// Event OnPositionChanged { get; } /// /// Event triggered when the of the changes. /// Event OnScaleChanged { get; } /// /// Event triggered when the of the changes. /// Event OnRotationChanged { get; } /// /// The world position of the in 2D space. /// Vector2D Position { get; set; } /// /// The world scale of the . /// Vector2D Scale { get; set; } /// /// The world rotation of the in degrees. /// float Rotation { get; set; } /// /// The local position of the in 2D space. /// Vector2D LocalPosition { get; set; } /// /// The local scale of the . /// Vector2D LocalScale { get; set; } /// /// The local rotation of the in degrees. /// float LocalRotation { get; set; } /// /// Arguments for the event triggered when the 's rotation changes. /// /// The previous of the . readonly record struct PositionChangedArguments(Vector2D PreviousPosition); /// /// Arguments for the event triggered when the 's rotation changes. /// /// The previous of the . readonly record struct ScaleChangedArguments(Vector2D PreviousScale); /// /// Arguments for the event triggered when the 's rotation changes. /// /// The previous of the . readonly record struct RotationChangedArguments(float PreviousRotation); }