106 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
namespace Engine.Core;
 | 
						|
 | 
						|
/// <summary>
 | 
						|
/// Represents the transformation properties of an object such as position, scale, and rotation in 3D space.
 | 
						|
/// </summary>
 | 
						|
public interface ITransform3D : IBehaviour
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Event triggered when the <see cref="Position"/> of the <see cref="ITransform3D"/> changes.
 | 
						|
    /// </summary>
 | 
						|
    Event<ITransform3D, PositionChangedArguments> OnPositionChanged { get; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Event triggered when the <see cref="Scale"/> of the <see cref="ITransform3D"/> changes.
 | 
						|
    /// </summary>
 | 
						|
    Event<ITransform3D, ScaleChangedArguments> OnScaleChanged { get; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Event triggered when the <see cref="Rotation"/> of the <see cref="ITransform3D"/> changes.
 | 
						|
    /// </summary>
 | 
						|
    Event<ITransform3D, RotationChangedArguments> OnRotationChanged { get; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Event triggered when any of the properties of the <see cref="ITransform3D"/> gets updated.
 | 
						|
    /// </summary>
 | 
						|
    Event<ITransform3D> OnTransformUpdated { get; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The <see cref="Vector3D"/> pointing upwards in world space.
 | 
						|
    /// </summary>
 | 
						|
    Vector3D Up { get; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The <see cref="Vector3D"/> pointing upwards in world space.
 | 
						|
    /// </summary>
 | 
						|
    Vector3D Down { get; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The <see cref="Vector3D"/> pointing upwards in world space.
 | 
						|
    /// </summary>
 | 
						|
    Vector3D Left { get; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The <see cref="Vector3D"/> pointing upwards in world space.
 | 
						|
    /// </summary>
 | 
						|
    Vector3D Right { get; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The <see cref="Vector3D"/> pointing forwards in world space.
 | 
						|
    /// </summary>
 | 
						|
    Vector3D Forward { get; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The <see cref="Vector3D"/> pointing backwards in world space.
 | 
						|
    /// </summary>
 | 
						|
    Vector3D Backward { get; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The world position of the <see cref="ITransform3D"/> in 3D space.
 | 
						|
    /// </summary>
 | 
						|
    Vector3D Position { get; set; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The world scale of the <see cref="ITransform3D"/>.
 | 
						|
    /// </summary>
 | 
						|
    Vector3D Scale { get; set; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The world rotation of the <see cref="ITransform3D"/> in degrees.
 | 
						|
    /// </summary>
 | 
						|
    Quaternion Rotation { get; set; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The local position of the <see cref="ITransform3D"/> in 3D space.
 | 
						|
    /// </summary>
 | 
						|
    Vector3D LocalPosition { get; set; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The local scale of the <see cref="ITransform3D"/>.
 | 
						|
    /// </summary>
 | 
						|
    Vector3D LocalScale { get; set; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The local rotation of the <see cref="ITransform3D"/> in degrees.
 | 
						|
    /// </summary>
 | 
						|
    Quaternion LocalRotation { get; set; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Arguments for the event triggered when the <see cref="ITransform3D"/>'s rotation changes.
 | 
						|
    /// </summary>
 | 
						|
    /// <param name="PreviousPosition">The previous <see cref="Position"/> of the <see cref="ITransform3D"/>.</param>
 | 
						|
    readonly record struct PositionChangedArguments(Vector3D PreviousPosition);
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Arguments for the event triggered when the <see cref="ITransform3D"/>'s rotation changes.
 | 
						|
    /// </summary>
 | 
						|
    /// <param name="PreviousScale">The previous <see cref="Scale"/> of the <see cref="ITransform3D"/>.</param>
 | 
						|
    readonly record struct ScaleChangedArguments(Vector3D PreviousScale);
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Arguments for the event triggered when the <see cref="ITransform3D"/>'s rotation changes.
 | 
						|
    /// </summary>
 | 
						|
    /// <param name="PreviousRotation">The previous <see cref="Rotation"/> of the <see cref="ITransform3D"/>.</param>
 | 
						|
    readonly record struct RotationChangedArguments(Quaternion PreviousRotation);
 | 
						|
}
 |