Syntriax.Engine/Engine.Physics2D/Abstract/IRigidBody2D.cs

36 lines
970 B
C#

using Syntriax.Engine.Core;
using Syntriax.Engine.Core.Abstract;
namespace Syntriax.Engine.Physics2D.Abstract;
/// <summary>
/// Represents a 2D rigid body in the engine.
/// </summary>
public interface IRigidBody2D : IBehaviour, IAssignableTransform
{
/// <summary>
/// The physics material of the <see cref="IRigidBody2D"/>.
/// </summary>
IPhysicsMaterial2D Material { get; set; }
/// <summary>
/// The velocity of the <see cref="IRigidBody2D"/>.
/// </summary>
Vector2D Velocity { get; set; }
/// <summary>
/// The angular velocity (rotation rate) of the <see cref="IRigidBody2D"/>.
/// </summary>
float AngularVelocity { get; set; }
/// <summary>
/// The mass of the <see cref="IRigidBody2D"/>.
/// </summary>
float Mass { get; set; }
/// <summary>
/// The value indicating whether the <see cref="IRigidBody2D"/> is static/immovable.
/// </summary>
bool IsStatic { get; set; }
}